diff options
author | Guy Harris <guy@alum.mit.edu> | 2015-02-24 13:56:16 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2015-02-24 21:56:56 +0000 |
commit | 592ee9e83b5f13597967c26982c93cda5d009882 (patch) | |
tree | 93505577f8848553db321e111526c3539654b94b /wiretap | |
parent | 2a31311f81ac7171fd755424b0ce3f9d9aed2796 (diff) |
Swallow up more V10 stuff into PACKET_DESCRIBE().
That makes it even more like V2x and V3x and slightly less unclear.
Change-Id: I798ead123ba6418be0252067773a951390e26ce8
Reviewed-on: https://code.wireshark.org/review/7353
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap')
-rw-r--r-- | wiretap/netscaler.c | 63 |
1 files changed, 24 insertions, 39 deletions
diff --git a/wiretap/netscaler.c b/wiretap/netscaler.c index 7c97c5fd39..3d9fda82fd 100644 --- a/wiretap/netscaler.c +++ b/wiretap/netscaler.c @@ -900,9 +900,28 @@ static gboolean nstrace_set_start_time(wtap *wth) /* ** Netscaler trace format read routines. */ -#define PACKET_DESCRIBE(phdr) \ - (phdr)->rec_type = REC_TYPE_PACKET;\ - (phdr)->presence_flags = WTAP_HAS_TS; +#define PACKET_DESCRIBE(phdr,FULLPART,fullpart,fpp,type) \ + do {\ + fpp = (nspr_pktrace##fullpart##_v10_t *) &nstrace_buf[nstrace_buf_offset];\ + (phdr)->rec_type = REC_TYPE_PACKET;\ + /*\ + * XXX - we can't do this in the seek-read routine,\ + * as the time stamps in the records are relative to\ + * the previous packet.\ + */\ + (phdr)->presence_flags = WTAP_HAS_TS;\ + nsg_creltime += ns_hrtime2nsec(pletoh32(&fpp->fpp##_RelTimeHr));\ + (phdr)->ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);\ + (phdr)->ts.nsecs = (guint32) (nsg_creltime % 1000000000);\ + TRACE_##FULLPART##_V##type##_REC_LEN_OFF(phdr,v##type##_##fullpart,fpp,pktrace##fullpart##_v##type);\ + ws_buffer_assure_space(wth->frame_buffer, (phdr)->caplen);\ + memcpy(ws_buffer_start_ptr(wth->frame_buffer), fpp, (phdr)->caplen);\ + *data_offset = nstrace->xxx_offset + nstrace_buf_offset;\ + nstrace->nstrace_buf_offset = nstrace_buf_offset + (phdr)->caplen;\ + nstrace->nstrace_buflen = nstrace_buflen;\ + nstrace->nsg_creltime = nsg_creltime;\ + return TRUE;\ + }while(0) static gboolean nstrace_read_v10(wtap *wth, int *err, gchar **err_info, gint64 *data_offset) { @@ -927,47 +946,13 @@ static gboolean nstrace_read_v10(wtap *wth, int *err, gchar **err_info, gint64 * case NSPR_PDPKTRACEFULLTX_V##type:\ case NSPR_PDPKTRACEFULLTXB_V##type:\ case NSPR_PDPKTRACEFULLRX_V##type:\ - fp = (nspr_pktracefull_v10_t *) &nstrace_buf[nstrace_buf_offset];\ - /*\ - * XXX - we can't do this in the seek-read routine,\ - * as the time stamps in the records are relative to\ - * the previous packet.\ - */\ - PACKET_DESCRIBE(phdr);\ - nsg_creltime += ns_hrtime2nsec(pletoh32(&fp->fp_RelTimeHr));\ - (phdr)->ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);\ - (phdr)->ts.nsecs = (guint32) (nsg_creltime % 1000000000);\ - TRACE_FULL_V##type##_REC_LEN_OFF(phdr,v##type##_full,fp,pktracefull_v##type);\ - ws_buffer_assure_space(wth->frame_buffer, (phdr)->caplen);\ - memcpy(ws_buffer_start_ptr(wth->frame_buffer), fp, (phdr)->caplen);\ - *data_offset = nstrace->xxx_offset + nstrace_buf_offset;\ - nstrace->nstrace_buf_offset = nstrace_buf_offset + (phdr)->len;\ - nstrace->nstrace_buflen = nstrace_buflen;\ - nstrace->nsg_creltime = nsg_creltime;\ - return TRUE; + PACKET_DESCRIBE(phdr,FULL,full,fp,type); #define GENERATE_CASE_PART(phdr,type,acttype) \ case NSPR_PDPKTRACEPARTTX_V##type:\ case NSPR_PDPKTRACEPARTTXB_V##type:\ case NSPR_PDPKTRACEPARTRX_V##type:\ - pp = (nspr_pktracepart_v10_t *) &nstrace_buf[nstrace_buf_offset];\ - /*\ - * XXX - we can't do this in the seek-read routine,\ - * as the time stamps in the records are relative to\ - * the previous packet.\ - */\ - PACKET_DESCRIBE(phdr);\ - nsg_creltime += ns_hrtime2nsec(pletoh32(&pp->pp_RelTimeHr));\ - (phdr)->ts.secs = nstrace->nspm_curtime + (guint32) (nsg_creltime / 1000000000);\ - (phdr)->ts.nsecs = (guint32) (nsg_creltime % 1000000000);\ - TRACE_PART_V##type##_REC_LEN_OFF(phdr,v##type##_part,pp,pktracepart_v##type);\ - ws_buffer_assure_space(wth->frame_buffer, (phdr)->caplen);\ - memcpy(ws_buffer_start_ptr(wth->frame_buffer), pp, (phdr)->caplen);\ - *data_offset = nstrace->xxx_offset + nstrace_buf_offset;\ - nstrace->nstrace_buf_offset = nstrace_buf_offset + (phdr)->caplen;\ - nstrace->nsg_creltime = nsg_creltime;\ - nstrace->nstrace_buflen = nstrace_buflen;\ - return TRUE;\ + PACKET_DESCRIBE(phdr,PART,part,pp,type); switch (pletoh16(&(( nspr_header_v10_t*)&nstrace_buf[nstrace_buf_offset])->ph_RecordType)) { |