UnixOperatingSystem.st
changeset 7171 e8eac6f03c77
parent 7170 19558aa463e0
child 7175 e3bba0479a52
--- a/UnixOperatingSystem.st	Thu Apr 03 14:48:50 2003 +0200
+++ b/UnixOperatingSystem.st	Fri Apr 04 14:20:58 2003 +0200
@@ -599,6 +599,16 @@
 # undef AF_INET6
 #endif
 
+#ifdef WANT__AF_APPLETALK
+# ifdef AF_APPLETALK
+#  ifndef PF_APPLETALK
+#   define PF_APPLETALK AF_APPLETALK
+#  endif
+# endif
+#else
+# undef AF_APPLETALK
+#endif
+
 #ifdef WANT__AF_DECnet
 # ifdef AF_DECnet
 #  ifndef PF_DECnet
@@ -609,14 +619,14 @@
 # undef AF_DECnet
 #endif
 
-#ifdef WANT__AF_APPLETALK
-# ifdef AF_APPLETALK
-#  ifndef PF_APPLETALK
-#   define PF_APPLETALK AF_APPLETALK
+#ifdef WANT__AF_IRDA /* infrared */
+# ifdef AF_IRDA
+#  ifndef PF_IRDA
+#   define PF_IRDA AF_IRDA
 #  endif
 # endif
 #else
-# undef AF_APPLETALK
+# undef AF_IRDA
 #endif
 
 #ifdef WANT__AF_X25     /* X.25 */
@@ -779,15 +789,6 @@
 # undef AF_VOICEVIEW
 #endif
 
-#ifdef WANT__AF_IRDA /* infrared */
-# ifdef AF_IRDA
-#  ifndef PF_IRDA
-#   define PF_IRDA AF_IRDA
-#  endif
-# endif
-#else
-# undef AF_IRDA
-#endif
 
 
 /*
@@ -841,11 +842,11 @@
 # endif
 #endif
 
-#ifdef AF_DECNET
+#ifdef AF_DECnet
 # ifdef solaris2_0
 #  include <X11/dni8.h>
 # else
-#  undef AF_DECNET
+#  undef AF_DECnet
 # endif
 #endif
 
@@ -954,7 +955,7 @@
 #ifdef AF_APPLETALK
 	struct sockaddr_at at;
 #endif
-#ifdef AF_DECNET
+#ifdef AF_DECnet
 	struct sockaddr_dn dn;
 #endif
 #ifdef AF_X25
@@ -10946,6 +10947,10 @@
      else if (aSymbolOrInteger == @symbol(appletalk))
 	code = AF_APPLETALK;
 #endif
+#ifdef AF_DECnet
+     else if (aSymbolOrInteger == @symbol(decnet))
+	code = AF_DECnet;
+#endif
 
      if (code > 0)
 	 domainCode = __MKSMALLINT(code);
@@ -10989,6 +10994,11 @@
 	    domainSymbol = @symbol(appletalk);
 	    break;
 #endif
+#ifdef AF_DECnet
+	case AF_DECnet:
+	    domainSymbol = @symbol(decnet);
+	    break;
+#endif
 	}
     }
 %}.
@@ -11118,6 +11128,10 @@
      else if (aSymbol == @symbol(appletalk))
 	size = sizeof(struct sockaddr_at);
 #endif
+#ifdef AF_DECnet
+     else if (aSymbol == @symbol(decnet))
+	size = sizeof(struct sockaddr_dn);
+#endif
 
      if (size > 0)
 	 socketSize = __MKSMALLINT(size);
@@ -11555,21 +11569,22 @@
         if (hp == 0) {
             switch (h_errno) {
             case HOST_NOT_FOUND:
-                error = @symbol(unknownHost);
+                errorString = @symbol(unknownHost);
                 break;
             case NO_ADDRESS:
-                error = @symbol(noAddress);
+                errorString = @symbol(noAddress);
                 break;
             case NO_RECOVERY:
-                error = @symbol(permanentFailure);
+                errorString = @symbol(permanentFailure);
                 break;
             case TRY_AGAIN:
-                error = @symbol(tryAgain);
+                errorString = @symbol(tryAgain);
                 break;
             default:
-                error = @symbol(unknownError);
+                errorString = @symbol(unknownError);
+                break;
             }
-            errorString = __MKSTRING(hstrerror(h_errno));
+            error = __mkSmallInteger(h_errno);
             goto err;
         } 
 #  else /* !USE_H_ERRNO */
@@ -11789,73 +11804,76 @@
         goto err;
     } 
 # else /* ! NI_NUMERICHOST */
