possible patch regarding problems parsing /etc/protocols
Per Jessen <[email protected]>
| Newsgroups | gmane.linux.diald |
|---|---|
| Organization | n/a |
| Message-ID | <[email protected]> |
All, I'm sure there is a reason why utils.c isn't using the getservent/getprotoent services from netdb.h - maybe platform related ? I don't know - but here is a patch that 1) uses those services for accessing /etc/protocols and /etc/services, and thereby fixes the minor problem with comments in either file. At least it works on Linux. http://mitglied.lycos.de/pjessen/patches/patch-diald-1.0-utils -- regards, Per Jessen, Zurich http://www.enidan.com - home of the J1 serial console. Genius may have its limitations, but stupidity is not thus handicapped.
patch-diald-1.0-utils
(text/x-diff, 1 KB)
--- diald-1.0/utils.c Sat Jun 16 21:51:39 2001
+++ diald-1.0.pj/utils.c Sat Oct 26 10:50:57 2002
@@ -2,6 +2,7 @@
#include <diald.h>
+#include <netdb.h>
/* Grumble. Attempt to generate a nicely formatted ascii date without
* a built in newline.
@@ -35,6 +36,35 @@
return i;
}
+int getprotocol(const char *name)
+{
+ struct protoent *p;
+
+ return NULL!=(p=getprotobyname(name)) ? p->p_proto : 0;
+}
+
+char *getprotonumber(int proto)
+{
+ static char buf[16];
+ struct protoent *p;
+
+ if ( NULL!=(p=getprotobynumber(proto)) )
+ strcpy(buf,p->p_name);
+ else
+ sprintf(buf, "%d", proto);
+
+ return buf;
+}
+
+
+int getservice(const char *name, const char *proto)
+{
+ struct servent *service;
+
+ return NULL!=(service=getservbyname( name, proto)) ? ntohs(service->s_port) : 0;
+}
+
+#if 0
struct proto {
char *name;
int proto;
@@ -151,6 +181,7 @@
}
return 0;
}
+#endif
#if 0
/* Stuff needed because to keep checker happy,