--- hping3-20051105.orig/parseoptions.c 2010-09-01 11:08:45.000000000 -0400 +++ hping3-20051105/parseoptions.c 2010-09-01 15:28:21.000000000 -0400 @@ -39,34 +39,34 @@ static struct ago_optlist hping_optlist[] = { { 'c', "count", OPT_COUNT, AGO_NEEDARG }, - { 'i', "interval", OPT_INTERVAL, AGO_NEEDARG|AGO_EXCEPT0 }, + { 'i', "interval", OPT_INTERVAL, AGO_NEEDARG }, { 'n', "numeric", OPT_NUMERIC, AGO_NOARG }, { 'q', "quiet", OPT_QUIET, AGO_NOARG }, { 'I', "interface", OPT_INTERFACE, AGO_NEEDARG }, { 'h', "help", OPT_HELP, AGO_NOARG }, { 'v', "version", OPT_VERSION, AGO_NOARG }, - { 'p', "destport", OPT_DESTPORT, AGO_NEEDARG|AGO_EXCEPT0 }, - { 's', "baseport", OPT_BASEPORT, AGO_NEEDARG|AGO_EXCEPT0 }, + { 'p', "destport", OPT_DESTPORT, AGO_NEEDARG }, + { 's', "baseport", OPT_BASEPORT, AGO_NEEDARG }, { 't', "ttl", OPT_TTL, AGO_NEEDARG }, - { 'N', "id", OPT_ID, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'w', "win", OPT_WIN, AGO_NEEDARG|AGO_EXCEPT0 }, + { 'N', "id", OPT_ID, AGO_NEEDARG }, + { 'w', "win", OPT_WIN, AGO_NEEDARG }, { 'a', "spoof", OPT_SPOOF, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'F', "fin", OPT_FIN, AGO_NOARG|AGO_EXCEPT0 }, - { 'S', "syn", OPT_SYN, AGO_NOARG|AGO_EXCEPT0 }, - { 'R', "rst", OPT_RST, AGO_NOARG|AGO_EXCEPT0 }, - { 'P', "push", OPT_PUSH, AGO_NOARG|AGO_EXCEPT0 }, - { 'A', "ack", OPT_ACK, AGO_NOARG|AGO_EXCEPT0 }, - { 'U', "urg", OPT_URG, AGO_NOARG|AGO_EXCEPT0 }, - { 'X', "xmas", OPT_XMAS, AGO_NOARG|AGO_EXCEPT0 }, - { 'Y', "ymas", OPT_YMAS, AGO_NOARG|AGO_EXCEPT0 }, - { 'f', "frag", OPT_FRAG, AGO_NOARG|AGO_EXCEPT0 }, - { 'x', "morefrag", OPT_MOREFRAG, AGO_NOARG|AGO_EXCEPT0 }, + { 'F', "fin", OPT_FIN, AGO_NOARG }, + { 'S', "syn", OPT_SYN, AGO_NOARG }, + { 'R', "rst", OPT_RST, AGO_NOARG }, + { 'P', "push", OPT_PUSH, AGO_NOARG }, + { 'A', "ack", OPT_ACK, AGO_NOARG }, + { 'U', "urg", OPT_URG, AGO_NOARG }, + { 'X', "xmas", OPT_XMAS, AGO_NOARG }, + { 'Y', "ymas", OPT_YMAS, AGO_NOARG }, + { 'f', "frag", OPT_FRAG, AGO_NOARG }, + { 'x', "morefrag", OPT_MOREFRAG, AGO_NOARG }, { 'y', "dontfrag", OPT_DONTFRAG, AGO_NOARG }, - { 'g', "fragoff", OPT_FRAGOFF, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'O', "tcpoff", OPT_TCPOFF, AGO_NEEDARG|AGO_EXCEPT0 }, + { 'g', "fragoff", OPT_FRAGOFF, AGO_NEEDARG }, + { 'O', "tcpoff", OPT_TCPOFF, AGO_NEEDARG }, { 'r', "rel", OPT_REL, AGO_NOARG }, - { 'd', "data", OPT_DATA, AGO_NEEDARG|AGO_EXCEPT0 }, - { '0', "rawip", OPT_RAWIP, AGO_NOARG|AGO_EXCEPT0 }, + { 'd', "data", OPT_DATA, AGO_NEEDARG }, + { '0', "rawip", OPT_RAWIP, AGO_NOARG }, { '1', "icmp", OPT_ICMP, AGO_NOARG }, { '2', "udp", OPT_UDP, AGO_NOARG }, { '8', "scan", OPT_SCAN, AGO_NEEDARG }, @@ -77,34 +77,34 @@ { 'W', "winid", OPT_WINID, AGO_NOARG }, { 'k', "keep", OPT_KEEP, AGO_NOARG }, { 'E', "file", OPT_FILE, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'j', "dump", OPT_DUMP, AGO_NOARG|AGO_EXCEPT0 }, - { 'J', "print", OPT_PRINT, AGO_NOARG|AGO_EXCEPT0 }, + { 'j', "dump", OPT_DUMP, AGO_NOARG }, + { 'J', "print", OPT_PRINT, AGO_NOARG }, { 'e', "sign", OPT_SIGN, AGO_NEEDARG|AGO_EXCEPT0 }, { '9', "listen", OPT_LISTEN, AGO_NEEDARG|AGO_EXCEPT0 }, { 'B', "safe", OPT_SAFE, AGO_NOARG|AGO_EXCEPT0 }, { 'T', "traceroute", OPT_TRACEROUTE, AGO_NOARG }, { 'o', "tos", OPT_TOS, AGO_NEEDARG }, - { 'm', "mtu", OPT_MTU, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'Q', "seqnum", OPT_SEQNUM, AGO_NOARG|AGO_EXCEPT0 }, - { 'b', "badcksum", OPT_BADCKSUM, AGO_NOARG|AGO_EXCEPT0 }, - { 'M', "setseq", OPT_SETSEQ, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'L', "setack", OPT_SETACK, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'C', "icmptype", OPT_ICMPTYPE, AGO_NEEDARG|AGO_EXCEPT0 }, - { 'K', "icmpcode", OPT_ICMPCODE, AGO_NEEDARG|AGO_EXCEPT0 }, + { 'm', "mtu", OPT_MTU, AGO_NEEDARG }, + { 'Q', "seqnum", OPT_SEQNUM, AGO_NOARG }, + { 'b', "badcksum", OPT_BADCKSUM, AGO_NOARG }, + { 'M', "setseq", OPT_SETSEQ, AGO_NEEDARG }, + { 'L', "setack", OPT_SETACK, AGO_NEEDARG }, + { 'C', "icmptype", OPT_ICMPTYPE, AGO_NEEDARG }, + { 'K', "icmpcode", OPT_ICMPCODE, AGO_NEEDARG }, { 'u', "end", OPT_END, AGO_NOARG|AGO_EXCEPT0 }, { 'G', "rroute", OPT_RROUTE, AGO_NOARG }, - { 'H', "ipproto", OPT_IPPROTO, AGO_NEEDARG|AGO_EXCEPT0 }, + { 'H', "ipproto", OPT_IPPROTO, AGO_NEEDARG }, { '\0', "icmp-help", OPT_ICMP_HELP, AGO_NOARG }, - { '\0', "icmp-ipver", OPT_ICMP_IPVER, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-iphlen", OPT_ICMP_IPHLEN, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-iplen", OPT_ICMP_IPLEN, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-ipid", OPT_ICMP_IPID, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-ipproto", OPT_ICMP_IPPROTO, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-cksum", OPT_ICMP_CKSUM, AGO_NEEDARG|AGO_EXCEPT0 }, + { '\0', "icmp-ipver", OPT_ICMP_IPVER, AGO_NEEDARG }, + { '\0', "icmp-iphlen", OPT_ICMP_IPHLEN, AGO_NEEDARG }, + { '\0', "icmp-iplen", OPT_ICMP_IPLEN, AGO_NEEDARG }, + { '\0', "icmp-ipid", OPT_ICMP_IPID, AGO_NEEDARG }, + { '\0', "icmp-ipproto", OPT_ICMP_IPPROTO, AGO_NEEDARG }, + { '\0', "icmp-cksum", OPT_ICMP_CKSUM, AGO_NEEDARG }, { '\0', "icmp-ts", OPT_ICMP_TS, AGO_NOARG }, { '\0', "icmp-addr", OPT_ICMP_ADDR, AGO_NOARG }, { '\0', "tcpexitcode", OPT_TCPEXITCODE, AGO_NOARG }, - { '\0', "fast", OPT_FAST, AGO_NOARG|AGO_EXCEPT0 }, + { '\0', "fast", OPT_FAST, AGO_NOARG }, { '\0', "faster", OPT_FASTER, AGO_NOARG|AGO_EXCEPT0 }, { '\0', "tr-keep-ttl", OPT_TR_KEEP_TTL, AGO_NOARG }, { '\0', "tcp-timestamp",OPT_TCP_TIMESTAMP, AGO_NOARG }, @@ -112,15 +112,15 @@ { '\0', "tr-no-rtt", OPT_TR_NO_RTT, AGO_NOARG }, { '\0', "rand-dest", OPT_RAND_DEST, AGO_NOARG }, { '\0', "rand-source", OPT_RAND_SOURCE, AGO_NOARG }, - { '\0', "lsrr", OPT_LSRR, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "ssrr", OPT_SSRR, AGO_NEEDARG|AGO_EXCEPT0 }, + { '\0', "lsrr", OPT_LSRR, AGO_NEEDARG }, + { '\0', "ssrr", OPT_SSRR, AGO_NEEDARG }, { '\0', "route-help", OPT_ROUTE_HELP, AGO_NOARG }, { '\0', "apd-send", OPT_APD_SEND, AGO_NEEDARG }, - { '\0', "icmp-ipsrc", OPT_ICMP_IPSRC, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-ipdst", OPT_ICMP_IPDST, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-gw", OPT_ICMP_GW, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-srcport", OPT_ICMP_SRCPORT, AGO_NEEDARG|AGO_EXCEPT0 }, - { '\0', "icmp-dstport", OPT_ICMP_DSTPORT, AGO_NEEDARG|AGO_EXCEPT0 }, + { '\0', "icmp-ipsrc", OPT_ICMP_IPSRC, AGO_NEEDARG }, + { '\0', "icmp-ipdst", OPT_ICMP_IPDST, AGO_NEEDARG }, + { '\0', "icmp-gw", OPT_ICMP_GW, AGO_NEEDARG }, + { '\0', "icmp-srcport", OPT_ICMP_SRCPORT, AGO_NEEDARG }, + { '\0', "icmp-dstport", OPT_ICMP_DSTPORT, AGO_NEEDARG }, { '\0', "force-icmp", OPT_FORCE_ICMP, AGO_NOARG }, { '\0', "beep", OPT_BEEP, AGO_NOARG }, { '\0', "flood", OPT_FLOOD, AGO_NOARG },