Changeset 0af3a4e


Ignore:
Timestamp:
01/24/19 15:35:35 (20 months ago)
Author:
Jacob Van Walraven <jcv9@…>
Branches:
develop
Children:
0cc91ee
Parents:
5299c55
Message:

ERF can contain multiple occurances of the same section per meta packet, make sure we capture all of them

Location:
lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    r254c926 r0af3a4e  
    956956                case (ERF_PROV_LOC_NAME): return "Capture Location";
    957957                case (ERF_PROV_FLOW_HASH_MODE): return "Flow Hash Mode";
     958                case (ERF_PROV_FILTER): return "Filter";
    958959                case (ERF_PROV_TUNNELING_MODE): return "Tunneling Mode";
     960                case (ERF_PROV_ROTFILE_NAME): return "Rotfile Name";
    959961                case (ERF_PROV_LOC_DESCR): return "Location Description";
    960962                case (ERF_PROV_MEM): return "Stream Buffer Memory";
     
    10201022                case (ERF_PROV_MODULE_NUM): return TRACE_META_UINT32;
    10211023                case (ERF_PROV_LOC_NAME): return TRACE_META_STRING;
     1024                case (ERF_PROV_FILTER): return TRACE_META_STRING;
    10221025                case (ERF_PROV_FLOW_HASH_MODE): return TRACE_META_UINT32;
    10231026                case (ERF_PROV_TUNNELING_MODE): return TRACE_META_UINT32;
     1027                case (ERF_PROV_ROTFILE_NAME): return TRACE_META_STRING;
    10241028                case (ERF_PROV_LOC_DESCR): return TRACE_META_STRING;
    10251029                case (ERF_PROV_MEM): return TRACE_META_UINT64;
     
    10811085        uint16_t remaining;
    10821086        uint16_t curr_sec = 0;
    1083         int in_section = 0;
    10841087
    10851088        if (packet->buffer == NULL) { return NULL; }
     
    10981101        result->num = 0;
    10991102
    1100         while (remaining > sizeof(dag_sec_t) && curr_sec != 0xFFFF) {
     1103        while (remaining > sizeof(dag_sec_t)) {
    11011104
    11021105                /* Get the current section/option header */
     
    11081111                        || ntohs(sec->type) == ERF_PROV_SECTION_INTERFACE) {
    11091112
    1110                         if (in_section == 0) {
    1111                                 curr_sec = ntohs(sec->type);
    1112                         } else {
    1113                                 /* Used to indicate section end */
    1114                                 curr_sec = 0xFFFF;
    1115                         }
     1113                        curr_sec = ntohs(sec->type);
    11161114                }
    11171115
     
    11231121                        && ntohs(sec->type) != ERF_PROV_SECTION_MODULE
    11241122                        && ntohs(sec->type) != ERF_PROV_SECTION_INTERFACE) {
    1125 
    1126                         /* Indicate a section has been found */
    1127                         in_section = 1;
    11281123
    11291124                        result->num += 1;
     
    11701165                                                ptr+sizeof(struct dag_opthdr), ntohs(sec->len));
    11711166                                }
    1172 
    11731167                        }
    1174 
    11751168                }
    11761169
     
    11851178        }
    11861179
    1187         /* If the result structure has result matches were found */
     1180        /* If the result num > 0 matches were found */
    11881181        if (result->num > 0) {
    11891182                return (void *)result;
  • lib/format_erf.h

    r254c926 r0af3a4e  
    5252#define ERF_PROV_MODULE_NUM 31
    5353#define ERF_PROV_LOC_NAME 34
     54#define ERF_PROV_FILTER 36
    5455#define ERF_PROV_FLOW_HASH_MODE 37
    5556#define ERF_PROV_TUNNELING_MODE 38
     57#define ERF_PROV_ROTFILE_NAME 43
    5658#define ERF_PROV_LOC_DESCR 46
    5759#define ERF_PROV_APP_VERSION 47
Note: See TracChangeset for help on using the changeset viewer.