From 9aad74df94f6a75943d565685f7a882a74dbca3d Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Mon, 23 Jan 2006 14:59:59 +0200 Subject: [PATCH] fixed sin_port assignments in libixp2/socket.c --- libixp2/socket.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libixp2/socket.c b/libixp2/socket.c index 9091c017..2052ec39 100644 --- a/libixp2/socket.c +++ b/libixp2/socket.c @@ -47,10 +47,11 @@ connect_tcp_sock(char *host) struct hostent *hp; char *port = strrchr(host, '!'); const char *errstr = nil; + unsigned int prt; *port = 0; port++; - addr.sin_port = cext_strtonum(port, 1024, 65535, &errstr); + prt = cext_strtonum(port, 1024, 65535, &errstr); if(errstr) return -1; @@ -59,6 +60,7 @@ connect_tcp_sock(char *host) return -1; hp = gethostbyname(host); addr.sin_family = AF_INET; + addr.sin_port = htons(prt); bcopy(hp->h_addr, &addr.sin_addr, hp->h_length); if(connect(fd, (struct sockaddr *) &addr, sizeof(struct sockaddr_in))) { @@ -104,6 +106,7 @@ create_tcp_sock(char *host, char **errstr) int fd; struct sockaddr_in addr = { 0 }; char *port = strrchr(host, '!'); + unsigned int prt; if(!port) { *errstr = "no port provided in address"; @@ -111,7 +114,7 @@ create_tcp_sock(char *host, char **errstr) } *port = 0; port++; - addr.sin_port = cext_strtonum(port, 1024, 65535, (const char **)errstr); + prt = cext_strtonum(port, 1024, 65535, (const char **)errstr); if(*errstr) return -1; signal(SIGPIPE, SIG_IGN); @@ -120,7 +123,8 @@ create_tcp_sock(char *host, char **errstr) return -1; } addr.sin_family = AF_INET; - addr.sin_addr.s_addr = INADDR_ANY; + addr.sin_addr.s_addr = htonl(INADDR_ANY); + addr.sin_port = htons(prt); if(bind(fd, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)) < 0) { *errstr = "cannot bind socket";