(map { (get_testlog()." unix-$_.sock unix socket" => 1) }
(1..(MAXUNIX-1))),
get_testlog()." unix-".MAXUNIX.".sock unix socket" => 0,
- }
+ },
},
);
syslogd => {
loghost => '@udp://127.0.0.1:$connectport',
loggrep => {
- qr/Logging to FORW \@udp:\/\/127.0.0.1:\d+/ => '>=4',
+ qr/Logging to FORWUDP \@udp:\/\/127.0.0.1:\d+/ => '>=4',
get_testlog() => 1,
},
},
syslogd => {
loghost => '@udp4://127.0.0.1:$connectport',
loggrep => {
- qr/Logging to FORW \@udp4:\/\/127.0.0.1:\d+/ => '>=4',
+ qr/Logging to FORWUDP \@udp4:\/\/127.0.0.1:\d+/ => '>=4',
get_testlog() => 1,
},
},
syslogd => {
loghost => '@udp6://[::1]:$connectport',
loggrep => {
- qr/Logging to FORW \@udp6:\/\/\[::1\]:\d+/ => '>=4',
+ qr/Logging to FORWUDP \@udp6:\/\/\[::1\]:\d+/ => '>=4',
get_testlog() => 1,
},
},
--- /dev/null
+# The TCP server closes the connection to syslogd.
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# The syslogd passes it via IPv4 TCP to an explicit loghost.
+# The server receives the message on its TCP socket.
+# Find the message in client, pipe, syslogd log.
+# Check that syslogd writes a log message about the server close.
+
+use strict;
+use warnings;
+use Socket;
+
+our %args = (
+ client => {
+ func => sub {
+ my $self = shift;
+ ${$self->{syslogd}}->loggrep("loghost .* connection close", 2)
+ or die "connection close in syslogd.log";
+ write_log($self, @_);
+ },
+ },
+ syslogd => {
+ loghost => '@tcp://127.0.0.1:$connectport',
+ loggrep => {
+ qr/Logging to FORWTCP \@tcp:\/\/127.0.0.1:\d+/ => '>=4',
+ get_testlog() => 1,
+ qr/syslogd: loghost .* connection close/ => 2,
+ },
+ },
+ server => {
+ listen => { domain => AF_INET, proto => "tcp", addr => "127.0.0.1" },
+ func => sub {},
+ loggrep => {},
+ },
+ file => {
+ loggrep => {
+ qr/syslogd: loghost .* connection close/ => 1,
+ },
+ },
+);
+
+1;
--- /dev/null
+# The TCP server aborts the connection to syslogd.
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# The syslogd passes it via IPv4 TCP to an explicit loghost.
+# The server receives the message on its TCP socket.
+# Find the message in client, pipe, syslogd log.
+# Check that syslogd writes a log message about the server error.
+
+use strict;
+use warnings;
+use Socket;
+
+our %args = (
+ client => {
+ func => sub {
+ my $self = shift;
+ ${$self->{syslogd}}->loggrep("loghost .* connection error", 2)
+ or die "connection error in syslogd.log";
+ write_log($self, @_);
+ },
+ },
+ syslogd => {
+ loghost => '@tcp://127.0.0.1:$connectport',
+ loggrep => {
+ qr/Logging to FORWTCP \@tcp:\/\/127.0.0.1:\d+/ => '>=4',
+ get_testlog() => 1,
+ qr/syslogd: loghost .* connection error/ => 2,
+ },
+ },
+ server => {
+ listen => { domain => AF_INET, proto => "tcp", addr => "127.0.0.1" },
+ func => sub {
+ my $self = shift;
+ setsockopt(STDOUT, SOL_SOCKET, SO_LINGER, pack('ii', 1, 0))
+ or die "set socket linger failed: $!";
+ },
+ loggrep => {},
+ },
+ file => {
+ loggrep => {
+ qr/syslogd: loghost .* connection error: Connection reset by peer/
+ => 1,
+ },
+ },
+);
+
+1;
--- /dev/null
+# The TCP server writes a message back to the syslogd.
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# The syslogd passes it via IPv4 TCP to an explicit loghost.
+# The server receives the message on its TCP socket.
+# Find the message in client, pipe, syslogd, server log.
+# Check that syslogd writes a debug message about the message sent back.
+
+use strict;
+use warnings;
+use Socket;
+
+my $sendback = "syslogd tcp server send back message";
+
+our %args = (
+ client => {
+ func => sub {
+ my $self = shift;
+ ${$self->{syslogd}}->loggrep("loghost .* did send .* back", 2)
+ or die "no send back in syslogd.log";
+ write_log($self, @_);
+ },
+ },
+ syslogd => {
+ loghost => '@tcp://127.0.0.1:$connectport',
+ loggrep => {
+ qr/Logging to FORWTCP \@tcp:\/\/127.0.0.1:\d+/ => '>=4',
+ get_testlog() => 1,
+ qr/did send /.length($sendback).qr/ bytes back/ => 1,
+ },
+ },
+ server => {
+ listen => { domain => AF_INET, proto => "tcp", addr => "127.0.0.1" },
+ func => sub {
+ print($sendback);
+ read_log(@_);
+ },
+ },
+ file => {
+ loggrep => {
+ qr/$sendback/ => 0,
+ },
+ },
+);
+
+1;
--- /dev/null
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# The syslogd passes it via IPv4 TCP to an explicit loghost.
+# The server receives the message on its TCP socket.
+# Find the message in client, file, pipe, syslogd, server log.
+# Check that syslogd and server log contain 127.0.0.1 address.
+
+use strict;
+use warnings;
+use Socket;
+
+our %args = (
+ syslogd => {
+ loghost => '@tcp://127.0.0.1:$connectport',
+ loggrep => {
+ qr/Logging to FORWTCP \@tcp:\/\/127.0.0.1:\d+/ => '>=4',
+ get_testlog() => 1,
+ },
+ },
+ server => {
+ listen => { domain => AF_INET, proto => "tcp", addr => "127.0.0.1" },
+ loggrep => {
+ qr/listen sock: 127.0.0.1 \d+/ => 1,
+ get_testlog() => 1,
+ },
+ },
+);
+
+1;
--- /dev/null
+# The client writes a message to Sys::Syslog native method.
+# The syslogd writes it into a file and through a pipe.
+# The syslogd passes it via IPv6 TCP to an explicit loghost.
+# The server receives the message on its TCP socket.
+# Find the message in client, file, pipe, syslogd, server log.
+# Check that syslogd and server log contain ::1 address.
+
+use strict;
+use warnings;
+use Socket;
+
+our %args = (
+ syslogd => {
+ loghost => '@tcp://[::1]:$connectport',
+ loggrep => {
+ qr/Logging to FORWTCP \@tcp:\/\/\[::1\]:\d+/ => '>=4',
+ get_testlog() => 1,
+ },
+ },
+ server => {
+ listen => { domain => AF_INET6, proto => "tcp", addr => "::1" },
+ loggrep => {
+ qr/listen sock: ::1 \d+/ => 1,
+ get_testlog() => 1,
+ },
+ },
+);
+
+1;
syslogd => {
loghost => '@127.0.0.1:$connectport',
loggrep => {
- qr/Logging to FORW \@127.0.0.1:\d+/ => '>=4',
+ qr/Logging to FORWUDP \@127.0.0.1:\d+/ => '>=4',
get_testlog() => 1,
},
},
syslogd => {
loghost => '@[::1]:$connectport',
loggrep => {
- qr/Logging to FORW \@\[::1\]:\d+/ => '>=4',
+ qr/Logging to FORWUDP \@\[::1\]:\d+/ => '>=4',
get_testlog() => 1,
},
},
qr/config file changed: dying/ => 1,
qr/syslogd: restarted/ => 0,
get_between2loggrep(),
- }
+ },
},
server => {
func => sub {
loggrep => {
qr/syslogd: restarted/ => 1,
get_between2loggrep(),
- }
+ },
},
server => {
func => sub {
qr/config file modified: restarting/ => 0,
qr/syslogd: restarted/ => 1,
get_between2loggrep(),
- }
+ },
},
server => {
func => sub {