Viewing file: perchild.pl (4.05 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# perchild.pl # Defines editors for the per-child UID module in apache 2.0 # The actual functions for most of these are still in core.pl
sub perchild_directives { local $rv; $rv = [ [ 'AssignUserId', 0, 8, 'virtual virtualonly', 2.0 ], [ 'ChildPerUserId', 1, 8, 'global', 2.0 ], [ 'CoreDumpDirectory', 0, 9, 'global', 2.0 ], [ 'BindAddress Listen Port', 1, 1, 'global', 2.0, 10 ], [ 'ListenBacklog', 0, 1, 'global', 2.0 ], [ 'LockFile', 0, 9, 'global', 2.0 ], [ 'MaxRequestsPerChild', 0, 0, 'global', 2.0 ], [ 'MinSpareThreads', 0, 0, 'global', 2.0 ], [ 'MaxSpareThreads', 0, 0, 'global', 2.0 ], [ 'MaxThreadsPerChild', 0, 0, 'global', 2.0 ], [ 'NumServers', 0, 0, 'global', 2.0 ], [ 'PidFile', 0, 9, 'global', 2.0 ], [ 'ScoreBoardFile', 0, 9, 'global', 2.0 ], [ 'SendBufferSize', 0, 1, 'global', 2.0 ], [ 'StartThreads', 0, 0, 'global', 2.0 ], [ 'Group', 0, 8, 'global', 2.0, 9 ], [ 'User', 0, 8, 'global', 2.0, 10 ] ]; return &make_directives($rv, $_[0], "perchild"); }
sub edit_AssignUserId { local $rv; $rv .= sprintf "<input type=radio name=AssignUserId_def value=1 %s> %s\n", $_[0] ? "" : "checked", $text{'core_none'}; $rv .= sprintf "<input type=radio name=AssignUserId_def value=0 %s>\n", $_[0] ? "checked" : ""; $rv .= &text('perchild_assignug', "<input name=AssignUserId_uid size=8 value='$_[0]->{'words'}->[0]'>", "<input name=AssignUserId_gid size=8 value='$_[0]->{'words'}->[1]'>"); return (2, $text{'perchild_assign'}, $rv); } sub save_AssignUserId { if ($in{'AssignUserId_def'}) { return ( [ ] ); } else { $in{'AssignUserId_uid'} =~ /^-?\d+$/ || &error($text{'perchild_euid'}); $in{'AssignUserId_gid'} =~ /^-?\d+$/ || &error($text{'perchild_egid'}); return ( [ "$in{'AssignUserId_uid'} $in{'AssignUserId_gid'}" ] ); } }
sub edit_ChildPerUserId { local $rv = "<table border>\n". "<tr $tb> <td><b>$text{'perchild_num'}</b></td>\n". "<td><b>$text{'perchild_uid'}</b></td>\n". "<td><b>$text{'perchild_gid'}</b></td> </tr>\n"; local ($c, $i = 0); foreach $c (@{$_[0]}, undef) { local @v = $c ? @{$c->{'words'}} : (); $rv .= "<tr $cb>\n"; $rv .= "<td><input name=ChildPerUserId_n_$i size=5 value='$v[2]'></td>\n"; $rv .= "<td><input name=ChildPerUserId_u_$i size=8 value='$v[0]'></td>\n"; $rv .= "<td><input name=ChildPerUserId_g_$i size=8 value='$v[1]'></td>\n"; $rv .= "</tr>\n"; $i++; } $rv .= "</table>\n"; return (2, $text{'perchild_child'}, $rv); } sub save_ChildPerUserId { local (@rv, $i); for($i=0; defined($in{"ChildPerUserId_n_$i"}); $i++) { next if (!$in{"ChildPerUserId_n_$i"}); $in{"ChildPerUserId_n_$i"} =~ /^[1-9]\d*$/ || &error($text{'perchild_enum'}); $in{"ChildPerUserId_u_$i"} =~ /^-?\d+$/ || &error($text{'perchild_euid'}); $in{"ChildPerUserId_g_$i"} =~ /^-?\d+$/ || &error($text{'perchild_egid'}); push(@rv, $in{"ChildPerUserId_u_$i"}." ".$in{"ChildPerUserId_g_$i"}." ". $in{"ChildPerUserId_n_$i"}); } return ( \@rv ); }
sub edit_MinSpareThreads { return (1, $text{'worker_minspare'}, &opt_input($_[0]->{'value'},"MinSpareThreads",$text{'default'}, 4)); } sub save_MinSpareThreads { return &parse_opt("MinSpareThreads", '^\d+$', $text{'worker_eminspare'}); }
sub edit_MaxSpareThreads { return (1, $text{'worker_maxspare'}, &opt_input($_[0]->{'value'},"MaxSpareThreads",$text{'default'}, 4)); } sub save_MaxSpareThreads { return &parse_opt("MaxSpareThreads", '^\d+$', $text{'worker_emaxspare'}); }
sub edit_StartThreads { return (1, $text{'perchild_sthreads'}, &opt_input($_[0]->{'value'},"StartThreads",$text{'default'}, 4)); } sub save_StartThreads { return &parse_opt("StartThreads", '^\d+$', $text{'perchild_esthreads'}); }
sub edit_NumServers { return (1, $text{'perchild_numservers'}, &opt_input($_[0]->{'value'},"NumServers",$text{'default'}, 4)); } sub save_NumServers { return &parse_opt("NumServers", '^\d+$', $text{'perchild_enumservers'}); }
sub edit_MaxThreadsPerChild { return (1, $text{'perchild_maxthreads'}, &opt_input($_[0]->{'value'},"MaxThreadsPerChild",$text{'default'}, 4)); } sub save_MaxThreadsPerChild { return &parse_opt("MaxThreadsPerChild", '^\d+$', $text{'perchild_emaxthreads'}); }
|