I'm trying to create a IO::Socket::UNIX socket for receiving data from a netflow collector that can only write to files. I've created a small socket script (see below) that seems to run ok, but I get the following error when I run the collector:
...
client_open_log: entering
answer_open_log: entering
answer_open_log: open: Operation not supported
receive_fd: recvmsg: expected received 1 got 0#
And the script:
#!/usr/bin/perl
use strict;
use IO::Socket;
use constant SOCK_PATH => '/tmp/flowpipe.sock';
$SIG{TERM} = $SIG{INT} = sub { exit 0 };
my $path = shift || SOCK_PATH;
umask(0111);
my $sock = IO::Socket::UNIX->new(Local => SOCK_PATH, Listen => SOMAXCO
+NN);
while (1) {
my $data;
my $peer = recv($sock, $data, 128, 0);
print $data;
}
END { unlink $path if $path }
Any ideas what this error means or how to correct it?
Thanks,
Update: Corrected options passed to new().
Another Update: According to djm, flowd will not work with sockets at all. He's been able to provide patches to support FIFO properly, so this has been resolved.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.