From 765573e95d7bcd0fc75cff136bf75900cf0695f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Fri, 3 Jan 1997 21:06:50 -0800
Subject: [PATCH] connect() now recognizes ip-names starting with numbers

Rev: src/modules/files/file.c:1.20
---
 src/modules/files/file.c | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/src/modules/files/file.c b/src/modules/files/file.c
index 29a575f3de..d7ecfad679 100644
--- a/src/modules/files/file.c
+++ b/src/modules/files/file.c
@@ -6,7 +6,7 @@
 #define READ_BUFFER 16384
 
 #include "global.h"
-RCSID("$Id: file.c,v 1.19 1996/12/15 15:50:37 hubbe Exp $");
+RCSID("$Id: file.c,v 1.20 1997/01/04 05:06:50 hubbe Exp $");
 #include "types.h"
 #include "interpret.h"
 #include "svalue.h"
@@ -1223,6 +1223,27 @@ static void file_connect(INT32 args)
   }
 }
 
+static int isipnr(char *s)
+{
+  int e,i;
+  for(e=0;e<3;e++)
+  {
+    i=0;
+    while(*s==' ') s++;
+    while(*s>='0' && *s<='9') s++,i++;
+    if(!i) return 0;
+    if(*s!='.') return 0;
+    s++;
+  }
+  i=0;
+  while(*s==' ') s++;
+  while(*s>='0' && *s<='9') s++,i++;
+  if(!i) return 0;
+  while(*s==' ') s++;
+  if(*s) return 0;
+  return 1;
+}
+
 void get_inet_addr(struct sockaddr_in *addr,char *name)
 {
   MEMSET((char *)addr,0,sizeof(struct sockaddr_in));
@@ -1232,7 +1253,7 @@ void get_inet_addr(struct sockaddr_in *addr,char *name)
   {
     addr->sin_addr.s_addr=htonl(INADDR_ANY);
   }
-  else if(name[0]>='0' && name[0]<='9')
+  else if(isipnr(name))
   {
     if ((long)inet_addr(name) == (long)-1)
       error("Malformed ip number.\n");
-- 
GitLab