Strange getservbyname behaviour
Tuninetto, Paolo
Paolo.Tuninetto@hp.com
Thu Nov 28 07:45:00 GMT 2002
Hi, I was trying to compile the ftpd from GNU inteutils and I found that when I try to run ftpd -D (daemon mode) it opens a connection on the 5376 port instead of the default 21.
Looking at the rource and it seems that there is a problem with the getservbyname function call that ftpd is using.
This is a simple test program. Afaik it should reply with PORT: 21 but the reply I get is PORT: 5376 (5376 = 21*256)
I get the same strange behaviour using any other servise/protocol (defined in my /etc/services) and also using the getservbyport function...
#include <stdio.h>
#include <netdb.h>
int main() {
struct servent *s;
s = getservbyname("ftp","tcp");
if (s == NULL)
printf("NULL!\n");
else
printf("PORT: %d\n", s->s_port);
}
Thanks in advance,
Paolo
More information about the Libc-alpha
mailing list