1# The syslogd binds UDP socket on localhost and port.
2# The client writes a message into a localhost UDP socket.
3# The syslogd writes it into a file and through a pipe.
4# The syslogd passes it via UDP to the loghost.
5# The server receives the message on its UDP socket.
6# Find the message in client, file, pipe, syslogd, server log.
7# Check that the file log contains the localhost name.
8# Check that fstat contains a bound UDP socket.
9
10use strict;
11use warnings;
12use Socket;
13require 'funcs.pl';
14
15my $port = find_ports(domain => AF_UNSPEC, addr => "localhost");
16
17our %args = (
18    client => {
19	connect => { domain => AF_UNSPEC, addr => "localhost", port => $port },
20	loggrep => {
21	    qr/connect sock: (127.0.0.1|::1) \d+/ => 1,
22	    get_testgrep() => 1,
23	},
24    },
25    syslogd => {
26	options => ["-U", "localhost:$port"],
27	fstat => {
28	    qr/^root .* internet/ => 0,
29	    qr/^_syslogd .* internet/ => 3,
30	    qr/ internet6? dgram udp (127.0.0.1|\[::1\]):$port$/ => 1,
31	},
32    },
33    file => {
34	loggrep => qr/ localhost /. get_testgrep(),
35    },
36);
37
381;
39