-    /*
-     * Do it using gethostbyaddr()
-     */
-
-    struct sockaddr_in *sa;
-    if (__byteArraySize(socketAddress) < sizeof(*sa)) {
-        error = @symbol(badArgument1);
-        goto err;
-    }
-    sa = (struct sockaddr_in *)__byteArrayVal(socketAddress);
-    
-    if (sp) {
-        struct servent *servp;
-        char *__proto = 0;
-
-        __proto = (useDatagram == true ? "udp" : "tcp");
-
-        servp = getservbyport(sa->sin_port, __proto);
-        if (servp) {
-            sp = servp->s_name;
-        }
-    }
-    if (hp) {
-        struct hostent *hostp;
-#  ifdef USE_H_ERRNO
-        do {
-            /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
-             * uses a static data area
-             */
-            hostp = gethostbyaddr((char *)&sa->sin_addr, sizeof(sa->sin_addr), AF_INET);
-        } while ((hp == NULL) 
-                  && ((h_errno == TRY_AGAIN)
-                      || errno == EINTR
-#   ifdef IRIX5_3
-                      || (errno == ECONNREFUSED)
-#   endif
-                     )
-        );
-        if (hp == 0) {
-            switch (h_errno) {
-            case HOST_NOT_FOUND:
-                error = @symbol(unknownHost);
-                break;
-            case NO_ADDRESS:
-                error = @symbol(noAddress);
-                break;
-            case NO_RECOVERY:
-                error = @symbol(permanentFailure);
-                break;
-            case TRY_AGAIN:
-                error = @symbol(tryAgain);
-                break;
-            default:
-                error = @symbol(unknownError);
-            }
-            errorString = __MKSTRING(hstrerror(h_errno));
-            goto err;
-        } 
-#  else /* !USE_H_ERRNO */
-        hostp = gethostbyaddr(sa->sin_addr, sizeof(sa->sin_addr), AF_INET);
-        if (hostp == 0) {
-            errorString = @symbol(unknownHost);
-            error = __mkSmallInteger(-1);
+    {
+        /*
+         * Do it using gethostbyaddr()
+         */
+        struct sockaddr_in *sa;
+
+        if (__byteArraySize(socketAddress) < sizeof(*sa)) {
+            error = @symbol(badArgument1);
             goto err;
         }
+        sa = (struct sockaddr_in *)__byteArrayVal(socketAddress);
+    
+        if (sp) {
+            struct servent *servp;
+            char *__proto = 0;
+
+            __proto = (useDatagram == true ? "udp" : "tcp");
+
+            servp = getservbyport(sa->sin_port, __proto);
+            if (servp) {
+                sp = servp->s_name;
+            }
+        }
+        if (hp) {
+            struct hostent *hostp;
+#  ifdef USE_H_ERRNO
+            do {
+                /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
+                 * uses a static data area
+                 */
+                hostp = gethostbyaddr((char *)&sa->sin_addr, sizeof(sa->sin_addr), AF_INET);
+            } while ((hp == NULL) 
+                      && ((h_errno == TRY_AGAIN)
+                          || errno == EINTR
+#   ifdef IRIX5_3
+                          || (errno == ECONNREFUSED)
+#   endif
+                         )
+            );
+            if (hp == 0) {
+                switch (h_errno) {
+                case HOST_NOT_FOUND:
+                    errorString = @symbol(unknownHost);
+                    break;
+                case NO_ADDRESS:
+                    errorString = @symbol(noAddress);
+                    break;
+                case NO_RECOVERY:
+                    errorString = @symbol(permanentFailure);
+                    break;
+                case TRY_AGAIN:
+                    errorString = @symbol(tryAgain);
+                    break;
+                default:
+                    errorString = @symbol(unknownError);
+		    break;
+                }
+                error = __mkSmallInteger(h_errno);
+                goto err;
+            } 
+#  else /* !USE_H_ERRNO */
+            hostp = gethostbyaddr(sa->sin_addr, sizeof(sa->sin_addr), AF_INET);
+            if (hostp == 0) {
+                errorString = @symbol(unknownHost);
+                error = __mkSmallInteger(-1);
+                goto err;
+            }
 #  endif /* !USE_H_ERRNO*/
-        hp = hostp->h_name;
+            hp = hostp->h_name;
+        }
     }
 # endif /* ! NI_NUMERICHOST */
 
@@ -12744,7 +12762,7 @@
 !UnixOperatingSystem class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.153 2003-04-03 12:48:50 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UnixOperatingSystem.st,v 1.154 2003-04-04 12:20:58 cg Exp $'
 ! !
 
 UnixOperatingSystem initialize!