Send inn-committers mailing list submissions to inn-committers@lists.isc.org
To subscribe or unsubscribe via the World Wide Web, visit https://lists.isc.org/mailman/listinfo/inn-committers or, via email, send a message with subject or body 'help' to inn-committers-requ...@lists.isc.org You can reach the person managing the list at inn-committers-ow...@lists.isc.org When replying, please edit your Subject line so it is more specific than "Re: Contents of inn-committers digest..." Today's Topics: 1. INN commit: branches/2.5 (3 files) (INN Commit) 2. INN commit: branches/2.5 (4 files) (INN Commit) 3. INN commit: branches/2.5/frontends (pullnews.in) (INN Commit) 4. INN commit: branches/2.5/doc/man (libinn.3) (INN Commit) ---------------------------------------------------------------------- Message: 1 Date: Sat, 30 Aug 2014 05:06:33 -0700 (PDT) From: INN Commit <r...@isc.org> To: inn-committ...@isc.org Subject: INN commit: branches/2.5 (3 files) Message-ID: <20140830120633.5f7d367...@hope.eyrie.org> Date: Saturday, August 30, 2014 @ 05:06:32 Author: iulius Revision: 9665 pullnews: new -B flag (header-only feeding) Add a new feature to pullnews: header-only feeding. If the article does not already have a Bytes: header field, one is added. Bodies are kept only for control articles. Thanks to Geraint Edwards for the patch. Modified: branches/2.5/doc/pod/news.pod branches/2.5/doc/pod/pullnews.pod branches/2.5/frontends/pullnews.in -----------------------+ doc/pod/news.pod | 5 +-- doc/pod/pullnews.pod | 11 +++++- frontends/pullnews.in | 77 +++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 76 insertions(+), 17 deletions(-) Modified: doc/pod/news.pod =================================================================== --- doc/pod/news.pod 2014-08-30 11:58:35 UTC (rev 9664) +++ doc/pod/news.pod 2014-08-30 12:06:32 UTC (rev 9665) @@ -14,8 +14,9 @@ =item * Several improvements have been contributed to B<pullnews> by Geraint -Edwards: the B<-m> flag now permits to remove headers matching (or not) -a given regexp, and B<rnews> reporting is improved. +Edwards: the new B<-B> flag triggers header-only feeding, the B<-m> +flag now permits to remove headers matching (or not) a given regexp, +and B<rnews> reporting is improved. =back Modified: doc/pod/pullnews.pod =================================================================== --- doc/pod/pullnews.pod 2014-08-30 11:58:35 UTC (rev 9664) +++ doc/pod/pullnews.pod 2014-08-30 12:06:32 UTC (rev 9665) @@ -4,10 +4,10 @@ =head1 SYNOPSIS -B<pullnews> [B<-hnqRx>] [B<-b> I<fraction>] [B<-c> I<config>] [B<-C> I<width>] +B<pullnews> [B<-BhnOqRx>] [B<-b> I<fraction>] [B<-c> I<config>] [B<-C> I<width>] [B<-d> I<level>] [B<-f> I<fraction>] [B<-F> I<fakehop>] [B<-g> I<groups>] [B<-G> I<newsgroups>] [B<-H> I<headers>] [B<-k> I<checkpt>] [B<-l> I<logfile>] -[B<-m> I<header_pats>] [B<-M> I<num>] [B<-N> I<timeout>] [B<-O>] [B<-p> I<port>] +[B<-m> I<header_pats>] [B<-M> I<num>] [B<-N> I<timeout>] [B<-p> I<port>] [B<-P> I<hop_limit>] [B<-Q> I<level>] [B<-r> I<file>] [B<-s> I<to-server>[:I<port>]] [B<-S> I<max-run>] [B<-t> I<retries>] [B<-T> I<connect-pause>] [B<-w> I<num>] [B<-z> I<article-pause>] [B<-Z> I<group-pause>] [I<from-server> ...] @@ -44,6 +44,13 @@ our high for that group. When I<fraction> is C<1.0>, pull all the articles on a renumbered server. The default is to do nothing. +=item B<-B> + +Feed is header-only, that is to say B<pullnews> only feeds the headers +of the articles, plus one blank line. It adds the Bytes: header field +if the article does not already have one, and keeps the body only if +the article is a control article. + =item B<-c> I<config> Normally, the config file is stored in F<~/.pullnews> for the user running Modified: frontends/pullnews.in =================================================================== --- frontends/pullnews.in 2014-08-30 11:58:35 UTC (rev 9664) +++ frontends/pullnews.in 2014-08-30 12:06:32 UTC (rev 9665) @@ -12,8 +12,8 @@ # Full changelog can be found in the Subversion repository of the # INN project. Major changes are: # -# January 2010: Geraint A. Edwards -# enable -m to remove headers matching (or not) a given regexp; +# January 2010: Geraint A. Edwards added header-only feeding (-B); +# enabled -m to remove headers matching (or not) a given regexp; # minor bug fix to rnews when -O; improved rnews reporting. # # December 2008: Matija Nalis added -O (optimized mode, checking @@ -114,7 +114,7 @@ } $usage =~ s!.*/!!; -$usage .= " [ -hnOqRx -b fraction -c config -C width -d level +$usage .= " [ -BhnOqRx -b fraction -c config -C width -d level -f fraction -F fakehop -g groups -G newsgroups -H headers -k checkpt -l logfile -m header_pats -M num -N num -p port -P hop_limit -Q level -r file -s host[:port] -S num @@ -127,6 +127,10 @@ group. When fraction is 1.0, pull all the articles on the server. The default is to do nothing. + -B feed is header-only (headers plus one blank line). + Add the Bytes: header field if needed. Keep body if + control article. + -c config specify the configuration file instead of the default of ~/.pullnews (in the running user's home directory). @@ -218,11 +222,11 @@ "; -use vars qw($opt_b $opt_c $opt_C $opt_d $opt_f $opt_F $opt_g $opt_G +use vars qw($opt_b $opt_B $opt_c $opt_C $opt_d $opt_f $opt_F $opt_g $opt_G $opt_h $opt_H $opt_k $opt_l $opt_m $opt_M $opt_n $opt_N $opt_O $opt_p $opt_P $opt_q $opt_Q $opt_r $opt_R $opt_s $opt_S $opt_t $opt_T $opt_w $opt_x $opt_z $opt_Z); -getopts("b:c:C:d:f:F:g:G:hH:k:l:m:M:nN:Op:P:qQ:r:Rs:S:t:T:w:xz:Z:") || die $usage; +getopts("b:Bc:C:d:f:F:g:G:hH:k:l:m:M:nN:Op:P:qQ:r:Rs:S:t:T:w:xz:Z:") || die $usage; die $usage if $opt_h; @@ -233,6 +237,7 @@ my $localServer = $opt_s || $defaultHost; my $localPort = $opt_p || $defaultPort; my $quiet = $opt_q; +my $header_only = $opt_B; my $watermark = $opt_w; my $retries = $opt_t || $defaultRetries; my $retryTime = $opt_T || $defaultRetryTime; @@ -697,22 +702,43 @@ } } - my $article = $skip_article ? '' : $fromServer->article($i); + my $add_bytes_header = 0; + my $is_control_art = 0; + my $article; + if (not $skip_article and $header_only) { + $article = $fromServer->head($i); + if ($fromServer->code() == 221) { + my $has_bytes_header = 0; + for my $hdr (@$article) { + if (lc(substr($hdr, 0, 6)) eq 'bytes:') { + $has_bytes_header = 1; + } elsif (lc(substr($hdr, 0, 8)) eq 'control:') { + $is_control_art = 1; + last; + } + } + $add_bytes_header = 1 if not $has_bytes_header; + push @{$article}, "\n" if not $is_control_art; + } + } + if (not $skip_article and (not $header_only or $is_control_art or $add_bytes_header)) { + $article = $fromServer->article($i); + } if ($article) { my $msgid; my $xref = 0; my $headers = 1; - my $idx; my $line_len = 0; - my $tx_len = 0; # Transmitted article length (bytes) (for rnews). + my $idx_blank_pre_body; # Index of the blank line between headers/body. + my $tx_len = 0; # Transmitted article length (bytes) (for rnews, Bytes:). my @header_nums_to_go = (); my $match_all_hdrs = 1; # Assume no headers to match. my $skip_due_to_hdrs = 0; my %m_found_hdrs = (); my $curr_hdr = ''; - for ($idx = 0 ; $idx < @{$article} ; $idx++) { + for (my $idx = 0 ; $idx < @{$article} ; $idx++) { $line_len = length($article->[$idx]); $len += $line_len; $tx_len += $line_len; @@ -720,9 +746,13 @@ $info{bytes} += $line_len; next if not $headers; + $idx_blank_pre_body = $idx; $curr_hdr = lc($1) if $article->[$idx] =~ /^([^:[:blank:]]+):/; - $curr_hdr = ' ' if $article->[$idx] eq "\n"; + if ($article->[$idx] eq "\n") { + $headers = 0; + next; + } if ($match_all_hdrs and @hdr_to_match and $article->[$idx] =~ /^[^[:blank:]]/) { # Check header matches -m flag if new header. @@ -798,8 +828,6 @@ if ($opt_x && $article->[$idx] =~ m!^xref:!i) { $xref = 1; } - - $headers = 0 if $article->[$idx] eq "\n"; } if (@hdr_to_match and (not $match_all_hdrs or scalar(grep { ! /^!?#/ } @hdr_to_match) != keys %m_found_hdrs)) { @@ -809,11 +837,13 @@ my $idx = pop @header_nums_to_go; # Start from last, so numbers are not affected. my $cut = join("\n\t", splice(@{$article}, $idx, 1)); $tx_len -= length($cut); + $idx_blank_pre_body--; print LOG "\tDEBUGGING $i\tcut1 $cut" if $debug >= 2; while ($article->[$idx] =~ /^[[:space:]](.+)/) { # Folded lines. my $cut = join("\n\t", splice(@{$article}, $idx, 1)); $tx_len -= length($cut); + $idx_blank_pre_body--; print LOG "\tDEBUGGING $i\tcut_ $cut" if $debug >= 2; } } @@ -830,10 +860,31 @@ if ($opt_x && !$xref) { warn "No Xref: header found in article, adding\n"; my $xref_h = "Xref: $server $group: $i\n"; - splice(@{$article}, $idx, 0, $xref_h); + splice(@{$article}, $idx_blank_pre_body, 0, $xref_h); $tx_len += length($xref_h); + $idx_blank_pre_body++; } + if ($add_bytes_header) { + # Compute the number of bytes the same way the :bytes + # metadata item would do. The additional Bytes: header + # field is not counted, as well as headers removed by + # pullnews. + my $bytes_real_count = $tx_len + scalar(@{$article}); + my $bytes_h = "Bytes: $bytes_real_count\n"; + splice(@{$article}, $idx_blank_pre_body, 0, $bytes_h); + $tx_len += length($bytes_h); + $idx_blank_pre_body++; + } + + if ($header_only and not $is_control_art and @{$article} > $idx_blank_pre_body+1) { + splice(@{$article}, $idx_blank_pre_body+1); + $tx_len = 0; + for my $line (@{$article}) { + $tx_len += length($line); + } + } + $pulled->{$server}->{$group}++; if ($skip_due_to_hdrs) { ------------------------------ Message: 2 Date: Sat, 30 Aug 2014 05:07:08 -0700 (PDT) From: INN Commit <r...@isc.org> To: inn-committ...@isc.org Subject: INN commit: branches/2.5 (4 files) Message-ID: <20140830120708.3bf2667...@hope.eyrie.org> Date: Saturday, August 30, 2014 @ 05:07:07 Author: iulius Revision: 9666 pullnews: new -a flag (hashfeed ability) Add a new feature to pullnews: hashfeed to split feeds. It uses MD5 and is Diablo-compatible. Thanks to Geraint Edwards for the patch. Modified: branches/2.5/doc/pod/news.pod branches/2.5/doc/pod/newsfeeds.pod branches/2.5/doc/pod/pullnews.pod branches/2.5/frontends/pullnews.in -----------------------+ doc/pod/news.pod | 3 +- doc/pod/newsfeeds.pod | 3 +- doc/pod/pullnews.pod | 40 +++++++++++++++++++++++++++++++++++- frontends/pullnews.in | 53 ++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 90 insertions(+), 9 deletions(-) Modified: doc/pod/news.pod =================================================================== --- doc/pod/news.pod 2014-08-30 12:06:32 UTC (rev 9665) +++ doc/pod/news.pod 2014-08-30 12:07:07 UTC (rev 9666) @@ -14,7 +14,8 @@ =item * Several improvements have been contributed to B<pullnews> by Geraint -Edwards: the new B<-B> flag triggers header-only feeding, the B<-m> +Edwards: the new B<-a> flag adds the Diablo-compatible hashfeed +ability, the new B<-B> flag triggers header-only feeding, the B<-m> flag now permits to remove headers matching (or not) a given regexp, and B<rnews> reporting is improved. Modified: doc/pod/newsfeeds.pod =================================================================== --- doc/pod/newsfeeds.pod 2014-08-30 12:06:32 UTC (rev 9665) +++ doc/pod/newsfeeds.pod 2014-08-30 12:07:07 UTC (rev 9666) @@ -440,7 +440,8 @@ Therefore, it allows to a generate a second level of deterministic distribution. Indeed, if a news server is fed C<Q1/2>, it can go on -splitting thanks to C<Q1-3/9_4> for instance. +splitting thanks to C<Q1-3/9_4> for instance. Up to four levels of +deterministic distribution can be used. The algorithm is compatible with the one used by S<Diablo 5.1> and up. If you want to use the legacy quickhashing method used by Diablo Modified: doc/pod/pullnews.pod =================================================================== --- doc/pod/pullnews.pod 2014-08-30 12:06:32 UTC (rev 9665) +++ doc/pod/pullnews.pod 2014-08-30 12:07:07 UTC (rev 9666) @@ -4,7 +4,8 @@ =head1 SYNOPSIS -B<pullnews> [B<-BhnOqRx>] [B<-b> I<fraction>] [B<-c> I<config>] [B<-C> I<width>] +B<pullnews> [B<-BhnOqRx>] [B<-a> I<hashfeed>] [B<-b> I<fraction>] +[B<-c> I<config>] [B<-C> I<width>] [B<-d> I<level>] [B<-f> I<fraction>] [B<-F> I<fakehop>] [B<-g> I<groups>] [B<-G> I<newsgroups>] [B<-H> I<headers>] [B<-k> I<checkpt>] [B<-l> I<logfile>] [B<-m> I<header_pats>] [B<-M> I<num>] [B<-N> I<timeout>] [B<-p> I<port>] @@ -37,6 +38,43 @@ =over 4 +=item B<-a> I<hashfeed> + +This option is a deterministic way to control the flow of articles and to +split a feed. The I<hashfeed> parameter must be in the form C<value/mod> +or C<start-end/mod>. The Message-ID of each article is hashed using MD5, +which results in a 128-bit hash. The lowest S<32 bits> are then taken +by default as the hashfeed value (which is an integer). If the hashfeed +value modulus C<mod> plus one equals C<value> or is between C<start> +and C<end>, B<pullnews> will feed the article. All these numbers must +be integers. + +For instance: + + pullnews -a 1/2 Feeds about 50% of all articles. + pullnews -a 2/2 Feeds the other 50% of all articles. + +Another example: + + pullnews -a 1-3/10 Feeds about 30% of all articles. + pullnews -a 4-5/10 Feeds about 20% of all articles. + pullnews -a 6-10/10 Feeds about 50% of all articles. + +You can use an extended syntax of the form C<value/mod:offset> or +C<start-end/mod:offset> (using an underscore C<_> instead of a colon +C<:> is also recognized). As MD5 generates a 128-bit return value, +it is possible to specify from which byte-offset the 32-bit integer +used by hashfeed starts. The default value for C<offset> is C<:0> and +thirteen overlapping values from C<:0> to C<:12> can be used. Only up to +four totally independent values exist: C<:0>, C<:4>, C<:8> and C<:12>. + +Therefore, it allows to a generate a second level of deterministic +distribution. Indeed, if B<pullnews> feeds C<1/2>, it can go on +splitting thanks to C<1-3/9:4> for instance. Up to four levels of +deterministic distribution can be used. + +The algorithm is compatible with the one used by S<Diablo 5.1> and up. + =item B<-b> I<fraction> Backtrack on server numbering reset. Specify the proportion (C<0.0> to C<1.0>) Modified: frontends/pullnews.in =================================================================== --- frontends/pullnews.in 2014-08-30 12:06:32 UTC (rev 9665) +++ frontends/pullnews.in 2014-08-30 12:07:07 UTC (rev 9666) @@ -13,6 +13,7 @@ # INN project. Major changes are: # # January 2010: Geraint A. Edwards added header-only feeding (-B); +# added ability to hashfeed (-a) - uses MD5 - Diablo-compatible; # enabled -m to remove headers matching (or not) a given regexp; # minor bug fix to rnews when -O; improved rnews reporting. # @@ -114,13 +115,19 @@ } $usage =~ s!.*/!!; -$usage .= " [ -BhnOqRx -b fraction -c config -C width -d level +$usage .= " [ -BhnOqRx -a hashfeed -b fraction -c config -C width -d level -f fraction -F fakehop -g groups -G newsgroups -H headers -k checkpt -l logfile -m header_pats -M num -N num -p port -P hop_limit -Q level -r file -s host[:port] -S num -t retries -T seconds -w num -z num -Z num ] [ upstream_host ... ] + -a hashfeed only feed article if the MD5 hash of the Message-ID + matches hashfeed (where hashfeed is of the form value/mod, + value/mod:offset, start-end/mod, or start-end/mod:offset). + The algorithm used is compatible with the one used by Diablo; + see the pullnews man page for more details. + -b fraction backtrack on server numbering reset. The proportion (0.0 to 1.0) of a group's articles to pull when the server's article number is less than our high for that @@ -222,11 +229,11 @@ "; -use vars qw($opt_b $opt_B $opt_c $opt_C $opt_d $opt_f $opt_F $opt_g $opt_G - $opt_h $opt_H $opt_k $opt_l $opt_m $opt_M $opt_n +use vars qw($opt_a $opt_b $opt_B $opt_c $opt_C $opt_d $opt_f $opt_F + $opt_g $opt_G $opt_h $opt_H $opt_k $opt_l $opt_m $opt_M $opt_n $opt_N $opt_O $opt_p $opt_P $opt_q $opt_Q $opt_r $opt_R $opt_s $opt_S $opt_t $opt_T $opt_w $opt_x $opt_z $opt_Z); -getopts("b:Bc:C:d:f:F:g:G:hH:k:l:m:M:nN:Op:P:qQ:r:Rs:S:t:T:w:xz:Z:") || die $usage; +getopts("a:b:Bc:C:d:f:F:g:G:hH:k:l:m:M:nN:Op:P:qQ:r:Rs:S:t:T:w:xz:Z:") || die $usage; die $usage if $opt_h; @@ -237,6 +244,7 @@ my $localServer = $opt_s || $defaultHost; my $localPort = $opt_p || $defaultPort; my $quiet = $opt_q; +my $hashfeed = $opt_a || ''; my $header_only = $opt_B; my $watermark = $opt_w; my $retries = $opt_t || $defaultRetries; @@ -279,6 +287,26 @@ die "``-z'' value not an integer: $opt_z\n" if defined $opt_z and $opt_z !~ /^\d+$/; die "``-Z'' value not an integer: $opt_Z\n" if defined $opt_Z and $opt_Z !~ /^\d+$/; +if ($hashfeed ne '') { + my $a_err = "``-a'' value not in format ``start[-end]/mod[:offset]'': $opt_a\n"; + die $a_err if $opt_a !~ m!^(\d+)(?:-(\d+))?/(\d+)(?:[:_](\d+))?$!; + $hashfeed = { + 'low' => $1, + 'high' => $2 || $1, + 'modulus' => $3, + 'offset' => $4 || 0, + }; + die $a_err if $hashfeed->{'low'} > $hashfeed->{'high'} + or $hashfeed->{'modulus'} == 0 + or $hashfeed->{'offset'} > 12; + if ($hashfeed->{'low'} == 1 and $hashfeed->{'high'} == $hashfeed->{'modulus'}) { + $hashfeed = ''; + } else { + require Digest::MD5; + Digest::MD5->import(qw/md5/); + } +} + $quiet = 1 if $quietness > 1; my %NNTP_Args = (); $NNTP_Args{'Timeout'} = $opt_N if defined $opt_N; @@ -400,7 +428,7 @@ print LOG " ``+'' is an article the downstream server accepted\n"; print LOG " ``x'' is an article the upstream server couldn't "; print LOG "give out\n"; - print LOG " ``m'' is an article skipped due to headers (-m or -P)\n"; + print LOG " ``m'' is an article skipped due to headers (-a, -m or -P)\n"; print LOG "\n"; print LOG "Writing to rnews-format output: $rnews\n\n" if $rnews; } @@ -734,7 +762,7 @@ my $tx_len = 0; # Transmitted article length (bytes) (for rnews, Bytes:). my @header_nums_to_go = (); my $match_all_hdrs = 1; # Assume no headers to match. - my $skip_due_to_hdrs = 0; + my $skip_due_to_hdrs = 0; # Set to 1 if triggered by -P, 2 if by -m, 3 if by -a. my %m_found_hdrs = (); my $curr_hdr = ''; @@ -885,9 +913,22 @@ } } + if (not $skip_due_to_hdrs and ref $hashfeed) { + my $hash_val = unpack('N', substr(md5($msgid), 12-$hashfeed->{'offset'}, 4)) % $hashfeed->{'modulus'} + 1; + $skip_due_to_hdrs = 3 if $hash_val < $hashfeed->{'low'} or $hash_val > $hashfeed->{'high'}; + } + $pulled->{$server}->{$group}++; if ($skip_due_to_hdrs) { + if ($debug >= 2) { + print LOG "\tDEBUGGING $i\tskip_art: " . + ($skip_due_to_hdrs == 1 ? 'hopsPath' + : ($skip_due_to_hdrs == 2 ? 'hdr' + : ($skip_due_to_hdrs == 3 ? 'hashfeed' + : 'unknown'))) . + "\n"; + } print LOG "m" unless $quiet; } elsif ($rnews) { printf RNEWS "#! rnews %d\n", $tx_len; ------------------------------ Message: 3 Date: Sat, 30 Aug 2014 05:09:31 -0700 (PDT) From: INN Commit <r...@isc.org> To: inn-committ...@isc.org Subject: INN commit: branches/2.5/frontends (pullnews.in) Message-ID: <20140830120931.c579f67...@hope.eyrie.org> Date: Saturday, August 30, 2014 @ 05:09:31 Author: iulius Revision: 9667 pullnews: improve logging when an error occurs during GROUP Also rewrite a ternary condition to improve readability. Patch from Geraint A. Edwards. Modified: branches/2.5/frontends/pullnews.in -------------+ pullnews.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Modified: pullnews.in =================================================================== --- pullnews.in 2014-08-30 12:07:07 UTC (rev 9666) +++ pullnews.in 2014-08-30 12:09:31 UTC (rev 9667) @@ -256,7 +256,7 @@ my $no_op = $opt_n || 0; my $reader = $opt_R || 0; my $quietness = $opt_Q || 0; -my $skip_headers = defined $opt_H ? lc($opt_H) : ''; +my $skip_headers = lc($opt_H || ''); my $logFile = '>&STDOUT'; $logFile = ">>$opt_l" if $opt_l; my @hdr_to_match = split(/\s+/, $opt_m) if defined $opt_m; @@ -655,7 +655,7 @@ if (!defined($narticles)) { # Group command failed. warn sprintf ("Group command failed for $group: %s %s\n", - $fromServer->code(), $fromServer->message()); + $fromServer->code() || 'NO_CODE', $fromServer->message()); return undef; } ------------------------------ Message: 4 Date: Sat, 30 Aug 2014 05:13:47 -0700 (PDT) From: INN Commit <r...@isc.org> To: inn-committ...@isc.org Subject: INN commit: branches/2.5/doc/man (libinn.3) Message-ID: <20140830121347.3352267...@hope.eyrie.org> Date: Saturday, August 30, 2014 @ 05:13:46 Author: iulius Revision: 9668 libinn documentation: update the name of the fdflag functions Modified: branches/2.5/doc/man/libinn.3 ----------+ libinn.3 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Modified: libinn.3 =================================================================== --- libinn.3 2014-08-30 12:09:31 UTC (rev 9667) +++ libinn.3 2014-08-30 12:13:46 UTC (rev 9668) @@ -232,7 +232,7 @@ or .IR CAlistopen . .PP -.I CloseOnExec +.I close_on_exec can make a descriptor ``close-on-exec'' so that it is not shared with any child processes. If the flag is non-zero, the file is so marked; if zero, the ``close-on-exec'' @@ -277,7 +277,7 @@ releases any state maintained in the handle and returns an allocated copy of the text that should be used for the Distribution header. .PP -.I SetNonBlocking +.I nonblocking enables (if .I flag is non-zero) or disables (if @@ -463,7 +463,7 @@ Fatal("Can't open active file"); /* Don't pass the file on to our children. */ -CloseOnExec(fileno(F), 1); +close_on_exec(fileno(F), 1); /* Make a local copy. */ p = ReadInDescriptor(fileno(F), (struct stat *)NULL); ------------------------------ _______________________________________________ inn-committers mailing list inn-committers@lists.isc.org https://lists.isc.org/mailman/listinfo/inn-committers End of inn-committers Digest, Vol 66, Issue 9 *********************************************