25 lines
736 B
Diff
25 lines
736 B
Diff
|
Index: netcat-openbsd-1.89/netcat.c
|
||
|
===================================================================
|
||
|
--- netcat-openbsd-1.89.orig/netcat.c 2008-01-22 20:39:46.000000000 -0500
|
||
|
+++ netcat-openbsd-1.89/netcat.c 2008-01-22 20:43:36.000000000 -0500
|
||
|
@@ -819,11 +819,18 @@
|
||
|
void
|
||
|
build_ports(char *p)
|
||
|
{
|
||
|
+ struct servent *sv;
|
||
|
char *n, *endp;
|
||
|
int hi, lo, cp;
|
||
|
int x = 0;
|
||
|
|
||
|
- if ((n = strchr(p, '-')) != NULL) {
|
||
|
+ sv = getservbyname(p, uflag ? "udp" : "tcp");
|
||
|
+ if (sv) {
|
||
|
+ portlist[0] = calloc(1, PORT_MAX_LEN);
|
||
|
+ if (portlist[0] == NULL)
|
||
|
+ err(1, NULL);
|
||
|
+ snprintf(portlist[0], PORT_MAX_LEN, "%d", ntohs(sv->s_port));
|
||
|
+ } else if ((n = strchr(p, '-')) != NULL) {
|
||
|
if (lflag)
|
||
|
errx(1, "Cannot use -l with multiple ports!");
|
||
|
|