ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Short: xerq: new request ERQ_INET6_ATON
From: mai94cch@studserv.uni-leipzig.de
Date: Wed, 5 Jan 2000 19:24:12 +0100 (MEZ)
To: Lars Duening <lars@bearnip.com>


Hallo,

ich hab mal in der erq/xerq eine neue Funktion eingebaut:

ERQ_INET6_ATON : liefert die addresse eines rechners in der
                 network-byte order.

Ich weis nicht, ob das teil ueberhaupt gebraucht wird, wenn ja wuerde
ich noch

ERQ_INET6_NTOA : liefert die ip eines rechners als string machen.

Wenns nicht gebraucht wird schmeiss den patch auf den muell :-)
                
MfG
Uwe

------------
diff -r -u ldmud-164:0/INSTALL ldmud-164/INSTALL
--- ldmud-164:0/INSTALL	Sat Nov 27 17:31:04 1999
+++ ldmud-164/INSTALL	Wed Jan  5 09:11:25 2000
@@ -93,7 +93,7 @@
   Furthermore you need a connection to the 6bone
   (<URL:http://www.join.uni-muenster.de/>).
 
-  Newer versions of AIX also come with IPv6 support.
+  IPv6 support is also availible for aix 4.3, solaris 8, bsd, HPUX 11 and Windows NT.
 
 
 BeOS
diff -r -u ldmud-164:0/src/util/erq/erq.c ldmud-164/src/util/erq/erq.c
--- ldmud-164:0/src/util/erq/erq.c	Wed Nov 17 21:02:02 1999
+++ ldmud-164/src/util/erq/erq.c	Wed Jan  5 11:54:15 2000
@@ -2367,8 +2367,8 @@
                     strcat(mbuff, "invalid-format");
                     msglen = strlen(mbuff) + 1;
                 }
-                write_32(header, msglen + 9);
-                write1(header, 9);
+                write_32(header, msglen + 8);
+                write1(header, 8);
                 write1(mbuff, msglen);
                 free(mbuff);
                 if (!i)
@@ -2376,6 +2376,28 @@
                 break;
               }
 #endif /* ERQ_RLOOKUPV6 */
+
+#ifdef ERQ_INET6_ATON
+            case ERQ_INET6_ATON:
+              {
+		struct hostent *sh;
+
+                /* handle stays in header[4..7] */
+                header[8] = CHILD_FREE;
+                buf[msglen] = 0;
+
+		sh = gethostbyname2(buf, AF_INET6);
+		if(!sh) gethostbyname2(buf, AF_INET);
+
+		msglen = strlen(buf) + (sh ? sh->h_length : strlen("not-found")+1) + 1;
+                write_32(header, msglen + 8);
+                write1(header, 8);
+                write1(buf, strlen(buf));
+                write1(" ", 1);
+		write1(sh ? sh->h_addr_list[0] : "not-found", sh ? sh->h_length : strlen("not-found")+1);
+		endhostent();
+              }
+#endif /* ERQ_INET6_ATON */
 
             } /* switch() */
         } /* if (num_ready > 0 && FD_ISSET(1, &readfds)) */
diff -r -u ldmud-164:0/src/util/erq/erq.h ldmud-164/src/util/erq/erq.h
--- ldmud-164:0/src/util/erq/erq.h	Tue Oct 12 15:56:30 1999
+++ ldmud-164/src/util/erq/erq.h	Wed Jan  5 10:47:19 2000
@@ -19,7 +19,8 @@
 #define ERQ_LOOKUP     11  /* Lookup name -> ip */
 
 #ifdef __IPV6__
-#define ERQ_RLOOKUPV6  12  /* Lookup name/ip6 */
+#define ERQ_RLOOKUPV6  12  /* Lookup ip -> name */
+#define ERQ_INET6_ATON 13  /* Lookup name/ip -> network-byte-order */
 #endif
 
 
diff -r -u ldmud-164:0/src/util/xerq/defs.h ldmud-164/src/util/xerq/defs.h
--- ldmud-164:0/src/util/xerq/defs.h	Wed Nov 17 15:12:56 1999
+++ ldmud-164/src/util/xerq/defs.h	Wed Jan  5 11:51:16 2000
@@ -221,6 +221,7 @@
 extern void erq_lookup(char *, int);
 #ifdef USE_IPV6
 extern void erq_rlookupv6(char *, int);
+extern void erq_inet6_aton(char *, int);
 #endif
 
 extern void close_socket(socket_t *);
diff -r -u ldmud-164:0/src/util/xerq/erq.h ldmud-164/src/util/xerq/erq.h
--- ldmud-164:0/src/util/xerq/erq.h	Tue Oct 12 15:56:34 1999
+++ ldmud-164/src/util/xerq/erq.h	Wed Jan  5 10:55:12 2000
@@ -19,7 +19,8 @@
 #define ERQ_LOOKUP     11  /* Lookup name -> ip */
 
 #ifdef __IPV6__
-#define ERQ_RLOOKUPV6  12  /* Lookup name/ip6 */
+#define ERQ_RLOOKUPV6  12  /* Lookup ip -> name */
+#define ERQ_INET6_ATON 13  /* Lookup name/ip -> network-byte-order */
 #endif
 
 
diff -r -u ldmud-164:0/src/util/xerq/lookup.c ldmud-164/src/util/xerq/lookup.c
--- ldmud-164:0/src/util/xerq/lookup.c	Wed Nov 17 21:42:06 1999
+++ ldmud-164/src/util/xerq/lookup.c	Wed Jan  5 11:53:45 2000
@@ -90,9 +90,6 @@
 void
 erq_rlookupv6(char *mesg, int msglen)
 
-/* ERQ_RLOOKUPV6: look up an IPv6 address by a hostname.
- */
-
 {
     int i;
     char *mbuff, *buf;
@@ -146,6 +143,36 @@
 
     free(buf);
 } /* erq_rlookupv6() */
+
+/*-------------------------------------------------------------------------*/
+
+
+void
+erq_inet6_aton(char *mesg, int msglen)
+{
+	static char *msg_nomem = "out-of-memory";
+	struct hostent *sh;
+	char *mbuff;
+
+	sh = gethostbyname2(mesg, AF_INET6);
+	if(!sh) gethostbyname2(mesg, AF_INET);
+
+	mesg[msglen] = 0;
+	msglen = strlen(mesg) + (sh ? sh->h_length : strlen("not-found")+1) + 1;
+	mbuff = malloc(msglen);
+	if(!mbuff)
+	{
+		reply1(get_handle(mesg), msg_nomem, strlen(msg_nomem)+1);
+		return;
+	}
+	strcpy(mbuff, mesg);
+	strcat(mbuff, " ");
+	if(sh) memcpy(mbuff+strlen(mbuff), sh->h_addr_list[0], sh->h_length);
+	else strcat(mbuff, "not-found");
+	reply1(get_handle(mesg), mbuff, msglen);
+	free(mbuff);
+	endhostent();
+}
 
 #endif /* USE_IPV6 */
 
------------