Is there an IPv6 UDP bug in uclibc?

Johan . tracetrouble at yahoo.se
Sat Oct 22 07:30:13 UTC 2005


I am using uClibc 0.9.28 and have an IPv6 socket
problem. The code below runs fine in a system based on
glibc, but fails in uClibc. As indicated in the code,
it works for TCP but not for an UDP socket. What
happens for the UDP is that when receiving UDP packets
on the address/port nothing shows up on the socket. 

I am using the same kernel (2.4.27) for both
filesystems (uclibc based or glibc based, /etc files
may differ as well), only changing the filesystem
mount, so I believe it must be an uclibc issue. Any
input would be very much appreciated.


		#define MYPORT 8910
		struct sockaddr_in6 sin6;
...
		s = socket(AF_INET6, SOCK_STREAM, 0);  //This works
		//s = socket(AF_INET6, SOCK_DGRAM, 0);  //This does
not work		
		
		memset(&sin6,0, sizeof (sin6));
		sin6.sin6_family = AF_INET6;
		
		if (inet_pton(AF_INET6, "2001::3", 
			&sin6.sin6_addr) <= 0) {
                /* error */
                exit(1);
        }		sin6.sin6_port = htons(MYPORT);
		bind(s, (struct sockaddr *) &sin6, sizeof sin6);





More information about the uClibc mailing list