You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.3 KiB

--- a/scripts/squid_redirect-nodata
+++ b/scripts/squid_redirect-nodata
@@ -31,7 +31,7 @@
use POSIX ":sys_wait_h";
use Socket;
-require 'flush.pl';
+use IO::Handle;
$::IOSIZE=1024;
@@ -232,7 +232,7 @@
{
if (defined $::LogFile)
{ print LOGFILE $_;
- flush(LOGFILE);
+ LOGFILE->flush();;
}
chomp;
@@ -259,7 +259,7 @@
}
}
- flush(STDOUT);
+ STDOUT->flush();
}
exit 0;
@@ -789,14 +789,16 @@
}
# dispatch request and headers
- printflush(GCHILD_WRITE,"$method $uri $v1 $v2\n")
+ print GCHILD_WRITE "$method $uri $v1 $v2\n"
|| die "tell grandchild the request: $!";
+ GCHILD_WRITE->flush();
print PROXY "$method $uri HTTP/$v1.$v2\r\n";
for my $H (@hdrs)
{ print PROXY $H->[0], ":", $H->[1], "\r\n";
}
- printflush(PROXY,"\r\n");
+ print PROXY "\r\n";
+ PROXY->flush();
##warn "[$$]: sent rq to proxy\n";
proxy_copybody(CONN,PROXY,$method,$persist,\@hdrs)
@@ -965,8 +967,9 @@
}
warn "[$child:$$]: pass response to parent\n";
- printflush(TOCHILD,($persist ? PERSIST : CLOSE)." $code $info")
+ print TOCHILD ($persist ? PERSIST : CLOSE)." $code $info"
|| die "[$child:$$]: print(TOCHILD) fails: $!";
+ TOCHILD->flush();
warn "[$child:$$]: told parent, passing response to client\n";
# copy to child
@@ -974,7 +977,8 @@
for my $H (@hdrs)
{ print CONN $H->[0], ":", $H->[1], "\r\n";
}
- printflush(CONN,"\r\n");
+ print CONN "\r\n";
+ CONN->flush();
# see RFC2616 section 10
if (
@@ -1050,11 +1054,13 @@
)
{
##warn "[$$]: read ".length($_)." bytes of request body\n";
- if (! printflush($to,$_))
- { warn "$::cmd: [$$]: printflush($to,..): $!";
+ $to->autoflush(1);
+ if (! print $to $_)
+ { warn "$::cmd: [$$]: print $to ..): $!";
$ok=0;
last COPY;
}
+ $to->autoflush(0);
$cl-=length if defined $cl;
}
warn "[$$]: finished unchunked body, ok=$ok";
@@ -1083,10 +1089,10 @@
{ print $to $_;
$chunksize-=length;
}
- flush($to);
+ $to->flush();
}
- flush($to);
+ $to->flush();
# pass trailer headers
while (defined($_=<$from>) && !/^\r?\n/)
@@ -1096,7 +1102,7 @@
{ ##warn "[$$]: final trailer: $_";
print $to $_;
}
- flush($to);
+ $to->flush();
return (1,"");
}