XEmacs 21.4.21.
[chise/xemacs-chise.git.1] / lib-src / gnuslib.c
index f0226e6..8951b26 100644 (file)
@@ -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);