- Timestamp:
- 11/24/10 10:34:17 (12 years ago)
- 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:
- 08c56ac
- Parents:
- 5f329ab
- Location:
- lib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/libtrace.h.in
r15749d5 rc259635 501 501 } PACKED libtrace_ip6_ext_t; 502 502 503 typedef struct libtrace_ip6_frag 504 { 505 uint8_t nxt; /**< Next header */ 506 uint8_t res; /**< Reserved */ 507 uint16_t frag_off; /**< Fragment Offset (includes M flag) */ 508 uint32_t ident; /** Fragment identification */ 509 } PACKED libtrace_ip6_frag_t; 510 503 511 /** Generic IPv6 header structure 504 512 * -
lib/protocols_l3.c
r4bbe9bd rc259635 141 141 void *payload = (char*)ipptr+sizeof(libtrace_ip6_t); 142 142 uint8_t nxt; 143 uint16_t len; 143 144 144 145 assert (ipptr != NULL); … … 156 157 case 0: /* hop by hop options */ 157 158 case TRACE_IPPROTO_ROUTING: 158 case TRACE_IPPROTO_FRAGMENT:159 159 case TRACE_IPPROTO_ESP: 160 160 case TRACE_IPPROTO_AH: 161 161 case TRACE_IPPROTO_DSTOPTS: 162 162 { 163 uint16_tlen=((libtrace_ip6_ext_t*)payload)->len163 len=((libtrace_ip6_ext_t*)payload)->len 164 164 +sizeof(libtrace_ip6_ext_t); 165 165 … … 177 177 continue; 178 178 } 179 case TRACE_IPPROTO_FRAGMENT: 180 { 181 len = sizeof(libtrace_ip6_frag_t); 182 if (remaining) { 183 if (*remaining < len) { 184 /* Snap too short */ 185 *remaining = 0; 186 return NULL; 187 } 188 *remaining-=len; 189 } 190 payload=(char*)payload+len; 191 nxt=((libtrace_ip6_frag_t*)payload)->nxt; 192 continue; 193 } 194 179 195 default: 180 196 if (prot) *prot=nxt;
Note: See TracChangeset
for help on using the changeset viewer.