/* For terms of usage/redistribution/modification see the LICENSE file */
/* For authors and contributors see the AUTHORS file */
/***
servname.c - lookup module for TCP and UDP service names based on
port numbers
***/
#include "iptraf-ng-compat.h"
#include "options.h"
void servlook(in_port_t port, unsigned int protocol, char *target, int maxlen)
{
static struct servent *sve;
memset(target, 0, maxlen + 1);
if (options.servnames) {
if (protocol == IPPROTO_TCP)
sve = getservbyport(htons(port), "tcp");
else
sve = getservbyport(htons(port), "udp");
if (sve != NULL) {
strncpy(target, sve->s_name, maxlen);
} else {
sprintf(target, "%u", port);
}
} else {
sprintf(target, "%u", port);
}
}