Date: Tue, 6 Feb 2001 06:32:14 -0500 (EST) From: bill <billt@what.ifelse.org> To: <freebsd-questions@freebsd.org> Subject: getsockname + getnameinfo = garbage Message-ID: <Pine.BSF.4.31.0102060603370.29920-100000@zaius.poa>
next in thread | raw e-mail | index | archive | help
Hello,
I'm using xawtv-3.30 on freebsd and it uses this function to get the name
of the server and the client:
/* me */
length =3D sizeof(ss);
if (-1 =3D=3D getsockname(fd,(struct sockaddr*)&ss,&length)) {
perror("getsockname");
return;
}
if (debug)
fprintf(stderr,"*");
getnameinfo((struct sockaddr*)&ss,length,
me,INET6_ADDRSTRLEN,port,16,
NI_NUMERICHOST | NI_NUMERICSERV);
if (debug)
fprintf(stderr,"*");
for variables 'me' and 'peer'. it then compares 'me' and 'peer' to check
if the X server is local. This check always fails because it seems that
these functions return this garbage:
This is xawtv-3.30, running on FreeBSD/i386 (4.2-STABLE)
[...]
check if the X-Server is local ... **** ok
x11 socket: me=3D8=90=04=08(S=08=01, server=3D=9A`=07(=9F=A1=04=08=A8=C3,(
I get xawtv to work by ensuring that the results of this check don't
matter. In the man page for getsockname(2), the BUGS section mentions:
Names bound to sockets in the UNIX domain are inaccessible;
getsockname returns a zero length name.
Being a C beginner, I am curious if this is what could be causing the
garbage, and if so is there a way to work around it? I have seen
this happen on another, completely different freebsd box, but it doesn't
happen on Linux.
Thanks for any info,
Bill
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.31.0102060603370.29920-100000>
