1470f2a1bSbluhm# The client writes long messages to unix domain socket /dev/log. 2470f2a1bSbluhm# The syslogd writes it into a file and through a pipe. 3470f2a1bSbluhm# The syslogd passes it via UDP to the loghost. 4470f2a1bSbluhm# The server receives the message on its UDP socket. 5470f2a1bSbluhm# Find the message in client, file, pipe, syslogd, server log. 6470f2a1bSbluhm# Check that lines in file have 8192 bytes message length after the header. 7470f2a1bSbluhm 8470f2a1bSbluhmuse strict; 9470f2a1bSbluhmuse warnings; 10470f2a1bSbluhmuse Socket; 11470f2a1bSbluhm 12470f2a1bSbluhmour %args = ( 13470f2a1bSbluhm client => { 14470f2a1bSbluhm connect => { domain => AF_UNIX }, 15a87ca01dSbluhm func => sub { 16a87ca01dSbluhm my $self = shift; 17a87ca01dSbluhm write_lengths($self, 8190..8193,9000); 18a87ca01dSbluhm write_log($self); 19a87ca01dSbluhm }, 20470f2a1bSbluhm }, 21470f2a1bSbluhm syslogd => { 22470f2a1bSbluhm loggrep => { 238cd3cffcSbluhm get_charlog() => 5, 24*f48a84a7Sbluhm }, 25470f2a1bSbluhm }, 26470f2a1bSbluhm file => { 27470f2a1bSbluhm # Feb 2 00:43:36 hostname 0123456789ABC...567 28470f2a1bSbluhm loggrep => { 298cd3cffcSbluhm get_charlog() => 5, 30470f2a1bSbluhm qr/^.{15} \S{1,256} .{8190}$/ => 1, 31470f2a1bSbluhm qr/^.{15} \S{1,256} .{8191}$/ => 1, 32470f2a1bSbluhm qr/^.{15} \S{1,256} .{8192}$/ => 3, 33470f2a1bSbluhm }, 34470f2a1bSbluhm }, 35470f2a1bSbluhm); 36470f2a1bSbluhm 37470f2a1bSbluhm1; 38