--- jk_connect.c.orig	Fri Mar 18 09:15:30 2005
+++ jk_connect.c	Fri Apr 01 03:46:02 2005
@@ -45,6 +45,12 @@
 #define JK_GET_SOCKET_ERRNO() ((void)0)
 #endif /* WIN32 */
 
+#if defined(NETWARE) && !defined(__NOVELL_LIBC__)
+typedef char* SET_TYPE;
+#else
+typedef const char* SET_TYPE;
+#endif
+
 static int soblock(int sd)
 {
 /* BeOS uses setsockopt at present for non blocking... */
@@ -263,7 +269,11 @@
 
         /* XXX : WARNING : We should really use gethostbyname_r in multi-threaded env */
         /* Fortunatly when APR is available, ie under Apache 2.0, we use it */
+#if defined(NETWARE) && !defined(__NOVELL_LIBC__)
+        struct hostent *hoste = gethostbyname((char*)host);
+#else
         struct hostent *hoste = gethostbyname(host);
+#endif
         if (!hoste) {
             return JK_FALSE;
         }
@@ -305,7 +315,7 @@
         return -1;
     }
     /* Disable Nagle algorithm */
-    if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (const char *)&set,
+    if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (SET_TYPE)&set,
                    sizeof(set))) {
         jk_log(l, JK_LOG_ERROR,
                 "failed setting TCP_NODELAY with errno=%d", errno);
@@ -318,7 +328,7 @@
                "socket TCP_NODELAY set to On");
     if (keepalive) {
         set = 1;
-        if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (const char *)&set,
+        if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (SET_TYPE)&set,
                        sizeof(set))) {
             jk_log(l, JK_LOG_ERROR,
                    "failed setting SO_KEEPALIVE with errno=%d", errno);
@@ -334,7 +344,7 @@
     if (sock_buf > 0) {
         set = sock_buf;
         /* Set socket send buffer size */
-        if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (const char *)&set,
+        if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (SET_TYPE)&set,
                         sizeof(set))) {
             JK_GET_SOCKET_ERRNO();
             jk_log(l, JK_LOG_ERROR,
@@ -345,7 +355,7 @@
         }
         set = sock_buf;
         /* Set socket receive buffer size */
-        if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (const char *)&set,
+        if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (SET_TYPE)&set,
                                 sizeof(set))) {
             JK_GET_SOCKET_ERRNO();
             jk_log(l, JK_LOG_ERROR,
@@ -400,7 +410,7 @@
 #ifdef SO_LINGER
     /* Make hard closesocket by disabling lingering */
     li.l_linger = li.l_onoff = 0;
-    if (setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char *)&li,
+    if (setsockopt(sock, SOL_SOCKET, SO_LINGER, (SET_TYPE)&li,
                    sizeof(li))) {
         JK_GET_SOCKET_ERRNO();
         jk_log(l, JK_LOG_ERROR,
