X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lib-src%2Fgnuslib.c;h=8951b265e8d7c5a45c4a4327c9ccf04ef0971bfc;hb=56b909659fac72d38daf133576b31e40b25cc789;hp=f0226e69818e6be2e052513af5110d5af65f565c;hpb=40402600969429d5253e62c6314a3eebbb21f027;p=chise%2Fxemacs-chise.git.1 diff --git a/lib-src/gnuslib.c b/lib-src/gnuslib.c index f0226e6..8951b26 100644 --- a/lib-src/gnuslib.c +++ b/lib-src/gnuslib.c @@ -320,6 +320,8 @@ connect_to_internet_server (char *serverhost, unsigned short port) struct sockaddr_in peeraddr_in; /* for peer socket address */ char buf[512]; /* temporary buffer */ + int t; + /* clear out address structures */ memset((char *)&peeraddr_in,0,sizeof(struct sockaddr_in)); @@ -327,10 +329,12 @@ connect_to_internet_server (char *serverhost, unsigned short port) peeraddr_in.sin_family = AF_INET; /* look up the server host's internet address */ - if ((peeraddr_in.sin_addr.s_addr = internet_addr(serverhost)) == -1) { + if ((t = internet_addr(serverhost)) == -1) { fprintf(stderr,"%s: unable to find %s in /etc/hosts or from YP\n", progname,serverhost); exit(1); + } else { + peeraddr_in.sin_addr.s_addr = t; }; /* if */ if (port == 0) { @@ -407,13 +411,11 @@ disconnect_from_server (int s, int echo) send_string(s,EOT_STR); /* make sure server gets string */ -#if !defined (linux) && !defined (_SCO_DS) +#if !defined (_SCO_DS) /* - * shutdown is completely hozed under linux. If s is a unix domain socket, - * you'll get EOPNOTSUPP back from it. If s is an internet socket, you get - * a broken pipe when you try to read a bit later. The latter - * problem is fixed for linux versions >= 1.1.46, but the problem - * with unix sockets persists. Sigh. + * There used to be a comment here complaining about ancient Linux + * versions. It is no longer relevant. I don't know why _SCO_DS is + * verboten here, as the original comment did not say. */ if (shutdown(s,1) == -1) { @@ -432,7 +434,7 @@ disconnect_from_server (int s, int echo) #else while ((length = read(s,buffer,GSERV_BUFSZ)) > 0 || (length == -1 && errno == EINTR)) { - if (length) { + if (length > 0) { buffer[length] = '\0'; if (echo) { fputs(buffer,stdout);