Changeset 6374f4e for tools


Ignore:
Timestamp:
04/22/10 16:56:46 (11 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
bfe8535
Parents:
71ff20e
Message:
  • tracesplit now accepts a -Z option to specify the compression type
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/tracesplit/tracesplit.c

    ra8f2692 r6374f4e  
    4242        "-v --verbose           Output statistics\n"
    4343        "-z --compress          Set compression level\n"
     44        "-Z --compress-type     Set compression type\n"
    4445        ,argv0);
    4546        exit(1);
     
    7677        int verbose=0;
    7778        int compress_level=-1;
    78        
     79        char *compress_type_str=NULL;
     80        trace_option_compresstype_t compress_type = TRACE_OPTION_COMPRESSTYPE_NONE;
     81
    7982        if (argc<2) {
    8083                usage(argv[0]);
     
    97100                        { "verbose",       0, 0, 'v' },
    98101                        { "compress",      1, 0, 'z' },
     102                        { "compress-type", 1, 0, 'Z' },
    99103                        { NULL,            0, 0, 0   },
    100104                };
    101105
    102                 int c=getopt_long(argc, argv, "f:c:b:s:e:i:m:S:Hvz:",
     106                int c=getopt_long(argc, argv, "f:c:b:s:e:i:m:S:Hvz:Z:",
    103107                                long_options, &option_index);
    104108
     
    137141                                  }
    138142                                  break;
     143                        case 'Z':
     144                                  compress_type_str=optarg;
     145                                  break;       
    139146                        default:
    140147                                fprintf(stderr,"Unknown option: %c\n",c);
     
    142149                                return 1;
    143150                }
     151        }
     152
     153        if (compress_type_str == NULL && compress_level >= 0) {
     154                fprintf(stderr, "Compression level set, but no compression type was defined, setting to gzip\n");
     155                compress_type = TRACE_OPTION_COMPRESSTYPE_ZLIB;
     156        }
     157
     158        else if (compress_type_str == NULL) {
     159                /* If a level or type is not specified, use the "none"
     160                 * compression module */
     161                compress_type = TRACE_OPTION_COMPRESSTYPE_NONE;
     162        }
     163
     164        /* I decided to be fairly generous in what I accept for the
     165         * compression type string */
     166        else if (strncmp(compress_type_str, "gz", 2) == 0 ||
     167                        strncmp(compress_type_str, "zlib", 4) == 0) {
     168                compress_type = TRACE_OPTION_COMPRESSTYPE_ZLIB;
     169        } else if (strncmp(compress_type_str, "bz", 2) == 0) {
     170                compress_type = TRACE_OPTION_COMPRESSTYPE_BZ2;
     171        } else if (strncmp(compress_type_str, "lzo", 3) == 0) {
     172                compress_type = TRACE_OPTION_COMPRESSTYPE_LZO;
     173        } else if (strncmp(compress_type_str, "no", 2) == 0) {
     174                compress_type = TRACE_OPTION_COMPRESSTYPE_NONE;
     175        } else {
     176                fprintf(stderr, "Unknown compression type: %s\n",
     177                        compress_type_str);
     178                return 1;
    144179        }
    145180
     
    174209               
    175210                if (trace_read_packet(input,packet)<1) {
     211                        break;
     212                }
     213
     214                if (trace_get_link_type(packet) == ~0U) {
     215                        fprintf(stderr, "Halted due to being unable to determine linktype - input trace may be corrupt.\n");
    176216                        break;
    177217                }
     
    272312                                        TRACE_OPTION_OUTPUT_COMPRESS,
    273313                                        &compress_level)==-1) {
    274                                         trace_perror_output(output,"Unable to set compression");
     314                                        trace_perror_output(output,"Unable to set compression level");
    275315                                }
    276316                        }
     317
     318                        if (trace_config_output(output,
     319                                TRACE_OPTION_OUTPUT_COMPRESSTYPE,
     320                                &compress_type) == -1) {
     321                                        trace_perror_output(output, "Unable to set compression type");
     322                        }
     323
    277324                        trace_start_output(output);
    278325                        if (trace_is_err_output(output)) {
Note: See TracChangeset for help on using the changeset viewer.