From 839441e236764996425fe768e9497b1f914cea3e Mon Sep 17 00:00:00 2001
From: Dan Fandrich <dan@coneharvesters.com>
Date: Wed, 16 Aug 2006 18:48:27 +0000
Subject: [PATCH] Minor portability fixes to get things running on UNICOS 9.0
 on a Cray Y-MP

---
 docs/INSTALL |  1 +
 lib/hostip.c | 10 ++++++----
 lib/if2ip.c  |  2 +-
 src/main.c   |  5 ++++-
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/docs/INSTALL b/docs/INSTALL
index ed69db4525..06e4991c12 100644
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -684,6 +684,7 @@ PORTS
         - StrongARM/ARM7/ARM9 Linux 2.4, 2.6
         - StrongARM NetBSD 1.4.1
         - Ultrix 4.3a
+        - UNICOS 9.0
         - i386 BeOS
         - i386 DOS
         - i386 eCos 1.3.1
diff --git a/lib/hostip.c b/lib/hostip.c
index a216130619..fc2513cc2c 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -409,10 +409,12 @@ int Curl_resolv(struct connectdata *conn,
 #ifdef HAVE_SIGSETJMP
   /* this allows us to time-out from the name resolver, as the timeout
      will generate a signal and we will siglongjmp() from that here */
-  if(!data->set.no_signal && sigsetjmp(curl_jmpenv, 1)) {
-    /* this is coming from a siglongjmp() */
-    failf(data, "name lookup timed out");
-    return CURLRESOLV_ERROR;
+  if(!data->set.no_signal) {
+    if (sigsetjmp(curl_jmpenv, 1)) {
+      /* this is coming from a siglongjmp() */
+      failf(data, "name lookup timed out");
+      return CURLRESOLV_ERROR;
+    }
   }
 #endif
 
diff --git a/lib/if2ip.c b/lib/if2ip.c
index f3d31bc1db..fadf514740 100644
--- a/lib/if2ip.c
+++ b/lib/if2ip.c
@@ -114,7 +114,7 @@ char *Curl_if2ip(const char *interface, char *buf, int buf_size)
       struct in_addr in;
 
       struct sockaddr_in *s = (struct sockaddr_in *)&req.ifr_dstaddr;
-      memcpy(&in, &(s->sin_addr.s_addr), sizeof(in));
+      memcpy(&in, &s->sin_addr, sizeof(in));
       ip = (char *) Curl_inet_ntop(s->sin_family, &in, buf, buf_size);
     }
     sclose(dummy);
diff --git a/src/main.c b/src/main.c
index dd6920d5c7..f0d2fd4ee8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1180,9 +1180,12 @@ static int str2offset(curl_off_t *val, char *str)
    * definitions for LLONG_{MIN,MAX} or LONG_LONG_{MIN,MAX}.
    */
 #ifndef LLONG_MAX
-#ifdef _MSC_VER
+#if defined(_MSC_VER)
 #define LLONG_MAX (curl_off_t)0x7FFFFFFFFFFFFFFFi64
 #define LLONG_MIN (curl_off_t)0x8000000000000000i64
+#elif defined(_CRAYC)
+#define LLONG_MAX (curl_off_t)0x7FFFFFFFFFFFFFFF
+#define LLONG_MIN (curl_off_t)0x8000000000000000
 #else
 #define LLONG_MAX (curl_off_t)0x7FFFFFFFFFFFFFFFLL
 #define LLONG_MIN (curl_off_t)0x8000000000000000LL
-- 
GitLab