From mboxrd@z Thu Jan 1 00:00:00 1970 From: Per Jessen Subject: possible patch regarding problems parsing /etc/protocols Date: Sat, 26 Oct 2002 11:26:44 +0200 Sender: linux-diald-owner@vger.kernel.org Message-ID: <200210261126.44206.per@computer.org> Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="------------Boundary-00=_KW0LFEW9WZG832Y6GPHL" Return-path: List-Id: To: linux-diald@vger.kernel.org --------------Boundary-00=_KW0LFEW9WZG832Y6GPHL Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable All, I'm sure there is a reason why utils.c isn't using the getservent/getprot= oent services from netdb.h -=20 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 wit= h comments in either file. At least it works on Linux.=20 http://mitglied.lycos.de/pjessen/patches/patch-diald-1.0-utils --=20 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. --------------Boundary-00=_KW0LFEW9WZG832Y6GPHL Content-Type: text/x-diff; charset="us-ascii"; name="patch-diald-1.0-utils" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="patch-diald-1.0-utils" --- 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 +#include /* 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, --------------Boundary-00=_KW0LFEW9WZG832Y6GPHL--