Ignore:
Timestamp:
01/16/19 15:12:25 (2 years ago)
Author:
Jacob Van Walraven <jcv9@…>
Branches:
develop
Children:
66ffac4
Parents:
d51e5d0
Message:

Add config option TRACE_OPTION_DISCARD_META

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_pcapng.c

    ref5ba20 rd4eed70  
    136136        bool started;
    137137        bool realtime;
     138        bool discard_meta;
    138139
    139140        /* Section data */
     
    655656        DATA(libtrace)->started = false;
    656657        DATA(libtrace)->realtime = false;
     658        DATA(libtrace)->discard_meta = false;
    657659        DATA(libtrace)->byteswapped = true;
    658660        DATA(libtrace)->interfaces = (pcapng_interface_t **)calloc(10, \
     
    715717                case TRACE_OPTION_CONSTANT_ERF_FRAMING:
    716718                        break;
     719                case TRACE_OPTION_DISCARD_META:
     720                        if (*(int *)data > 0) {
     721                                DATA(libtrace)->discard_meta = true;
     722                        } else {
     723                                DATA(libtrace)->discard_meta = false;
     724                        }
     725                        return 0;
    717726        }
    718727
     
    17161725                        /* Section Header */
    17171726                        case PCAPNG_SECTION_TYPE:
    1718                                 err = pcapng_read_section(libtrace, packet, flags);
    1719                                 gotpacket = 1;
     1727                                /* Section header is required to make pcapng valid
     1728                                 * so we cannot exclude when option discard_meta is set */
     1729                                err = pcapng_read_section(libtrace, packet, flags);
     1730                                gotpacket = 1;
     1731
    17201732                                break;
    17211733
    17221734                        /* Interface Header */
    17231735                        case PCAPNG_INTERFACE_TYPE:
     1736                                /* Section interface is required to make pcapng valid
     1737                                 * so we cannot exclude when option discard_meta is set */
    17241738                                err = pcapng_read_interface(libtrace, packet, to_read, flags);
    17251739                                gotpacket = 1;
     
    17391753
    17401754                        case PCAPNG_INTERFACE_STATS_TYPE:
    1741                                 err = pcapng_read_stats(libtrace, packet, to_read, flags);
    1742                                 gotpacket = 1;
     1755                                /* If discard_meta is set ignore this packet type */
     1756                                if (!DATA(libtrace)->discard_meta) {
     1757                                        err = pcapng_read_stats(libtrace, packet, to_read, flags);
     1758                                        gotpacket = 1;
     1759                                }
    17431760                                break;
    17441761
    17451762                        case PCAPNG_NAME_RESOLUTION_TYPE:
    1746                                 err = pcapng_read_nrb(libtrace, packet, to_read, flags);
    1747                                 gotpacket = 1;
     1763                                /* If discard meta is set ignore this packet type */
     1764                                if (!DATA(libtrace)->discard_meta) {
     1765                                        err = pcapng_read_nrb(libtrace, packet, to_read, flags);
     1766                                        gotpacket = 1;
     1767                                }
    17481768                                break;
    17491769
    17501770                        case PCAPNG_CUSTOM_TYPE:
    17511771                        case PCAPNG_CUSTOM_NONCOPY_TYPE:
    1752                                 err = pcapng_read_custom(libtrace, packet, to_read, flags);
    1753                                 gotpacket = 1;
     1772                                /* If discard meta is set ignore this packet type */
     1773                                if (!DATA(libtrace)->discard_meta) {
     1774                                        err = pcapng_read_custom(libtrace, packet, to_read, flags);
     1775                                        gotpacket = 1;
     1776                                }
    17541777                                break;
    17551778
Note: See TracChangeset for help on using the changeset viewer.