Cross Reference: portname.c
xref
: /
illumos-gate
/
usr
/
src
/
cmd
/
ipf
/
lib
/
common
/
portname.c
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
portname.c revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* Copyright (C) 1993-2001 by Darren Reed.
*
* See the IPFILTER.LICENCE file for details on licencing.
*
* $Id:
portname.c
,v 1.6 2002/01/28 06:50:47 darrenr Exp $
*/
#
include
"
ipf.h
"
char
*
portname
(
pr
,
port
)
int
pr
,
port
;
{
static
char
buf
[
32
];
struct
protoent
*p =
NULL
;
struct
servent
*
sv
=
NULL
, *
sv1
=
NULL
;
if
(
pr
== -
1
) {
if
((
sv
=
getservbyport
(
htons
(
port
),
"tcp"
))) {
strncpy
(
buf
,
sv
->
s_name
,
sizeof
(
buf
)-
1
);
buf
[
sizeof
(
buf
)-
1
] =
'\0'
;
sv1
=
getservbyport
(
htons
(
port
),
"udp"
);
sv
=
strncasecmp
(
buf
,
sv
->
s_name
,
strlen
(
buf
)) ?
NULL
:
sv1
;
}
if
(
sv
)
return
buf
;
}
else
if
((
pr
!= -
2
) && (p =
getprotobynumber
(
pr
))) {
if
((
sv
=
getservbyport
(
htons
(
port
), p->
p_name
))) {
strncpy
(
buf
,
sv
->
s_name
,
sizeof
(
buf
)-
1
);
buf
[
sizeof
(
buf
)-
1
] =
'\0'
;
return
buf
;
}
}
(
void
)
sprintf
(
buf
,
"%d"
,
port
);
return
buf
;
}