Bug 6620 Ensure autoflush is set on output filehandles

stdout is by default buffered and a flush is only guaranteed on CR
Sip responses are not CR terminated so we need to ensure autoflush
is switched on  so that the filehandle is flushed after a print
Otherwise this can manifest as self checks running slow or
failing due to timeout (although in the log we see the response)

Signed-off-by: Ulrich Kleiber <ulrich.kleiber@bsz-bw.de>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
Colin Campbell 2011-07-21 12:16:22 +01:00 committed by Chris Cormack
parent 47aee699af
commit f9ccfae400

View file

@ -12,6 +12,7 @@ use Exporter;
use Sys::Syslog qw(syslog);
use POSIX qw(strftime);
use Socket qw(:crlf);
use IO::Handle;
use Sip::Constants qw(SIP_DATETIME);
use Sip::Checksum qw(checksum);
@ -230,9 +231,11 @@ sub write_msg {
if ($file) {
$file->autoflush(1);
print $file "$msg\r";
} else {
print "$msg\r";
STDOUT->autoflush(1);
print $msg, "\r";
syslog("LOG_INFO", "OUTPUT MSG: '$msg'");
}