From: Vlad Y. <vla...@hp...> - 2008-08-22 17:15:04
|
Vlad Yasevich wrote: > Florian Niederbacher wrote: >> Hi, >> is there a failure in my code that I get always a segmentation fault >> when i try to get all local addresses with sctp_getladdrs() without a >> doing a bind before? Normally it should end up with a return of the >> value 0 in addr_count. If a bind() is done in the programm works fine >> and prints out all local IP addresses. But I need also the case when no >> local address is bound. >> > > It's a bug in lksctp-tools. Thanks for finding it. Never mind. It's already been fixed. You need to use 1.0.8 version of lksctp tools to get this fix. -vlad > > -vlad > >> source: >> >> #include <arpa/inet.h> >> #include <sys/types.h> >> #include <stdio.h> >> #include <stdlib.h> >> #include <string.h> >> #include <netinet/sctp.h> >> >> int main(int argc,char *argv[]) >> { >> struct sockaddr_in addr; >> int addr_size = sizeof(struct sockaddr_in); >> struct sockaddr *bound_addresses; >> int sock; >> int addr_count=0; >> int i=0; >> >> /* create socket */ >> if ( (sock = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP)) < 0) { >> perror("socket()"); >> exit(1); >> } >> >> /* create server address structure*/ >> memset(&addr,0,sizeof(addr)); >> addr.sin_family = AF_INET; >> addr.sin_addr.s_addr = INADDR_ANY; >> addr.sin_port = 8765; >> >> /* >> if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) != 0) { >> perror("bind()"); >> exit(1); >> } >> */ >> >> addr_count = sctp_getladdrs(sock, 0, &bound_addresses); >> printf("addr_count: %d\n",addr_count); >> >> if(addr_count > 0){ >> for (i = 0; i < addr_count; i++) { >> memcpy(&addr, bound_addresses+i, addr_size); >> printf("addr %s, port %d\n",inet_ntoa(addr.sin_addr), >> addr.sin_port); >> } >> } >> sctp_freeladdrs(bound_addresses); >> return 0; >> } >> >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge >> Build the coolest Linux based applications with Moblin SDK & win great prizes >> Grand prize is a trip for two to an Open Source event anywhere in the world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> Lksctp-developers mailing list >> Lks...@li... >> https://lists.sourceforge.net/lists/listinfo/lksctp-developers >> > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Lksctp-developers mailing list > Lks...@li... > https://lists.sourceforge.net/lists/listinfo/lksctp-developers > |