"getopt()" doesn't support multiple option arguments to a flag; have
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 1 Aug 2001 03:22:15 +0000 (03:22 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 1 Aug 2001 03:22:15 +0000 (03:22 +0000)
"-u" take a single argument with two port numbers separated by a comma.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3802 f5534014-38df-0310-8fa8-9805f1628bb7

doc/text2pcap.pod
text2pcap.c

index 280da4880aabc10f3f0990e36d932009150cee45..372af834a2aa40a5b7ebcf60445421188ab8d063 100644 (file)
@@ -6,13 +6,13 @@ text2pcap - Generate a capture file from an ASCII hexdump of packets
 =head1 SYNOPSYS
 
 B<text2pcap>
-S<[ B<-d> ]> 
-S<[ B<-q> ]> 
-S<[ B<-o> hex|oct ]> 
-S<[ B<-l> typenum ]> 
-S<[ B<-e> l3pid ]> 
-S<[ B<-i> proto]> 
-S<[ B<-u> srcport destport]> 
+S<[ B<-d> ]>
+S<[ B<-q> ]>
+S<[ B<-o> hex|oct ]>
+S<[ B<-l> typenum ]>
+S<[ B<-e> l3pid ]>
+S<[ B<-i> proto ]>
+S<[ B<-u> srcport,destport ]>
 I<infile>
 I<outfile>
 
@@ -123,14 +123,14 @@ an IP header. Note that this automatically includes an appropriate
 Ethernet header as well. Example: I<-i 46> to specify an RSVP packet
 (IP protocol 46).
 
-=item -u srcport destport
+=item -u srcport,destport
 
 Include dummy UDP headers before each packet. Specify the source and
 destination UDP ports for the packet in decimal. Use this option if
 your dump is the UDP payload of a packet but does not include any UDP,
 IP or Ethernet headers. Note that this automatically includes
 appropriate Ethernet and IP headers with each packet. Example: I<-u
-1000 69> to make the packets look like TFTP/UDP packets.
+1000,69> to make the packets look like TFTP/UDP packets.
 
 
 =head1 SEE ALSO
index dd089a39b3a27874371a2b03bf0e04623d662f73..d7608282105165bf841a71ac86910c31bcaec17b 100644 (file)
@@ -6,7 +6,7 @@
  *
  * (c) Copyright 2001 Ashok Narayanan <ashokn@cisco.com>
  *
- * $Id: text2pcap.c,v 1.3 2001/07/13 00:55:52 guy Exp $
+ * $Id: text2pcap.c,v 1.4 2001/08/01 03:22:14 guy Exp $
  * 
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -603,6 +603,7 @@ static void
 parse_options (int argc, char *argv[])
 {
     int c;
+    char *p;
 
     /* Scan CLI parameters */
     while ((c = getopt(argc, argv, "dqr:w:e:i:l:o:u:")) != -1) {
@@ -642,11 +643,19 @@ parse_options (int argc, char *argv[])
             
         case 'u':
             hdr_udp = TRUE;
-            if (!optarg || sscanf(optarg, "%ld", &hdr_udp_src) < 1) {
+            hdr_udp_src = strtol(optarg, &p, 10);
+            if (p == optarg || (*p != ',' && *p != '\0')) {
                 fprintf(stderr, "Bad src port for '-u'\n");
                 help(argv[0]);
             }
-            if (optind >= argc || sscanf(argv[optind], "%ld", &hdr_udp_dest) < 1) {
+            if (*p == '\0') {
+                fprintf(stderr, "No dest port specified for '-u'\n");
+                help(argv[0]);
+            }
+            p++;
+            optarg = p;
+            hdr_udp_dest = strtol(optarg, &p, 10);
+            if (p == optarg || *p != '\0') {
                 fprintf(stderr, "Bad dest port for '-u'\n");
                 help(argv[0]);
             }