--- inetd/inetd.c~ 2004-04-19 13:02:08.000000000 +0200 +++ inetd/inetd.c 2004-04-19 13:09:52.000000000 +0200 @@ -723,7 +723,8 @@ struct passwd *pwd; FILE * fconfig; SIGSTATUS sigstatus; - + int port; + size_t line = 0; fconfig = setconfig (file); @@ -787,7 +788,24 @@ sep->se_fd = -1; continue; } - sp = getservbyname (sep->se_service, sep->se_proto); + port = strtol(sep->se_service, NULL, 10); + if (port > 0) + { + sp = malloc(sizeof(struct servent)); + if (!sp) + { + syslog (LOG_ERR, strerror (errno)); + continue; + } + asprintf(&(sp->s_name), "%d", port); + sp->s_aliases = NULL; + sp->s_port = htons(port); + sp->s_proto = strdup(sep->se_proto); + } + else + { + sp = getservbyname (sep->se_service, sep->se_proto); + } if (sp == 0) { syslog (LOG_ERR, "%s/%s: unknown service",