With unix domain sockets, unix(4), are LOCAL_CREDS actually supported or not? I've been trying to fetch this from within a Perl script using 'my $local_creds=$some_connection->sockopt(LOCAL_CREDS)', but all I keep getting is a undefined variable in return, as if fetching it is not supported.
On Tue, 5 Feb 2008, Zane C.B. wrote:> With unix domain sockets, unix(4), are LOCAL_CREDS actually supported or > not? > > I've been trying to fetch this from within a Perl script using 'my > $local_creds=$some_connection->sockopt(LOCAL_CREDS)', but all I keep getting > is a undefined variable in return, as if fetching it is not supported.It depends on the version of FreeBSD. Using a C language program I can get and set LOCAL_CREDS on FreeBSD 7.0 and it looks implemented in the kernel. There are also some regression tests although I've not run them, but it appears things are together. Are you running an older FreeBSD version and/or have you rebuilt Perl since support for LOCAL_CREDS was added (April 2005)? Robert N M Watson Computer Laboratory University of Cambridge
On Tue, 5 Feb 2008 13:21:10 -0200 Fernando Schapachnik <fschapachnik@mecon.gov.ar> wrote:> En un mensaje anterior, Zane C.B. escribi?: > > With unix domain sockets, unix(4), are LOCAL_CREDS actually > > supported or not? > > > > I've been trying to fetch this from within a Perl script > > using 'my $local_creds=$some_connection->sockopt(LOCAL_CREDS)', > > but all I keep getting is a undefined variable in return, as if > > fetching it is not supported. > > Maybe LOCAL_CREDS is not defined. Maybe LOCAL_CREDS() (perl > notation for constants) works?Hmm, that turns out to be the point. I've checked and it is not in '/usr/local/lib/perl5/5.8.8/mach/Socket.pm'. I think my understanding if when I originally posted the email was wrong as well. I need to set the socket option LOCAL_CREDS and fetch them using recvmsg. Can some one please verify my understanding of this is right?