Changeset 24892


Ignore:
Timestamp:
2011-01-03T17:37:07+01:00 (7 years ago)
Author:
acoul
Message:

package/wprobe: {enhancement} make printing attributes optional. A delay interval (-d option) of 0 (zero) dumps the data once then exit. (closes #8107)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/wprobe/src/user/wprobe-util.c

    r18854 r24892  
    107107                        if (first) { 
    108108                                fprintf(stdout, 
    109                                         (simple_mode ?  
     109                                        (simple_mode ? 
    110110                                         "[%02x:%02x:%02x:%02x:%02x:%02x]\n%s=%s\n" : 
    111111                                         "%02x:%02x:%02x:%02x:%02x:%02x: %s=%s\n"), 
     
    143143{ 
    144144        fprintf(stderr, 
    145 #ifndef NO_LOCAL_ACCESS  
     145#ifndef NO_LOCAL_ACCESS 
    146146                "Usage: %s <interface>|<host>:<device>|-P [options]\n" 
    147147#else 
     
    150150                "\n" 
    151151                "Options:\n" 
     152                "  -a:            Print attributes\n" 
    152153                "  -c:            Only apply configuration\n" 
    153154                "  -d:            Delay between measurement dumps (in milliseconds, default: 1000)\n" 
     155                "                 A value of 0 (zero) prints once and exits; useful for scripts\n" 
    154156                "  -f:            Dump contents of layer 2 filter counters during measurement\n" 
    155157                "  -F <file>:     Apply layer 2 filters from <file>\n" 
     
    158160                "  -m:            Run measurement loop\n" 
    159161                "  -p:            Set the TCP port for server/client (default: 17990)\n" 
    160 #ifndef NO_LOCAL_ACCESS  
     162#ifndef NO_LOCAL_ACCESS 
    161163                "  -P:            Run in proxy mode (listen on network)\n" 
    162164#endif 
     
    206208static void loop_measurement(struct wprobe_iface *dev, bool print_filters, unsigned long delay) 
    207209{ 
    208         while (1) { 
    209                 usleep(delay * 1000); 
     210        do { 
    210211                wprobe_update_links(dev); 
    211212                wprobe_dump_data(dev); 
    212213                if (print_filters) 
    213214                        wprobe_dump_filters(dev, simple_mode ? show_filter_simple : show_filter, NULL); 
    214         } 
     215                usleep(delay * 1000); 
     216        } 
     217        while (delay); 
    215218} 
    216219 
     
    343346        } cmd = CMD_NONE; 
    344347        const char *filter = NULL; 
     348        bool print_attributes = false; 
    345349        bool print_filters = false; 
    346350        unsigned long delay = 1000; 
     
    351355                return usage(prog); 
    352356 
    353 #ifndef NO_LOCAL_ACCESS  
     357#ifndef NO_LOCAL_ACCESS 
    354358        if (!strcmp(argv[1], "-P")) { 
    355359                while ((ch = getopt(argc - 1, argv + 1, "p:")) != -1) { 
     
    374378        argc--; 
    375379 
    376         while ((ch = getopt(argc, argv, "cd:fF:hi:msp:")) != -1) { 
     380        while ((ch = getopt(argc, argv, "acd:fF:hi:msp:")) != -1) { 
    377381                switch(ch) { 
     382                case 'a': 
     383                        print_attributes = true; 
     384                        break; 
    378385                case 'c': 
    379386                        cmd = CMD_CONFIG; 
     
    431438        } 
    432439 
    433         if (cmd != CMD_CONFIG) 
    434                 show_attributes(dev); 
     440        if (cmd != CMD_CONFIG) { 
     441                if (print_attributes) 
     442                        show_attributes(dev); 
     443        } 
    435444        if (cmd == CMD_MEASURE) 
    436445                loop_measurement(dev, print_filters, delay); 
Note: See TracChangeset for help on using the changeset viewer.