Changeset 1246
- Timestamp:
- 07/20/07 15:26:04 (6 years ago)
- Location:
- trunk/lib
- Files:
-
- 8 edited
-
format_dag24.c (modified) (1 diff)
-
format_dag25.c (modified) (1 diff)
-
format_erf.c (modified) (10 diffs)
-
format_linux.c (modified) (1 diff)
-
format_pcap.c (modified) (2 diffs)
-
format_pcapfile.c (modified) (5 diffs)
-
libtrace.h.in (modified) (1 diff)
-
trace.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/format_dag24.c
r1195 r1246 137 137 void *data) { 138 138 switch(option) { 139 case TRACE_ META_FREQ:139 case TRACE_OPTION_META_FREQ: 140 140 DUCK.duck_freq = *(int *)data; 141 141 return 0; -
trunk/lib/format_dag25.c
r1195 r1246 112 112 void *data) { 113 113 switch(option) { 114 case TRACE_ META_FREQ:114 case TRACE_OPTION_META_FREQ: 115 115 DUCK.duck_freq = *(int *)data; 116 116 return 0; -
trunk/lib/format_erf.c
r1244 r1246 65 65 66 66 #define INPUT DATA(libtrace)->input 67 #define IN_OPTIONS DATA(libtrace)->options 67 68 #define OUTPUT DATAOUT(libtrace)->output 68 #define O PTIONS DATAOUT(libtrace)->options69 #define OUT_OPTIONS DATAOUT(libtrace)->options 69 70 struct erf_format_data_t { 70 71 … … 74 75 } input; 75 76 77 76 78 struct { 77 79 enum { INDEX_UNKNOWN=0, INDEX_NONE, INDEX_EXISTS } exists; … … 80 82 } seek; 81 83 84 struct { 85 int real_time; 86 } options; 82 87 }; 83 88 … … 142 147 143 148 INPUT.file = 0; 144 149 IN_OPTIONS.real_time = 0; 150 145 151 return 0; /* success */ 152 } 153 154 static int erf_config_input(libtrace_t *libtrace, trace_option_t option, 155 void *value) { 156 157 switch (option) { 158 case TRACE_OPTION_EVENT_REALTIME: 159 IN_OPTIONS.real_time = *(int *)value; 160 return 0; 161 default: 162 /* Unknown option */ 163 trace_set_err(libtrace,TRACE_ERR_UNKNOWN_OPTION, 164 "Unknown option"); 165 return -1; 166 } 146 167 } 147 168 … … 267 288 libtrace->format_data = malloc(sizeof(struct erf_format_data_out_t)); 268 289 269 O PTIONS.erf.level = 0;270 O PTIONS.erf.fileflag = O_CREAT | O_WRONLY;290 OUT_OPTIONS.erf.level = 0; 291 OUT_OPTIONS.erf.fileflag = O_CREAT | O_WRONLY; 271 292 OUTPUT.file = 0; 272 293 … … 279 300 switch (option) { 280 301 case TRACE_OPTION_OUTPUT_COMPRESS: 281 O PTIONS.erf.level = *(int*)value;302 OUT_OPTIONS.erf.level = *(int*)value; 282 303 return 0; 283 304 case TRACE_OPTION_OUTPUT_FILEFLAGS: 284 O PTIONS.erf.fileflag = *(int*)value;305 OUT_OPTIONS.erf.fileflag = *(int*)value; 285 306 return 0; 286 307 default: … … 405 426 { 406 427 OUTPUT.file = trace_open_file_out(libtrace, 407 O PTIONS.erf.level,408 O PTIONS.erf.fileflag);428 OUT_OPTIONS.erf.level, 429 OUT_OPTIONS.erf.fileflag); 409 430 if (!OUTPUT.file) { 410 431 return -1; … … 578 599 erfptr->rlen = htons(size + erf_get_framing_length(packet)); 579 600 return trace_get_capture_length(packet); 601 } 602 603 static struct libtrace_eventobj_t erf_event(struct libtrace_t *libtrace, struct libtrace_packet_t *packet) { 604 struct libtrace_eventobj_t event = {0,0,0.0,0}; 605 606 if (IN_OPTIONS.real_time) { 607 event.size = erf_read_packet(libtrace, packet); 608 if (event.size < 1) 609 event.type = TRACE_EVENT_TERMINATE; 610 else 611 event.type = TRACE_EVENT_PACKET; 612 return event; 613 614 } else { 615 return trace_event_trace(libtrace, packet); 616 } 617 580 618 } 581 619 … … 609 647 TRACE_FORMAT_ERF, 610 648 erf_init_input, /* init_input */ 611 NULL,/* config_input */649 erf_config_input, /* config_input */ 612 650 erf_start_input, /* start_input */ 613 651 NULL, /* pause_input */ … … 634 672 erf_set_capture_length, /* set_capture_length */ 635 673 NULL, /* get_fd */ 636 trace_event_trace,/* trace_event */674 erf_event, /* trace_event */ 637 675 erf_help, /* help */ 638 676 NULL /* next pointer */ -
trunk/lib/format_linux.c
r1195 r1246 212 212 */ 213 213 break; 214 case TRACE_ META_FREQ:214 case TRACE_OPTION_META_FREQ: 215 215 /* No meta-data for this format */ 216 break; 217 case TRACE_OPTION_EVENT_REALTIME: 216 218 break; 217 219 /* Avoid default: so that future options will cause a warning -
trunk/lib/format_pcap.c
r1179 r1246 130 130 case TRACE_OPTION_PROMISC: 131 131 /* can't do promisc on a trace! fall thru */ 132 case TRACE_ META_FREQ:132 case TRACE_OPTION_META_FREQ: 133 133 /* No meta data for this format */ 134 134 default: … … 189 189 DATA(libtrace)->promisc=*(int*)data; 190 190 return 0; 191 case TRACE_ META_FREQ:191 case TRACE_OPTION_META_FREQ: 192 192 /* No meta-data for this format */ 193 193 default: -
trunk/lib/format_pcapfile.c
r1208 r1246 45 45 #define DATA(x) ((struct pcapfile_format_data_t*)((x)->format_data)) 46 46 #define DATAOUT(x) ((struct pcapfile_format_data_out_t*)((x)->format_data)) 47 #define IN_OPTIONS DATA(libtrace)->options 47 48 48 49 typedef struct pcapfile_header_t { … … 58 59 struct pcapfile_format_data_t { 59 60 libtrace_io_t *file; 61 struct { 62 int real_time; 63 } options; 60 64 pcapfile_header_t header; 61 65 }; … … 77 81 78 82 DATA(libtrace)->file=NULL; 79 83 IN_OPTIONS.real_time = 0; 80 84 return 0; 81 85 } … … 163 167 static int pcapfile_config_input(libtrace_t *libtrace, 164 168 trace_option_t option, 165 void *data UNUSED) 166 { 169 void *data) 170 { 171 switch(option) { 172 case TRACE_OPTION_EVENT_REALTIME: 173 IN_OPTIONS.real_time = *(int *)data; 174 return 0; 175 case TRACE_OPTION_META_FREQ: 176 case TRACE_OPTION_SNAPLEN: 177 case TRACE_OPTION_PROMISC: 178 case TRACE_OPTION_FILTER: 179 /* all these are either unsupported or handled 180 * by trace_config */ 181 break; 182 } 183 167 184 trace_set_err(libtrace,TRACE_ERR_UNKNOWN_OPTION, 168 185 "Unknown option %i", option); … … 460 477 pcapptr->caplen = swapl(packet->trace,(uint32_t)size); 461 478 return trace_get_capture_length(packet); 479 } 480 481 static struct libtrace_eventobj_t pcapfile_event(libtrace_t *libtrace, libtrace_packet_t *packet) { 482 483 libtrace_eventobj_t event = {0,0,0.0,0}; 484 485 if (IN_OPTIONS.real_time) { 486 event.size = pcapfile_read_packet(libtrace, packet); 487 if (event.size < 1) 488 event.type = TRACE_EVENT_TERMINATE; 489 else 490 event.type = TRACE_EVENT_PACKET; 491 return event; 492 } else { 493 return trace_event_trace(libtrace, packet); 494 } 462 495 } 463 496 -
trunk/lib/libtrace.h.in
r1245 r1246 745 745 /** Valid trace capture options */ 746 746 typedef enum { 747 TRACE_OPTION_SNAPLEN, /**< Number of bytes captured */ 748 TRACE_OPTION_PROMISC, /**< Capture packets to other hosts */ 749 TRACE_OPTION_FILTER, /**< Apply this filter to all packets recieved */ 750 TRACE_META_FREQ /**< Frequency of meta-data information, e.g. DUCK packets */ 747 TRACE_OPTION_SNAPLEN, /**< Number of bytes captured */ 748 TRACE_OPTION_PROMISC, /**< Capture packets to other hosts */ 749 TRACE_OPTION_FILTER, /**< Apply this filter to all packets */ 750 TRACE_OPTION_META_FREQ, /**< Frequency of meta-data information, e.g. DUCK packets */ 751 /** trace_event ignores gaps between packets when reading traces off disk */ 752 TRACE_OPTION_EVENT_REALTIME 751 753 } trace_option_t; 752 754 -
trunk/lib/trace.c
r1242 r1246 561 561 } 562 562 return -1; 563 case TRACE_ META_FREQ:563 case TRACE_OPTION_META_FREQ: 564 564 if (!trace_is_err(libtrace)) { 565 565 trace_set_err(libtrace, … … 568 568 } 569 569 return -1; 570 case TRACE_OPTION_EVENT_REALTIME: 571 if (!trace_is_err(libtrace)) { 572 trace_set_err(libtrace, 573 TRACE_ERR_OPTION_UNAVAIL, 574 "This format does not support meta-data gathering"); 575 } 576 return -1; 577 570 578 } 571 579 if (!trace_is_err(libtrace)) {
Note: See TracChangeset
for help on using the changeset viewer.
