From de9b0555a74c29705f61a56ade38ac4cd8429c02 Mon Sep 17 00:00:00 2001 From: Lennart Buhl Date: Sun, 3 Nov 2013 13:14:25 +0100 Subject: [PATCH] new get_in_addr --- src/net.c | 25 ++++++++++++++----------- src/net.h | 1 - 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/net.c b/src/net.c index 34fe41c..1410406 100644 --- a/src/net.c +++ b/src/net.c @@ -17,16 +17,19 @@ #include "net.h" -// kleiner helfer -// auch von bejee geguttenbergt -// -void *get_in_addr(struct sockaddr *sa) -{ - if (sa->sa_family == AF_INET) { - return &(((struct sockaddr_in*)sa)->sin_addr); +// little helper +static void *get_in_addr(struct sockaddr *sa) { + switch (sa->sa_family) { + case AF_INET: + return &(((struct sockaddr_in*)sa)->sin_addr); + break; + case AF_INET6: + return &(((struct sockaddr_in6*)sa)->sin6_addr); + break; + case AF_UNSPEC: + default: + return NULL; } - - return &(((struct sockaddr_in6*)sa)->sin6_addr); } @@ -46,10 +49,10 @@ int run_server(const struct prog_info *pinfo, char *img, int w, int h) { sprintf(portbuf, "%d", pinfo->port); if ((ret=getaddrinfo("255.255.255.255", portbuf, &hints, &servinfo)) != 0) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(ret)); - return 1; + return 1; } - for(p = servinfo; p != NULL; p = p->ai_next) { + for (p = servinfo; p != NULL; p = p->ai_next) { if ((sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) { perror("talker: socket"); continue; diff --git a/src/net.h b/src/net.h index fc3584b..7a4e9ae 100644 --- a/src/net.h +++ b/src/net.h @@ -6,7 +6,6 @@ #include "msg.h" // message serialization #include "display.h" // callback -void *get_in_addr(struct sockaddr *sa); int run_server(const struct prog_info *pinfo, char *img, int w, int h); int run_client(const struct prog_info *pinfo,void(*framecallback)(const struct message *, const struct prog_info *));