From 292e38e2c61edcd14bfa30ca3c72bacda1bcbe32 Mon Sep 17 00:00:00 2001 From: Gilbert Ramirez Date: Thu, 11 May 2000 08:18:09 +0000 Subject: [PATCH] Add tvbuff class. Add exceptions routines. Convert proto_tree_add_*() routines to require tvbuff_t* argument. Convert all dissectors to pass NULL argument ("NullTVB" macro == NULL) as the tvbuff_t* argument to proto_tree_add_*() routines. dissect_packet() creates a tvbuff_t, wraps the next dissect call in a TRY block, will print "Short Frame" on the proto_tree if a BoundsError exception is caught. The FDDI dissector is converted to use tvbuff's. svn path=/trunk/; revision=1939 --- Makefile.am | 9 +- Makefile.nmake | 4 +- except.c | 415 +++++++++ except.h | 149 +++ exceptions.h | 131 +++ packet-aarp.c | 24 +- packet-afs.c | 80 +- packet-arp.c | 86 +- packet-ascend.c | 20 +- packet-atalk.c | 68 +- packet-atm.c | 94 +- packet-auto_rp.c | 32 +- packet-bgp.c | 174 ++-- packet-bootp.c | 132 +-- packet-bootparams.c | 6 +- packet-bpdu.c | 38 +- packet-cdp.c | 96 +- packet-cgmp.c | 14 +- packet-clip.c | 6 +- packet-clnp.c | 362 ++++---- packet-data.c | 4 +- packet-ddtp.c | 44 +- packet-dns.c | 194 ++-- packet-esis.c | 52 +- packet-eth.c | 24 +- packet-ethertype.c | 4 +- packet-fddi.c | 63 +- packet-fddi.h | 5 +- packet-ftp.c | 22 +- packet-giop.c | 78 +- packet-gre.c | 50 +- packet-h1.c | 36 +- packet-hsrp.c | 24 +- packet-http.c | 10 +- packet-icmpv6.c | 96 +- packet-icp.c | 36 +- packet-icq.c | 192 ++-- packet-imap.c | 16 +- packet-ip.c | 170 ++-- packet-ipp.c | 36 +- packet-ipsec.c | 30 +- packet-ipv6.c | 50 +- packet-ipx.c | 88 +- packet-irc.c | 12 +- packet-isakmp.c | 184 ++-- packet-isis-clv.c | 14 +- packet-isis-hello.c | 20 +- packet-isis-lsp.c | 32 +- packet-isis-snp.c | 20 +- packet-isis.c | 22 +- packet-isl.c | 48 +- packet-l2tp.c | 124 +-- packet-lapb.c | 8 +- packet-lapd.c | 16 +- packet-ldap.c | 30 +- packet-llc.c | 20 +- packet-lpd.c | 14 +- packet-mapi.c | 12 +- packet-mount.c | 52 +- packet-mpls.c | 14 +- packet-msproxy.c | 150 +-- packet-nbipx.c | 48 +- packet-nbns.c | 210 ++--- packet-ncp.c | 42 +- packet-netbios.c | 126 +-- packet-nfs.c | 260 +++--- packet-nntp.c | 10 +- packet-ntp.c | 36 +- packet-null.c | 8 +- packet-osi-options.c | 56 +- packet-ospf.c | 228 ++--- packet-pim.c | 82 +- packet-pop.c | 16 +- packet-portmap.c | 50 +- packet-ppp.c | 136 +-- packet-pppoe.c | 34 +- packet-pptp.c | 196 ++-- packet-q2931.c | 234 ++--- packet-q931.c | 264 +++--- packet-radius.c | 20 +- packet-raw.c | 6 +- packet-rip.c | 32 +- packet-ripng.c | 20 +- packet-rlogin.c | 40 +- packet-rpc.c | 100 +- packet-rsvp.c | 468 +++++----- packet-rtcp.c | 62 +- packet-rtp.c | 34 +- packet-rtsp.c | 16 +- packet-rx.c | 36 +- packet-sap.c | 46 +- packet-sdp.c | 10 +- packet-smb-browse.c | 136 +-- packet-smb-common.c | 12 +- packet-smb-common.h | 6 +- packet-smb-logon.c | 28 +- packet-smb-mailslot.c | 14 +- packet-smb-pipe.c | 174 ++-- packet-smb.c | 1480 +++++++++++++++--------------- packet-sna.c | 210 ++--- packet-snmp.c | 60 +- packet-socks.c | 86 +- packet-srvloc.c | 154 ++-- packet-sscop.c | 34 +- packet-tacacs.c | 26 +- packet-tcp.c | 58 +- packet-telnet.c | 44 +- packet-tftp.c | 48 +- packet-time.c | 8 +- packet-tns.c | 38 +- packet-tr.c | 54 +- packet-trmac.c | 86 +- packet-udp.c | 16 +- packet-v120.c | 36 +- packet-vines.c | 38 +- packet-vlan.c | 10 +- packet-vrrp.c | 26 +- packet-vtp.c | 108 +-- packet-wccp.c | 42 +- packet-who.c | 32 +- packet-x25.c | 306 +++--- packet-yhoo.c | 24 +- packet-ypserv.c | 8 +- packet.c | 122 ++- packet.h | 11 +- plugins/gryphon/packet-gryphon.c | 384 ++++---- proto.c | 85 +- proto.h | 88 +- tvbtest.c | 392 ++++++++ tvbuff.c | 824 +++++++++++++++++ tvbuff.h | 230 +++++ xdlc.c | 48 +- 132 files changed, 7398 insertions(+), 5170 deletions(-) create mode 100644 except.c create mode 100644 except.h create mode 100644 exceptions.h create mode 100644 tvbtest.c create mode 100644 tvbuff.c create mode 100644 tvbuff.h diff --git a/Makefile.am b/Makefile.am index 3783bdae6f..e8006b2522 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # Makefile.am # Automake file for Ethereal # -# $Id: Makefile.am,v 1.194 2000/05/11 07:34:31 guy Exp $ +# $Id: Makefile.am,v 1.195 2000/05/11 08:14:47 gram Exp $ # # Ethereal - Network traffic analyzer # By Gerald Combs @@ -248,6 +248,9 @@ ETHEREAL_COMMON_SOURCES = \ dfilter.c \ dfilter.h \ etypes.h \ + except.c \ + except.h \ + exceptions.h \ follow.c \ follow.h \ inet_v6defs.h \ @@ -276,6 +279,8 @@ ETHEREAL_COMMON_SOURCES = \ resolv.h \ smb.h \ timestamp.h \ + tvbuff.c \ + tvbuff.h \ util.c \ util.h \ xdlc.c \ @@ -438,6 +443,8 @@ randpkt.o: randpkt.c randpkt: randpkt.o wiretap/libwiretap.a $(LINK) -o randpkt randpkt.o wiretap/libwiretap.a `glib-config --libs` -lz +tvbtest: tvbtest.o tvbuff.o except.o + DISTCLEANFILES = \ register.c \ rdps \ diff --git a/Makefile.nmake b/Makefile.nmake index 17b999063d..9c9bd606cb 100644 --- a/Makefile.nmake +++ b/Makefile.nmake @@ -1,7 +1,7 @@ ## Makefile for building ethereal.exe with Microsoft C and nmake ## Use: nmake -f makefile.nmake # -# $Id: Makefile.nmake,v 1.36 2000/05/11 07:34:32 guy Exp $ +# $Id: Makefile.nmake,v 1.37 2000/05/11 08:14:48 gram Exp $ include config.nmake @@ -148,6 +148,7 @@ ETHEREAL_COMMON_OBJECTS = \ dfilter-grammar.obj \ dfilter-scanner.obj \ dfilter.obj \ + except.obj \ follow.obj \ getopt.obj \ ipproto.obj \ @@ -160,6 +161,7 @@ ETHEREAL_COMMON_OBJECTS = \ ps.obj \ register.obj \ resolv.obj \ + tvbuff.obj \ util.obj \ xdlc.obj \ diff --git a/except.c b/except.c new file mode 100644 index 0000000000..14440aa107 --- /dev/null +++ b/except.c @@ -0,0 +1,415 @@ +/* + * Portable Exception Handling for ANSI C. + * Copyright (C) 1999 Kaz Kylheku + * + * Free Software License: + * + * All rights are reserved by the author, with the following exceptions: + * Permission is granted to freely reproduce and distribute this software, + * possibly in exchange for a fee, provided that this copyright notice appears + * intact. Permission is also granted to adapt this software to produce + * derivative works, as long as the modified versions carry this copyright + * notice and additional notices stating that the work has been modified. + * This source code may be translated into executable form and incorporated + * into proprietary software; there is no requirement for such software to + * contain a copyright notice related to this source. + * $Id: except.c,v 1.1 2000/05/11 08:14:49 gram Exp $ + * $Name: $ + */ + +#include +#include +#include +#include +#include +#include "except.h" + +#define XCEPT_BUFFER_SIZE 1024 + +#ifdef KAZLIB_RCSID +static const char rcsid[] = "$Id: except.c,v 1.1 2000/05/11 08:14:49 gram Exp $"; +#endif + +#define group except_group +#define code except_code +#define id except_id +#define message except_message +#define dyndata except_dyndata +#define func except_func +#define context except_context +#define id except_id +#define size except_size +#define obj except_obj +#define jmp except_jmp +#define down except_down +#define type except_type +#define catcher except_catcher +#define cleanup except_cleanup +#define info except_info + +#ifdef KAZLIB_POSIX_THREADS + +#include + +static pthread_mutex_t init_mtx = PTHREAD_MUTEX_INITIALIZER; +static int init_counter; +static pthread_key_t top_key; +static pthread_key_t uh_key; +static pthread_key_t alloc_key; +static pthread_key_t dealloc_key; +static void unhandled_catcher(except_t *); + +#define get_top() ((struct except_stacknode *) pthread_getspecific(top_key)) +#define set_top(T) (pthread_setspecific(top_key, (T)), (void)((T) == (struct except_stacknode *) 0)) +#define set_catcher(C) (pthread_setspecific(uh_key, (void *) (C)), (void)((C) == (void (*)(except_t *)) 0)) +#define set_alloc(A) (pthread_setspecific(alloc_key, (void *) (A)), (void)((A) == (void *(*)(size_t)) 0)) +#define set_dealloc(D) (pthread_setspecific(dealloc_key, (void *) (D)), (void)((D) == (void (*)(void *)) 0)) + +static void (*get_catcher(void))(except_t *) +{ + void (*catcher)(except_t *) = (void (*)(except_t *)) pthread_getspecific(uh_key); + return (catcher == 0) ? unhandled_catcher : catcher; +} + +static void *(*get_alloc(void))(size_t) +{ + void *(*alloc)(size_t) = (void *(*)(size_t)) pthread_getspecific(alloc_key); + return (alloc == 0) ? malloc : alloc; +} + +static void (*get_dealloc(void))(void *) +{ + void (*dealloc)(void *) = (void (*)(void *)) pthread_getspecific(dealloc_key); + return (dealloc == 0) ? free : dealloc; +} + +int except_init(void) +{ + int retval = 1; + + pthread_mutex_lock(&init_mtx); + + assert (init_counter < INT_MAX); + + if (init_counter++ == 0) { + int top_ok = (pthread_key_create(&top_key, 0) == 0); + int uh_ok = (pthread_key_create(&uh_key, 0) == 0); + int alloc_ok = (pthread_key_create(&alloc_key, 0) == 0); + int dealloc_ok = (pthread_key_create(&dealloc_key, 0) == 0); + + if (!top_ok || !uh_ok || !alloc_ok || !dealloc_ok) { + retval = 0; + init_counter = 0; + if (top_ok) + pthread_key_delete(top_key); + if (uh_ok) + pthread_key_delete(uh_key); + if (alloc_ok) + pthread_key_delete(alloc_key); + if (dealloc_ok) + pthread_key_delete(dealloc_key); + } + } + + pthread_mutex_unlock(&init_mtx); + + return retval; +} + +void except_deinit(void) +{ + pthread_mutex_lock(&init_mtx); + + assert (init_counter > 0); + + if (--init_counter == 0) { + pthread_key_delete(top_key); + pthread_key_delete(uh_key); + pthread_key_delete(alloc_key); + pthread_key_delete(dealloc_key); + } + + pthread_mutex_unlock(&init_mtx); +} + +#else /* no thread support */ + +static int init_counter; +static void unhandled_catcher(except_t *); +static void (*uh_catcher_ptr)(except_t *) = unhandled_catcher; +static void *(*allocator)(size_t) = malloc; +static void (*deallocator)(void *) = free; +static struct except_stacknode *stack_top; + +#define get_top() (stack_top) +#define set_top(T) (stack_top = (T)) +#define get_catcher() (uh_catcher_ptr) +#define set_catcher(C) (uh_catcher_ptr = (C)) +#define get_alloc() (allocator) +#define set_alloc(A) (allocator = (A)) +#define get_dealloc() (deallocator) +#define set_dealloc(D) (deallocator = (D)) + +int except_init(void) +{ + assert (init_counter < INT_MAX); + init_counter++; + return 1; +} + +void except_deinit(void) +{ + assert (init_counter > 0); + init_counter--; +} + +#endif + + +static int match(const except_id_t *thrown, const except_id_t *caught) +{ + int group_match = (caught->group == XCEPT_GROUP_ANY || caught->group == thrown->group); + int code_match = (caught->code == XCEPT_CODE_ANY || caught->code == thrown->code); + + return group_match && code_match; +} + +static void do_throw(except_t *except) +{ + struct except_stacknode *top; + + assert (except->id.group != 0 && except->id.code != 0); + + for (top = get_top(); top != 0; top = top->down) { + if (top->type == XCEPT_CLEANUP) { + top->info.cleanup->func(top->info.cleanup->context); + } else { + struct except_catch *catcher = top->info.catcher; + const except_id_t *pi = catcher->id; + size_t i; + + assert (top->type == XCEPT_CATCHER); + except_free(catcher->obj.dyndata); + + for (i = 0; i < catcher->size; pi++, i++) { + if (match(&except->id, pi)) { + catcher->obj = *except; + set_top(top); + longjmp(catcher->jmp, 1); + } + } + } + } + + set_top(top); + get_catcher()(except); /* unhandled exception */ + abort(); +} + +static void unhandled_catcher(except_t *except) +{ + fprintf(stderr, "Unhandled exception (\"%s\", group=%ld, code=%ld)\n", + except->message, except->id.group, except->id.code); + abort(); +} + +static void stack_push(struct except_stacknode *node) +{ + node->down = get_top(); + set_top(node); +} + +void except_setup_clean(struct except_stacknode *esn, + struct except_cleanup *ecl, void (*cleanf)(void *), void *context) +{ + esn->type = XCEPT_CLEANUP; + ecl->func = cleanf; + ecl->context = context; + esn->info.cleanup = ecl; + stack_push(esn); +} + +void except_setup_try(struct except_stacknode *esn, + struct except_catch *ech, const except_id_t id[], size_t size) +{ + ech->id = id; + ech->size = size; + ech->obj.dyndata = 0; + esn->type = XCEPT_CATCHER; + esn->info.catcher = ech; + stack_push(esn); +} + +struct except_stacknode *except_pop(void) +{ + struct except_stacknode *top = get_top(); + set_top(top->down); + return top; +} + +void except_rethrow(except_t *except) +{ + struct except_stacknode *top = get_top(); + assert (top != 0); + assert (top->type == XCEPT_CATCHER); + assert (&top->info.catcher->obj == except); + set_top(top->down); + do_throw(except); +} + +void except_throw(long group, long code, const char *msg) +{ + except_t except; + + except.id.group = group; + except.id.code = code; + except.message = msg; + except.dyndata = 0; + + do_throw(&except); +} + +void except_throwd(long group, long code, const char *msg, void *data) +{ + except_t except; + + except.id.group = group; + except.id.code = code; + except.message = msg; + except.dyndata = data; + + do_throw(&except); +} + +void except_throwf(long group, long code, const char *fmt, ...) +{ + char *buf = except_alloc(XCEPT_BUFFER_SIZE); + va_list vl; + + va_start (vl, fmt); + vsprintf(buf, fmt, vl); + va_end (vl); + except_throwd(group, code, buf, buf); +} + +void (*except_unhandled_catcher(void (*new_catcher)(except_t *)))(except_t *) +{ + void (*old_catcher)(except_t *) = get_catcher(); + set_catcher(new_catcher); + return old_catcher; +} + +#undef except_code +#undef except_group +#undef except_message +#undef except_data + +unsigned long except_code(except_t *ex) +{ + return ex->id.code; +} + +unsigned long except_group(except_t *ex) +{ + return ex->id.group; +} + +const char *except_message(except_t *ex) +{ + return ex->message; +} + +void *except_data(except_t *ex) +{ + return ex->dyndata; +} + +void *except_take_data(except_t *ex) +{ + void *data = ex->dyndata; + ex->dyndata = 0; + return data; +} + +void except_set_allocator(void *(*alloc)(size_t), void (*dealloc)(void *)) +{ + set_alloc(alloc); + set_dealloc(dealloc); +} + +void *except_alloc(size_t size) +{ + void *ptr = get_alloc()(size); + + if (ptr == 0) + except_throw(XCEPT_BAD_ALLOC, 0, "out of memory"); + return ptr; +} + +void except_free(void *ptr) +{ + get_dealloc()(ptr); +} + +#ifdef KAZLIB_TEST_MAIN + +#include +#include + +static void cleanup(void *arg) +{ + printf("cleanup(\"%s\") called\n", (char *) arg); +} + +static void bottom_level(void) +{ + char buf[256]; + printf("throw exception? "); fflush(stdout); + fgets(buf, sizeof buf, stdin); + + if (toupper(buf[0]) == 'Y') + except_throw(1, 1, "nasty exception"); +} + +static void top_level(void) +{ + except_cleanup_push(cleanup, "argument"); + bottom_level(); + except_cleanup_pop(0); +} + +int main(int argc, char **argv) +{ + static const except_id_t catch[] = { { 1, 1 }, { 1, 2 } }; + except_t *ex; + + /* + * Nested exception ``try blocks'' + */ + + /* outer */ + except_try_push(catch, 2, &ex); + if (!ex) { + /* inner */ + except_try_push(catch, 2, &ex); + if (!ex) { + top_level(); + } else { + /* inner catch */ + printf("caught exception (inner): \"%s\", s=%ld, c=%ld\n", + except_message(ex), except_group(ex), except_code(ex)); + except_rethrow(ex); + } + except_try_pop(); + } else { + /* outer catch */ + printf("caught exception (outer): \"%s\", s=%ld, c=%ld\n", + except_message(ex), except_group(ex), except_code(ex)); + } + except_try_pop(); + except_throw(99, 99, "exception in main"); + return 0; +} + + +#endif diff --git a/except.h b/except.h new file mode 100644 index 0000000000..f551c9d651 --- /dev/null +++ b/except.h @@ -0,0 +1,149 @@ +/* + * Portable Exception Handling for ANSI C. + * Copyright (C) 1999 Kaz Kylheku + * + * Free Software License: + * + * All rights are reserved by the author, with the following exceptions: + * Permission is granted to freely reproduce and distribute this software, + * possibly in exchange for a fee, provided that this copyright notice appears + * intact. Permission is also granted to adapt this software to produce + * derivative works, as long as the modified versions carry this copyright + * notice and additional notices stating that the work has been modified. + * This source code may be translated into executable form and incorporated + * into proprietary software; there is no requirement for such software to + * contain a copyright notice related to this source. + * + * $Id: except.h,v 1.1 2000/05/11 08:14:49 gram Exp $ + * $Name: $ + */ + +#ifndef XCEPT_H +#define XCEPT_H + +#include +#include +#include + +#define XCEPT_GROUP_ANY 0 +#define XCEPT_CODE_ANY 0 +#define XCEPT_BAD_ALLOC 1 + +#ifdef __cplusplus +extern "C" { +#endif + +enum { except_no_call, except_call }; + +typedef struct { + unsigned long except_group; + unsigned long except_code; +} except_id_t; + +typedef struct { + except_id_t except_id; + const char *except_message; + void *except_dyndata; +} except_t; + +struct except_cleanup { + void (*except_func)(void *); + void *except_context; +}; + +struct except_catch { + const except_id_t *except_id; + size_t except_size; + except_t except_obj; + jmp_buf except_jmp; +}; + +enum except_stacktype { + XCEPT_CLEANUP, XCEPT_CATCHER +}; + +struct except_stacknode { + struct except_stacknode *except_down; + enum except_stacktype except_type; + union { + struct except_catch *except_catcher; + struct except_cleanup *except_cleanup; + } except_info; +}; + +/* private functions made external so they can be used in macros */ +void except_setup_clean(struct except_stacknode *, + struct except_cleanup *, void (*)(void *), void *); +void except_setup_try(struct except_stacknode *, + struct except_catch *, const except_id_t [], size_t); +struct except_stacknode *except_pop(void); + +/* public interface functions */ +int except_init(void); +void except_deinit(void); +void except_rethrow(except_t *); +void except_throw(long, long, const char *); +void except_throwd(long, long, const char *, void *); +void except_throwf(long, long, const char *, ...); +void (*except_unhandled_catcher(void (*)(except_t *)))(except_t *); +unsigned long except_code(except_t *); +unsigned long except_group(except_t *); +const char *except_message(except_t *); +void *except_data(except_t *); +void *except_take_data(except_t *); +void except_set_allocator(void *(*)(size_t), void (*)(void *)); +void *except_alloc(size_t); +void except_free(void *); + +#define except_code(E) ((E)->except_id.except_code) +#define except_group(E) ((E)->except_id.except_group) +#define except_message(E) ((E)->except_message) +#define except_data(E) ((E)->except_dyndata) + +#ifdef __cplusplus +} +#endif + +/* + * void except_cleanup_push(void (*)(void *), void *); + * void except_cleanup_pop(int); + * void except_checked_cleanup_pop(void (*)(void *), int); + * void except_try_push(const except_id_t [], size_t, except_t **); + * void except_try_pop(void); + */ + +#define except_cleanup_push(F, C) \ + { \ + struct except_stacknode except_sn; \ + struct except_cleanup except_cl; \ + except_setup_clean(&except_sn, &except_cl, F, C) + +#define except_cleanup_pop(E) \ + except_pop(); \ + if (E) \ + except_cl.except_func(except_cl.except_context); \ + } + +#define except_checked_cleanup_pop(F, E) \ + except_pop(); \ + assert (except_cl.except_func == (F)); \ + if (E) \ + except_cl.except_func(except_cl.except_context); \ + } + +#define except_try_push(ID, NUM, PPE) \ + { \ + struct except_stacknode except_sn; \ + struct except_catch except_ch; \ + except_setup_try(&except_sn, &except_ch, ID, NUM); \ + if (setjmp(except_ch.except_jmp)) \ + *(PPE) = &except_ch.except_obj; \ + else \ + *(PPE) = 0 + +#define except_try_pop() \ + except_free(except_ch.except_obj.except_dyndata); \ + except_pop(); \ + } + +#endif diff --git a/exceptions.h b/exceptions.h new file mode 100644 index 0000000000..07de983f4d --- /dev/null +++ b/exceptions.h @@ -0,0 +1,131 @@ +#ifndef __EXCEPTIONS_H__ +#define __EXCEPTIONS_H__ + +#ifndef XCEPT_H +#include "except.h" +#endif + +/* Ethereal has only one exception group, to make these macros simple */ +#define XCEPT_GROUP_ETHEREAL 1 + +/* Ethereal's exceptions */ +#define BoundsError 1 /* Index is out of range */ + +/* Usage: + * + * TRY { + * code; + * } + * + * CATCH(exception) { + * code; + * } + * + * CATCH_ALL { + * code; + * } + * + * FINALLY { + * code; + * } + * + * ENDTRY; + * + * ********* Never use 'goto' or 'return' inside the TRY, CATCH, CATCH_ALL, + * ********* or FINALLY blocks. Execution must proceed through ENDTRY before + * ********* branching out. + * + * This is really something like: + * + * { + * x = setjmp() + * if (x == 0) { + * + * } + * else if (x == 1) { + * + * } + * else if (x == 2) { + * + * } + * else { + * { + * } + * + * } + * + * All CATCH's must precede a CATCH_ALL. + * FINALLY must occur after any CATCH or CATCH_ALL. + * ENDTRY marks the end of the TRY code. + * TRY and ENDTRY are the mandatory parts of a TRY block. + * CATCH, CATCH_ALL, and FINALLY are all optional (although + * you'll probably use at least one, otherwise why "TRY"?) + * + * GET_MESSAGE returns string ptr to exception message + * when exception is thrown via THROW_MESSAGE() + * + * To throw/raise an exception. + * + * THROW(exception) + * RETHROW rethrow the caught exception + * + * A cleanup callback is a function called in case an exception occurs + * and is not caught. It should be used to free any dynamically-allocated data. + * A pop or call_and_pop should occur at the same statement-nesting level + * as the push. + * + * CLEANUP_CB_PUSH(func, data) + * CLEANUP_CB_POP + * CLEANUP_CB_CALL_AND_POP + */ + + + +#define TRY \ +{\ + except_t *exc; \ + int caught = 0; \ + static const except_id_t catch_spec[] = { \ + { XCEPT_GROUP_ETHEREAL, XCEPT_CODE_ANY } }; \ + except_try_push(catch_spec, 1, &exc); \ + if (exc == 0) { \ + /* user's code goes here */ + +#define ENDTRY \ + } \ + except_try_pop();\ +} + +#define CATCH(x) \ + } \ + else if (exc->except_id.except_code == (x)) { \ + caught = 1; + /* user's code goes here */ + + +#define CATCH_ALL \ + } \ + else { \ + caught = 1; + /* user's code goes here */ + +#define FINALLY \ + } \ + { \ + /* user's code goes here */ + +#define THROW(x) \ + except_throw(XCEPT_GROUP_ETHEREAL, (x), "XCEPT_GROUP_ETHEREAL") + +#define THROW_MESSAGE(x, y) \ + except_throw(XCEPT_GROUP_ETHEREAL, (x), (y)) + +#define GET_MESSAGE except_message(exc) + +#define RETHROW except_rethrow(exc) + +#define CLEANUP_CB_PUSH(x,y) except_cleanup_push((x),(y) +#define CLEANUP_CB_POP except_cleanup_push(0) +#define CLEANUP_CB_CALL_AND_POP except_cleanup_push(1) + +#endif /* __EXCEPTIONS_H__ */ diff --git a/packet-aarp.c b/packet-aarp.c index 8190707d42..0f4dab66a8 100644 --- a/packet-aarp.c +++ b/packet-aarp.c @@ -1,7 +1,7 @@ /* packet-aarp.c * Routines for Appletalk ARP packet disassembly * - * $Id: packet-aarp.c,v 1.18 2000/04/13 18:18:43 gram Exp $ + * $Id: packet-aarp.c,v 1.19 2000/05/11 08:14:49 gram Exp $ * * Simon Wilkinson * @@ -191,35 +191,35 @@ dissect_aarp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (tree) { if ((op_str = match_strval(ar_op, op_vals))) - ti = proto_tree_add_protocol_format(tree, proto_aarp, offset, + ti = proto_tree_add_protocol_format(tree, proto_aarp, NullTVB, offset, MIN_AARP_HEADER_SIZE + 2*ar_hln + 2*ar_pln, "AppleTalk Address Resolution Protocol (%s)", op_str); else - ti = proto_tree_add_protocol_format(tree, proto_aarp, offset, + ti = proto_tree_add_protocol_format(tree, proto_aarp, NullTVB, offset, MIN_AARP_HEADER_SIZE + 2*ar_hln + 2*ar_pln, "AppleTalk Address Resolution Protocol (opcode 0x%04x)", ar_op); aarp_tree = proto_item_add_subtree(ti, ett_aarp); - proto_tree_add_item(aarp_tree, hf_aarp_hard_type, offset + AR_HRD, 2, + proto_tree_add_item(aarp_tree, hf_aarp_hard_type, NullTVB, offset + AR_HRD, 2, ar_hrd); - proto_tree_add_item(aarp_tree, hf_aarp_proto_type, offset + AR_PRO, 2, + proto_tree_add_item(aarp_tree, hf_aarp_proto_type, NullTVB, offset + AR_PRO, 2, ar_pro); - proto_tree_add_item(aarp_tree, hf_aarp_hard_size, offset + AR_HLN, 1, + proto_tree_add_item(aarp_tree, hf_aarp_hard_size, NullTVB, offset + AR_HLN, 1, ar_hln); - proto_tree_add_item(aarp_tree, hf_aarp_proto_size, offset + AR_PLN, 1, + proto_tree_add_item(aarp_tree, hf_aarp_proto_size, NullTVB, offset + AR_PLN, 1, ar_pln); - proto_tree_add_item(aarp_tree, hf_aarp_opcode, offset + AR_OP, 2, + proto_tree_add_item(aarp_tree, hf_aarp_opcode, NullTVB, offset + AR_OP, 2, ar_op); - proto_tree_add_bytes_format(aarp_tree, hf_aarp_src_ether, sha_offset, ar_hln, + proto_tree_add_bytes_format(aarp_tree, hf_aarp_src_ether, NullTVB, sha_offset, ar_hln, &pd[sha_offset], "Sender hardware address: %s", sha_str); - proto_tree_add_bytes_format(aarp_tree, hf_aarp_src_id, spa_offset, ar_pln, + proto_tree_add_bytes_format(aarp_tree, hf_aarp_src_id, NullTVB, spa_offset, ar_pln, &pd[spa_offset], "Sender ID: %s", spa_str); - proto_tree_add_bytes_format(aarp_tree, hf_aarp_dst_ether, tha_offset, ar_hln, + proto_tree_add_bytes_format(aarp_tree, hf_aarp_dst_ether, NullTVB, tha_offset, ar_hln, &pd[tha_offset], "Target hardware address: %s", tha_str); - proto_tree_add_bytes_format(aarp_tree, hf_aarp_dst_id, tpa_offset, ar_pln, + proto_tree_add_bytes_format(aarp_tree, hf_aarp_dst_id, NullTVB, tpa_offset, ar_pln, &pd[tpa_offset], "Target ID: %s", tpa_str); } diff --git a/packet-afs.c b/packet-afs.c index 120002e529..0fe12a4e5a 100644 --- a/packet-afs.c +++ b/packet-afs.c @@ -6,7 +6,7 @@ * Portions based on information retrieved from the RX definitions * in Arla, the free AFS client at http://www.stacken.kth.se/project/arla/ * - * $Id: packet-afs.c,v 1.9 2000/01/15 04:17:36 guy Exp $ + * $Id: packet-afs.c,v 1.10 2000/05/11 08:14:49 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -886,13 +886,13 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_item(tree, proto_afs, doffset, END_OF_FRAME); + ti = proto_tree_add_item(tree, proto_afs, NullTVB, doffset, END_OF_FRAME); afs_tree = proto_item_add_subtree(ti, ett_afs); if ( !BYTES_ARE_IN_FRAME(offset, sizeof(struct rx_header) + sizeof(struct afs_header)) ) { - proto_tree_add_text(afs_tree, doffset, END_OF_FRAME, + proto_tree_add_text(afs_tree, NullTVB, doffset, END_OF_FRAME, "Service: %s %s (Truncated)", val_to_str(port, port_types, "Unknown(%d)"), reply ? "Reply" : "Request"); @@ -900,7 +900,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } else { - proto_tree_add_text(afs_tree, doffset, END_OF_FRAME, + proto_tree_add_text(afs_tree, NullTVB, doffset, END_OF_FRAME, "Service: %s %s", val_to_str(port, port_types, "Unknown(%d)"), reply ? "Reply" : "Request"); @@ -911,17 +911,17 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if ( !reply && node != 0 ) { ti = proto_tree_add_item(afs_tree, - node, doffset, 4, opcode); + node, NullTVB, doffset, 4, opcode); } else if ( reply && node != 0 ) { /* the opcode isn't in this packet */ ti = proto_tree_add_item(afs_tree, - node, doffset, 0, opcode); + node, NullTVB, doffset, 0, opcode); } else { - ti = proto_tree_add_text(afs_tree, + ti = proto_tree_add_text(afs_tree, NullTVB, doffset, 0, "Operation: Unknown"); } @@ -931,7 +931,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if ( typenode != 0 ) { /* indicate the type of request */ - proto_tree_add_item_hidden(afs_tree, typenode, doffset, 0, 1); + proto_tree_add_item_hidden(afs_tree, typenode, NullTVB, doffset, 0, 1); } /* Process the packet according to what service it is */ @@ -965,21 +965,21 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) after adding a 'Truncated' message to tree */ #define TRUNC(bytes) \ if(!BYTES_ARE_IN_FRAME(curoffset,(bytes))) \ - { proto_tree_add_text(tree,curoffset,END_OF_FRAME,"Truncated"); \ + { proto_tree_add_text(tree, NullTVB,curoffset,END_OF_FRAME,"Truncated"); \ return; } /* Output a unsigned integer, stored into field 'field' Assumes it is in network byte order, converts to host before using */ #define UINTOUT(field) \ TRUNC(sizeof(guint32)) \ - proto_tree_add_item(tree,field,curoffset,sizeof(guint32), GETINT()); \ + proto_tree_add_item(tree,field, NullTVB,curoffset,sizeof(guint32), GETINT()); \ curoffset += 4; /* Output a unsigned integer, stored into field 'field' Assumes it is in network byte order, converts to host before using */ #define IPOUT(field) \ TRUNC(sizeof(gint32)) \ - proto_tree_add_item(tree,field,curoffset,sizeof(gint32),\ + proto_tree_add_item(tree,field, NullTVB,curoffset,sizeof(gint32),\ *((int*)&pd[curoffset]));\ curoffset += 4; @@ -989,7 +989,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) TRUNC(2*sizeof(guint32)); \ tv.tv_sec = GETINT(); \ tv.tv_usec = GETINT(); \ - proto_tree_add_item(tree,field,curoffset,2*sizeof(guint32),&tv); \ + proto_tree_add_item(tree,field, NullTVB,curoffset,2*sizeof(guint32),&tv); \ curoffset += 8; \ } @@ -999,14 +999,14 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) TRUNC(sizeof(guint32)); \ tv.tv_sec = GETINT(); \ tv.tv_usec = 0; \ - proto_tree_add_item(tree,field,curoffset,sizeof(guint32),&tv); \ + proto_tree_add_item(tree,field, NullTVB,curoffset,sizeof(guint32),&tv); \ curoffset += 4; \ } /* Output a callback */ #define FS_CALLBACKOUT() \ { proto_tree *save, *ti; \ - ti = proto_tree_add_text(tree, curoffset, 3*4, "Callback"); \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, 3*4, "Callback"); \ save = tree; \ tree = proto_item_add_subtree(ti, ett_afs_callback); \ TRUNC(3*sizeof(guint32)); \ @@ -1019,7 +1019,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Output a callback */ #define CB_CALLBACKOUT() \ { proto_tree *save, *ti; \ - ti = proto_tree_add_text(tree, curoffset, 3*4, "Callback"); \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, 3*4, "Callback"); \ save = tree; \ tree = proto_item_add_subtree(ti, ett_afs_callback); \ TRUNC(3*sizeof(guint32)); \ @@ -1033,7 +1033,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Output a File ID */ #define FS_FIDOUT(label) \ { proto_tree *save, *ti; \ - ti = proto_tree_add_text(tree, curoffset, 3*4, \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, 3*4, \ "FileID (%s)", label); \ save = tree; \ tree = proto_item_add_subtree(ti, ett_afs_fid); \ @@ -1046,7 +1046,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Output a File ID */ #define CB_FIDOUT(label) \ { proto_tree *save, *ti; \ - ti = proto_tree_add_text(tree, curoffset, 3*4, \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, 3*4, \ "FileID (%s)", label); \ save = tree; \ tree = proto_item_add_subtree(ti, ett_afs_fid); \ @@ -1070,21 +1070,21 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if ( acl & PRSFS_WRITE ) strcat(tmp, "w"); \ if ( acl & PRSFS_LOCK ) strcat(tmp, "k"); \ if ( acl & PRSFS_ADMINISTER ) strcat(tmp, "a"); \ - ti = proto_tree_add_text(tree, curoffset, bytes, \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, bytes, \ "ACL: %s %s%s", \ who, tmp, positive ? "" : " (negative)"); \ save = tree; \ tree = proto_item_add_subtree(ti, ett_afs_acl); \ - proto_tree_add_item(tree,hf_afs_fs_acl_entity,curoffset,strlen(who), who);\ + proto_tree_add_item(tree,hf_afs_fs_acl_entity, NullTVB,curoffset,strlen(who), who);\ tmpoffset = curoffset + strlen(who) + 1; \ acllen = bytes - strlen(who) - 1; \ - proto_tree_add_item(tree,hf_afs_fs_acl_r,tmpoffset,acllen,acl);\ - proto_tree_add_item(tree,hf_afs_fs_acl_l,tmpoffset,acllen,acl);\ - proto_tree_add_item(tree,hf_afs_fs_acl_i,tmpoffset,acllen,acl);\ - proto_tree_add_item(tree,hf_afs_fs_acl_d,tmpoffset,acllen,acl);\ - proto_tree_add_item(tree,hf_afs_fs_acl_w,tmpoffset,acllen,acl);\ - proto_tree_add_item(tree,hf_afs_fs_acl_k,tmpoffset,acllen,acl);\ - proto_tree_add_item(tree,hf_afs_fs_acl_a,tmpoffset,acllen,acl);\ + proto_tree_add_item(tree,hf_afs_fs_acl_r, NullTVB,tmpoffset,acllen,acl);\ + proto_tree_add_item(tree,hf_afs_fs_acl_l, NullTVB,tmpoffset,acllen,acl);\ + proto_tree_add_item(tree,hf_afs_fs_acl_i, NullTVB,tmpoffset,acllen,acl);\ + proto_tree_add_item(tree,hf_afs_fs_acl_d, NullTVB,tmpoffset,acllen,acl);\ + proto_tree_add_item(tree,hf_afs_fs_acl_w, NullTVB,tmpoffset,acllen,acl);\ + proto_tree_add_item(tree,hf_afs_fs_acl_k, NullTVB,tmpoffset,acllen,acl);\ + proto_tree_add_item(tree,hf_afs_fs_acl_a, NullTVB,tmpoffset,acllen,acl);\ tree = save; \ } @@ -1099,7 +1099,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Raw data */ #define BYTESOUT(field, bytes) \ TRUNC(bytes); \ - proto_tree_add_item(tree,field,curoffset,bytes,\ + proto_tree_add_item(tree,field, NullTVB,curoffset,bytes,\ (void *)&pd[curoffset]); \ curoffset += bytes; @@ -1112,10 +1112,10 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) curoffset += 4; \ TRUNC(i); \ if ( i > 0 ) { \ - proto_tree_add_item(tree, field, curoffset-4, i+4, \ + proto_tree_add_item(tree, field, NullTVB, curoffset-4, i+4, \ (void *)&pd[curoffset]); \ } else { \ - proto_tree_add_item(tree, field, curoffset-4, 4, \ + proto_tree_add_item(tree, field, NullTVB, curoffset-4, 4, \ ""); \ } \ curoffset += i; \ @@ -1133,7 +1133,7 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) curoffset += sizeof(guint32);\ }\ tmp[length] = '\0';\ - proto_tree_add_item(tree, field, soff, length, tmp);\ + proto_tree_add_item(tree, field, NullTVB, soff, length, tmp);\ } /* Output a UBIK version code */ @@ -1148,13 +1148,13 @@ dissect_afs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) curoffset += 4; \ tv.tv_sec = epoch; \ tv.tv_usec = 0; \ - ti = proto_tree_add_text(tree, curoffset, 3*4, \ + ti = proto_tree_add_text(tree, NullTVB, curoffset, 3*4, \ "UBIK Version (%s): %u.%u", label, epoch, counter ); \ save = tree; \ tree = proto_item_add_subtree(ti, ett_afs_ubikver); \ - proto_tree_add_item(tree,hf_afs_ubik_version_epoch,curoffset-8, \ + proto_tree_add_item(tree,hf_afs_ubik_version_epoch, NullTVB,curoffset-8, \ sizeof(guint32),&tv); \ - proto_tree_add_item(tree,hf_afs_ubik_version_counter,curoffset-4, \ + proto_tree_add_item(tree,hf_afs_ubik_version_counter, NullTVB,curoffset-4, \ sizeof(guint32),counter); \ tree = save; \ } @@ -1203,14 +1203,14 @@ static void dissect_acl(const u_char *pd, int offset, frame_data *fd, proto_tree return; s += n; TRUNC(1); - proto_tree_add_item(tree, hf_afs_fs_acl_count_positive, curoffset, n, pos); + proto_tree_add_item(tree, hf_afs_fs_acl_count_positive, NullTVB, curoffset, n, pos); curoffset += n; if (sscanf((char *) s, "%d %n", &neg, &n) != 1) return; s += n; TRUNC(1); - proto_tree_add_item(tree, hf_afs_fs_acl_count_negative, curoffset, n, neg); + proto_tree_add_item(tree, hf_afs_fs_acl_count_negative, NullTVB, curoffset, n, neg); curoffset += n; @@ -1887,7 +1887,7 @@ dissect_vldb_reply(const u_char *pd, int offset, frame_data *fd, proto_tree *tre if ( i @@ -285,9 +285,9 @@ dissect_atm_number(const u_char *pd, int offset, int tl, int hf_e164, proto_tree *nsap_tree; if (tl & ATMARP_IS_E164) - proto_tree_add_item(tree, hf_e164, offset, len, &pd[offset]); + proto_tree_add_item(tree, hf_e164, NullTVB, offset, len, &pd[offset]); else { - ti = proto_tree_add_item(tree, hf_nsap, offset, len, + ti = proto_tree_add_item(tree, hf_nsap, NullTVB, offset, len, &pd[offset]); if (len >= 20) { nsap_tree = proto_item_add_subtree(ti, ett_atmarp_nsap); @@ -303,56 +303,56 @@ dissect_atm_nsap(const u_char *pd, int offset, int len, proto_tree *tree) case 0x39: /* DCC ATM format */ case 0xBD: /* DCC ATM group format */ - proto_tree_add_text(tree, offset + 0, 3, + proto_tree_add_text(tree, NullTVB, offset + 0, 3, "Data Country Code%s: 0x%04X", (pd[offset] == 0xBD) ? " (group)" : "", pntohs(&pd[offset + 1])); - proto_tree_add_text(tree, offset + 3, 10, + proto_tree_add_text(tree, NullTVB, offset + 3, 10, "High Order DSP: %s", bytes_to_str(&pd[offset + 3], 10)); - proto_tree_add_text(tree, offset + 13, 6, + proto_tree_add_text(tree, NullTVB, offset + 13, 6, "End System Identifier: %s", bytes_to_str(&pd[offset + 13], 6)); - proto_tree_add_text(tree, offset + 19, 1, + proto_tree_add_text(tree, NullTVB, offset + 19, 1, "Selector: 0x%02X", pd[offset + 19]); break; case 0x47: /* ICD ATM format */ case 0xC5: /* ICD ATM group format */ - proto_tree_add_text(tree, offset + 0, 3, + proto_tree_add_text(tree, NullTVB, offset + 0, 3, "International Code Designator%s: 0x%04X", (pd[offset] == 0xC5) ? " (group)" : "", pntohs(&pd[offset + 1])); - proto_tree_add_text(tree, offset + 3, 10, + proto_tree_add_text(tree, NullTVB, offset + 3, 10, "High Order DSP: %s", bytes_to_str(&pd[offset + 3], 10)); - proto_tree_add_text(tree, offset + 13, 6, + proto_tree_add_text(tree, NullTVB, offset + 13, 6, "End System Identifier: %s", bytes_to_str(&pd[offset + 13], 6)); - proto_tree_add_text(tree, offset + 19, 1, + proto_tree_add_text(tree, NullTVB, offset + 19, 1, "Selector: 0x%02X", pd[offset + 19]); break; case 0x45: /* E.164 ATM format */ case 0xC3: /* E.164 ATM group format */ - proto_tree_add_text(tree, offset + 0, 9, + proto_tree_add_text(tree, NullTVB, offset + 0, 9, "E.164 ISDN%s: %s", (pd[offset] == 0xC3) ? " (group)" : "", bytes_to_str(&pd[offset + 1], 8)); - proto_tree_add_text(tree, offset + 9, 4, + proto_tree_add_text(tree, NullTVB, offset + 9, 4, "High Order DSP: %s", bytes_to_str(&pd[offset + 3], 10)); - proto_tree_add_text(tree, offset + 13, 6, + proto_tree_add_text(tree, NullTVB, offset + 13, 6, "End System Identifier: %s", bytes_to_str(&pd[offset + 13], 6)); - proto_tree_add_text(tree, offset + 19, 1, + proto_tree_add_text(tree, NullTVB, offset + 19, 1, "Selector: 0x%02X", pd[offset + 19]); break; default: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown AFI: 0x%02X", pd[offset]); - proto_tree_add_text(tree, offset + 1, len - 1, + proto_tree_add_text(tree, NullTVB, offset + 1, len - 1, "Rest of address: %s", bytes_to_str(&pd[offset + 1], len - 1)); break; @@ -496,53 +496,53 @@ dissect_atmarp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { if ((op_str = match_strval(ar_op, atmop_vals))) - ti = proto_tree_add_protocol_format(tree, proto_arp, offset, tot_len, + ti = proto_tree_add_protocol_format(tree, proto_arp, NullTVB, offset, tot_len, "ATM Address Resolution Protocol (%s)", op_str); else - ti = proto_tree_add_protocol_format(tree, proto_arp, offset, tot_len, + ti = proto_tree_add_protocol_format(tree, proto_arp, NullTVB, offset, tot_len, "ATM Address Resolution Protocol (opcode 0x%04x)", ar_op); arp_tree = proto_item_add_subtree(ti, ett_arp); - proto_tree_add_item(arp_tree, hf_arp_hard_type, offset + ATM_AR_HRD, 2, + proto_tree_add_item(arp_tree, hf_arp_hard_type, NullTVB, offset + ATM_AR_HRD, 2, ar_hrd); - proto_tree_add_item(arp_tree, hf_arp_proto_type, offset + ATM_AR_PRO, 2, + proto_tree_add_item(arp_tree, hf_arp_proto_type, NullTVB, offset + ATM_AR_PRO, 2, ar_pro); - proto_tree_add_item(arp_tree, hf_atmarp_shtl, offset + ATM_AR_SHTL, 1, + proto_tree_add_item(arp_tree, hf_atmarp_shtl, NullTVB, offset + ATM_AR_SHTL, 1, ar_shtl); - proto_tree_add_item(arp_tree, hf_atmarp_ssl, offset + ATM_AR_SSL, 1, + proto_tree_add_item(arp_tree, hf_atmarp_ssl, NullTVB, offset + ATM_AR_SSL, 1, ar_ssl); - proto_tree_add_item(arp_tree, hf_arp_opcode, offset + AR_OP, 2, + proto_tree_add_item(arp_tree, hf_arp_opcode, NullTVB, offset + AR_OP, 2, ar_op); - proto_tree_add_item(arp_tree, hf_atmarp_spln, offset + ATM_AR_SPLN, 1, + proto_tree_add_item(arp_tree, hf_atmarp_spln, NullTVB, offset + ATM_AR_SPLN, 1, ar_spln); - proto_tree_add_item(arp_tree, hf_atmarp_thtl, offset + ATM_AR_THTL, 1, + proto_tree_add_item(arp_tree, hf_atmarp_thtl, NullTVB, offset + ATM_AR_THTL, 1, ar_thtl); - proto_tree_add_item(arp_tree, hf_atmarp_tsl, offset + ATM_AR_TSL, 1, + proto_tree_add_item(arp_tree, hf_atmarp_tsl, NullTVB, offset + ATM_AR_TSL, 1, ar_tsl); - proto_tree_add_item(arp_tree, hf_atmarp_tpln, offset + ATM_AR_TPLN, 1, + proto_tree_add_item(arp_tree, hf_atmarp_tpln, NullTVB, offset + ATM_AR_TPLN, 1, ar_tpln); if (ar_shl != 0) dissect_atm_number(pd, sha_offset, ar_shtl, hf_atmarp_src_atm_num_e164, hf_atmarp_src_atm_num_nsap, arp_tree); if (ar_ssl != 0) - proto_tree_add_bytes_format(arp_tree, hf_atmarp_src_atm_subaddr, ssa_offset, + proto_tree_add_bytes_format(arp_tree, hf_atmarp_src_atm_subaddr, NullTVB, ssa_offset, ar_ssl, &pd[ssa_offset], "Sender ATM subaddress: %s", ssa_str); if (ar_spln != 0) - proto_tree_add_bytes_format(arp_tree, hf_arp_src_proto, spa_offset, ar_spln, + proto_tree_add_bytes_format(arp_tree, hf_arp_src_proto, NullTVB, spa_offset, ar_spln, &pd[spa_offset], "Sender protocol address: %s", spa_str); if (ar_thl != 0) dissect_atm_number(pd, tha_offset, ar_thtl, hf_atmarp_dst_atm_num_e164, hf_atmarp_dst_atm_num_nsap, arp_tree); if (ar_tsl != 0) - proto_tree_add_bytes_format(arp_tree, hf_atmarp_dst_atm_subaddr, tsa_offset, + proto_tree_add_bytes_format(arp_tree, hf_atmarp_dst_atm_subaddr, NullTVB, tsa_offset, ar_tsl, &pd[tsa_offset], "Target ATM subaddress: %s", tsa_str); if (ar_tpln != 0) - proto_tree_add_bytes_format(arp_tree, hf_arp_dst_proto, tpa_offset, ar_tpln, + proto_tree_add_bytes_format(arp_tree, hf_arp_dst_proto, NullTVB, tpa_offset, ar_tpln, &pd[tpa_offset], "Target protocol address: %s", tpa_str); } @@ -639,36 +639,36 @@ dissect_arp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { if ((op_str = match_strval(ar_op, op_vals))) - ti = proto_tree_add_protocol_format(tree, proto_arp, offset, tot_len, + ti = proto_tree_add_protocol_format(tree, proto_arp, NullTVB, offset, tot_len, "Address Resolution Protocol (%s)", op_str); else - ti = proto_tree_add_protocol_format(tree, proto_arp, offset, tot_len, + ti = proto_tree_add_protocol_format(tree, proto_arp, NullTVB, offset, tot_len, "Address Resolution Protocol (opcode 0x%04x)", ar_op); arp_tree = proto_item_add_subtree(ti, ett_arp); - proto_tree_add_item(arp_tree, hf_arp_hard_type, offset + AR_HRD, 2, + proto_tree_add_item(arp_tree, hf_arp_hard_type, NullTVB, offset + AR_HRD, 2, ar_hrd); - proto_tree_add_item(arp_tree, hf_arp_proto_type, offset + AR_PRO, 2, + proto_tree_add_item(arp_tree, hf_arp_proto_type, NullTVB, offset + AR_PRO, 2, ar_pro); - proto_tree_add_item(arp_tree, hf_arp_hard_size, offset + AR_HLN, 1, + proto_tree_add_item(arp_tree, hf_arp_hard_size, NullTVB, offset + AR_HLN, 1, ar_hln); - proto_tree_add_item(arp_tree, hf_arp_proto_size, offset + AR_PLN, 1, + proto_tree_add_item(arp_tree, hf_arp_proto_size, NullTVB, offset + AR_PLN, 1, ar_pln); - proto_tree_add_item(arp_tree, hf_arp_opcode, offset + AR_OP, 2, + proto_tree_add_item(arp_tree, hf_arp_opcode, NullTVB, offset + AR_OP, 2, ar_op); if (ar_hln != 0) - proto_tree_add_bytes_format(arp_tree, hf_arp_src_ether, sha_offset, ar_hln, + proto_tree_add_bytes_format(arp_tree, hf_arp_src_ether, NullTVB, sha_offset, ar_hln, &pd[sha_offset], "Sender hardware address: %s", sha_str); if (ar_pln != 0) - proto_tree_add_bytes_format(arp_tree, hf_arp_src_proto, spa_offset, ar_pln, + proto_tree_add_bytes_format(arp_tree, hf_arp_src_proto, NullTVB, spa_offset, ar_pln, &pd[spa_offset], "Sender protocol address: %s", spa_str); if (ar_hln != 0) - proto_tree_add_bytes_format(arp_tree, hf_arp_dst_ether, tha_offset, ar_hln, + proto_tree_add_bytes_format(arp_tree, hf_arp_dst_ether, NullTVB, tha_offset, ar_hln, &pd[tha_offset], "Target hardware address: %s", tha_str); if (ar_pln != 0) - proto_tree_add_bytes_format(arp_tree, hf_arp_dst_proto, tpa_offset, ar_pln, + proto_tree_add_bytes_format(arp_tree, hf_arp_dst_proto, NullTVB, tpa_offset, ar_pln, &pd[tpa_offset], "Target protocol address: %s", tpa_str); } diff --git a/packet-ascend.c b/packet-ascend.c index 079bac0e03..cee11ab9f0 100644 --- a/packet-ascend.c +++ b/packet-ascend.c @@ -1,7 +1,7 @@ /* packet-ascend.c * Routines for decoding Lucent/Ascend packet traces * - * $Id: packet-ascend.c,v 1.10 2000/03/27 17:53:18 gram Exp $ + * $Id: packet-ascend.c,v 1.11 2000/05/11 08:14:54 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -70,24 +70,24 @@ dissect_ascend( const u_char *pd, frame_data *fd, proto_tree *tree ) { /* populate a tree in the second pane with the status of the link layer (ie none) */ if(tree) { - ti = proto_tree_add_text(tree, 0, 0, "Lucent/Ascend packet trace" ); + ti = proto_tree_add_text(tree, NullTVB, 0, 0, "Lucent/Ascend packet trace" ); fh_tree = proto_item_add_subtree(ti, ett_raw); - proto_tree_add_item(fh_tree, hf_link_type, 0, 0, + proto_tree_add_item(fh_tree, hf_link_type, NullTVB, 0, 0, fd->pseudo_header.ascend.type); if (fd->pseudo_header.ascend.type == ASCEND_PFX_WDD) { - proto_tree_add_item(fh_tree, hf_called_number, 0, 0, + proto_tree_add_item(fh_tree, hf_called_number, NullTVB, 0, 0, fd->pseudo_header.ascend.call_num); - proto_tree_add_item(fh_tree, hf_chunk, 0, 0, + proto_tree_add_item(fh_tree, hf_chunk, NullTVB, 0, 0, fd->pseudo_header.ascend.chunk); - proto_tree_add_item_hidden(fh_tree, hf_session_id, 0, 0, 0); + proto_tree_add_item_hidden(fh_tree, hf_session_id, NullTVB, 0, 0, 0); } else { /* It's wandsession data */ - proto_tree_add_item(fh_tree, hf_user_name, 0, 0, + proto_tree_add_item(fh_tree, hf_user_name, NullTVB, 0, 0, fd->pseudo_header.ascend.user); - proto_tree_add_item(fh_tree, hf_session_id, 0, 0, + proto_tree_add_item(fh_tree, hf_session_id, NullTVB, 0, 0, fd->pseudo_header.ascend.sess); - proto_tree_add_item_hidden(fh_tree, hf_chunk, 0, 0, 0); + proto_tree_add_item_hidden(fh_tree, hf_chunk, NullTVB, 0, 0, 0); } - proto_tree_add_item(fh_tree, hf_task, 0, 0, fd->pseudo_header.ascend.task); + proto_tree_add_item(fh_tree, hf_task, NullTVB, 0, 0, fd->pseudo_header.ascend.task); } switch (fd->pseudo_header.ascend.type) { diff --git a/packet-atalk.c b/packet-atalk.c index b599f84837..6023821b1a 100644 --- a/packet-atalk.c +++ b/packet-atalk.c @@ -1,7 +1,7 @@ /* packet-atalk.c * Routines for Appletalk packet disassembly (DDP, currently). * - * $Id: packet-atalk.c,v 1.33 2000/04/16 21:37:03 guy Exp $ + * $Id: packet-atalk.c,v 1.34 2000/05/11 08:14:55 gram Exp $ * * Simon Wilkinson * @@ -172,11 +172,11 @@ int dissect_pascal_string(const u_char *pd, int offset, frame_data *fd, tmp = g_malloc( len+1 ); memcpy(tmp, &pd[offset], len); tmp[len] = 0; - item = proto_tree_add_item(tree, hf_index, offset-1, len+1, tmp); + item = proto_tree_add_item(tree, hf_index, NullTVB, offset-1, len+1, tmp); subtree = proto_item_add_subtree(item, ett_pstring); - proto_tree_add_text(subtree, offset-1, 1, "Length: %d", len); - proto_tree_add_text(subtree, offset, len, "Data: %s", tmp); + proto_tree_add_text(subtree, NullTVB, offset-1, 1, "Length: %d", len); + proto_tree_add_text(subtree, NullTVB, offset, len, "Data: %s", tmp); g_free(tmp); } @@ -223,12 +223,12 @@ dissect_rtmp_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree net, nodelen_bits, node); if (tree) { - ti = proto_tree_add_item(tree, proto_rtmp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_rtmp, NullTVB, offset, END_OF_FRAME, NULL); rtmp_tree = proto_item_add_subtree(ti, ett_rtmp); - proto_tree_add_item(rtmp_tree, hf_rtmp_net, offset, 2, net); - proto_tree_add_item(rtmp_tree, hf_rtmp_node_len, offset+2, 1, nodelen_bits); - proto_tree_add_item(rtmp_tree, hf_rtmp_node, offset+3, nodelen, nodelen); + proto_tree_add_item(rtmp_tree, hf_rtmp_net, NullTVB, offset, 2, net); + proto_tree_add_item(rtmp_tree, hf_rtmp_node_len, NullTVB, offset+2, 1, nodelen_bits); + proto_tree_add_item(rtmp_tree, hf_rtmp_node, NullTVB, offset+3, nodelen, nodelen); offset += 3 + nodelen; i = 1; @@ -247,14 +247,14 @@ dissect_rtmp_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree tuple_net = pntohs(&pd[offset]); tuple_dist = pd[offset+2]; - tuple_item = proto_tree_add_text(rtmp_tree, offset, 3, + tuple_item = proto_tree_add_text(rtmp_tree, NullTVB, offset, 3, "Tuple %d: Net: %d Dist: %d", i, tuple_net, tuple_dist); tuple_tree = proto_item_add_subtree(tuple_item, ett_rtmp_tuple); - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, offset, 2, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, NullTVB, offset, 2, tuple_net); - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, offset+2, 1, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, NullTVB, offset+2, 1, tuple_dist); if ( tuple_dist == 0 || tuple_dist & 0x80 ) /* phase 1/2 */ @@ -268,9 +268,9 @@ dissect_rtmp_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree tuple_net2 = pntohs(&pd[offset+3]); tuple_dist2 = pd[offset+5]; - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, offset, 2, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_net, NullTVB, offset, 2, tuple_net2); - proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, offset+2, 1, + proto_tree_add_item(tuple_tree, hf_rtmp_tuple_dist, NullTVB, offset+2, 1, tuple_dist2); proto_item_set_len(tuple_item, 6); @@ -312,18 +312,18 @@ dissect_nbp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { val_to_str(op, nbp_op_vals, "unknown (%1x)"), count); if (tree) { - ti = proto_tree_add_item(tree, proto_nbp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_nbp, NullTVB, offset, END_OF_FRAME, NULL); nbp_tree = proto_item_add_subtree(ti, ett_nbp); - info_item = proto_tree_add_uint_format(nbp_tree, hf_nbp_info, offset, 1, + info_item = proto_tree_add_uint_format(nbp_tree, hf_nbp_info, NullTVB, offset, 1, pd[offset], "Info: 0x%01X Operation: %s Count: %d", pd[offset], val_to_str(op, nbp_op_vals, "unknown"), count); nbp_info_tree = proto_item_add_subtree(info_item, ett_nbp_info); - proto_tree_add_item(nbp_info_tree, hf_nbp_op, offset, 1, pd[offset]); - proto_tree_add_item(nbp_info_tree, hf_nbp_count, offset, 1, pd[offset]); - proto_tree_add_item(nbp_tree, hf_nbp_tid, offset+1, 1, pd[offset+1]); + proto_tree_add_item(nbp_info_tree, hf_nbp_op, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(nbp_info_tree, hf_nbp_count, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(nbp_tree, hf_nbp_tid, NullTVB, offset+1, 1, pd[offset+1]); offset += 2; for (i=0; i @@ -153,10 +153,10 @@ dissect_le_client(const u_char *pd, int offset, frame_data *fd, proto_tree *tree proto_tree *lane_tree; if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_atm_lane, offset, 2, "ATM LANE"); + ti = proto_tree_add_protocol_format(tree, proto_atm_lane, NullTVB, offset, 2, "ATM LANE"); lane_tree = proto_item_add_subtree(ti, ett_atm_lane); - proto_tree_add_text(lane_tree, offset, 2, "LE Client: 0x%04X", + proto_tree_add_text(lane_tree, NullTVB, offset, 2, "LE Client: 0x%04X", pntohs(&pd[offset])); } } @@ -171,11 +171,11 @@ dissect_lan_destination(const u_char *pd, int offset, const char *type, proto_tr proto_tree *rd_tree; guint16 route_descriptor; - td = proto_tree_add_text(tree, offset, 8, "%s LAN destination", + td = proto_tree_add_text(tree, NullTVB, offset, 8, "%s LAN destination", type); dest_tree = proto_item_add_subtree(td, ett_atm_lane_lc_lan_dest); tag = pntohs(&pd[offset]); - proto_tree_add_text(dest_tree, offset, 2, "Tag: %s", + proto_tree_add_text(dest_tree, NullTVB, offset, 2, "Tag: %s", val_to_str(tag, le_control_landest_tag_vals, "Unknown (0x%04X)")); offset += 2; @@ -183,20 +183,20 @@ dissect_lan_destination(const u_char *pd, int offset, const char *type, proto_tr switch (tag) { case TAG_MAC_ADDRESS: - proto_tree_add_text(dest_tree, offset, 6, "MAC address: %s", + proto_tree_add_text(dest_tree, NullTVB, offset, 6, "MAC address: %s", ether_to_str((u_char *)&pd[offset])); break; case TAG_ROUTE_DESCRIPTOR: offset += 4; route_descriptor = pntohs(&pd[offset]); - trd = proto_tree_add_text(dest_tree, offset, 2, "Route descriptor: 0x%02X", + trd = proto_tree_add_text(dest_tree, NullTVB, offset, 2, "Route descriptor: 0x%02X", route_descriptor); rd_tree = proto_item_add_subtree(td, ett_atm_lane_lc_lan_dest_rd); - proto_tree_add_text(rd_tree, offset, 2, + proto_tree_add_text(rd_tree, NullTVB, offset, 2, decode_numeric_bitfield(route_descriptor, 0xFFF0, 2*8, "LAN ID = %u")); - proto_tree_add_text(rd_tree, offset, 2, + proto_tree_add_text(rd_tree, NullTVB, offset, 2, decode_numeric_bitfield(route_descriptor, 0x000F, 2*8, "Bridge number = %u")); break; @@ -262,23 +262,23 @@ dissect_le_control(const u_char *pd, int offset, frame_data *fd, proto_tree *tre col_add_str(fd, COL_INFO, "LE Control"); if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_atm_lane, offset, 108, "ATM LANE"); + ti = proto_tree_add_protocol_format(tree, proto_atm_lane, NullTVB, offset, 108, "ATM LANE"); lane_tree = proto_item_add_subtree(ti, ett_atm_lane); - proto_tree_add_text(lane_tree, offset, 2, "Marker: 0x%04X", + proto_tree_add_text(lane_tree, NullTVB, offset, 2, "Marker: 0x%04X", pntohs(&pd[offset])); offset += 2; - proto_tree_add_text(lane_tree, offset, 1, "Protocol: 0x%02X", + proto_tree_add_text(lane_tree, NullTVB, offset, 1, "Protocol: 0x%02X", pd[offset]); offset += 1; - proto_tree_add_text(lane_tree, offset, 1, "Version: 0x%02X", + proto_tree_add_text(lane_tree, NullTVB, offset, 1, "Version: 0x%02X", pd[offset]); offset += 1; opcode = pntohs(&pd[offset]); - proto_tree_add_text(lane_tree, offset, 2, "Opcode: %s", + proto_tree_add_text(lane_tree, NullTVB, offset, 2, "Opcode: %s", val_to_str(opcode, le_control_opcode_vals, "Unknown (0x%04X)")); offset += 2; @@ -290,31 +290,31 @@ dissect_le_control(const u_char *pd, int offset, frame_data *fd, proto_tree *tre if (opcode & 0x0100) { /* Response; decode status. */ - proto_tree_add_text(lane_tree, offset, 2, "Status: %s", + proto_tree_add_text(lane_tree, NullTVB, offset, 2, "Status: %s", val_to_str(pntohs(&pd[offset]), le_control_status_vals, "Unknown (0x%04X)")); } offset += 2; - proto_tree_add_text(lane_tree, offset, 4, "Transaction ID: 0x%08X", + proto_tree_add_text(lane_tree, NullTVB, offset, 4, "Transaction ID: 0x%08X", pntohl(&pd[offset])); offset += 4; - proto_tree_add_text(lane_tree, offset, 2, "Requester LECID: 0x%04X", + proto_tree_add_text(lane_tree, NullTVB, offset, 2, "Requester LECID: 0x%04X", pntohs(&pd[offset])); offset += 2; flags = pntohs(&pd[offset]); - tf = proto_tree_add_text(lane_tree, offset, 2, "Flags: 0x%04X", + tf = proto_tree_add_text(lane_tree, NullTVB, offset, 2, "Flags: 0x%04X", pntohs(&pd[offset])); flags_tree = proto_item_add_subtree(tf, ett_atm_lane_lc_flags); - proto_tree_add_text(flags_tree, offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, 0x0001, 8*2, "Remote address", "Local address")); - proto_tree_add_text(flags_tree, offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, 0x0080, 8*2, "Proxy", "Not proxy")); - proto_tree_add_text(flags_tree, offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, 0x0100, 8*2, "Topology change", "No topology change")); offset += 2; @@ -325,45 +325,45 @@ dissect_le_control(const u_char *pd, int offset, frame_data *fd, proto_tree *tre dissect_lan_destination(pd, offset, "Target", lane_tree); offset += 8; - proto_tree_add_text(lane_tree, offset, 20, "Source ATM Address: %s", + proto_tree_add_text(lane_tree, NullTVB, offset, 20, "Source ATM Address: %s", bytes_to_str(&pd[offset], 20)); offset += 20; - proto_tree_add_text(lane_tree, offset, 1, "LAN type: %s", + proto_tree_add_text(lane_tree, NullTVB, offset, 1, "LAN type: %s", val_to_str(pd[offset], le_control_lan_type_vals, "Unknown (0x%02X)")); offset += 1; - proto_tree_add_text(lane_tree, offset, 1, "Maximum frame size: %u", + proto_tree_add_text(lane_tree, NullTVB, offset, 1, "Maximum frame size: %u", pd[offset]); offset += 1; num_tlvs = pd[offset]; - proto_tree_add_text(lane_tree, offset, 1, "Number of TLVs: %u", + proto_tree_add_text(lane_tree, NullTVB, offset, 1, "Number of TLVs: %u", num_tlvs); offset += 1; - proto_tree_add_text(lane_tree, offset, 1, "ELAN name size: %u", + proto_tree_add_text(lane_tree, NullTVB, offset, 1, "ELAN name size: %u", pd[offset]); offset += 1; - proto_tree_add_text(lane_tree, offset, 20, "Target ATM Address: %s", + proto_tree_add_text(lane_tree, NullTVB, offset, 20, "Target ATM Address: %s", bytes_to_str(&pd[offset], 20)); offset += 20; - proto_tree_add_text(lane_tree, offset, 32, "ELAN name: %s", + proto_tree_add_text(lane_tree, NullTVB, offset, 32, "ELAN name: %s", bytes_to_str(&pd[offset], 32)); offset += 32; while (num_tlvs != 0) { tlv_type = pntohl(&pd[offset]); tlv_length = pd[offset+4]; - ttlv = proto_tree_add_text(lane_tree, offset, 5+tlv_length, "TLV type: %s", + ttlv = proto_tree_add_text(lane_tree, NullTVB, offset, 5+tlv_length, "TLV type: %s", val_to_str(tlv_type, le_tlv_type_vals, "Unknown (0x%08x)")); tlv_tree = proto_item_add_subtree(ttlv, ett_atm_lane_lc_tlv); - proto_tree_add_text(tlv_tree, offset, 4, "TLV Type: %s", + proto_tree_add_text(tlv_tree, NullTVB, offset, 4, "TLV Type: %s", val_to_str(tlv_type, le_tlv_type_vals, "Unknown (0x%08x)")); - proto_tree_add_text(tlv_tree, offset+4, 1, "TLV Length: %u", tlv_length); + proto_tree_add_text(tlv_tree, NullTVB, offset+4, 1, "TLV Length: %u", tlv_length); offset += 5+tlv_length; num_tlvs--; } @@ -619,58 +619,58 @@ dissect_atm(const u_char *pd, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_atm, 0, 0, "ATM"); + ti = proto_tree_add_protocol_format(tree, proto_atm, NullTVB, 0, 0, "ATM"); atm_tree = proto_item_add_subtree(ti, ett_atm); - proto_tree_add_text(atm_tree, 0, 0, "AAL: %s", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "AAL: %s", val_to_str(aal_type, aal_vals, "Unknown AAL (%x)")); if (aal_type == ATT_AAL5) { - proto_tree_add_text(atm_tree, 0, 0, "Traffic type: %s", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "Traffic type: %s", val_to_str(hl_type, aal5_hltype_vals, "Unknown AAL5 traffic type (%x)")); switch (hl_type) { case ATT_HL_LLCMX: - proto_tree_add_text(atm_tree, 0, 0, "LLC multiplexed traffic"); + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "LLC multiplexed traffic"); break; case ATT_HL_VCMX: - proto_tree_add_text(atm_tree, 0, 0, "VC multiplexed traffic type: %s", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "VC multiplexed traffic type: %s", val_to_str(fd->pseudo_header.ngsniffer_atm.AppHLType, vcmx_type_vals, "Unknown VCMX traffic type (%x)")); break; case ATT_HL_LANE: - proto_tree_add_text(atm_tree, 0, 0, "LANE traffic type: %s", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "LANE traffic type: %s", val_to_str(fd->pseudo_header.ngsniffer_atm.AppHLType, lane_type_vals, "Unknown LANE traffic type (%x)")); break; case ATT_HL_IPSILON: - proto_tree_add_text(atm_tree, 0, 0, "Ipsilon traffic type: %s", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "Ipsilon traffic type: %s", val_to_str(fd->pseudo_header.ngsniffer_atm.AppHLType, ipsilon_type_vals, "Unknown Ipsilon traffic type (%x)")); break; } } - proto_tree_add_item(atm_tree, hf_atm_vpi, 0, 0, + proto_tree_add_item(atm_tree, hf_atm_vpi, NullTVB, 0, 0, fd->pseudo_header.ngsniffer_atm.Vpi); - proto_tree_add_item(atm_tree, hf_atm_vci, 0, 0, + proto_tree_add_item(atm_tree, hf_atm_vci, NullTVB, 0, 0, fd->pseudo_header.ngsniffer_atm.Vci); switch (fd->pseudo_header.ngsniffer_atm.channel) { case 0: /* Traffic from DCE to DTE. */ - proto_tree_add_text(atm_tree, 0, 0, "Channel: DCE->DTE"); + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "Channel: DCE->DTE"); break; case 1: /* Traffic from DTE to DCE. */ - proto_tree_add_text(atm_tree, 0, 0, "Channel: DTE->DCE"); + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "Channel: DTE->DCE"); break; default: /* Sniffers shouldn't provide anything other than 0 or 1. */ - proto_tree_add_text(atm_tree, 0, 0, "Channel: %u", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "Channel: %u", fd->pseudo_header.ngsniffer_atm.channel); break; } @@ -686,14 +686,14 @@ dissect_atm(const u_char *pd, frame_data *fd, proto_tree *tree) * some other way of indicating whether we have the AAL5 trailer * information. */ - proto_tree_add_text(atm_tree, 0, 0, "Cells: %u", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "Cells: %u", fd->pseudo_header.ngsniffer_atm.cells); if (aal_type == ATT_AAL5) { - proto_tree_add_text(atm_tree, 0, 0, "AAL5 U2U: %u", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "AAL5 U2U: %u", fd->pseudo_header.ngsniffer_atm.aal5t_u2u); - proto_tree_add_text(atm_tree, 0, 0, "AAL5 len: %u", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "AAL5 len: %u", fd->pseudo_header.ngsniffer_atm.aal5t_len); - proto_tree_add_text(atm_tree, 0, 0, "AAL5 checksum: 0x%08X", + proto_tree_add_text(atm_tree, NullTVB, 0, 0, "AAL5 checksum: 0x%08X", fd->pseudo_header.ngsniffer_atm.aal5t_chksum); } } diff --git a/packet-auto_rp.c b/packet-auto_rp.c index 4f76cc8931..91065a327f 100644 --- a/packet-auto_rp.c +++ b/packet-auto_rp.c @@ -4,7 +4,7 @@ * * Heikki Vatiainen * - * $Id: packet-auto_rp.c,v 1.4 2000/04/08 07:07:08 guy Exp $ + * $Id: packet-auto_rp.c,v 1.5 2000/05/11 08:14:57 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -151,24 +151,24 @@ static void dissect_auto_rp(const u_char *pd, int offset, frame_data *fd, proto_ return; } - ti = proto_tree_add_item(tree, proto_auto_rp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_auto_rp, NullTVB, offset, END_OF_FRAME, NULL); auto_rp_tree = proto_item_add_subtree(ti, ett_auto_rp); - tv = proto_tree_add_uint_format(auto_rp_tree, hf_auto_rp_ver_type, offset, 1, + tv = proto_tree_add_uint_format(auto_rp_tree, hf_auto_rp_ver_type, NullTVB, offset, 1, arh.ver_type, "Version: %s, Packet type: %s", val_to_str(hi_nibble(arh.ver_type), auto_rp_ver_vals, "Unknown"), val_to_str(lo_nibble(arh.ver_type), auto_rp_type_vals, "Unknown")); ver_type_tree = proto_item_add_subtree(tv, ett_auto_rp_ver_type); - proto_tree_add_item(ver_type_tree, hf_auto_rp_version, offset, 1, arh.ver_type); - proto_tree_add_item(ver_type_tree, hf_auto_rp_type, offset, 1, arh.ver_type); + proto_tree_add_item(ver_type_tree, hf_auto_rp_version, NullTVB, offset, 1, arh.ver_type); + proto_tree_add_item(ver_type_tree, hf_auto_rp_type, NullTVB, offset, 1, arh.ver_type); offset++; - proto_tree_add_text(auto_rp_tree, offset++, 1, "RP Count: %u", arh.rp_count); - proto_tree_add_text(auto_rp_tree, offset, 2, "Holdtime: %u second%s", + proto_tree_add_text(auto_rp_tree, NullTVB, offset++, 1, "RP Count: %u", arh.rp_count); + proto_tree_add_text(auto_rp_tree, NullTVB, offset, 2, "Holdtime: %u second%s", ntohs(arh.holdtime), plurality(ntohs(arh.holdtime), "", "s")); offset+=2; - proto_tree_add_text(auto_rp_tree, offset, 4, "Reserved: 0x%x", arh.reserved); + proto_tree_add_text(auto_rp_tree, NullTVB, offset, 4, "Reserved: 0x%x", arh.reserved); offset+=4; for (i = 0; i < arh.rp_count; i++) { @@ -262,17 +262,17 @@ static int do_auto_rp_map(const u_char *pd, int offset, frame_data *fd, proto_tr return -1; memcpy(&m, pd+offset, sizeof(struct auto_rp_map_hdr)); - ti = proto_tree_add_uint_format(auto_rp_tree, hf_auto_rp_map, offset, + ti = proto_tree_add_uint_format(auto_rp_tree, hf_auto_rp_map, NullTVB, offset, MIN(sizeof(m) + m.group_count*sizeof(g), END_OF_FRAME), 1, "RP %s: %u group%s", ip_to_str((void *)&m.rp_address), m.group_count, plurality(m.group_count, "", "s")); map_tree = proto_item_add_subtree(ti, ett_auto_rp_map); - proto_tree_add_text(map_tree, offset, 4, "Unicast IP address of this RP: %s (%s)", + proto_tree_add_text(map_tree, NullTVB, offset, 4, "Unicast IP address of this RP: %s (%s)", ip_to_str((void *)&m.rp_address), get_hostname(m.rp_address)); offset +=4; - proto_tree_add_item(map_tree, hf_auto_rp_pim_ver, offset, 1, pd[offset]); + proto_tree_add_item(map_tree, hf_auto_rp_pim_ver, NullTVB, offset, 1, pd[offset]); offset++; - proto_tree_add_text(map_tree, offset, 1, "Number of groups this RP maps to: %u", m.group_count); + proto_tree_add_text(map_tree, NullTVB, offset, 1, "Number of groups this RP maps to: %u", m.group_count); offset++; for (i = 0; i < m.group_count; i++) { @@ -281,17 +281,17 @@ static int do_auto_rp_map(const u_char *pd, int offset, frame_data *fd, proto_tr if (2*sizeof(guint8) + sizeof(guint32) > END_OF_FRAME) /* struct auto_rp_enc_grp_hdr */ return -1; - gi = proto_tree_add_uint_format(map_tree, hf_auto_rp_group, offset, 6, 1, + gi = proto_tree_add_uint_format(map_tree, hf_auto_rp_group, NullTVB, offset, 6, 1, "group %s/%u (%s)", ip_to_str(pd + offset + 2), pd[offset + 1], val_to_str(pd[offset]&AUTO_RP_SIGN_MASK, auto_rp_mask_sign_vals, "")); grp_tree = proto_item_add_subtree(gi, ett_auto_rp_group); - proto_tree_add_item(grp_tree, hf_auto_rp_mask_sgn, offset, 1, pd[offset]); + proto_tree_add_item(grp_tree, hf_auto_rp_mask_sgn, NullTVB, offset, 1, pd[offset]); offset++; - proto_tree_add_text(grp_tree, offset, 1, "Group mask length: %u", pd[offset]); + proto_tree_add_text(grp_tree, NullTVB, offset, 1, "Group mask length: %u", pd[offset]); offset++; - proto_tree_add_text(grp_tree, offset, 4, "Group prefix: %s", ip_to_str(pd + offset)); + proto_tree_add_text(grp_tree, NullTVB, offset, 4, "Group prefix: %s", ip_to_str(pd + offset)); offset +=4; } diff --git a/packet-bgp.c b/packet-bgp.c index 8117c18e02..e7c6438afb 100644 --- a/packet-bgp.c +++ b/packet-bgp.c @@ -2,7 +2,7 @@ * Routines for BGP packet dissection. * Copyright 1999, Jun-ichiro itojun Hagino * - * $Id: packet-bgp.c,v 1.22 2000/04/11 14:21:36 itojun Exp $ + * $Id: packet-bgp.c,v 1.23 2000/05/11 08:14:59 gram Exp $ * * Supports: * RFC1771 A Border Gateway Protocol 4 (BGP-4) @@ -271,19 +271,19 @@ dissect_bgp_open(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) memcpy(&bgpo, &pd[offset], sizeof(bgpo)); hlen = ntohs(bgpo.bgpo_len); - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + offsetof(struct bgp_open, bgpo_version), 1, "Version: %u", bgpo.bgpo_version); - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + offsetof(struct bgp_open, bgpo_myas), 2, "My AS: %u", ntohs(bgpo.bgpo_myas)); - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + offsetof(struct bgp_open, bgpo_holdtime), 2, "Hold time: %u", ntohs(bgpo.bgpo_holdtime)); - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + offsetof(struct bgp_open, bgpo_id), 4, "BGP identifier: %s", ip_to_str((guint8 *)&bgpo.bgpo_id)); - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + offsetof(struct bgp_open, bgpo_optlen), 1, "Optional parameters length: %u %s", bgpo.bgpo_optlen, (bgpo.bgpo_optlen == 1) ? "byte" : "bytes"); @@ -291,7 +291,7 @@ dissect_bgp_open(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (hlen > sizeof(struct bgp_open)) { int openoff; openoff = ((char *)&bgpo.bgpo_optlen - (char *)&bgpo) + 1; - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + openoff, hlen - openoff, "Optional parameters"); } @@ -336,20 +336,20 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, /* check for withdrawals */ len = pntohs(p); - proto_tree_add_text(tree, p - pd, 2, + proto_tree_add_text(tree, NullTVB, p - pd, 2, "Unfeasible routes length: %u %s", len, (len == 1) ? "byte" : "bytes"); p += 2; /* parse unfeasible prefixes */ if (len > 0) { - ti = proto_tree_add_text(tree, p - pd, len, "Withdrawn routes:"); + ti = proto_tree_add_text(tree, NullTVB, p - pd, len, "Withdrawn routes:"); subtree = proto_item_add_subtree(ti, ett_bgp_unfeas); /* parse each prefixes */ end = p + len; while (p < end) { i = decode_prefix4(p, junk_buf, sizeof(junk_buf)); - proto_tree_add_text(subtree, p - pd, i, "%s", junk_buf); + proto_tree_add_text(subtree, NullTVB, p - pd, i, "%s", junk_buf); p += i; } } @@ -359,12 +359,12 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, /* check for advertisements */ len = pntohs(p); - proto_tree_add_text(tree, p - pd, 2, "Total path attribute length: %u %s", + proto_tree_add_text(tree, NullTVB, p - pd, 2, "Total path attribute length: %u %s", len, (len == 1) ? "byte" : "bytes"); /* path attributes */ if (len > 0) { - ti = proto_tree_add_text(tree, p - pd + 2, len, "Path attributes"); + ti = proto_tree_add_text(tree, NullTVB, p - pd + 2, len, "Path attributes"); subtree = proto_item_add_subtree(ti, ett_bgp_attrs); i = 2; while (i < len) { @@ -391,7 +391,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, if (alen != 1) goto default_attribute_top; msg = val_to_str(p[i + aoff], bgpattr_origin, "Unknown"); - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), msg, alen + aoff, (alen + aoff == 1) ? "byte" : @@ -451,7 +451,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, if (alen == 0) strncpy(as_path_str, "empty", 6); - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), as_path_str, alen + aoff, @@ -460,7 +460,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, case BGPTYPE_NEXT_HOP: if (alen != 4) goto default_attribute_top; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), ip_to_str(&p[i + aoff]), alen + aoff, (alen + aoff == 1) @@ -469,7 +469,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, case BGPTYPE_MULTI_EXIT_DISC: if (alen != 4) goto default_attribute_top; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %u (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), pntohl(&p[i + aoff]), alen + aoff, @@ -478,7 +478,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, case BGPTYPE_LOCAL_PREF: if (alen != 4) goto default_attribute_top; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %u (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), pntohl(&p[i + aoff]), alen + aoff, @@ -487,7 +487,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, case BGPTYPE_ATOMIC_AGGREGATE: if (alen != 0) goto default_attribute_top; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), alen + aoff, (alen + aoff == 1) ? "byte" : "bytes"); @@ -495,7 +495,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, case BGPTYPE_AGGREGATOR: if (alen != 6) goto default_attribute_top; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: AS: %u origin: %s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), pntohs(&p[i + aoff]), @@ -540,7 +540,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, /* cleanup end of string */ communities_str[strlen(communities_str) - 1] = '\0'; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), communities_str, alen + aoff, @@ -549,7 +549,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, case BGPTYPE_ORIGINATOR_ID: if (alen != 4) goto default_attribute_top; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), ip_to_str(&p[i + aoff]), alen + aoff, (alen + aoff == 1) @@ -581,7 +581,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, /* cleanup end of string */ cluster_list_str[strlen(cluster_list_str) - 1] = '\0'; - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s: %s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), cluster_list_str, alen + aoff, @@ -589,7 +589,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; default: default_attribute_top: - ti = proto_tree_add_text(subtree, p - pd + i, alen + aoff, + ti = proto_tree_add_text(subtree, NullTVB, p - pd + i, alen + aoff, "%s (%u %s)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), alen + aoff, (alen + aoff == 1) ? "byte" : "bytes"); @@ -622,38 +622,38 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, /* stomp last ", " */ j = strlen(junk_buf); junk_buf[j - 2] = '\0'; - ti = proto_tree_add_text(subtree2, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + offsetof(struct bgp_attr, bgpa_flags), 1, "Flags: 0x%02x (%s)", bgpa.bgpa_flags, junk_buf); subtree3 = proto_item_add_subtree(ti, ett_bgp_attr_flags); /* add flag bitfield subtrees */ - proto_tree_add_text(subtree3, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + offsetof(struct bgp_attr, bgpa_flags), 1, "%s", decode_boolean_bitfield(bgpa.bgpa_flags, BGP_ATTR_FLAG_OPTIONAL, 8, "Optional", "Well-known")); - proto_tree_add_text(subtree3, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + offsetof(struct bgp_attr, bgpa_flags), 1, "%s", decode_boolean_bitfield(bgpa.bgpa_flags, BGP_ATTR_FLAG_TRANSITIVE, 8, "Transitive", "Non-transitive")); - proto_tree_add_text(subtree3, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + offsetof(struct bgp_attr, bgpa_flags), 1, "%s", decode_boolean_bitfield(bgpa.bgpa_flags, BGP_ATTR_FLAG_PARTIAL, 8, "Partial", "Complete")); - proto_tree_add_text(subtree3, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + offsetof(struct bgp_attr, bgpa_flags), 1, "%s", decode_boolean_bitfield(bgpa.bgpa_flags, BGP_ATTR_FLAG_EXTENDED_LENGTH, 8, "Extended length", "Regular length")); - proto_tree_add_text(subtree2, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + offsetof(struct bgp_attr, bgpa_type), 1, "Type code: %s (%u)", val_to_str(bgpa.bgpa_type, bgpattr_type, "Unknown"), bgpa.bgpa_type); - proto_tree_add_text(subtree2, p - pd + i + sizeof(bgpa), + proto_tree_add_text(subtree2, NullTVB, p - pd + i + sizeof(bgpa), aoff - sizeof(bgpa), "Length: %d %s", alen, (alen == 1) ? "byte" : "bytes"); @@ -662,12 +662,12 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, switch (bgpa.bgpa_type) { case BGPTYPE_ORIGIN: if (alen != 1) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Origin (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); } else { msg = val_to_str(p[i + aoff], bgpattr_origin, "Unknown"); - proto_tree_add_text(subtree2, p - pd + i + aoff, 1, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, 1, "Origin: %s (%u)", msg, p[i + aoff]); } break; @@ -678,7 +678,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; } - ti = proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "AS path: %s", as_path_str); as_paths_tree = proto_item_add_subtree(ti, ett_bgp_as_paths); @@ -729,14 +729,14 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, } /* length here means number of ASs, ie length * 2 bytes */ - ti = proto_tree_add_text(as_paths_tree, + ti = proto_tree_add_text(as_paths_tree, NullTVB, q - pd - length * 2 - 2, length * 2 + 2, "AS path segment: %s", as_path_str); as_path_tree = proto_item_add_subtree(ti, ett_bgp_as_paths); - proto_tree_add_text(as_path_tree, q - pd - length * 2 - 2, + proto_tree_add_text(as_path_tree, NullTVB, q - pd - length * 2 - 2, 1, "Path segment type: %s (%u)", val_to_str(type, as_segment_type, "Unknown"), type); - proto_tree_add_text(as_path_tree, q - pd - length * 2 - 1, + proto_tree_add_text(as_path_tree, NullTVB, q - pd - length * 2 - 1, 1, "Path segment length: %u %s", length, (length == 1) ? "AS" : "ASs"); @@ -750,7 +750,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, } as_path_str[strlen(as_path_str) - 1] = '\0'; - proto_tree_add_text(as_path_tree, q - pd - length * 2, + proto_tree_add_text(as_path_tree, NullTVB, q - pd - length * 2, length * 2, "Path segment value: %s", as_path_str); } @@ -758,65 +758,65 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; case BGPTYPE_NEXT_HOP: if (alen != 4) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Next hop (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); } else { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Next hop: %s", ip_to_str(&p[i + aoff])); } break; case BGPTYPE_MULTI_EXIT_DISC: if (alen != 4) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Multiple exit discriminator (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); } else { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Multiple exit discriminator: %u", pntohl(&p[i + aoff])); } break; case BGPTYPE_LOCAL_PREF: if (alen != 4) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Local preference (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); } else { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Local preference: %u", pntohl(&p[i + aoff])); } break; case BGPTYPE_ATOMIC_AGGREGATE: if (alen != 0) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Atomic aggregate (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); } break; case BGPTYPE_AGGREGATOR: if (alen != 6) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Aggregator (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); } else { - proto_tree_add_text(subtree2, p - pd + i + aoff, 2, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, 2, "Aggregator AS: %u", pntohs(&p[i + aoff])); - proto_tree_add_text(subtree2, p - pd + i + aoff + 2, 4, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff + 2, 4, "Aggregator origin: %s", ip_to_str(&p[i + aoff + 2])); } break; case BGPTYPE_COMMUNITIES: if (alen % 4 != 0) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Communities (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); free(communities_str); break; } - ti = proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Communities: %s", communities_str); communities_tree = proto_item_add_subtree(ti, ett_bgp_communities); @@ -832,33 +832,33 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, if (pntohs(q) == FOURHEX0 || pntohs(q) == FOURHEXF) { /* check for well-known communities */ if (pntohl(q) == BGP_COMM_NO_EXPORT) - proto_tree_add_text(communities_tree, + proto_tree_add_text(communities_tree, NullTVB, q - pd - 3 + aoff, 4, "Community: NO_EXPORT (0x%x)", pntohl(q)); else if (pntohl(q) == BGP_COMM_NO_ADVERTISE) - proto_tree_add_text(communities_tree, + proto_tree_add_text(communities_tree, NullTVB, q - pd - 3 + aoff, 4, "Community: NO_ADVERTISE (0x%x)", pntohl(q)); else if (pntohl(q) == BGP_COMM_NO_EXPORT_SUBCONFED) - proto_tree_add_text(communities_tree, + proto_tree_add_text(communities_tree, NullTVB, q - pd - 3 + aoff, 4, "Community: NO_EXPORT_SUBCONFED (0x%x)", pntohl(q)); else - proto_tree_add_text(communities_tree, + proto_tree_add_text(communities_tree, NullTVB, q - pd - 3 + aoff, 4, "Community (reserved): 0x%x", pntohl(q)); } else { - ti = proto_tree_add_text(communities_tree, + ti = proto_tree_add_text(communities_tree, NullTVB, q - pd - 3 + aoff, 4, "Community: %u:%u", pntohs(q), pntohs(q + 2)); community_tree = proto_item_add_subtree(ti, ett_bgp_communities); - proto_tree_add_text(community_tree, q - pd - 3 + aoff, + proto_tree_add_text(community_tree, NullTVB, q - pd - 3 + aoff, 2, "Community AS: %u", pntohs(q)); - proto_tree_add_text(community_tree, q - pd - 1 + aoff, + proto_tree_add_text(community_tree, NullTVB, q - pd - 1 + aoff, 2, "Community value: %u", pntohs(q + 2)); } @@ -869,26 +869,26 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; case BGPTYPE_ORIGINATOR_ID: if (alen != 4) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Originator identifier (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); } else { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Originator identifier: %s", ip_to_str(&p[i + aoff])); } break; case BGPTYPE_MP_REACH_NLRI: af = pntohs(&p[i + aoff]); - proto_tree_add_text(subtree2, p - pd + i + aoff, 2, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, 2, "Address family: %s (%u)", val_to_str(af, afnumber, "Unknown"), af); - proto_tree_add_text(subtree2, p - pd + i + aoff + 2, 1, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff + 2, 1, "Subsequent address family identifier: %s (%u)", val_to_str(p[i + aoff + 2], bgpattr_nlri_safi, p[i + aoff + 2] >= 128 ? "Vendor specific" : "Unknown"), p[i + aoff + 2]); - ti = proto_tree_add_text(subtree2, p - pd + i + aoff + 3, 1, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff + 3, 1, "Next hop network address (%d %s)", p[i + aoff + 3], (p[i + aoff + 3] == 1) ? "byte" : "bytes"); @@ -916,7 +916,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, s = ip6_to_str((struct e_in6_addr *) &p[i + aoff + 4 + j]); } - proto_tree_add_text(subtree3, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + aoff + 4 + j, advance, "Next hop: %s", s); j += advance; @@ -927,17 +927,17 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, aoff += (p[i + aoff + 3] + 4); off = 0; snpa = p[i + aoff]; - ti = proto_tree_add_text(subtree2, p - pd + i + aoff, 1, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, 1, "Subnetwork points of attachment: %u", snpa); off++; if (snpa) subtree3 = proto_item_add_subtree(ti, ett_bgp_mp_reach_nlri); for (/*nothing*/; snpa > 0; snpa--) { - proto_tree_add_text(subtree3, p - pd + i + aoff + off, 1, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + aoff + off, 1, "SNPA length: %u", p[i + aoff + off]); off++; - proto_tree_add_text(subtree3, p - pd + i + aoff + off, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + aoff + off, p[i + aoff + off - 1], "SNPA (%u %s)", p[i + aoff + off - 1], (p[i + aoff + off - 1] == 1) ? "byte" : "bytes"); @@ -946,7 +946,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, alen -= off; aoff += off; - ti = proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Network layer reachability information (%u %s)", alen, (alen == 1) ? "byte" : "bytes"); if (alen) @@ -968,7 +968,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; if (alen < advance) break; - proto_tree_add_text(subtree3, p - pd + i + aoff, advance, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + aoff, advance, "Network layer reachability information: %s", buf); alen -= advance; @@ -978,15 +978,15 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; case BGPTYPE_MP_UNREACH_NLRI: af = pntohs(&p[i + aoff]); - proto_tree_add_text(subtree2, p - pd + i + aoff, 2, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, 2, "Address family: %s (%u)", val_to_str(af, afnumber, "Unknown"), af); - proto_tree_add_text(subtree2, p - pd + i + aoff + 2, 1, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff + 2, 1, "Subsequent address family identifier: %s (%u)", val_to_str(p[i + aoff + 2], bgpattr_nlri_safi, p[i + aoff + 2] >= 128 ? "Vendor specific" : "Unknown"), p[i + aoff + 2]); - ti = proto_tree_add_text(subtree2, p - pd + i + aoff + 3, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff + 3, alen - 3, "Withdrawn routes (%u %s)", alen - 3, (alen - 3 == 1) ? "byte" : "bytes"); @@ -1011,7 +1011,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; if (alen < advance) break; - proto_tree_add_text(subtree3, p - pd + i + aoff, advance, + proto_tree_add_text(subtree3, NullTVB, p - pd + i + aoff, advance, "Withdrawn route: %s", buf); alen -= advance; @@ -1021,14 +1021,14 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, break; case BGPTYPE_CLUSTER_LIST: if (alen % 4 != 0) { - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Cluster list (invalid): %u %s", alen, (alen == 1) ? "byte" : "bytes"); free(cluster_list_str); break; } - ti = proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + ti = proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Cluster list: %s", cluster_list_str); cluster_list_tree = proto_item_add_subtree(ti, ett_bgp_cluster_list); @@ -1040,7 +1040,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, /* snarf each cluster identifier */ while (q < end) { - ti = proto_tree_add_text(cluster_list_tree, + ti = proto_tree_add_text(cluster_list_tree, NullTVB, q - pd - 3 + aoff, 4, "Cluster identifier: %s", ip_to_str(q)); @@ -1050,7 +1050,7 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, free(cluster_list_str); break; default: - proto_tree_add_text(subtree2, p - pd + i + aoff, alen, + proto_tree_add_text(subtree2, NullTVB, p - pd + i + aoff, alen, "Unknown (%d %s)", alen, (alen == 1) ? "byte" : "bytes"); break; @@ -1065,14 +1065,14 @@ dissect_bgp_update(const u_char *pd, int offset, frame_data *fd, /* parse prefixes */ if (len > 0) { - ti = proto_tree_add_text(tree, p - pd, len, + ti = proto_tree_add_text(tree, NullTVB, p - pd, len, "Network layer reachability information: %u %s", len, (len == 1) ? "byte" : "bytes"); subtree = proto_item_add_subtree(ti, ett_bgp_nlri); end = p + len; while (p < end) { i = decode_prefix4(p, junk_buf, sizeof(junk_buf)); - proto_tree_add_text(subtree, p - pd, i, "%s", junk_buf); + proto_tree_add_text(subtree, NullTVB, p - pd, i, "%s", junk_buf); p += i; } } @@ -1095,7 +1095,7 @@ dissect_bgp_notification(const u_char *pd, int offset, frame_data *fd, hlen = ntohs(bgpn.bgpn_len); /* print error code */ - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + offsetof(struct bgp_notification, bgpn_major), 1, "Error code: %s (%u)", val_to_str(bgpn.bgpn_major, bgpnotify_major, "Unknown"), @@ -1110,13 +1110,13 @@ dissect_bgp_notification(const u_char *pd, int offset, frame_data *fd, p = "Unspecified"; else p = "Unknown"; - proto_tree_add_text(tree, + proto_tree_add_text(tree, NullTVB, offset + offsetof(struct bgp_notification, bgpn_minor), 1, "Error subcode: %s (%u)", p, bgpn.bgpn_minor); /* only print if there is optional data */ if (hlen > BGP_MIN_NOTIFICATION_MSG_SIZE) { - proto_tree_add_text(tree, offset + BGP_MIN_NOTIFICATION_MSG_SIZE, + proto_tree_add_text(tree, NullTVB, offset + BGP_MIN_NOTIFICATION_MSG_SIZE, hlen - BGP_MIN_NOTIFICATION_MSG_SIZE, "Data"); } } @@ -1179,7 +1179,7 @@ dissect_bgp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_text(tree, offset, END_OF_FRAME, + ti = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Border Gateway Protocol"); bgp_tree = proto_item_add_subtree(ti, ett_bgp); @@ -1204,10 +1204,10 @@ dissect_bgp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) hlen = ntohs(bgp.bgp_len); typ = val_to_str(bgp.bgp_type, bgptypevals, "Unknown Message"); if (END_OF_FRAME < hlen) { - ti = proto_tree_add_text(bgp_tree, offset + i, END_OF_FRAME, + ti = proto_tree_add_text(bgp_tree, NullTVB, offset + i, END_OF_FRAME, "%s (truncated)", typ); } else { - ti = proto_tree_add_text(bgp_tree, offset + i, hlen, + ti = proto_tree_add_text(bgp_tree, NullTVB, offset + i, hlen, "%s", typ); } /* add a different tree for each message type */ @@ -1229,22 +1229,22 @@ dissect_bgp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) break; } - proto_tree_add_text(bgp1_tree, offset + i, BGP_MARKER_SIZE, + proto_tree_add_text(bgp1_tree, NullTVB, offset + i, BGP_MARKER_SIZE, "Marker: 16 bytes"); if (hlen < BGP_HEADER_SIZE || hlen > BGP_MAX_PACKET_SIZE) { - proto_tree_add_text(bgp1_tree, + proto_tree_add_text(bgp1_tree, NullTVB, offset + i + offsetof(struct bgp, bgp_len), 2, "Length (invalid): %u %s", hlen, (hlen == 1) ? "byte" : "bytes"); } else { - proto_tree_add_text(bgp1_tree, + proto_tree_add_text(bgp1_tree, NullTVB, offset + i + offsetof(struct bgp, bgp_len), 2, "Length: %u %s", hlen, (hlen == 1) ? "byte" : "bytes"); } - proto_tree_add_text(bgp1_tree, + proto_tree_add_text(bgp1_tree, NullTVB, offset + i + offsetof(struct bgp, bgp_type), 1, "Type: %s (%u)", typ, bgp.bgp_type); diff --git a/packet-bootp.c b/packet-bootp.c index 502944291a..bb0c6da5b5 100644 --- a/packet-bootp.c +++ b/packet-bootp.c @@ -2,7 +2,7 @@ * Routines for BOOTP/DHCP packet disassembly * Gilbert Ramirez * - * $Id: packet-bootp.c,v 1.30 2000/04/08 07:07:10 guy Exp $ + * $Id: packet-bootp.c,v 1.31 2000/05/11 08:15:00 gram Exp $ * * The information used comes from: * RFC 2132: DHCP Options and BOOTP Vendor Extensions @@ -222,7 +222,7 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) } } i = i - voff; - proto_tree_add_text(bp_tree, voff, i, "Padding"); + proto_tree_add_text(bp_tree, NullTVB, voff, i, "Padding"); consumed = i; return consumed; @@ -230,7 +230,7 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) case 21: /* one IP address pair */ if (vlen == 8) { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %s/%s", code, text, ip_to_str((guint8*)&pd[voff+2]), ip_to_str((guint8*)&pd[voff+6])); @@ -238,11 +238,11 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) /* > 1 IP address pair. Let's make a sub-tree */ else { - vti = proto_tree_add_text(bp_tree, voff, + vti = proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s", code, text); v_tree = proto_item_add_subtree(vti, ett_bootp_option); for (i = voff + 2; i < voff + consumed; i += 8) { - proto_tree_add_text(v_tree, i, 8, "IP Address/Mask: %s/%s", + proto_tree_add_text(v_tree, NullTVB, i, 8, "IP Address/Mask: %s/%s", ip_to_str((guint8*)&pd[i]), ip_to_str((guint8*)&pd[i+4])); } @@ -253,7 +253,7 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) case 33: /* one IP address pair */ if (vlen == 8) { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %s/%s", code, text, ip_to_str((guint8*)&pd[voff+2]), ip_to_str((guint8*)&pd[voff+6])); @@ -261,11 +261,11 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) /* > 1 IP address pair. Let's make a sub-tree */ else { - vti = proto_tree_add_text(bp_tree, voff, + vti = proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s", code, text); v_tree = proto_item_add_subtree(vti, ett_bootp_option); for (i = voff + 2; i < voff + consumed; i += 8) { - proto_tree_add_text(v_tree, i, 8, + proto_tree_add_text(v_tree, NullTVB, i, 8, "Destination IP Address/Router: %s/%s", ip_to_str((guint8*)&pd[i]), ip_to_str((guint8*)&pd[i+4])); @@ -275,14 +275,14 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) /* Vendor-Specific Info */ case 43: - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s", code, text); break; /* NetBIOS-over-TCP/IP Node Type */ case 46: byte = pd[voff+2]; - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %s", code, text, val_to_str(byte, nbnt_vals, "Unknown (0x%02x)")); @@ -297,23 +297,23 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) else { i = 0; } - proto_tree_add_text(bp_tree, voff, 3, "Option %d: %s = DHCP %s", + proto_tree_add_text(bp_tree, NullTVB, voff, 3, "Option %d: %s = DHCP %s", code, text, opt53_text[i]); break; /* Parameter Request List */ case 55: - vti = proto_tree_add_text(bp_tree, voff, + vti = proto_tree_add_text(bp_tree, NullTVB, voff, vlen + 2, "Option %d: %s", code, text); v_tree = proto_item_add_subtree(vti, ett_bootp_option); for (i = 0; i < vlen; i++) { byte = pd[voff+2+i]; if (byte < NUM_OPT_INFOS) { - proto_tree_add_text(v_tree, voff+2+i, 1, "%d = %s", + proto_tree_add_text(v_tree, NullTVB, voff+2+i, 1, "%d = %s", byte, opt[byte].text); } else { - proto_tree_add_text(vti, voff+2+i, 1, + proto_tree_add_text(vti, NullTVB, voff+2+i, 1, "Unknown Option Code: %d", byte); } } @@ -325,28 +325,28 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) guess that the first is the hwtype, and the last 6 are the hw addr */ if (vlen == 7) { - vti = proto_tree_add_text(bp_tree, voff, + vti = proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s", code, text); v_tree = proto_item_add_subtree(vti, ett_bootp_option); - proto_tree_add_text(v_tree, voff+2, 1, + proto_tree_add_text(v_tree, NullTVB, voff+2, 1, "Hardware type: %s", arphrdtype_to_str(pd[voff+2], "Unknown (0x%02x)")); - proto_tree_add_text(v_tree, voff+3, 6, + proto_tree_add_text(v_tree, NullTVB, voff+3, 6, "Client hardware address: %s", arphrdaddr_to_str((guint8*)&pd[voff+3], 6, pd[voff+2])); } /* otherwise, it's opaque data */ else { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s (%d bytes)", code, text, vlen); } break; /* NetWare/IP options */ case 63: - vti = proto_tree_add_text(bp_tree, voff, + vti = proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s", code, text); v_tree = proto_item_add_subtree(vti, ett_bootp_option); @@ -354,28 +354,28 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) optp=voff+2; while ( optp < (voff+consumed) ) { if (pd[optp] > NUM_O63_SUBOPTS) { - proto_tree_add_text(v_tree,optp,1,"Unknown suboption %d", pd[optp]); + proto_tree_add_text(v_tree, NullTVB,optp,1,"Unknown suboption %d", pd[optp]); optp++; } else { switch (o63_opt[pd[optp]].ft) { case string: - proto_tree_add_text(v_tree, optp, 2, "Suboption %d: %s", pd[optp], o63_opt[pd[optp]].truet); + proto_tree_add_text(v_tree, NullTVB, optp, 2, "Suboption %d: %s", pd[optp], o63_opt[pd[optp]].truet); optp+=2; break; case yes_no: if (pd[optp+2]==1) { - proto_tree_add_text(v_tree, optp, 3, "Suboption %d: %s", pd[optp], o63_opt[pd[optp]].truet); + proto_tree_add_text(v_tree, NullTVB, optp, 3, "Suboption %d: %s", pd[optp], o63_opt[pd[optp]].truet); } else { - proto_tree_add_text(v_tree, optp, 3, "Suboption %d: %s" , pd[optp], o63_opt[pd[optp]].falset); + proto_tree_add_text(v_tree, NullTVB, optp, 3, "Suboption %d: %s" , pd[optp], o63_opt[pd[optp]].falset); } optp+=3; break; case special: - proto_tree_add_text(v_tree, optp, 6, + proto_tree_add_text(v_tree, NullTVB, optp, 6, "Suboption %d: %s = %s" , pd[optp], o63_opt[pd[optp]].truet, ip_to_str((guint8*)&pd[optp+2])); @@ -383,14 +383,14 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) break; case val_u_short: - proto_tree_add_text(v_tree, optp, 3, "Suboption %d: %s = %d",pd[optp], o63_opt[pd[optp]].truet, pd[optp+2]); + proto_tree_add_text(v_tree, NullTVB, optp, 3, "Suboption %d: %s = %d",pd[optp], o63_opt[pd[optp]].truet, pd[optp+2]); optp+=3; break; case ipv4: /* one IP address */ if (pd[optp+1] == 4) { - proto_tree_add_text(v_tree, optp, 6, + proto_tree_add_text(v_tree, NullTVB, optp, 6, "Suboption %d : %s = %s" , pd[optp], o63_opt[pd[optp]].truet, ip_to_str((guint8*)&pd[optp+2])); @@ -399,19 +399,19 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) /* > 1 IP addresses. Let's make a sub-tree */ else { - vti = proto_tree_add_text(v_tree, optp, + vti = proto_tree_add_text(v_tree, NullTVB, optp, pd[optp+1]+2, "Suboption %d: %s", pd[optp], o63_opt[pd[optp]].truet); o63_v_tree = proto_item_add_subtree(vti, ett_bootp_option); for (slask = optp + 2 ; slask < optp+pd[optp+1]; slask += 4) { - proto_tree_add_text(o63_v_tree, slask, 4, "IP Address: %s", + proto_tree_add_text(o63_v_tree, NullTVB, slask, 4, "IP Address: %s", ip_to_str((guint8*)&pd[slask])); } optp=slask; } break; default: - proto_tree_add_text(v_tree,optp,1,"Unknown suboption %d", pd[optp]); + proto_tree_add_text(v_tree, NullTVB,optp,1,"Unknown suboption %d", pd[optp]); optp++; break; } @@ -422,7 +422,7 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) /* End Option */ case 255: - proto_tree_add_text(bp_tree, voff, 1, "End Option"); + proto_tree_add_text(bp_tree, NullTVB, voff, 1, "End Option"); consumed = 1; return consumed; @@ -443,18 +443,18 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) case ipv4: /* one IP address */ if (vlen == 4) { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %s", code, text, ip_to_str((guint8*)&pd[voff+2])); } /* > 1 IP addresses. Let's make a sub-tree */ else { - vti = proto_tree_add_text(bp_tree, voff, + vti = proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s", code, text); v_tree = proto_item_add_subtree(vti, ett_bootp_option); for (i = voff + 2; i < voff + consumed; i += 4) { - proto_tree_add_text(v_tree, i, 4, "IP Address: %s", + proto_tree_add_text(v_tree, NullTVB, i, 4, "IP Address: %s", ip_to_str((guint8*)&pd[i])); } } @@ -464,12 +464,12 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) /* Fix for non null-terminated string supplied by * John Lines */ - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %.*s", code, text, vlen, &pd[voff+2]); break; case opaque: - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s (%d bytes)", code, text, vlen); break; @@ -477,42 +477,42 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) case val_u_short: /* one IP address */ if (vlen == 2) { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %d", code, text, pntohs(&pd[voff+2])); } /* > 1 u_short */ else { - vti = proto_tree_add_text(bp_tree, voff, + vti = proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s", code, text); v_tree = proto_item_add_subtree(vti, ett_bootp_option); for (i = voff + 2; i < voff + consumed; i += 2) { - proto_tree_add_text(v_tree, i, 4, "Value: %d", + proto_tree_add_text(v_tree, NullTVB, i, 4, "Value: %d", pntohs(&pd[i])); } } break; case val_u_long: - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %d", code, text, pntohl(&pd[voff+2])); break; case val_u_byte: - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %d", code, text, pd[voff+2]); break; case toggle: i = pd[voff+2]; if (i != 0 && i != 1) { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = Invalid Value %d", code, text, pd[voff+2]); } else { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %s", code, text, pd[voff+2] == 0 ? "Disabled" : "Enabled"); } @@ -521,12 +521,12 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) case yes_no: i = pd[voff+2]; if (i != 0 && i != 1) { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = Invalid Value %d", code, text, pd[voff+2]); } else { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %s", code, text, pd[voff+2] == 0 ? "No" : "Yes"); } @@ -534,7 +534,7 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) case time_in_secs: time_secs = pntohl(&pd[voff+2]); - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s = %s", code, text, ((time_secs == 0xffffffff) ? "infinity" : @@ -542,12 +542,12 @@ bootp_option(const u_char *pd, proto_tree *bp_tree, int voff, int eoff) break; default: - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Option %d: %s (%d bytes)", code, text, vlen); } } else { - proto_tree_add_text(bp_tree, voff, consumed, + proto_tree_add_text(bp_tree, NullTVB, voff, consumed, "Unknown Option Code: %d (%d bytes)", code, vlen); } @@ -577,45 +577,45 @@ dissect_bootp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_item(tree, proto_bootp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_bootp, NullTVB, offset, END_OF_FRAME, NULL); bp_tree = proto_item_add_subtree(ti, ett_bootp); - proto_tree_add_uint_format(bp_tree, hf_bootp_type, + proto_tree_add_uint_format(bp_tree, hf_bootp_type, NullTVB, offset, 1, pd[offset], pd[offset] == 1 ? "Boot Request" : "Boot Reply"); - proto_tree_add_uint_format(bp_tree, hf_bootp_hw_type, + proto_tree_add_uint_format(bp_tree, hf_bootp_hw_type, NullTVB, offset + 1, 1, pd[offset+1], "Hardware type: %s", arphrdtype_to_str(pd[offset+1], "Unknown (0x%02x)")); - proto_tree_add_item(bp_tree, hf_bootp_hw_len, + proto_tree_add_item(bp_tree, hf_bootp_hw_len, NullTVB, offset + 2, 1, pd[offset+2]); - proto_tree_add_item(bp_tree, hf_bootp_hops, + proto_tree_add_item(bp_tree, hf_bootp_hops, NullTVB, offset + 3, 1, pd[offset+3]); - proto_tree_add_item(bp_tree, hf_bootp_id, + proto_tree_add_item(bp_tree, hf_bootp_id, NullTVB, offset + 4, 4, pntohl(&pd[offset+4])); - proto_tree_add_item(bp_tree, hf_bootp_secs, + proto_tree_add_item(bp_tree, hf_bootp_secs, NullTVB, offset + 8, 2, pntohs(&pd[offset+8])); - proto_tree_add_item(bp_tree, hf_bootp_flag, + proto_tree_add_item(bp_tree, hf_bootp_flag, NullTVB, offset + 10, 2, pntohs(&pd[offset+10]) & 0x8000); memcpy(&ip_addr, &pd[offset+12], sizeof(ip_addr)); - proto_tree_add_item(bp_tree, hf_bootp_ip_client, + proto_tree_add_item(bp_tree, hf_bootp_ip_client, NullTVB, offset + 12, 4, ip_addr); memcpy(&ip_addr, &pd[offset+16], sizeof(ip_addr)); - proto_tree_add_item(bp_tree, hf_bootp_ip_your, + proto_tree_add_item(bp_tree, hf_bootp_ip_your, NullTVB, offset + 16, 4, ip_addr); memcpy(&ip_addr, &pd[offset+20], sizeof(ip_addr)); - proto_tree_add_item(bp_tree, hf_bootp_ip_server, + proto_tree_add_item(bp_tree, hf_bootp_ip_server, NullTVB, offset + 20, 4, ip_addr); memcpy(&ip_addr, &pd[offset+24], sizeof(ip_addr)); - proto_tree_add_item(bp_tree, hf_bootp_ip_relay, + proto_tree_add_item(bp_tree, hf_bootp_ip_relay, NullTVB, offset + 24, 4, ip_addr); - proto_tree_add_bytes_format(bp_tree, hf_bootp_hw_addr, + proto_tree_add_bytes_format(bp_tree, hf_bootp_hw_addr, NullTVB, offset + 28, pd[offset+2], &pd[offset+28], "Client hardware address: %s", @@ -624,14 +624,14 @@ dissect_bootp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* The server host name is optional */ if (pd[offset+44]) { - proto_tree_add_string_format(bp_tree, hf_bootp_server, + proto_tree_add_string_format(bp_tree, hf_bootp_server, NullTVB, offset + 44, 64, &pd[offset+44], "Server host name: %s", &pd[offset+44]); } else { - proto_tree_add_string_format(bp_tree, hf_bootp_server, + proto_tree_add_string_format(bp_tree, hf_bootp_server, NullTVB, offset + 44, 64, &pd[offset+44], "Server host name not given"); @@ -639,28 +639,28 @@ dissect_bootp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Boot file */ if (pd[offset+108]) { - proto_tree_add_string_format(bp_tree, hf_bootp_file, + proto_tree_add_string_format(bp_tree, hf_bootp_file, NullTVB, offset + 108, 128, &pd[offset+108], "Boot file name: %s", &pd[offset+108]); } else { - proto_tree_add_string_format(bp_tree, hf_bootp_file, + proto_tree_add_string_format(bp_tree, hf_bootp_file, NullTVB, offset + 108, 128, &pd[offset+108], "Boot file name not given"); } if (pntohl(&pd[offset+236]) == 0x63825363) { - proto_tree_add_ipv4_format(bp_tree, hf_bootp_cookie, + proto_tree_add_ipv4_format(bp_tree, hf_bootp_cookie, NullTVB, offset + 236, 4, pd[offset+236], "Magic cookie: (OK)"); } else { memcpy(&ip_addr, &pd[offset + 236], sizeof(ip_addr)); - proto_tree_add_item(bp_tree, hf_bootp_cookie, + proto_tree_add_item(bp_tree, hf_bootp_cookie, NullTVB, offset + 236, 4, ip_addr); } diff --git a/packet-bootparams.c b/packet-bootparams.c index fa5a0af688..d644f05cad 100644 --- a/packet-bootparams.c +++ b/packet-bootparams.c @@ -1,7 +1,7 @@ /* packet-bootparams.c * Routines for bootparams dissection * - * $Id: packet-bootparams.c,v 1.9 2000/04/04 06:46:24 guy Exp $ + * $Id: packet-bootparams.c,v 1.10 2000/05/11 08:15:03 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -62,7 +62,7 @@ int dissect_bp_address(const u_char *pd, int offset, frame_data *fd, if ( !BYTES_ARE_IN_FRAME(offset, 1)) return offset; type = pntohl(&pd[offset]); /* type of address */ #if 0 - proto_tree_add_item(tree, hf_bootparams_addresstype, + proto_tree_add_item(tree, hf_bootparams_addresstype, NullTVB, offset, 4, type); #endif offset += 4; @@ -76,7 +76,7 @@ int dissect_bp_address(const u_char *pd, int offset, frame_data *fd, if ( ! BYTES_ARE_IN_FRAME(offset, 16)) return offset; ipaddr = (pd[offset+3]<<24) + (pd[offset+7]<<16) + (pd[offset+11]<<8) + (pd[offset+15]); - proto_tree_add_item(tree, hfindex, + proto_tree_add_item(tree, hfindex, NullTVB, offset, 16, ntohl(ipaddr)); offset += 16; diff --git a/packet-bpdu.c b/packet-bpdu.c index b2da00a988..d72220c159 100644 --- a/packet-bpdu.c +++ b/packet-bpdu.c @@ -1,7 +1,7 @@ /* packet-bpdu.c * Routines for BPDU (Spanning Tree Protocol) disassembly * - * $Id: packet-bpdu.c,v 1.9 2000/04/17 00:32:37 guy Exp $ + * $Id: packet-bpdu.c,v 1.10 2000/05/11 08:15:03 gram Exp $ * * Copyright 1999 Christophe Tronche * @@ -121,10 +121,10 @@ void dissect_bpdu(const u_char *pd, int offset, frame_data *fd, proto_tree *tree protocol_identifier = pntohs(bpdu + BPDU_IDENTIFIER); protocol_version_identifier = (guint8) bpdu[BPDU_VERSION_IDENTIFIER]; - ti = proto_tree_add_protocol_format(tree, proto_bpdu, offset, 35, + ti = proto_tree_add_protocol_format(tree, proto_bpdu, NullTVB, offset, 35, "Spanning Tree Protocol"); bpdu_tree = proto_item_add_subtree(ti, ett_bpdu); - proto_tree_add_uint_format(bpdu_tree, hf_bpdu_proto_id, + proto_tree_add_uint_format(bpdu_tree, hf_bpdu_proto_id, NullTVB, offset + BPDU_IDENTIFIER, 2, protocol_identifier, "Protocol Identifier: 0x%04x (%s)", @@ -132,12 +132,12 @@ void dissect_bpdu(const u_char *pd, int offset, frame_data *fd, proto_tree *tree protocol_identifier == 0 ? "Spanning Tree" : "Unknown Protocol"); - proto_tree_add_item(bpdu_tree, hf_bpdu_version_id, + proto_tree_add_item(bpdu_tree, hf_bpdu_version_id, NullTVB, offset + BPDU_VERSION_IDENTIFIER, 1, protocol_version_identifier); if (protocol_version_identifier != 0) - proto_tree_add_text(bpdu_tree, offset + BPDU_VERSION_IDENTIFIER, 1, " (Warning: this version of packet-bpdu only knows about version = 0)"); - proto_tree_add_uint_format(bpdu_tree, hf_bpdu_type, + proto_tree_add_text(bpdu_tree, NullTVB, offset + BPDU_VERSION_IDENTIFIER, 1, " (Warning: this version of packet-bpdu only knows about version = 0)"); + proto_tree_add_uint_format(bpdu_tree, hf_bpdu_type, NullTVB, offset + BPDU_TYPE, 1, bpdu_type, "BPDU Type: 0x%02x (%s)", @@ -157,45 +157,45 @@ void dissect_bpdu(const u_char *pd, int offset, frame_data *fd, proto_tree *tree hello_time = pntohs(bpdu + BPDU_HELLO_TIME) / 256.0; forward_delay = pntohs(bpdu + BPDU_FORWARD_DELAY) / 256.0; - proto_tree_add_item(bpdu_tree, hf_bpdu_flags, + proto_tree_add_item(bpdu_tree, hf_bpdu_flags, NullTVB, offset + BPDU_FLAGS, 1, flags); if (flags & 0x80) - proto_tree_add_text(bpdu_tree, offset + BPDU_FLAGS, 1, " 1... .... Topology Change Acknowledgment"); + proto_tree_add_text(bpdu_tree, NullTVB, offset + BPDU_FLAGS, 1, " 1... .... Topology Change Acknowledgment"); if (flags & 0x01) - proto_tree_add_text(bpdu_tree, offset + BPDU_FLAGS, 1, " .... ...1 Topology Change"); + proto_tree_add_text(bpdu_tree, NullTVB, offset + BPDU_FLAGS, 1, " .... ...1 Topology Change"); - proto_tree_add_item_hidden(bpdu_tree, hf_bpdu_root_mac, + proto_tree_add_item_hidden(bpdu_tree, hf_bpdu_root_mac, NullTVB, offset + BPDU_ROOT_IDENTIFIER + 2, 6, bpdu + BPDU_ROOT_IDENTIFIER + 2); - proto_tree_add_text(bpdu_tree, + proto_tree_add_text(bpdu_tree, NullTVB, offset + BPDU_ROOT_IDENTIFIER, 8, "Root Identifier: %d / %s", root_identifier_bridge_priority, root_identifier_mac); - proto_tree_add_item(bpdu_tree, hf_bpdu_root_cost, + proto_tree_add_item(bpdu_tree, hf_bpdu_root_cost, NullTVB, offset + BPDU_ROOT_PATH_COST, 4, root_path_cost); - proto_tree_add_text(bpdu_tree, + proto_tree_add_text(bpdu_tree, NullTVB, offset + BPDU_BRIDGE_IDENTIFIER, 8, "Bridge Identifier: %d / %s", bridge_identifier_bridge_priority, bridge_identifier_mac); - proto_tree_add_item_hidden(bpdu_tree, hf_bpdu_bridge_mac, + proto_tree_add_item_hidden(bpdu_tree, hf_bpdu_bridge_mac, NullTVB, offset + BPDU_BRIDGE_IDENTIFIER + 2, 6, bpdu + BPDU_BRIDGE_IDENTIFIER + 2); - proto_tree_add_item(bpdu_tree, hf_bpdu_port_id, + proto_tree_add_item(bpdu_tree, hf_bpdu_port_id, NullTVB, offset + BPDU_PORT_IDENTIFIER, 2, port_identifier); - proto_tree_add_item(bpdu_tree, hf_bpdu_msg_age, + proto_tree_add_item(bpdu_tree, hf_bpdu_msg_age, NullTVB, offset + BPDU_MESSAGE_AGE, 2, message_age); - proto_tree_add_item(bpdu_tree, hf_bpdu_max_age, + proto_tree_add_item(bpdu_tree, hf_bpdu_max_age, NullTVB, offset + BPDU_MAX_AGE, 2, max_age); - proto_tree_add_item(bpdu_tree, hf_bpdu_hello_time, + proto_tree_add_item(bpdu_tree, hf_bpdu_hello_time, NullTVB, offset + BPDU_HELLO_TIME, 2, hello_time); - proto_tree_add_item(bpdu_tree, hf_bpdu_forward_delay, + proto_tree_add_item(bpdu_tree, hf_bpdu_forward_delay, NullTVB, offset + BPDU_FORWARD_DELAY, 2, forward_delay); } diff --git a/packet-cdp.c b/packet-cdp.c index 78adaa24fa..551826fe4f 100644 --- a/packet-cdp.c +++ b/packet-cdp.c @@ -2,7 +2,7 @@ * Routines for the disassembly of the "Cisco Discovery Protocol" * (c) Copyright Hannes R. Boehm * - * $Id: packet-cdp.c,v 1.21 2000/03/12 04:47:36 gram Exp $ + * $Id: packet-cdp.c,v 1.22 2000/05/11 08:15:04 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -107,17 +107,17 @@ dissect_cdp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_INFO, "Cisco Discovery Protocol"); if(tree){ - ti = proto_tree_add_item(tree, proto_cdp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_cdp, NullTVB, offset, END_OF_FRAME, NULL); cdp_tree = proto_item_add_subtree(ti, ett_cdp); /* CDP header */ - proto_tree_add_item(cdp_tree, hf_cdp_version, offset, 1, pd[offset]); + proto_tree_add_item(cdp_tree, hf_cdp_version, NullTVB, offset, 1, pd[offset]); offset += 1; - proto_tree_add_uint_format(cdp_tree, hf_cdp_ttl, offset, 1, + proto_tree_add_uint_format(cdp_tree, hf_cdp_ttl, NullTVB, offset, 1, pntohs(&pd[offset]), "TTL: %u seconds", pd[offset]); offset += 1; - proto_tree_add_uint_format(cdp_tree, hf_cdp_flags, offset, 2, + proto_tree_add_uint_format(cdp_tree, hf_cdp_flags, NullTVB, offset, 2, pd[offset], "Checksum: 0x%04x", pntohs(&pd[offset])); offset += 2; @@ -131,34 +131,34 @@ dissect_cdp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) switch( type ){ case TYPE_DEVICE_ID: /* Device ID */ - tlvi = proto_tree_add_text(cdp_tree, offset, + tlvi = proto_tree_add_text(cdp_tree, NullTVB, offset, length, "Device ID: %s", &pd[offset+4]); tlv_tree = proto_item_add_subtree(tlvi, ett_cdp_tlv); - proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, + proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, NullTVB, offset + TLV_TYPE, 2, type); - proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, + proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, NullTVB, offset + TLV_LENGTH, 2, length); - proto_tree_add_text(tlv_tree, offset + 4, + proto_tree_add_text(tlv_tree, NullTVB, offset + 4, length - 4, "Device ID: %s", &pd[offset+4]); offset+=length; break; case TYPE_ADDRESS: /* Addresses */ - tlvi = proto_tree_add_text(cdp_tree, offset, + tlvi = proto_tree_add_text(cdp_tree, NullTVB, offset, length, "Addresses"); tlv_tree = proto_item_add_subtree(tlvi, ett_cdp_tlv); - proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, + proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, NullTVB, offset + TLV_TYPE, 2, type); - proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, + proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, NullTVB, offset + TLV_LENGTH, 2, length); offset += 4; length -= 4; naddresses = pntohl(&pd[offset]); - proto_tree_add_text(tlv_tree, offset, 4, + proto_tree_add_text(tlv_tree, NullTVB, offset, 4, "Number of addresses: %u", naddresses); offset += 4; length -= 4; @@ -189,29 +189,29 @@ dissect_cdp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) capture work. */ real_length = length + 3; } - tlvi = proto_tree_add_text(cdp_tree, offset, + tlvi = proto_tree_add_text(cdp_tree, NullTVB, offset, real_length, "Port ID: %s", &pd[offset+4]); tlv_tree = proto_item_add_subtree(tlvi, ett_cdp_tlv); - proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, + proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, NullTVB, offset + TLV_TYPE, 2, type); - proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, + proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, NullTVB, offset + TLV_LENGTH, 2, length); - proto_tree_add_text(tlv_tree, offset + 4, + proto_tree_add_text(tlv_tree, NullTVB, offset + 4, real_length - 4, "Sent through Interface: %s", &pd[offset+4]); offset += real_length; break; case TYPE_CAPABILITIES: - tlvi = proto_tree_add_text(cdp_tree, offset, + tlvi = proto_tree_add_text(cdp_tree, NullTVB, offset, length, "Capabilities"); tlv_tree = proto_item_add_subtree(tlvi, ett_cdp_tlv); - proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, + proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, NullTVB, offset + TLV_TYPE, 2, type); - proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, + proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, NullTVB, offset + TLV_LENGTH, 2, length); offset += 4; length -= 4; @@ -220,13 +220,13 @@ dissect_cdp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) offset += length; break; case TYPE_IOS_VERSION: - tlvi = proto_tree_add_text(cdp_tree, offset, + tlvi = proto_tree_add_text(cdp_tree, NullTVB, offset, length, "Software Version"); tlv_tree = proto_item_add_subtree(tlvi, ett_cdp_tlv); - proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, + proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, NullTVB, offset + TLV_TYPE, 2, type); - proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, + proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, NullTVB, offset + TLV_LENGTH, 2, length); add_multi_line_string_to_tree(tlv_tree, offset + 4, length - 4, "Software Version: ", @@ -238,32 +238,32 @@ dissect_cdp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) stringmem = malloc(length); memset(stringmem, '\0', length); memcpy(stringmem, &pd[offset+4], length - 4 ); - tlvi = proto_tree_add_text(cdp_tree, + tlvi = proto_tree_add_text(cdp_tree, NullTVB, offset, length, "Platform: %s", stringmem); tlv_tree = proto_item_add_subtree(tlvi, ett_cdp_tlv); - proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, + proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, NullTVB, offset + TLV_TYPE, 2, type); - proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, + proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, NullTVB, offset + TLV_LENGTH, 2, length); - proto_tree_add_text(tlv_tree, offset + 4, + proto_tree_add_text(tlv_tree, NullTVB, offset + 4, length - 4, "Platform: %s", stringmem); free(stringmem); offset+=length; break; default: - tlvi = proto_tree_add_text(cdp_tree, offset, + tlvi = proto_tree_add_text(cdp_tree, NullTVB, offset, length, "Type: %s, length: %u", type_str, length); tlv_tree = proto_item_add_subtree(tlvi, ett_cdp_tlv); - proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, + proto_tree_add_item(tlv_tree, hf_cdp_tlvtype, NullTVB, offset + TLV_TYPE, 2, type); - proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, + proto_tree_add_item(tlv_tree, hf_cdp_tlvlength, NullTVB, offset + TLV_LENGTH, 2, length); if (length > 4) { - proto_tree_add_text(tlv_tree, + proto_tree_add_text(tlv_tree, NullTVB, offset + 4, length - 4, "Data"); } else return; @@ -298,10 +298,10 @@ dissect_address_tlv(const u_char *pd, int offset, int length, proto_tree *tree) if (length < 1) return -1; - ti = proto_tree_add_notext(tree, offset, length); + ti = proto_tree_add_notext(tree, NullTVB, offset, length); address_tree = proto_item_add_subtree(ti, ett_cdp_address); protocol_type = pd[offset]; - proto_tree_add_text(address_tree, offset, 1, "Protocol type: %s", + proto_tree_add_text(address_tree, NullTVB, offset, 1, "Protocol type: %s", val_to_str(protocol_type, proto_type_vals, "Unknown (0x%02x)")); offset += 1; length -= 1; @@ -311,7 +311,7 @@ dissect_address_tlv(const u_char *pd, int offset, int length, proto_tree *tree) return -1; } protocol_length = pd[offset]; - proto_tree_add_text(address_tree, offset, 1, "Protocol length: %u", + proto_tree_add_text(address_tree, NullTVB, offset, 1, "Protocol length: %u", protocol_length); offset += 1; length -= 1; @@ -319,7 +319,7 @@ dissect_address_tlv(const u_char *pd, int offset, int length, proto_tree *tree) if (length < protocol_length) { proto_item_set_text(ti, "Truncated address"); if (length != 0) { - proto_tree_add_text(address_tree, offset, length, + proto_tree_add_text(address_tree, NullTVB, offset, length, "Protocol: %s (truncated)", bytes_to_str(&pd[offset], length)); } return -1; @@ -332,7 +332,7 @@ dissect_address_tlv(const u_char *pd, int offset, int length, proto_tree *tree) nlpid = -1; if (protocol_str == NULL) protocol_str = bytes_to_str(&pd[offset], protocol_length); - proto_tree_add_text(address_tree, offset, protocol_length, + proto_tree_add_text(address_tree, NullTVB, offset, protocol_length, "Protocol: %s", protocol_str); offset += protocol_length; length -= protocol_length; @@ -342,7 +342,7 @@ dissect_address_tlv(const u_char *pd, int offset, int length, proto_tree *tree) return -1; } address_length = pntohs(&pd[offset]); - proto_tree_add_text(address_tree, offset, 2, "Address length: %u", + proto_tree_add_text(address_tree, NullTVB, offset, 2, "Address length: %u", address_length); offset += 2; length -= 2; @@ -350,7 +350,7 @@ dissect_address_tlv(const u_char *pd, int offset, int length, proto_tree *tree) if (length < address_length) { proto_item_set_text(ti, "Truncated address"); if (length != 0) { - proto_tree_add_text(address_tree, offset, length, + proto_tree_add_text(address_tree, NullTVB, offset, length, "Address: %s (truncated)", bytes_to_str(&pd[offset], length)); } return -1; @@ -381,7 +381,7 @@ dissect_address_tlv(const u_char *pd, int offset, int length, proto_tree *tree) address_str = bytes_to_str(&pd[offset], address_length); } proto_item_set_text(ti, "%s: %s", address_type_str, address_str); - proto_tree_add_text(address_tree, offset, address_length, "%s: %s", + proto_tree_add_text(address_tree, NullTVB, offset, address_length, "%s: %s", address_type_str, address_str); return 2 + protocol_length + 2 + address_length; } @@ -396,34 +396,34 @@ dissect_capabilities(const u_char *pd, int offset, int length, proto_tree *tree) if (length < 4) return; capabilities = pntohl(&pd[offset]); - ti = proto_tree_add_text(tree, offset, length, "Capabilities: 0x%08x", + ti = proto_tree_add_text(tree, NullTVB, offset, length, "Capabilities: 0x%08x", capabilities); capabilities_tree = proto_item_add_subtree(ti, ett_cdp_capabilities); - proto_tree_add_text(capabilities_tree, offset, 4, + proto_tree_add_text(capabilities_tree, NullTVB, offset, 4, decode_boolean_bitfield(capabilities, 0x01, 4*8, "Performs level 3 routing", "Doesn't perform level 3 routing")); - proto_tree_add_text(capabilities_tree, offset, 4, + proto_tree_add_text(capabilities_tree, NullTVB, offset, 4, decode_boolean_bitfield(capabilities, 0x02, 4*8, "Performs level 2 transparent bridging", "Doesn't perform level 2 transparent bridging")); - proto_tree_add_text(capabilities_tree, offset, 4, + proto_tree_add_text(capabilities_tree, NullTVB, offset, 4, decode_boolean_bitfield(capabilities, 0x04, 4*8, "Performs level 2 source-route bridging", "Doesn't perform level 2 source-route bridging")); - proto_tree_add_text(capabilities_tree, offset, 4, + proto_tree_add_text(capabilities_tree, NullTVB, offset, 4, decode_boolean_bitfield(capabilities, 0x08, 4*8, "Performs level 2 switching", "Doesn't perform level 2 switching")); - proto_tree_add_text(capabilities_tree, offset, 4, + proto_tree_add_text(capabilities_tree, NullTVB, offset, 4, decode_boolean_bitfield(capabilities, 0x10, 4*8, "Sends and receives packets for network-layer protocols", "Doesn't send or receive packets for network-layer protocols")); - proto_tree_add_text(capabilities_tree, offset, 4, + proto_tree_add_text(capabilities_tree, NullTVB, offset, 4, decode_boolean_bitfield(capabilities, 0x20, 4*8, "Doesn't forward IGMP Report packets on nonrouter ports", "Forwards IGMP Report packets on nonrouter ports")); - proto_tree_add_text(capabilities_tree, offset, 4, + proto_tree_add_text(capabilities_tree, NullTVB, offset, 4, decode_boolean_bitfield(capabilities, 0x40, 4*8, "Provides level 1 functionality", "Doesn't provide level 1 functionality")); @@ -456,7 +456,7 @@ add_multi_line_string_to_tree(proto_tree *tree, gint start, gint len, line_len = strlen(p); data_len = line_len; } - proto_tree_add_text(tree, start, data_len, "%s%.*s", prefix, + proto_tree_add_text(tree, NullTVB, start, data_len, "%s%.*s", prefix, line_len, p); if (q == NULL) break; diff --git a/packet-cgmp.c b/packet-cgmp.c index f07a6908fd..9155aeb682 100644 --- a/packet-cgmp.c +++ b/packet-cgmp.c @@ -1,7 +1,7 @@ /* packet-cgmp.c * Routines for the disassembly of the Cisco Group Management Protocol * - * $Id: packet-cgmp.c,v 1.1 2000/02/05 05:54:15 guy Exp $ + * $Id: packet-cgmp.c,v 1.2 2000/05/11 08:15:04 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -71,32 +71,32 @@ dissect_cgmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_INFO, "Cisco Group Management Protocol"); if (tree) { - ti = proto_tree_add_item(tree, proto_cgmp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_cgmp, NullTVB, offset, END_OF_FRAME, NULL); cgmp_tree = proto_item_add_subtree(ti, ett_cgmp); - proto_tree_add_item(cgmp_tree, hf_cgmp_version, offset, 1, + proto_tree_add_item(cgmp_tree, hf_cgmp_version, NullTVB, offset, 1, pd[offset]); - proto_tree_add_item(cgmp_tree, hf_cgmp_type, offset, 1, + proto_tree_add_item(cgmp_tree, hf_cgmp_type, NullTVB, offset, 1, pd[offset]); offset += 1; offset += 2; /* skip reserved field */ count = pd[offset]; - proto_tree_add_item(cgmp_tree, hf_cgmp_count, offset, 1, + proto_tree_add_item(cgmp_tree, hf_cgmp_count, NullTVB, offset, 1, count); offset += 1; while (count != 0) { if (!BYTES_ARE_IN_FRAME(offset, 6)) break; - proto_tree_add_item(cgmp_tree, hf_cgmp_gda, offset, 6, + proto_tree_add_item(cgmp_tree, hf_cgmp_gda, NullTVB, offset, 6, &pd[offset]); offset += 6; if (!BYTES_ARE_IN_FRAME(offset, 6)) break; - proto_tree_add_item(cgmp_tree, hf_cgmp_usa, offset, 6, + proto_tree_add_item(cgmp_tree, hf_cgmp_usa, NullTVB, offset, 6, &pd[offset]); offset += 6; diff --git a/packet-clip.c b/packet-clip.c index 18c5ef019a..0760a0c7aa 100644 --- a/packet-clip.c +++ b/packet-clip.c @@ -1,7 +1,7 @@ /* packet-clip.c * Routines for clip packet disassembly * - * $Id: packet-clip.c,v 1.5 2000/02/15 21:02:05 gram Exp $ + * $Id: packet-clip.c,v 1.6 2000/05/11 08:15:04 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -72,9 +72,9 @@ dissect_clip( const u_char *pd, frame_data *fd, proto_tree *tree ) { it treats the packet as being raw IP with no link-level header. */ if(tree) { - ti = proto_tree_add_text(tree, 0, 0, "Classical IP frame" ); + ti = proto_tree_add_text(tree, NullTVB, 0, 0, "Classical IP frame" ); fh_tree = proto_item_add_subtree(ti, ett_clip); - proto_tree_add_text(fh_tree, 0, 0, "No link information available"); + proto_tree_add_text(fh_tree, NullTVB, 0, 0, "No link information available"); } dissect_ip(pd, 0, fd, tree); } diff --git a/packet-clnp.c b/packet-clnp.c index febb4556e8..93b557fcee 100644 --- a/packet-clnp.c +++ b/packet-clnp.c @@ -1,7 +1,7 @@ /* packet-clnp.c * Routines for ISO/OSI network and transport protocol packet disassembly * - * $Id: packet-clnp.c,v 1.6 2000/05/05 09:32:01 guy Exp $ + * $Id: packet-clnp.c,v 1.7 2000/05/11 08:15:04 gram Exp $ * Laurent Deniel * Ralf Schneider * @@ -272,17 +272,17 @@ static int osi_decode_DR(const u_char *pd, int offset, src_ref, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (DR)", tpdu); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); - proto_tree_add_text(cotp_tree, offset + 4, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 2, "Source reference: 0x%04x", src_ref); - proto_tree_add_text(cotp_tree, offset + 6, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 6, 1, "Cause: %s", str); } @@ -364,62 +364,62 @@ static gboolean osi_decode_DT(const u_char *pd, int offset, (fragment)? "(fragment)" : ""); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (DT)", tpdu); if (li != LI_NORMAL_DT_CLASS_01) - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); switch (li) { case LI_NORMAL_DT_WITH_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "TPDU number: 0x%02x (%s)", tpdu_nr, (fragment)? "fragment":"complete"); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NDT, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NDT + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NDT + 2, length, "Checksum: 0x%04x", checksum); break; case LI_NORMAL_DT_WITHOUT_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "TPDU number: 0x%02x (%s)", tpdu_nr, (fragment)? "fragment":"complete"); break; case LI_EXTENDED_DT_WITH_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "TPDU number: 0x%08x (%s)", tpdu_nr, (fragment)? "fragment":"complete"); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EDT, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EDT + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EDT + 2, length, "Checksum: 0x%04x", checksum); break; case LI_EXTENDED_DT_WITHOUT_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "TPDU number: 0x%08x (%s)", tpdu_nr, (fragment)? "fragment":"complete"); break; case LI_NORMAL_DT_CLASS_01 : - proto_tree_add_text(cotp_tree, offset + 2, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 1, "TPDU number: 0x%02x (%s)", tpdu_nr, (fragment)? "fragment":"complete"); @@ -506,48 +506,48 @@ static int osi_decode_ED(const u_char *pd, int offset, tpdu_nr, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (ED)", tpdu); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); switch (li) { case LI_NORMAL_DT_WITH_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "TPDU number: 0x%02x", tpdu_nr); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NDT, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NDT + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NDT + 2, length, "Checksum: 0x%04x", checksum); break; case LI_NORMAL_DT_WITHOUT_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "TPDU number: 0x%02x", tpdu_nr); break; case LI_EXTENDED_DT_WITH_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "TPDU number: 0x%02x", tpdu_nr); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EDT, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EDT + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EDT + 2, length, "Checksum: 0x%04x", checksum); break; case LI_EXTENDED_DT_WITHOUT_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "TPDU number: 0x%02x", tpdu_nr); break; } @@ -587,24 +587,24 @@ static int osi_decode_RJ(const u_char *pd, int offset, tpdu_nr, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (RJ)", tpdu); if (li == LI_NORMAL_RJ) - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "Credit: %u", cdt); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); if (li == LI_NORMAL_RJ) - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "Your TPDU number: 0x%02x", tpdu_nr); else { - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "Your TPDU number: 0x%02x", tpdu_nr); - proto_tree_add_text(cotp_tree, offset + 8, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 8, 2, "Credit: 0x%02x", credit); } } @@ -686,18 +686,18 @@ static int osi_decode_CC(const u_char *pd, int offset, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (%s)", tpdu, (tpdu == CR_TPDU) ? "CR" : "CC"); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); - proto_tree_add_text(cotp_tree, offset + 4, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 2, "Source reference: 0x%04x", src_ref); - proto_tree_add_text(cotp_tree, offset + 6, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 6, 1, "Class option: 0x%02x", class_option); } @@ -712,26 +712,26 @@ static int osi_decode_CC(const u_char *pd, int offset, case VP_CHECKSUM : length = pd[offset + P_VAR_PART_CC + i + 1]; checksum = EXTRACT_SHORT(&pd[offset + P_VAR_PART_CC + i + 2]); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "Checksum: 0x%04x", checksum); i += length + 2; break; case VP_SRC_TSAP : length = pd[offset + P_VAR_PART_CC + i + 1]; - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (src-tsap)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "Calling TSAP: %s", print_tsap(&pd[offset + P_VAR_PART_CC + i + 2], @@ -740,13 +740,13 @@ static int osi_decode_CC(const u_char *pd, int offset, break; case VP_DST_TSAP : length = pd[offset + P_VAR_PART_CC + i + 1]; - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (dst-tsap)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "Called TSAP: %s", print_tsap(&pd[offset + P_VAR_PART_CC + i + 2], @@ -756,13 +756,13 @@ static int osi_decode_CC(const u_char *pd, int offset, case VP_TPDU_SIZE : length = pd[offset + P_VAR_PART_CC + i + 1]; c1 = pd[offset + P_VAR_PART_CC + i + 2] & 0x0F; - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (tpdu-size)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "TPDU size: %u", 2 << c1); i += length + 2; @@ -770,45 +770,45 @@ static int osi_decode_CC(const u_char *pd, int offset, case VP_OPT_SEL : length = pd[offset + P_VAR_PART_CC + i + 1]; c1 = pd[offset + P_VAR_PART_CC + i + 2] & 0x0F; - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (options)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); if (class_option == 1) { if (c1 & 0x8) - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Use of network expedited data"); else - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Non use of network expedited data"); if (c1 & 0x4) - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Use of Receipt confirmation"); else - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Use of explicit AK variant"); } else if (class_option == 4) { if (c1 & 0x2) - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Non-use 16 bit checksum in class 4"); else - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Use 16 bit checksum "); } if (c1 & 0x1) - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Use of transport expedited data transfer\n"); else - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 1, "Non-use of transport expedited data transfer"); i += length + 2; @@ -816,13 +816,13 @@ static int osi_decode_CC(const u_char *pd, int offset, case VP_ACK_TIME : length = pd[offset + P_VAR_PART_CC + i + 1]; s = EXTRACT_SHORT(&pd[offset + P_VAR_PART_CC + i + 2]); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (ack time)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "Ack time (ms): %u", s); i += length + 2; @@ -833,22 +833,22 @@ static int osi_decode_CC(const u_char *pd, int offset, t2 = EXTRACT_LONG(&pd[offset + P_VAR_PART_CC + i + 4]); t3 = EXTRACT_LONG(&pd[offset + P_VAR_PART_CC + i + 7]); t4 = EXTRACT_LONG(&pd[offset + P_VAR_PART_CC + i + 10]); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (throughput)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 4, "Target value / calling-called: %u o/s", t1); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 6, 4, "Minimum / calling-called: %u o/s", t2); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 10, 4, "Target value / called-calling: %u o/s", t3); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 14, 4, "Minimum / called-calling: %u o/s", t4); i += length + 2; @@ -859,22 +859,22 @@ static int osi_decode_CC(const u_char *pd, int offset, s2 = EXTRACT_SHORT(&pd[offset + P_VAR_PART_CC + i + 4]); s3 = EXTRACT_SHORT(&pd[offset + P_VAR_PART_CC + i + 6]); s4 = EXTRACT_SHORT(&pd[offset + P_VAR_PART_CC + i + 8]); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (transit delay)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, 2, "Target value / calling-called: %u ms", s1); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 4, 2, "Minimum / calling-called: %u ms", s2); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 6, 2, "Target value / called-calling: %u ms", s3); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 8, 2, "Minimum / called-calling: %u ms", s4); i += length + 2; @@ -882,13 +882,13 @@ static int osi_decode_CC(const u_char *pd, int offset, case VP_PRIORITY : length = pd[offset + P_VAR_PART_CC + i + 1]; s = EXTRACT_SHORT(&pd[offset + P_VAR_PART_CC + i + 2]); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (priority)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "Priority: %u", s); i += length + 2; @@ -897,13 +897,13 @@ static int osi_decode_CC(const u_char *pd, int offset, case VP_VERSION_NR : length = pd[offset + P_VAR_PART_CC + i + 1]; c1 = pd[offset + P_VAR_PART_CC + i + 2]; - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i, 1, "Parameter code: 0x%02x (version)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "Version: %u", c1); i += length + 2; @@ -915,13 +915,13 @@ static int osi_decode_CC(const u_char *pd, int offset, case VP_PROTO_CLASS : default : /* no decoding */ length = pd[offset + P_VAR_PART_CC + i + 1]; - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 0, 1, "Parameter code: 0x%02x", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_CC + i + 2, length, "Parameter value: "); i += length + 2; @@ -970,24 +970,24 @@ static int osi_decode_DC(const u_char *pd, int offset, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (DC)", tpdu); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); - proto_tree_add_text(cotp_tree, offset + 4, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 2, "Source reference: 0x%04x", src_ref); if (code) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_DC + 0, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_DC + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_DC + 2, 2, "Checksum: 0x%04x", checksum); } @@ -1020,17 +1020,17 @@ static int osi_decode_AK(const u_char *pd, int offset, tpdu_nr, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (AK)", tpdu); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "Credit: %u", cdt); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "Your TPDU number: 0x%02x", tpdu_nr); } @@ -1040,13 +1040,13 @@ static int osi_decode_AK(const u_char *pd, int offset, length = pd[offset + P_VAR_PART_NAK + i + 1]; checksum = EXTRACT_SHORT(&pd[offset + P_VAR_PART_NAK + i + 2]); if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 0, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 2, 2, "Checksum: 0x%04x", checksum); } @@ -1059,22 +1059,22 @@ static int osi_decode_AK(const u_char *pd, int offset, r_seq_nr = EXTRACT_SHORT(&pd[offset + P_VAR_PART_NAK + i + 6]); r_cdt = EXTRACT_SHORT(&pd[offset + P_VAR_PART_NAK + i + 8]); if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 0, 1, "Parameter code: 0x%02x (flow control)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 2, 4, "Lower window edge: 0x%08x", r_lower_window_edge); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 6, 2, "Sequence number: 0x%04x", r_seq_nr); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 8, 2, "Credit: 0x%04x", r_cdt); @@ -1085,13 +1085,13 @@ static int osi_decode_AK(const u_char *pd, int offset, length = pd[offset + P_VAR_PART_NAK + i + 1]; seq_nr = EXTRACT_SHORT(&pd[offset + P_VAR_PART_NAK + i + 2]); if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 0, 1, "Parameter code: 0x%02x (seq number)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 2, 2, "Sequence number: 0x%04x", seq_nr); } @@ -1100,13 +1100,13 @@ static int osi_decode_AK(const u_char *pd, int offset, default : length = pd[offset + P_VAR_PART_NAK + i + 1]; if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 0, 1, "Parameter code: 0x%02x (unknown)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_NAK + i + 2, length, "Parameter value: "); } @@ -1124,17 +1124,17 @@ static int osi_decode_AK(const u_char *pd, int offset, tpdu_nr, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (AK)", tpdu); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "Your TPDU number: 0x%08x", tpdu_nr); - proto_tree_add_text(cotp_tree, offset + 8, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 8, 2, "Credit: 0x%04x", cdt_in_ak); } @@ -1144,13 +1144,13 @@ static int osi_decode_AK(const u_char *pd, int offset, length = pd[offset + P_VAR_PART_EAK + i + 1]; checksum = EXTRACT_SHORT(&pd[offset + P_VAR_PART_EAK + i + 2]); if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 0, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 2, 2, "Checksum: 0x%04x", checksum); } @@ -1163,22 +1163,22 @@ static int osi_decode_AK(const u_char *pd, int offset, r_seq_nr = EXTRACT_SHORT(&pd[offset + P_VAR_PART_EAK + i + 6]); r_cdt = EXTRACT_SHORT(&pd[offset + P_VAR_PART_EAK + i + 8]); if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 0, 1, "Parameter code: 0x%02x (flow control)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 2, 4, "Lower window edge: 0x%08x", r_lower_window_edge); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 6, 2, "Sequence number: 0x%04x", r_seq_nr); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 8, 2, "Credit: 0x%04x", r_cdt); @@ -1189,13 +1189,13 @@ static int osi_decode_AK(const u_char *pd, int offset, length = pd[offset + P_VAR_PART_EAK + i + 1]; seq_nr = EXTRACT_SHORT(&pd[offset + P_VAR_PART_EAK + i + 2]); if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 0, 1, "Parameter code: 0x%02x (seq number)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 2, 2, "Sequence number: 0x%04x", seq_nr); } @@ -1204,13 +1204,13 @@ static int osi_decode_AK(const u_char *pd, int offset, default : length = pd[offset + P_VAR_PART_EAK + i + 1]; if (tree) { - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 0, 1, "Parameter code: 0x%02x (unknown)", code); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 1, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, + proto_tree_add_text(cotp_tree, NullTVB, offset + P_VAR_PART_EAK + i + 2, length, "Parameter value: "); } @@ -1274,42 +1274,42 @@ static int osi_decode_EA(const u_char *pd, int offset, "EA TPDU (%u) dst-ref: 0x%04x", tpdu_nr, dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (EA)", tpdu); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); switch (li) { case LI_NORMAL_EA_WITH_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "Your TPDU number: 0x%02x", tpdu_nr); - proto_tree_add_text(cotp_tree, offset + 5, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 5, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, offset + 6, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 6, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, offset + 7, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 7, 2, "Checksum: 0x%04x", checksum); break; case LI_NORMAL_EA_WITHOUT_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "Your TPDU number: 0x%02x", tpdu_nr); break; case LI_EXTENDED_EA_WITH_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "Your TPDU number: 0x%08x", tpdu_nr); - proto_tree_add_text(cotp_tree, offset + 8, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 8, 1, "Parameter code: 0x%02x (checksum)", code); - proto_tree_add_text(cotp_tree, offset + 9, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 9, 1, "Parameter length: %u", length); - proto_tree_add_text(cotp_tree, offset + 10, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 10, 2, "Checksum: 0x%04x", checksum); break; case LI_EXTENDED_EA_WITHOUT_CHECKSUM : - proto_tree_add_text(cotp_tree, offset + 4, 4, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 4, "Your TPDU number: 0x%08x", tpdu_nr); break; default : @@ -1356,15 +1356,15 @@ static int osi_decode_ER(const u_char *pd, int offset, col_append_fstr(fd, COL_INFO, "ER TPDU dst-ref: 0x%04x", dst_ref); if (tree) { - ti = proto_tree_add_item(tree, proto_cotp, offset, li + 1, NULL); + ti = proto_tree_add_item(tree, proto_cotp, NullTVB, offset, li + 1, NULL); cotp_tree = proto_item_add_subtree(ti, ett_cotp); - proto_tree_add_text(cotp_tree, offset, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset, 1, "Length indicator: %u", li); - proto_tree_add_text(cotp_tree, offset + 1, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 1, 1, "TPDU code: 0x%x (ER)", tpdu); - proto_tree_add_text(cotp_tree, offset + 2, 2, + proto_tree_add_text(cotp_tree, NullTVB, offset + 2, 2, "Destination reference: 0x%04x", dst_ref); - proto_tree_add_text(cotp_tree, offset + 4, 1, + proto_tree_add_text(cotp_tree, NullTVB, offset + 4, 1, "Reject cause: %s", str); } @@ -1509,9 +1509,9 @@ static void dissect_clnp(const u_char *pd, int offset, frame_data *fd, if (check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, "Inactive subset"); if (tree) { - ti = proto_tree_add_item(tree, proto_clnp, offset, 1, NULL); + ti = proto_tree_add_item(tree, proto_clnp, NullTVB, offset, 1, NULL); clnp_tree = proto_item_add_subtree(ti, ett_clnp); - proto_tree_add_uint_format(clnp_tree, hf_clnp_id, offset, 1, + proto_tree_add_uint_format(clnp_tree, hf_clnp_id, NullTVB, offset, 1, clnp.cnf_proto_id, "Inactive subset"); } @@ -1544,27 +1544,27 @@ static void dissect_clnp(const u_char *pd, int offset, frame_data *fd, pdu_type_string = val_to_str(clnp.cnf_type & CNF_TYPE, npdu_type_vals, "Unknown (0x%02x)"); if (tree) { - ti = proto_tree_add_item(tree, proto_clnp, offset, clnp.cnf_hdr_len, NULL); + ti = proto_tree_add_item(tree, proto_clnp, NullTVB, offset, clnp.cnf_hdr_len, NULL); clnp_tree = proto_item_add_subtree(ti, ett_clnp); - proto_tree_add_item(clnp_tree, hf_clnp_id, offset, 1, + proto_tree_add_item(clnp_tree, hf_clnp_id, NullTVB, offset, 1, clnp.cnf_proto_id); - proto_tree_add_item(clnp_tree, hf_clnp_length, offset + 1, 1, + proto_tree_add_item(clnp_tree, hf_clnp_length, NullTVB, offset + 1, 1, clnp.cnf_hdr_len); - proto_tree_add_item(clnp_tree, hf_clnp_version, offset + 2, 1, + proto_tree_add_item(clnp_tree, hf_clnp_version, NullTVB, offset + 2, 1, clnp.cnf_vers); - proto_tree_add_uint_format(clnp_tree, hf_clnp_ttl, offset + 3, 1, + proto_tree_add_uint_format(clnp_tree, hf_clnp_ttl, NullTVB, offset + 3, 1, clnp.cnf_ttl, "Holding Time : %u (%u secs)", clnp.cnf_ttl, clnp.cnf_ttl / 2); - proto_tree_add_uint_format(clnp_tree, hf_clnp_type, offset + 4, 1, + proto_tree_add_uint_format(clnp_tree, hf_clnp_type, NullTVB, offset + 4, 1, clnp.cnf_type, "PDU Type : 0x%02x (%s%s)", clnp.cnf_type, flag_string, pdu_type_string); - proto_tree_add_item(clnp_tree, hf_clnp_pdu_length, offset + 5, 2, + proto_tree_add_item(clnp_tree, hf_clnp_pdu_length, NullTVB, offset + 5, 2, segment_length); - proto_tree_add_uint_format(clnp_tree, hf_clnp_checksum, offset + 7, 2, + proto_tree_add_uint_format(clnp_tree, hf_clnp_checksum, NullTVB, offset + 7, 2, EXTRACT_SHORT(&clnp.cnf_cksum_msb), "Checksum : 0x%04x", EXTRACT_SHORT(&clnp.cnf_cksum_msb)); @@ -1588,15 +1588,15 @@ static void dissect_clnp(const u_char *pd, int offset, frame_data *fd, src_len = pd[offset + dst_len + 1]; if (tree) { - proto_tree_add_item(clnp_tree, hf_clnp_dest_length, offset, 1, + proto_tree_add_item(clnp_tree, hf_clnp_dest_length, NullTVB, offset, 1, dst_len); - proto_tree_add_bytes_format(clnp_tree, hf_clnp_dest, offset + 1 , dst_len, + proto_tree_add_bytes_format(clnp_tree, hf_clnp_dest, NullTVB, offset + 1 , dst_len, &pd[offset + 1], " DA : %s", print_nsap_net(&pd[offset + 1], dst_len)); - proto_tree_add_item(clnp_tree, hf_clnp_src_length, + proto_tree_add_item(clnp_tree, hf_clnp_src_length, NullTVB, offset + 1 + dst_len, 1, src_len); - proto_tree_add_bytes_format(clnp_tree, hf_clnp_src, + proto_tree_add_bytes_format(clnp_tree, hf_clnp_src, NullTVB, offset + dst_len + 2, src_len, &pd[offset + dst_len + 2], " SA : %s", @@ -1622,13 +1622,13 @@ static void dissect_clnp(const u_char *pd, int offset, frame_data *fd, segment_offset = EXTRACT_SHORT(&pd[offset + 2]); if (tree) { - proto_tree_add_text(clnp_tree, offset, 2, + proto_tree_add_text(clnp_tree, NullTVB, offset, 2, "Data unit identifier: %06u", EXTRACT_SHORT(&pd[offset])); - proto_tree_add_text(clnp_tree, offset + 2 , 2, + proto_tree_add_text(clnp_tree, NullTVB, offset + 2 , 2, "Segment offset : %6u", segment_offset); - proto_tree_add_text(clnp_tree, offset + 4 , 2, + proto_tree_add_text(clnp_tree, NullTVB, offset + 4 , 2, "Total length : %6u", EXTRACT_SHORT(&pd[offset + 4])); } @@ -1640,7 +1640,7 @@ static void dissect_clnp(const u_char *pd, int offset, frame_data *fd, if (tree) { /* To do : decode options */ /* - proto_tree_add_text(clnp_tree, offset, + proto_tree_add_text(clnp_tree, NullTVB, offset, clnp.cnf_hdr_len + first_offset - offset, "Options/Data: "); */ diff --git a/packet-data.c b/packet-data.c index fadbf405df..924f263649 100644 --- a/packet-data.c +++ b/packet-data.c @@ -2,7 +2,7 @@ * Routines for raw data (default case) * Gilbert Ramirez * - * $Id: packet-data.c,v 1.15 2000/03/12 04:47:36 gram Exp $ + * $Id: packet-data.c,v 1.16 2000/05/11 08:15:05 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -44,7 +44,7 @@ void dissect_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (IS_DATA_IN_FRAME(offset) && tree) { - proto_tree_add_protocol_format(tree, proto_data, offset, + proto_tree_add_protocol_format(tree, proto_data, NullTVB, offset, END_OF_FRAME, "Data (%d byte%s)", END_OF_FRAME, plurality(END_OF_FRAME, "", "s")); } diff --git a/packet-ddtp.c b/packet-ddtp.c index 44f8e9ddcd..73a8278369 100644 --- a/packet-ddtp.c +++ b/packet-ddtp.c @@ -3,7 +3,7 @@ * see http://ddt.sourceforge.net/ * Olivier Abad * - * $Id: packet-ddtp.c,v 1.2 2000/04/13 21:16:22 oabad Exp $ + * $Id: packet-ddtp.c,v 1.3 2000/05/11 08:15:05 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -110,33 +110,33 @@ dissect_ddtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str (fd, COL_PROTOCOL, "DDTP"); } if (tree) { - ti = proto_tree_add_item(tree, proto_ddtp, offset, + ti = proto_tree_add_item(tree, proto_ddtp, NullTVB, offset, END_OF_FRAME - offset, NULL); ddtp_tree = proto_item_add_subtree(ti, ett_ddtp); if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_item(ddtp_tree, hf_ddtp_version, offset, 4, pntohl(pd+offset)); + proto_tree_add_item(ddtp_tree, hf_ddtp_version, NullTVB, offset, 4, pntohl(pd+offset)); offset += 4; if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_item(ddtp_tree, hf_ddtp_encrypt, offset, 4, pntohl(pd+offset)); + proto_tree_add_item(ddtp_tree, hf_ddtp_encrypt, NullTVB, offset, 4, pntohl(pd+offset)); if (!BYTES_ARE_IN_FRAME(offset+4, 4)) { - proto_tree_add_text(ddtp_tree, offset+4, END_OF_FRAME-offset-4, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset+4, END_OF_FRAME-offset-4, "Frame too short"); return; } - proto_tree_add_item(ddtp_tree, hf_ddtp_hostid, offset+4, 4, pntohl(pd+offset+4)); + proto_tree_add_item(ddtp_tree, hf_ddtp_hostid, NullTVB, offset+4, 4, pntohl(pd+offset+4)); if (pntohl(pd+offset) == DDTP_ENCRYPT_PLAINTEXT) { offset += 8; if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_item(ddtp_tree, hf_ddtp_msgtype, offset, 4, pntohl(pd+offset)); + proto_tree_add_item(ddtp_tree, hf_ddtp_msgtype, NullTVB, offset, 4, pntohl(pd+offset)); switch (pntohl(pd+offset)) { case DDTP_MESSAGE_ERROR : offset += 4; @@ -146,51 +146,51 @@ dissect_ddtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) offset += 4; if (check_col(fd, COL_INFO)) col_add_str (fd, COL_INFO, "Update Query"); if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_item(ddtp_tree, hf_ddtp_opcode, offset, 4, pntohl(pd+offset)); + proto_tree_add_item(ddtp_tree, hf_ddtp_opcode, NullTVB, offset, 4, pntohl(pd+offset)); offset += 4; if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_item(ddtp_tree, hf_ddtp_ipaddr, offset, 4, pntohl(pd+offset)); + proto_tree_add_item(ddtp_tree, hf_ddtp_ipaddr, NullTVB, offset, 4, pntohl(pd+offset)); break; case DDTP_UPDATE_REPLY : offset += 4; if (check_col(fd, COL_INFO)) col_add_str (fd, COL_INFO, "Update Reply"); if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_item(ddtp_tree, hf_ddtp_status, offset, 4, pntohl(pd+offset)); + proto_tree_add_item(ddtp_tree, hf_ddtp_status, NullTVB, offset, 4, pntohl(pd+offset)); break; case DDTP_ALIVE_QUERY : offset += 4; if (check_col(fd, COL_INFO)) col_add_str (fd, COL_INFO, "Alive Query"); if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_text(ddtp_tree, offset, 4, "Dummy : %u", pntohl(pd+offset)); + proto_tree_add_text(ddtp_tree, NullTVB, offset, 4, "Dummy : %u", pntohl(pd+offset)); break; case DDTP_ALIVE_REPLY : offset += 4; if (check_col(fd, COL_INFO)) col_add_str (fd, COL_INFO, "Alive Reply"); if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_text(ddtp_tree, offset, 4, "Dummy : %u", pntohl(pd+offset)); + proto_tree_add_text(ddtp_tree, NullTVB, offset, 4, "Dummy : %u", pntohl(pd+offset)); break; default : if (check_col(fd, COL_INFO)) col_add_str (fd, COL_INFO, "Unknwon type"); if (!BYTES_ARE_IN_FRAME(offset, 4)) { - proto_tree_add_text(ddtp_tree, offset, END_OF_FRAME-offset, "Frame too short"); + proto_tree_add_text(ddtp_tree, NullTVB, offset, END_OF_FRAME-offset, "Frame too short"); return; } - proto_tree_add_text(ddtp_tree, offset, 4, "Unknown type : %u", pntohl(pd+offset)); + proto_tree_add_text(ddtp_tree, NullTVB, offset, 4, "Unknown type : %u", pntohl(pd+offset)); } } } diff --git a/packet-dns.c b/packet-dns.c index a1ebf6b6ee..c8e0dac521 100644 --- a/packet-dns.c +++ b/packet-dns.c @@ -1,7 +1,7 @@ /* packet-dns.c * Routines for DNS packet disassembly * - * $Id: packet-dns.c,v 1.43 2000/04/26 12:01:50 itojun Exp $ + * $Id: packet-dns.c,v 1.44 2000/05/11 08:15:05 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -542,17 +542,17 @@ dissect_dns_query(const u_char *pd, int offset, int dns_data_offset, if (fd != NULL) col_append_fstr(fd, COL_INFO, " %s %s", type_name, name); if (dns_tree != NULL) { - tq = proto_tree_add_text(dns_tree, offset, len, "%s: type %s, class %s", + tq = proto_tree_add_text(dns_tree, NullTVB, offset, len, "%s: type %s, class %s", name, type_name, class_name); q_tree = proto_item_add_subtree(tq, ett_dns_qd); - proto_tree_add_text(q_tree, offset, name_len, "Name: %s", name); + proto_tree_add_text(q_tree, NullTVB, offset, name_len, "Name: %s", name); offset += name_len; - proto_tree_add_text(q_tree, offset, 2, "Type: %s", long_type_name); + proto_tree_add_text(q_tree, NullTVB, offset, 2, "Type: %s", long_type_name); offset += 2; - proto_tree_add_text(q_tree, offset, 2, "Class: %s", class_name); + proto_tree_add_text(q_tree, NullTVB, offset, 2, "Class: %s", class_name); offset += 2; } @@ -568,16 +568,16 @@ add_rr_to_tree(proto_item *trr, int rr_type, int offset, const char *name, proto_tree *rr_tree; rr_tree = proto_item_add_subtree(trr, rr_type); - proto_tree_add_text(rr_tree, offset, namelen, "Name: %s", name); + proto_tree_add_text(rr_tree, NullTVB, offset, namelen, "Name: %s", name); offset += namelen; - proto_tree_add_text(rr_tree, offset, 2, "Type: %s", type_name); + proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Type: %s", type_name); offset += 2; - proto_tree_add_text(rr_tree, offset, 2, "Class: %s", class_name); + proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Class: %s", class_name); offset += 2; - proto_tree_add_text(rr_tree, offset, 4, "Time to live: %s", + proto_tree_add_text(rr_tree, NullTVB, offset, 4, "Time to live: %s", time_secs_to_str(ttl)); offset += 4; - proto_tree_add_text(rr_tree, offset, 2, "Data length: %u", data_len); + proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Data length: %u", data_len); return rr_tree; } @@ -588,22 +588,22 @@ add_opt_rr_to_tree(proto_item *trr, int rr_type, int offset, const char *name, proto_tree *rr_tree; rr_tree = proto_item_add_subtree(trr, rr_type); - proto_tree_add_text(rr_tree, offset, namelen, "Name: %s", name); + proto_tree_add_text(rr_tree, NullTVB, offset, namelen, "Name: %s", name); offset += namelen; - proto_tree_add_text(rr_tree, offset, 2, "Type: %s", type_name); + proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Type: %s", type_name); offset += 2; - proto_tree_add_text(rr_tree, offset, 2, "UDP payload size: %u", + proto_tree_add_text(rr_tree, NullTVB, offset, 2, "UDP payload size: %u", class & 0xffff); offset += 2; - proto_tree_add_text(rr_tree, offset, 1, "Higher bits in extended RCODE: 0x%x", + proto_tree_add_text(rr_tree, NullTVB, offset, 1, "Higher bits in extended RCODE: 0x%x", (ttl >> 24) & 0xff0); offset++; - proto_tree_add_text(rr_tree, offset, 1, "EDNS0 version: %u", + proto_tree_add_text(rr_tree, NullTVB, offset, 1, "EDNS0 version: %u", (ttl >> 16) & 0xff); offset++; - proto_tree_add_text(rr_tree, offset, 2, "Must be zero: 0x%x", ttl & 0xffff); + proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Must be zero: 0x%x", ttl & 0xffff); offset += 2; - proto_tree_add_text(rr_tree, offset, 2, "Data length: %u", data_len); + proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Data length: %u", data_len); return rr_tree; } @@ -676,7 +676,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, if (fd != NULL) col_append_fstr(fd, COL_INFO, " %s", type_name); if (dns_tree != NULL) { - trr = proto_tree_add_notext(dns_tree, offset, + trr = proto_tree_add_notext(dns_tree, NullTVB, offset, (dptr - data_start) + data_len); if (type != T_OPT) { rr_tree = add_rr_to_tree(trr, ett_dns_rr, offset, name, name_len, @@ -705,7 +705,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, proto_item_set_text(trr, "%s: type %s, class %s, addr %s", name, type_name, class_name, ip_to_str((guint8 *)dptr)); - proto_tree_add_text(rr_tree, cur_offset, 4, "Addr: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Addr: %s", ip_to_str((guint8 *)dptr)); } break; @@ -730,7 +730,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, if (dns_tree != NULL) { proto_item_set_text(trr, "%s: type %s, class %s, ns %s", name, type_name, class_name, ns_name); - proto_tree_add_text(rr_tree, cur_offset, ns_name_len, "Name server: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, ns_name_len, "Name server: %s", ns_name); } } @@ -756,7 +756,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, if (dns_tree != NULL) { proto_item_set_text(trr, "%s: type %s, class %s, cname %s", name, type_name, class_name, cname); - proto_tree_add_text(rr_tree, cur_offset, cname_len, "Primary name: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, cname_len, "Primary name: %s", cname); } } @@ -789,7 +789,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, if (dns_tree != NULL) { proto_item_set_text(trr, "%s: type %s, class %s, mname %s", name, type_name, class_name, mname); - proto_tree_add_text(rr_tree, cur_offset, mname_len, "Primary name server: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, mname_len, "Primary name server: %s", mname); cur_offset += mname_len; @@ -798,7 +798,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, rname_len, "Responsible authority's mailbox: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, rname_len, "Responsible authority's mailbox: %s", rname); cur_offset += rname_len; @@ -807,7 +807,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, return 0; } serial = pntohl(&pd[cur_offset]); - proto_tree_add_text(rr_tree, cur_offset, 4, "Serial number: %u", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Serial number: %u", serial); cur_offset += 4; @@ -816,7 +816,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, return 0; } refresh = pntohl(&pd[cur_offset]); - proto_tree_add_text(rr_tree, cur_offset, 4, "Refresh interval: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Refresh interval: %s", time_secs_to_str(refresh)); cur_offset += 4; @@ -825,7 +825,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, return 0; } retry = pntohl(&pd[cur_offset]); - proto_tree_add_text(rr_tree, cur_offset, 4, "Retry interval: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Retry interval: %s", time_secs_to_str(retry)); cur_offset += 4; @@ -834,7 +834,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, return 0; } expire = pntohl(&pd[cur_offset]); - proto_tree_add_text(rr_tree, cur_offset, 4, "Expiration limit: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Expiration limit: %s", time_secs_to_str(expire)); cur_offset += 4; @@ -843,7 +843,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, return 0; } minimum = pntohl(&pd[cur_offset]); - proto_tree_add_text(rr_tree, cur_offset, 4, "Minimum TTL: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Minimum TTL: %s", time_secs_to_str(minimum)); } } @@ -869,7 +869,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, if (dns_tree != NULL) { proto_item_set_text(trr, "%s: type %s, class %s, ptr %s", name, type_name, class_name, pname); - proto_tree_add_text(rr_tree, cur_offset, pname_len, "Domain name: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, pname_len, "Domain name: %s", pname); } break; @@ -902,19 +902,19 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, proto_item_set_text(trr, "%s: type %s, class %s, addr %s", name, type_name, class_name, ip_to_str((guint8 *)dptr)); - proto_tree_add_text(rr_tree, cur_offset, 4, "Addr: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Addr: %s", ip_to_str((guint8 *)dptr)); cur_offset += 4; rr_len -= 4; if (!BYTES_ARE_IN_FRAME(cur_offset, 1)) { /* We ran past the end of the captured data in the packet. */ - proto_tree_add_text(rr_tree, cur_offset, END_OF_FRAME, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, END_OF_FRAME, ""); return 0; } protocol = pd[cur_offset]; - proto_tree_add_text(rr_tree, cur_offset, 1, "Protocol: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Protocol: %s", ipprotostr(protocol)); cur_offset += 1; rr_len -= 1; @@ -923,7 +923,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, while (rr_len != 0) { if (!BYTES_ARE_IN_FRAME(cur_offset, 1)) { /* We ran past the end of the captured data in the packet. */ - proto_tree_add_text(rr_tree, cur_offset, END_OF_FRAME, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, END_OF_FRAME, ""); return 0; } @@ -954,7 +954,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, mask >>= 1; port_num++; } - proto_tree_add_text(rr_tree, cur_offset, 1, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Bits: 0x%02x (%s)", bits, bitnames); } else port_num += 8; @@ -1020,9 +1020,9 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, "%s: type %s, class %s, CPU %.*s, OS %.*s", name, type_name, class_name, cpu_len, &pd[cpu_offset + 1], os_len, &pd[os_offset + 1]); - proto_tree_add_text(rr_tree, cpu_offset, 1 + cpu_len, "CPU: %.*s", + proto_tree_add_text(rr_tree, NullTVB, cpu_offset, 1 + cpu_len, "CPU: %.*s", cpu_len, &pd[cpu_offset + 1]); - proto_tree_add_text(rr_tree, os_offset, 1 + os_len, "OS: %.*s", + proto_tree_add_text(rr_tree, NullTVB, os_offset, 1 + os_len, "OS: %.*s", os_len, &pd[os_offset + 1]); } break; @@ -1061,8 +1061,8 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, proto_item_set_text(trr, "%s: type %s, class %s, preference %u, mx %s", name, type_name, class_name, preference, mx_name); - proto_tree_add_text(rr_tree, cur_offset, 2, "Preference: %u", preference); - proto_tree_add_text(rr_tree, cur_offset + 2, mx_name_len, "Mail exchange: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Preference: %u", preference); + proto_tree_add_text(rr_tree, NullTVB, cur_offset + 2, mx_name_len, "Mail exchange: %s", mx_name); } } @@ -1082,18 +1082,18 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, while (rr_len != 0) { if (!BYTES_ARE_IN_FRAME(txt_offset, 1)) { /* We ran past the end of the captured data in the packet. */ - proto_tree_add_text(rr_tree, txt_offset, END_OF_FRAME, + proto_tree_add_text(rr_tree, NullTVB, txt_offset, END_OF_FRAME, ""); return 0; } txt_len = pd[txt_offset]; if (!BYTES_ARE_IN_FRAME(txt_offset + 1, txt_len)) { /* We ran past the end of the captured data in the packet. */ - proto_tree_add_text(rr_tree, txt_offset, END_OF_FRAME, + proto_tree_add_text(rr_tree, NullTVB, txt_offset, END_OF_FRAME, ""); return 0; } - proto_tree_add_text(rr_tree, txt_offset, 1 + txt_len, + proto_tree_add_text(rr_tree, NullTVB, txt_offset, 1 + txt_len, "Text: %.*s", txt_len, &pd[txt_offset + 1]); txt_offset += 1 + txt_len; rr_len -= 1 + txt_len; @@ -1117,7 +1117,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 2, "Type covered: %s (%s)", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Type covered: %s (%s)", dns_type_name(pntohs(&pd[cur_offset])), dns_long_type_name(pntohs(&pd[cur_offset]))); cur_offset += 2; @@ -1127,7 +1127,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Algorithm: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Algorithm: %s", val_to_str(pd[cur_offset], algo_vals, "Unknown (0x%02X)")); cur_offset += 1; @@ -1137,7 +1137,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Labels: %u", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Labels: %u", pd[cur_offset]); cur_offset += 1; rr_len -= 1; @@ -1146,7 +1146,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 4, "Original TTL: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Original TTL: %s", time_secs_to_str(pntohl(&pd[cur_offset]))); cur_offset += 4; rr_len -= 4; @@ -1157,7 +1157,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, } unixtime.tv_sec = pntohl(&pd[cur_offset]); unixtime.tv_usec = 0; - proto_tree_add_text(rr_tree, cur_offset, 4, "Signature expiration: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Signature expiration: %s", abs_time_to_str(&unixtime)); cur_offset += 4; rr_len -= 4; @@ -1168,7 +1168,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, } unixtime.tv_sec = pntohl(&pd[cur_offset]); unixtime.tv_usec = 0; - proto_tree_add_text(rr_tree, cur_offset, 4, "Time signed: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Time signed: %s", abs_time_to_str(&unixtime)); cur_offset += 4; rr_len -= 4; @@ -1177,7 +1177,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 2, "Key footprint: 0x%04x", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Key footprint: 0x%04x", pntohs(&pd[cur_offset])); cur_offset += 2; rr_len -= 2; @@ -1187,12 +1187,12 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, signer_name_len, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, signer_name_len, "Signer's name: %s", signer_name); cur_offset += signer_name_len; rr_len -= signer_name_len; - proto_tree_add_text(rr_tree, cur_offset, rr_len, "Signature"); + proto_tree_add_text(rr_tree, NullTVB, cur_offset, rr_len, "Signature"); } } break; @@ -1213,43 +1213,43 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, return 0; } flags = pntohs(&pd[cur_offset]); - tf = proto_tree_add_text(rr_tree, cur_offset, 2, "Flags: 0x%04X", flags); + tf = proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Flags: 0x%04X", flags); flags_tree = proto_item_add_subtree(tf, ett_t_key_flags); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x8000, 2*8, "Key prohibited for authentication", "Key allowed for authentication")); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x4000, 2*8, "Key prohibited for confidentiality", "Key allowed for confidentiality")); if ((flags & 0xC000) != 0xC000) { /* We have a key */ - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x2000, 2*8, "Key is experimental or optional", "Key is required")); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x0400, 2*8, "Key is associated with a user", "Key is not associated with a user")); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x0200, 2*8, "Key is associated with the named entity", "Key is not associated with the named entity")); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x0100, 2*8, "This is the zone key for the specified zone", "This is not a zone key")); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x0080, 2*8, "Key is valid for use with IPSEC", "Key is not valid for use with IPSEC")); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_boolean_bitfield(flags, 0x0040, 2*8, "Key is valid for use with MIME security multiparts", "Key is not valid for use with MIME security multiparts")); - proto_tree_add_text(flags_tree, cur_offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, cur_offset, 2, "%s", decode_numeric_bitfield(flags, 0x000F, 2*8, "Signatory = %u")); } @@ -1260,7 +1260,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Protocol: %u", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Protocol: %u", pd[cur_offset]); cur_offset += 1; rr_len -= 1; @@ -1269,13 +1269,13 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Algorithm: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Algorithm: %s", val_to_str(pd[cur_offset], algo_vals, "Unknown (0x%02X)")); cur_offset += 1; rr_len -= 1; - proto_tree_add_text(rr_tree, cur_offset, rr_len, "Public key"); + proto_tree_add_text(rr_tree, NullTVB, cur_offset, rr_len, "Public key"); } } break; @@ -1298,7 +1298,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, proto_item_set_text(trr, "%s: type %s, class %s, addr %s", name, type_name, class_name, ip6_to_str((struct e_in6_addr *)dptr)); - proto_tree_add_text(rr_tree, cur_offset, 16, "Addr: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 16, "Addr: %s", ip6_to_str((struct e_in6_addr *)dptr)); } break; @@ -1313,7 +1313,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Version: %u", pd[cur_offset]); + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Version: %u", pd[cur_offset]); if (pd[cur_offset] == 0) { /* Version 0, the only version RFC 1876 discusses. */ cur_offset++; @@ -1322,7 +1322,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Size: %g m", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Size: %g m", rfc1867_size(pd[cur_offset])); cur_offset++; @@ -1330,7 +1330,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Horizontal precision: %g m", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Horizontal precision: %g m", rfc1867_size(pd[cur_offset])); cur_offset++; @@ -1338,7 +1338,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 1, "Vertical precision: %g m", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Vertical precision: %g m", rfc1867_size(pd[cur_offset])); cur_offset++; @@ -1346,7 +1346,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 4, "Latitude: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Latitude: %s", rfc1867_angle(&pd[cur_offset], "NS")); cur_offset += 4; @@ -1354,7 +1354,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 4, "Longitude: %s", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Longitude: %s", rfc1867_angle(&pd[cur_offset], "EW")); cur_offset += 4; @@ -1362,10 +1362,10 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, /* We ran past the end of the captured data in the packet. */ return 0; } - proto_tree_add_text(rr_tree, cur_offset, 4, "Altitude: %g m", + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Altitude: %g m", (pntohl(&pd[cur_offset]) - 10000000)/100.0); } else - proto_tree_add_text(rr_tree, cur_offset, data_len, "Data"); + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "Data"); } break; } @@ -1397,7 +1397,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, if (dns_tree != NULL) { proto_item_set_text(trr, "%s: type %s, class %s, next domain name %s", name, type_name, class_name, next_domain_name); - proto_tree_add_text(rr_tree, cur_offset, next_domain_name_len, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, next_domain_name_len, "Next domain name: %s", next_domain_name); cur_offset += next_domain_name_len; rr_len -= next_domain_name_len; @@ -1405,7 +1405,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, while (rr_len != 0) { if (!BYTES_ARE_IN_FRAME(cur_offset, 1)) { /* We ran past the end of the captured data in the packet. */ - proto_tree_add_text(rr_tree, cur_offset, END_OF_FRAME, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, END_OF_FRAME, ""); return 0; } @@ -1413,7 +1413,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, mask = 1<<7; for (i = 0; i < 8; i++) { if (bits & mask) { - proto_tree_add_text(rr_tree, cur_offset, 1, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "RR type in bit map: %s (%s)", dns_type_name(rr_type), dns_long_type_name(rr_type)); @@ -1431,7 +1431,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, case T_OPT: if (dns_tree != NULL) { proto_item_set_text(trr, "%s: type %s", name, type_name); - proto_tree_add_text(rr_tree, cur_offset, data_len, "Data"); + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "Data"); } break; @@ -1441,7 +1441,7 @@ dissect_dns_answer(const u_char *pd, int offset, int dns_data_offset, if (dns_tree != NULL) { proto_item_set_text(trr, "%s: type %s, class %s", name, type_name, class_name); - proto_tree_add_text(rr_tree, cur_offset, data_len, "Data"); + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "Data"); } break; } @@ -1461,7 +1461,7 @@ dissect_query_records(const u_char *pd, int cur_off, int dns_data_offset, start_off = cur_off; if (dns_tree) { - ti = proto_tree_add_text(dns_tree, start_off, 0, "Queries"); + ti = proto_tree_add_text(dns_tree, NullTVB, start_off, 0, "Queries"); qatree = proto_item_add_subtree(ti, ett_dns_qry); } while (count-- > 0) { @@ -1488,7 +1488,7 @@ dissect_answer_records(const u_char *pd, int cur_off, int dns_data_offset, start_off = cur_off; if (dns_tree) { - ti = proto_tree_add_text(dns_tree, start_off, 0, name); + ti = proto_tree_add_text(dns_tree, NullTVB, start_off, 0, name); qatree = proto_item_add_subtree(ti, ett_dns_ans); } while (count-- > 0) { @@ -1567,17 +1567,17 @@ dissect_dns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_dns, offset, 4, + ti = proto_tree_add_protocol_format(tree, proto_dns, NullTVB, offset, 4, "Domain Name System (%s)", (flags & F_RESPONSE) ? "response" : "query"); dns_tree = proto_item_add_subtree(ti, ett_dns); if (flags & F_RESPONSE) - proto_tree_add_item_hidden(dns_tree, hf_dns_response, offset, 4, 1); + proto_tree_add_item_hidden(dns_tree, hf_dns_response, NullTVB, offset, 4, 1); else - proto_tree_add_item_hidden(dns_tree, hf_dns_query, offset, 4, 1); + proto_tree_add_item_hidden(dns_tree, hf_dns_query, NullTVB, offset, 4, 1); - proto_tree_add_item(dns_tree, hf_dns_transaction_id, + proto_tree_add_item(dns_tree, hf_dns_transaction_id, NullTVB, offset + DNS_ID, 2, id); strcpy(buf, val_to_str(flags & F_OPCODE, opcode_vals, "Unknown operation")); @@ -1587,66 +1587,66 @@ dissect_dns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) strcat(buf, val_to_str(flags & F_RCODE, rcode_vals, "Unknown error")); } - tf = proto_tree_add_uint_format(dns_tree, hf_dns_flags, + tf = proto_tree_add_uint_format(dns_tree, hf_dns_flags, NullTVB, offset + DNS_FLAGS, 2, flags, "Flags: 0x%04x (%s)", flags, buf); field_tree = proto_item_add_subtree(tf, ett_dns_flags); - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_boolean_bitfield(flags, F_RESPONSE, 2*8, "Response", "Query")); - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_enumerated_bitfield(flags, F_OPCODE, 2*8, opcode_vals, "%s")); if (flags & F_RESPONSE) { - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_boolean_bitfield(flags, F_AUTHORITATIVE, 2*8, "Server is an authority for domain", "Server isn't an authority for domain")); } - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_boolean_bitfield(flags, F_TRUNCATED, 2*8, "Message is truncated", "Message is not truncated")); - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_boolean_bitfield(flags, F_RECDESIRED, 2*8, "Do query recursively", "Don't do query recursively")); if (flags & F_RESPONSE) { - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_boolean_bitfield(flags, F_RECAVAIL, 2*8, "Server can do recursive queries", "Server can't do recursive queries")); - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_boolean_bitfield(flags, F_AUTHENTIC, 2*8, "Answer/authority portion was autenticated by the server", "Answer/authority portion was not autenticated by the server")); } if ((flags & F_RESPONSE) == 0) { - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_boolean_bitfield(flags, F_CHECKDISABLE, 2*8, "Non-authenticated data is acceptable", "Non-authenticated data is unacceptable")); } if (flags & F_RESPONSE) { - proto_tree_add_text(field_tree, offset + DNS_FLAGS, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + DNS_FLAGS, 2, "%s", decode_enumerated_bitfield(flags, F_RCODE, 2*8, rcode_vals, "%s")); } - proto_tree_add_item(dns_tree, hf_dns_count_questions, + proto_tree_add_item(dns_tree, hf_dns_count_questions, NullTVB, offset + DNS_QUEST, 2, quest); - proto_tree_add_item(dns_tree, hf_dns_count_answers, + proto_tree_add_item(dns_tree, hf_dns_count_answers, NullTVB, offset + DNS_ANS, 2, ans); - proto_tree_add_item(dns_tree, hf_dns_count_auth_rr, + proto_tree_add_item(dns_tree, hf_dns_count_auth_rr, NullTVB, offset + DNS_AUTH, 2, auth); - proto_tree_add_item(dns_tree, hf_dns_count_add_rr, + proto_tree_add_item(dns_tree, hf_dns_count_add_rr, NullTVB, offset + DNS_ADD, 2, add); } diff --git a/packet-esis.c b/packet-esis.c index 52ff9d9c0e..2b3980a155 100644 --- a/packet-esis.c +++ b/packet-esis.c @@ -2,7 +2,7 @@ * Routines for ISO/OSI End System to Intermediate System * Routeing Exchange Protocol ISO 9542. * - * $Id: packet-esis.c,v 1.2 2000/04/17 01:36:30 guy Exp $ + * $Id: packet-esis.c,v 1.3 2000/05/11 08:15:07 gram Exp $ * Ralf Schneider * * Ethereal - Network traffic analyzer @@ -166,7 +166,7 @@ esis_dissect_unknown(int offset,guint length,proto_tree *tree,frame_data *fd, } va_start(ap, fmat); - proto_tree_add_text(tree, offset, length, fmat, ap); + proto_tree_add_text(tree, NullTVB, offset, length, fmat, ap); va_end(ap); } @@ -186,14 +186,14 @@ esis_dissect_esh_pdu( u_char len, const u_char *pd, int offset, no_sa = pd[offset]; len -= 1; - ti = proto_tree_add_text( tree, offset++, END_OF_FRAME, + ti = proto_tree_add_text( tree, NullTVB, offset++, END_OF_FRAME, "Number of Source Addresses (SA, Format: NSAP) : %u", no_sa ); esis_area_tree = proto_item_add_subtree( ti, ett_esis_area_addr ); while ( no_sa-- > 0 ) { sal = (int) pd[offset++]; - proto_tree_add_text(esis_area_tree, offset, 1, "SAL: %2u Octets", sal); - proto_tree_add_text(esis_area_tree, offset + 1, sal, + proto_tree_add_text(esis_area_tree, NullTVB, offset, 1, "SAL: %2u Octets", sal); + proto_tree_add_text(esis_area_tree, NullTVB, offset + 1, sal, " SA: %s", print_nsap_net( &pd[offset], sal ) ); offset += sal; len -= ( sal + 1 ); @@ -212,10 +212,10 @@ esis_dissect_ish_pdu( u_char len, const u_char *pd, int offset, offset += ESIS_HDR_FIXED_LENGTH; netl = (int) pd[ offset ]; - proto_tree_add_text( tree, offset, netl + 1, + proto_tree_add_text( tree, NullTVB, offset, netl + 1, "### Network Entity Titel Section ###"); - proto_tree_add_text( tree, offset++, 1, "NETL: %2u Octets", netl); - proto_tree_add_text( tree, offset, netl, + proto_tree_add_text( tree, NullTVB, offset++, 1, "NETL: %2u Octets", netl); + proto_tree_add_text( tree, NullTVB, offset, netl, " NET: %s", print_nsap_net( &pd[offset], netl ) ); offset += netl; len -= ( netl + 1 ); @@ -234,35 +234,35 @@ esis_dissect_redirect_pdu( u_char len, const u_char *pd, int offset, offset += ESIS_HDR_FIXED_LENGTH; tmpl = (int) pd[ offset ]; - proto_tree_add_text( tree, offset, tmpl + 1, + proto_tree_add_text( tree, NullTVB, offset, tmpl + 1, "### Destination Address Section ###" ); - proto_tree_add_text( tree, offset++, 1, "DAL: %2u Octets", tmpl); - proto_tree_add_text( tree, offset, tmpl, + proto_tree_add_text( tree, NullTVB, offset++, 1, "DAL: %2u Octets", tmpl); + proto_tree_add_text( tree, NullTVB, offset, tmpl, " DA : %s", print_nsap_net( &pd[offset], tmpl ) ); offset += tmpl; len -= ( tmpl + 1 ); tmpl = (int) pd[ offset ]; - proto_tree_add_text( tree, offset, tmpl + 1, + proto_tree_add_text( tree, NullTVB, offset, tmpl + 1, "### Subnetwork Address Section ###"); - proto_tree_add_text( tree, offset++, 1, "BSNPAL: %2u Octets", tmpl); - proto_tree_add_text( tree, offset, tmpl, + proto_tree_add_text( tree, NullTVB, offset++, 1, "BSNPAL: %2u Octets", tmpl); + proto_tree_add_text( tree, NullTVB, offset, tmpl, " BSNPA: %s", print_system_id( &pd[offset], tmpl ) ); offset += tmpl; len -= ( tmpl + 1 ); tmpl = (int) pd[ offset ]; if ( 0 == tmpl ) { - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "### No Network Entity Title Section ###" ); offset++; len--; } else { - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "### Network Entity Title Section ###" ); - proto_tree_add_text( tree, offset++, 1, "NETL: %2u Octets", tmpl ); - proto_tree_add_text( tree, offset, tmpl, + proto_tree_add_text( tree, NullTVB, offset++, 1, "NETL: %2u Octets", tmpl ); + proto_tree_add_text( tree, NullTVB, offset, tmpl, " NET: %s", print_nsap_net( &pd[offset], tmpl ) ); offset += tmpl; len -= ( tmpl + 1 ); @@ -319,21 +319,21 @@ dissect_esis(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_item(tree, proto_esis, offset, END_OF_FRAME, NULL ); + ti = proto_tree_add_item(tree, proto_esis, NullTVB, offset, END_OF_FRAME, NULL ); esis_tree = proto_item_add_subtree(ti, ett_esis); - proto_tree_add_item( esis_tree, hf_esis_nlpi, offset, 1, ehdr->esis_nlpi ); - proto_tree_add_item( esis_tree, hf_esis_length, + proto_tree_add_item( esis_tree, hf_esis_nlpi, NullTVB, offset, 1, ehdr->esis_nlpi ); + proto_tree_add_item( esis_tree, hf_esis_length, NullTVB, offset + 1, 1, ehdr->esis_length ); - proto_tree_add_item( esis_tree, hf_esis_version, offset + 2, 1, + proto_tree_add_item( esis_tree, hf_esis_version, NullTVB, offset + 2, 1, ehdr->esis_version ); - proto_tree_add_item( esis_tree, hf_esis_reserved, offset + 3, 1, + proto_tree_add_item( esis_tree, hf_esis_reserved, NullTVB, offset + 3, 1, ehdr->esis_reserved ); pdu_type_string = val_to_str(ehdr->esis_type&OSI_PDU_TYPE_MASK, esis_vals, "Unknown (0x%x)"); - proto_tree_add_uint_format( esis_tree, hf_esis_type, offset + 4, 1, + proto_tree_add_uint_format( esis_tree, hf_esis_type, NullTVB, offset + 4, 1, ehdr->esis_type, pdu_type_format_string, pdu_type_string, @@ -342,13 +342,13 @@ dissect_esis(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { (ehdr->esis_type&BIT_6) ? "1" : "0"); tmp_uint = pntohs( ehdr->esis_holdtime ); - proto_tree_add_uint_format(esis_tree, hf_esis_holdtime, offset + 5, 2, + proto_tree_add_uint_format(esis_tree, hf_esis_holdtime, NullTVB, offset + 5, 2, tmp_uint, "Holding Time : %u seconds", tmp_uint ); tmp_uint = pntohs( ehdr->esis_checksum ); - proto_tree_add_uint_format( esis_tree, hf_esis_checksum, offset + 7, 2, + proto_tree_add_uint_format( esis_tree, hf_esis_checksum, NullTVB, offset + 7, 2, tmp_uint, "Checksum : 0x%x ( %s )", tmp_uint, calc_checksum( &pd[offset], ehdr->esis_length , diff --git a/packet-eth.c b/packet-eth.c index fec20d78e3..3ac60dde14 100644 --- a/packet-eth.c +++ b/packet-eth.c @@ -1,7 +1,7 @@ /* packet-eth.c * Routines for ethernet packet disassembly * - * $Id: packet-eth.c,v 1.32 2000/05/05 09:32:02 guy Exp $ + * $Id: packet-eth.c,v 1.33 2000/05/11 08:15:08 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -195,19 +195,19 @@ dissect_eth(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_eth, offset, ETH_HEADER_SIZE, + ti = proto_tree_add_protocol_format(tree, proto_eth, NullTVB, offset, ETH_HEADER_SIZE, "IEEE 802.3 %s", (ethhdr_type == ETHERNET_802_3 ? "Raw " : "")); fh_tree = proto_item_add_subtree(ti, ett_ieee8023); - proto_tree_add_item(fh_tree, hf_eth_dst, offset+0, 6, &pd[offset+0]); - proto_tree_add_item(fh_tree, hf_eth_src, offset+6, 6, &pd[offset+6]); + proto_tree_add_item(fh_tree, hf_eth_dst, NullTVB, offset+0, 6, &pd[offset+0]); + proto_tree_add_item(fh_tree, hf_eth_src, NullTVB, offset+6, 6, &pd[offset+6]); /* add items for eth.addr filter */ - proto_tree_add_item_hidden(fh_tree, hf_eth_addr, offset + 0, 6, &pd[offset+0]); - proto_tree_add_item_hidden(fh_tree, hf_eth_addr, offset + 6, 6, &pd[offset+6]); + proto_tree_add_item_hidden(fh_tree, hf_eth_addr, NullTVB, offset + 0, 6, &pd[offset+0]); + proto_tree_add_item_hidden(fh_tree, hf_eth_addr, NullTVB, offset + 6, 6, &pd[offset+6]); - proto_tree_add_item(fh_tree, hf_eth_len, offset+12, 2, length); + proto_tree_add_item(fh_tree, hf_eth_len, NullTVB, offset+12, 2, length); } /* Convert the LLC length from the 802.3 header to a total @@ -226,16 +226,16 @@ dissect_eth(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_INFO, "Ethernet II"); if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_eth, offset, ETH_HEADER_SIZE, + ti = proto_tree_add_protocol_format(tree, proto_eth, NullTVB, offset, ETH_HEADER_SIZE, "Ethernet II"); fh_tree = proto_item_add_subtree(ti, ett_ether2); - proto_tree_add_item(fh_tree, hf_eth_dst, offset+0, 6, &pd[offset+0]); - proto_tree_add_item(fh_tree, hf_eth_src, offset+6, 6, &pd[offset+6]); + proto_tree_add_item(fh_tree, hf_eth_dst, NullTVB, offset+0, 6, &pd[offset+0]); + proto_tree_add_item(fh_tree, hf_eth_src, NullTVB, offset+6, 6, &pd[offset+6]); /* add items for eth.addr filter */ - proto_tree_add_item_hidden(fh_tree, hf_eth_addr, offset + 0, 6, &pd[offset+0]); - proto_tree_add_item_hidden(fh_tree, hf_eth_addr, offset + 6, 6, &pd[offset+6]); + proto_tree_add_item_hidden(fh_tree, hf_eth_addr, NullTVB, offset + 0, 6, &pd[offset+0]); + proto_tree_add_item_hidden(fh_tree, hf_eth_addr, NullTVB, offset + 6, 6, &pd[offset+6]); } } offset += ETH_HEADER_SIZE; diff --git a/packet-ethertype.c b/packet-ethertype.c index 5a30edc555..87da8acd43 100644 --- a/packet-ethertype.c +++ b/packet-ethertype.c @@ -1,7 +1,7 @@ /* ethertype.c * Routines for calling the right protocol for the ethertype. * - * $Id: packet-ethertype.c,v 1.2 2000/04/13 19:38:55 gram Exp $ + * $Id: packet-ethertype.c,v 1.3 2000/05/11 08:15:08 gram Exp $ * * Gilbert Ramirez * @@ -95,7 +95,7 @@ ethertype(guint16 etype, int offset, /* Add to proto_tree */ if (tree) { - proto_tree_add_item(fh_tree, item_id, offset - 2, 2, etype); + proto_tree_add_item(fh_tree, item_id, NullTVB, offset - 2, 2, etype); } /* Look for sub-dissector */ diff --git a/packet-fddi.c b/packet-fddi.c index 90f9433558..2e6361f93b 100644 --- a/packet-fddi.c +++ b/packet-fddi.c @@ -3,7 +3,7 @@ * * Laurent Deniel * - * $Id: packet-fddi.c,v 1.29 2000/03/20 22:22:45 gram Exp $ + * $Id: packet-fddi.c,v 1.30 2000/05/11 08:15:08 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -252,7 +252,8 @@ fddifc_to_str(int fc) } } -void dissect_fddi(const u_char *pd, frame_data *fd, proto_tree *tree, +void +dissect_fddi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean bitswapped) { int offset = 0, fc; @@ -261,23 +262,26 @@ void dissect_fddi(const u_char *pd, frame_data *fd, proto_tree *tree, gchar *fc_str; static u_char src[6], dst[6]; u_char src_swapped[6], dst_swapped[6]; + const u_char *pd; + tvbuff_t *next_tvb; - if (!BYTES_ARE_IN_FRAME(0, FDDI_HEADER_SIZE)) { - dissect_data(pd, offset, fd, tree); - return; - } + pinfo->current_proto = "fddi"; + if (check_col(pinfo->fd, COL_PROTOCOL)) + col_add_str(pinfo->fd, COL_PROTOCOL, "FDDI"); + if (check_col(pinfo->fd, COL_INFO)) + col_add_str(pinfo->fd, COL_INFO, fc_str); /* Extract the source and destination addresses, possibly bit-swapping them. */ if (bitswapped) { - swap_mac_addr(dst, (u_char *)&pd[FDDI_P_DHOST]); - swap_mac_addr(src, (u_char *)&pd[FDDI_P_SHOST]); + swap_mac_addr(dst, (u_char *) tvb_get_ptr(tvb, FDDI_P_DHOST, 6)); + swap_mac_addr(src, (u_char *) tvb_get_ptr(tvb, FDDI_P_SHOST, 6)); } else { - memcpy(dst, (u_char *)&pd[FDDI_P_DHOST], sizeof dst); - memcpy(src, (u_char *)&pd[FDDI_P_SHOST], sizeof src); + memcpy(dst, (u_char *) tvb_get_ptr(tvb, FDDI_P_DHOST, 6), sizeof dst); + memcpy(src, (u_char *) tvb_get_ptr(tvb, FDDI_P_SHOST, 6), sizeof src); } - fc = (int) pd[FDDI_P_FC]; + fc = (int) tvb_get_guint8(tvb, FDDI_P_FC); fc_str = fddifc_to_str(fc); /* XXX - copy them to some buffer associated with "pi", rather than @@ -287,34 +291,33 @@ void dissect_fddi(const u_char *pd, frame_data *fd, proto_tree *tree, SET_ADDRESS(&pi.dl_dst, AT_ETHER, 6, &dst[0]); SET_ADDRESS(&pi.dst, AT_ETHER, 6, &dst[0]); - if (check_col(fd, COL_PROTOCOL)) - col_add_str(fd, COL_PROTOCOL, "FDDI"); - if (check_col(fd, COL_INFO)) - col_add_str(fd, COL_INFO, fc_str); - offset = FDDI_HEADER_SIZE; if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_fddi, 0, offset, + ti = proto_tree_add_protocol_format(tree, proto_fddi, tvb, 0, offset, "Fiber Distributed Data Interface, %s", fc_str); - swap_mac_addr(dst_swapped, (u_char*)&pd[FDDI_P_DHOST]); - swap_mac_addr(src_swapped, (u_char*)&pd[FDDI_P_SHOST]); + swap_mac_addr(dst_swapped, (u_char*) tvb_get_ptr(tvb, FDDI_P_DHOST, 6)); + swap_mac_addr(src_swapped, (u_char*) tvb_get_ptr(tvb, FDDI_P_SHOST, 6)); fh_tree = proto_item_add_subtree(ti, ett_fddi); - proto_tree_add_item(fh_tree, hf_fddi_fc, FDDI_P_FC, 1, fc); - proto_tree_add_item(fh_tree, hf_fddi_dst, FDDI_P_DHOST, 6, dst); - proto_tree_add_item(fh_tree, hf_fddi_src, FDDI_P_SHOST, 6, src); - proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, FDDI_P_DHOST, 6, dst); - proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, FDDI_P_SHOST, 6, src); + proto_tree_add_item(fh_tree, hf_fddi_fc, tvb, FDDI_P_FC, 1, fc); + proto_tree_add_item(fh_tree, hf_fddi_dst, tvb, FDDI_P_DHOST, 6, dst); + proto_tree_add_item(fh_tree, hf_fddi_src, tvb, FDDI_P_SHOST, 6, src); + proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, tvb, FDDI_P_DHOST, 6, dst); + proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, tvb, FDDI_P_SHOST, 6, src); /* hide some bit-swapped mac address fields in the proto_tree, just in case */ - proto_tree_add_item_hidden(fh_tree, hf_fddi_dst, FDDI_P_DHOST, 6, dst_swapped); - proto_tree_add_item_hidden(fh_tree, hf_fddi_src, FDDI_P_SHOST, 6, src_swapped); - proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, FDDI_P_DHOST, 6, dst_swapped); - proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, FDDI_P_SHOST, 6, src_swapped); + proto_tree_add_item_hidden(fh_tree, hf_fddi_dst, tvb, FDDI_P_DHOST, 6, dst_swapped); + proto_tree_add_item_hidden(fh_tree, hf_fddi_src, tvb, FDDI_P_SHOST, 6, src_swapped); + proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, tvb, FDDI_P_DHOST, 6, dst_swapped); + proto_tree_add_item_hidden(fh_tree, hf_fddi_addr, tvb, FDDI_P_SHOST, 6, src_swapped); } + + next_tvb = tvb_new_subset(tvb, FDDI_HEADER_SIZE, -1); + tvb_compat(next_tvb, &pd, &offset); + switch (fc) { /* From now, only 802.2 SNAP (Async. LCC frame) is supported */ @@ -335,11 +338,11 @@ void dissect_fddi(const u_char *pd, frame_data *fd, proto_tree *tree, case FDDI_FC_LLC_ASYNC + 13 : case FDDI_FC_LLC_ASYNC + 14 : case FDDI_FC_LLC_ASYNC + 15 : - dissect_llc(pd, offset, fd, tree); + dissect_llc(pd, offset, pinfo->fd, tree); return; default : - dissect_data(pd, offset, fd, tree); + dissect_data(pd, offset, pinfo->fd, tree); return; } /* fc */ diff --git a/packet-fddi.h b/packet-fddi.h index c540c9578d..aa452b821e 100644 --- a/packet-fddi.h +++ b/packet-fddi.h @@ -1,6 +1,6 @@ /* packet-fddi.h * - * $Id: packet-fddi.h,v 1.1 2000/02/15 21:02:09 gram Exp $ + * $Id: packet-fddi.h,v 1.2 2000/05/11 08:15:08 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -23,5 +23,4 @@ */ void capture_fddi(const u_char *, packet_counts *); -void dissect_fddi(const u_char *pd, frame_data *fd, proto_tree *tree, - gboolean bitswapped); +void dissect_fddi(tvbuff_t*, packet_info*, proto_tree*, gboolean bitswapped); diff --git a/packet-ftp.c b/packet-ftp.c index 73626931ba..53399885a0 100644 --- a/packet-ftp.c +++ b/packet-ftp.c @@ -2,7 +2,7 @@ * Routines for ftp packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-ftp.c,v 1.14 2000/04/15 02:26:17 guy Exp $ + * $Id: packet-ftp.c,v 1.15 2000/05/11 08:15:08 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -108,31 +108,31 @@ dissect_ftp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_ftp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ftp, NullTVB, offset, END_OF_FRAME, NULL); ftp_tree = proto_item_add_subtree(ti, ett_ftp); if (pi.match_port == pi.destport) { /* Request */ - proto_tree_add_item_hidden(ftp_tree, hf_ftp_request, + proto_tree_add_item_hidden(ftp_tree, hf_ftp_request, NullTVB, offset, i1, TRUE); - proto_tree_add_item_hidden(ftp_tree, hf_ftp_response, + proto_tree_add_item_hidden(ftp_tree, hf_ftp_response, NullTVB, offset, i1, FALSE); - proto_tree_add_string_format(ftp_tree, hf_ftp_request_command, + proto_tree_add_string_format(ftp_tree, hf_ftp_request_command, NullTVB, offset, i1, rr, "Request: %s", rr); - proto_tree_add_string_format(ftp_tree, hf_ftp_request_data, + proto_tree_add_string_format(ftp_tree, hf_ftp_request_data, NullTVB, offset + i1 + 1, END_OF_FRAME, rd, "Request Arg: %s", rd); } else { - proto_tree_add_item_hidden(ftp_tree, hf_ftp_request, + proto_tree_add_item_hidden(ftp_tree, hf_ftp_request, NullTVB, offset, i1, FALSE); - proto_tree_add_item_hidden(ftp_tree, hf_ftp_response, + proto_tree_add_item_hidden(ftp_tree, hf_ftp_response, NullTVB, offset, i1, TRUE); - proto_tree_add_uint_format(ftp_tree, hf_ftp_response_code, + proto_tree_add_uint_format(ftp_tree, hf_ftp_response_code, NullTVB, offset, i1, atoi(rr), "Response: %s", rr); - proto_tree_add_string_format(ftp_tree, hf_ftp_response_data, + proto_tree_add_string_format(ftp_tree, hf_ftp_response_data, NullTVB, offset + i1 + 1, END_OF_FRAME, rd, "Response Arg: %s", rd); } @@ -156,7 +156,7 @@ dissect_ftpdata(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_text(tree, offset, END_OF_FRAME, + ti = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "FTP Data: %s", format_text(&pd[offset], pi.captured_len - offset)); diff --git a/packet-giop.c b/packet-giop.c index 74328c1e87..8b53eb0c3c 100644 --- a/packet-giop.c +++ b/packet-giop.c @@ -3,7 +3,7 @@ * * Laurent Deniel * - * $Id: packet-giop.c,v 1.12 2000/05/05 09:32:03 guy Exp $ + * $Id: packet-giop.c,v 1.13 2000/05/11 08:15:09 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -270,25 +270,25 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_item(tree, proto_giop, offset, + ti = proto_tree_add_item(tree, proto_giop, NullTVB, offset, GIOP_HEADER_SIZE + message_size, NULL); clnp_tree = proto_item_add_subtree(ti, ett_giop); - proto_tree_add_text(clnp_tree, offset, 4, + proto_tree_add_text(clnp_tree, NullTVB, offset, 4, "Magic number: %s", GIOP_MAGIC); - proto_tree_add_text(clnp_tree, offset + 4, 2, + proto_tree_add_text(clnp_tree, NullTVB, offset + 4, 2, "Version: %d.%d", header.GIOP_version.major, header.GIOP_version.minor); switch(minor_version) { case 1 : - proto_tree_add_text(clnp_tree, offset + 6, 1, + proto_tree_add_text(clnp_tree, NullTVB, offset + 6, 1, "Flags: 0x%02x (%s%s)", header.flags, (big_endian) ? "little" : "big", (header.flags & 0x02) ? " fragment" : ""); break; case 0 : - proto_tree_add_text(clnp_tree, offset + 6, 1, + proto_tree_add_text(clnp_tree, NullTVB, offset + 6, 1, "Byte ordering: %s endian", (big_endian) ? "little" : "big"); break; @@ -298,7 +298,7 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) proto_tree_add_uint_format(clnp_tree, hf_giop_message_type, - offset + 7, 1, + NullTVB, offset + 7, 1, header.message_type, "Message type: %s", (header.message_type == Request) ? "Request" : @@ -312,7 +312,7 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) proto_tree_add_item(clnp_tree, hf_giop_message_size, - offset + 8, 4, + NullTVB, offset + 8, 4, message_size); } /* tree */ @@ -347,12 +347,12 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(context_id), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(context_id), "Context id: %d", context_id); - proto_tree_add_text(clnp_tree, offset + sizeof(context_id), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(context_id), sizeof(sequence_length), "Sequence length: %d", sequence_length); - proto_tree_add_text(clnp_tree, + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(context_id) + sizeof(sequence_length), sequence_length, @@ -382,13 +382,13 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) request_id = (big_endian)? pntohl(&request_1_1.request_id) : pletohl(&request_1_1.request_id); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(request_id), "Request id: %d", request_id); - proto_tree_add_text(clnp_tree, offset + sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(request_id), sizeof(request_1_1.response_expected), "Response expected: %d", response_expected); - proto_tree_add_text(clnp_tree, offset + sizeof(request_id) + + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(request_id) + sizeof(request_1_1.response_expected), 3, "Reserved"); @@ -402,9 +402,9 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) request_id = (big_endian)? pntohl(&request_1_0.request_id) : pletohl(&request_1_0.request_id); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(request_id), "Request id: %d", request_id); - proto_tree_add_text(clnp_tree, offset + sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(request_id), sizeof(request_1_0.response_expected), "Response expected: %d", response_expected); @@ -427,9 +427,9 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) pntohl(&pd[offset]) : pletohl(&pd[offset]); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(sequence_length), "Object key length: %d", sequence_length); - proto_tree_add_text(clnp_tree, offset + sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(sequence_length), sequence_length, "Object key: %s", print_object_key(sequence_length, @@ -450,13 +450,13 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(sequence_length), "Operation length: %d", sequence_length); - proto_tree_add_text(clnp_tree, offset + sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(sequence_length), sequence_length, "Operation: %s", &pd[offset+sizeof(sequence_length)]); - proto_tree_add_text(clnp_tree, offset + + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(sequence_length)+ sequence_length, message_size - END_OF_GIOP_MESSAGE - sizeof(sequence_length) - sequence_length, @@ -481,9 +481,9 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) pntohl(&reply.reply_status) : pletohl(&reply.reply_status); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(request_id), "Request id: %d", request_id); - proto_tree_add_text(clnp_tree, offset + sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(request_id), sizeof(reply_status), "Reply status: %s", reply_status == NO_EXCEPTION ? "no exception" : @@ -519,9 +519,9 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(sequence_length), "Exception length: %d", sequence_length); - proto_tree_add_text(clnp_tree, offset + sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(sequence_length), sequence_length, "Exception id: %s", &pd[offset+sizeof(sequence_length)]); @@ -537,9 +537,9 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) pletohl(&pd[offset+sizeof(minor_code_value)]); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(minor_code_value), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(minor_code_value), "Minor code value: %d", minor_code_value); - proto_tree_add_text(clnp_tree, offset + sizeof(minor_code_value), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(minor_code_value), sizeof(completion_status), "Completion Status: %d", completion_status); @@ -558,9 +558,9 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(sequence_length), "Exception length: %d", sequence_length); - proto_tree_add_text(clnp_tree, offset + sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(sequence_length), sequence_length, "Exception id: %s", &pd[offset+sizeof(sequence_length)]); @@ -578,9 +578,9 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree && sequence_length) { - proto_tree_add_text(clnp_tree, offset, sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(sequence_length), "Exception member length: %d", sequence_length); - proto_tree_add_text(clnp_tree, offset + sizeof(sequence_length), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(sequence_length), sequence_length, "Exception member: %s", &pd[offset+sizeof(sequence_length)]); @@ -592,7 +592,7 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) else { if (tree) { - proto_tree_add_text(clnp_tree, offset, + proto_tree_add_text(clnp_tree, NullTVB, offset, message_size - END_OF_GIOP_MESSAGE, "Reply body: "); } @@ -612,13 +612,13 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) pletohl(&pd[offset+sizeof(request_id)]); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(request_id), "Request id: %d", request_id); - proto_tree_add_text(clnp_tree, offset + sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(request_id), sizeof(sequence_length), "Object key length: %d", sequence_length); offset += sizeof(request_id) + sizeof(sequence_length); - proto_tree_add_text(clnp_tree, + proto_tree_add_text(clnp_tree, NullTVB, offset, sequence_length, "Object key: %s", @@ -641,14 +641,14 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) pntohl(&locate_rep.locate_status) : pletohl(&locate_rep.locate_status); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(request_id), "Request id: %d", request_id); - proto_tree_add_text(clnp_tree, offset + sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset + sizeof(request_id), sizeof(locate_status), "Locate status: %d", locate_status); offset += sizeof(request_id) + sizeof(locate_status); if (locate_status == OBJECT_FORWARD) { - proto_tree_add_text(clnp_tree, offset, + proto_tree_add_text(clnp_tree, NullTVB, offset, message_size - END_OF_GIOP_MESSAGE, "Locate reply body: "); } @@ -670,7 +670,7 @@ dissect_giop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) pntohl(&pd[offset]) : pletohl(&pd[offset]); if (tree) { - proto_tree_add_text(clnp_tree, offset, sizeof(request_id), + proto_tree_add_text(clnp_tree, NullTVB, offset, sizeof(request_id), "Request id: %d", request_id); } diff --git a/packet-gre.c b/packet-gre.c index 985f0aa479..41f9bafaeb 100644 --- a/packet-gre.c +++ b/packet-gre.c @@ -2,7 +2,7 @@ * Routines for the Generic Routing Encapsulation (GRE) protocol * Brad Robel-Forrest * - * $Id: packet-gre.c,v 1.18 2000/04/16 22:46:18 guy Exp $ + * $Id: packet-gre.c,v 1.19 2000/05/11 08:15:09 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -120,7 +120,7 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { break; } - ti = proto_tree_add_protocol_format(tree, proto_gre, offset, len, + ti = proto_tree_add_protocol_format(tree, proto_gre, NullTVB, offset, len, "Generic Routing Encapsulation (%s)", val_to_str(type, typevals, "0x%04X - unknown")); gre_tree = proto_item_add_subtree(ti, ett_gre); @@ -128,19 +128,19 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { offset += sizeof(flags_and_ver); - proto_tree_add_item(gre_tree, hf_gre_proto, offset, sizeof(type), type); + proto_tree_add_item(gre_tree, hf_gre_proto, NullTVB, offset, sizeof(type), type); offset += sizeof(type); if (flags_and_ver & GH_B_C || flags_and_ver & GH_B_R) { guint16 checksum = pntohs(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(checksum), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(checksum), "Checksum: %u", checksum); offset += sizeof(checksum); } if (flags_and_ver & GH_B_C || flags_and_ver & GH_B_R) { guint16 rtoffset = pntohs(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(rtoffset), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(rtoffset), "Offset: %u", rtoffset); offset += sizeof(rtoffset); } @@ -151,18 +151,18 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { guint16 callid; paylen = pntohs(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(paylen), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(paylen), "Payload length: %u", paylen); offset += sizeof(paylen); callid = pntohs(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(callid), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(callid), "Call ID: %u", callid); offset += sizeof(callid); } else { guint32 key = pntohl(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(key), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(key), "Key: %u", key); offset += sizeof(key); } @@ -170,14 +170,14 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (flags_and_ver & GH_B_S) { guint32 seqnum = pntohl(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(seqnum), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(seqnum), "Sequence number: %u", seqnum); offset += sizeof(seqnum); } if (is_ppp && flags_and_ver & GH_P_A) { guint32 acknum = pntohl(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(acknum), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(acknum), "Acknowledgement number: %u", acknum); offset += sizeof(acknum); } @@ -185,13 +185,13 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (flags_and_ver & GH_B_R) { for (;;) { sre_af = pntohs(pd + offset); - proto_tree_add_text(gre_tree, offset, sizeof(guint16), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(guint16), "Address family: %u", sre_af); offset += sizeof(guint16); - proto_tree_add_text(gre_tree, offset, 1, + proto_tree_add_text(gre_tree, NullTVB, offset, 1, "SRE offset: %u", pd[offset++]); sre_length = pd[offset]; - proto_tree_add_text(gre_tree, offset, sizeof(guint8), + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(guint8), "SRE length: %u", sre_length); offset += sizeof(guint8); if (sre_af == 0 && sre_length == 0) @@ -209,7 +209,7 @@ dissect_gre(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { break; case GRE_WCCP: if (is_wccp2) { - proto_tree_add_text(gre_tree, offset, sizeof(guint32), "WCCPv2 Data"); + proto_tree_add_text(gre_tree, NullTVB, offset, sizeof(guint32), "WCCPv2 Data"); offset += 4; } dissect_ip(pd, offset, fd, tree); @@ -228,43 +228,43 @@ add_flags_and_ver(proto_tree *tree, guint16 flags_and_ver, int offset, int is_pp proto_tree * fv_tree; int nbits = sizeof(flags_and_ver) * 8; - ti = proto_tree_add_text(tree, offset, 2, + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Flags and version: %#04x", flags_and_ver); fv_tree = proto_item_add_subtree(ti, ett_gre_flags); - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_boolean_bitfield(flags_and_ver, GH_B_C, nbits, "Checksum", "No checksum")); - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_boolean_bitfield(flags_and_ver, GH_B_R, nbits, "Routing", "No routing")); - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_boolean_bitfield(flags_and_ver, GH_B_K, nbits, "Key", "No key")); - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_boolean_bitfield(flags_and_ver, GH_B_S, nbits, "Sequence number", "No sequence number")); - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_boolean_bitfield(flags_and_ver, GH_B_s, nbits, "Strict source route", "No strict source route")); - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_numeric_bitfield(flags_and_ver, GH_B_RECUR, nbits, "Recursion control: %u")); if (is_ppp) { - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_boolean_bitfield(flags_and_ver, GH_P_A, nbits, "Acknowledgment number", "No acknowledgment number")); - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_numeric_bitfield(flags_and_ver, GH_P_FLAGS, nbits, "Flags: %u")); } else { - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_numeric_bitfield(flags_and_ver, GH_R_FLAGS, nbits, "Flags: %u")); } - proto_tree_add_text(fv_tree, offset, sizeof(flags_and_ver), "%s", + proto_tree_add_text(fv_tree, NullTVB, offset, sizeof(flags_and_ver), "%s", decode_numeric_bitfield(flags_and_ver, GH_B_VER, nbits, "Version: %u")); } diff --git a/packet-h1.c b/packet-h1.c index ec5d8999b5..f42eef18d7 100644 --- a/packet-h1.c +++ b/packet-h1.c @@ -2,7 +2,7 @@ * Routines for Sinec H1 packet disassembly * Gerrit Gehnen * - * $Id: packet-h1.c,v 1.7 2000/05/08 17:19:42 guy Exp $ + * $Id: packet-h1.c,v 1.8 2000/05/11 08:15:09 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -122,11 +122,11 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree) col_add_str (fd, COL_INFO, "S5: "); if (tree) { - ti = proto_tree_add_item (tree, proto_h1, offset, 16, NULL); + ti = proto_tree_add_item (tree, proto_h1, NullTVB, offset, 16, NULL); h1_tree = proto_item_add_subtree (ti, ett_h1); - proto_tree_add_item (h1_tree, hf_h1_header, offset, 2, + proto_tree_add_item (h1_tree, hf_h1_header, NullTVB, offset, 2, pd[offset] * 0x100 + pd[offset + 1]); - proto_tree_add_item (h1_tree, hf_h1_len, offset + 2, 1, + proto_tree_add_item (h1_tree, hf_h1_len, NullTVB, offset + 2, 1, pd[offset + 2]); } @@ -137,15 +137,15 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree) case OPCODE_BLOCK: if (h1_tree) { - ti = proto_tree_add_item (h1_tree, hf_h1_opfield, + ti = proto_tree_add_item (h1_tree, hf_h1_opfield, NullTVB, offset + position, pd[offset + position + 1], pd[offset + position]); opcode_tree = proto_item_add_subtree (ti, ett_opcode); - proto_tree_add_item (opcode_tree, hf_h1_oplen, + proto_tree_add_item (opcode_tree, hf_h1_oplen, NullTVB, offset + position + 1, 1, pd[offset + position + 1]); - proto_tree_add_item (opcode_tree, hf_h1_opcode, + proto_tree_add_item (opcode_tree, hf_h1_opcode, NullTVB, offset + position + 2, 1, pd[offset + position + 2]); } @@ -159,25 +159,25 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree) case REQUEST_BLOCK: if (h1_tree) { - ti = proto_tree_add_item (h1_tree, hf_h1_requestblock, + ti = proto_tree_add_item (h1_tree, hf_h1_requestblock, NullTVB, offset + position, pd[offset + position + 1], pd[offset + position]); org_tree = proto_item_add_subtree (ti, ett_org); - proto_tree_add_item (org_tree, hf_h1_requestlen, + proto_tree_add_item (org_tree, hf_h1_requestlen, NullTVB, offset + position + 1, 1, pd[offset + position + 1]); - proto_tree_add_item (org_tree, hf_h1_org, + proto_tree_add_item (org_tree, hf_h1_org, NullTVB, offset + position + 2, 1, pd[offset + position + 2]); - proto_tree_add_item (org_tree, hf_h1_dbnr, + proto_tree_add_item (org_tree, hf_h1_dbnr, NullTVB, offset + position + 3, 1, pd[offset + position + 3]); - proto_tree_add_item (org_tree, hf_h1_dwnr, + proto_tree_add_item (org_tree, hf_h1_dwnr, NullTVB, offset + position + 4, 2, pd[offset + position + 4] * 0x100 + pd[offset + position + 5]); - proto_tree_add_item (org_tree, hf_h1_dlen, + proto_tree_add_item (org_tree, hf_h1_dlen, NullTVB, offset + position + 6, 2, pd[offset + position + 6] * 0x100 + pd[offset + position + 7]); @@ -199,15 +199,15 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree) case RESPONSE_BLOCK: if (h1_tree) { - ti = proto_tree_add_item (h1_tree, hf_h1_response, + ti = proto_tree_add_item (h1_tree, hf_h1_response, NullTVB, offset + position, pd[offset + position + 1], pd[offset + position]); response_tree = proto_item_add_subtree (ti, ett_response); - proto_tree_add_item (response_tree, hf_h1_response_len, + proto_tree_add_item (response_tree, hf_h1_response_len, NullTVB, offset + position + 1, 1, pd[offset + position + 1]); - proto_tree_add_item (response_tree, hf_h1_response_value, + proto_tree_add_item (response_tree, hf_h1_response_value, NullTVB, offset + position + 2, 1, pd[offset + position + 2]); } @@ -221,13 +221,13 @@ dissect_h1 (const u_char * pd, int offset, frame_data * fd, proto_tree * tree) case EMPTY_BLOCK: if (h1_tree) { - ti = proto_tree_add_item (h1_tree, hf_h1_empty, + ti = proto_tree_add_item (h1_tree, hf_h1_empty, NullTVB, offset + position, pd[offset + position + 1], pd[offset + position]); empty_tree = proto_item_add_subtree (ti, ett_empty); - proto_tree_add_item (empty_tree, hf_h1_empty_len, + proto_tree_add_item (empty_tree, hf_h1_empty_len, NullTVB, offset + position + 1, 1, pd[offset + position + 1]); } diff --git a/packet-hsrp.c b/packet-hsrp.c index 3babf80907..5ae1390d82 100644 --- a/packet-hsrp.c +++ b/packet-hsrp.c @@ -4,7 +4,7 @@ * * Heikki Vatiainen * - * $Id: packet-hsrp.c,v 1.3 2000/04/08 07:07:17 guy Exp $ + * $Id: packet-hsrp.c,v 1.4 2000/05/11 08:15:10 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -120,31 +120,31 @@ dissect_hsrp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) return; } - ti = proto_tree_add_item(tree, proto_hsrp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_hsrp, NullTVB, offset, END_OF_FRAME, NULL); hsrp_tree = proto_item_add_subtree(ti, ett_hsrp); - proto_tree_add_text(hsrp_tree, offset++, 1, "Version: %u", hsrp.version); - proto_tree_add_text(hsrp_tree, offset++, 1, "Opcode: %u (%s)", hsrp.opcode, + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "Version: %u", hsrp.version); + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "Opcode: %u (%s)", hsrp.opcode, val_to_str(hsrp.opcode, hsrp_opcode_vals, "Unknown")); - proto_tree_add_text(hsrp_tree, offset++, 1, "State: %u (%s)", hsrp.state, + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "State: %u (%s)", hsrp.state, val_to_str(hsrp.state, hsrp_state_vals, "Unknown")); - proto_tree_add_text(hsrp_tree, offset++, 1, "Hellotime: %u second%s (%sdefault)", + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "Hellotime: %u second%s (%sdefault)", hsrp.hellotime, plurality(hsrp.hellotime, "", "s"), (hsrp.hellotime == HSRP_DEFAULT_HELLOTIME) ? "" : "non-"); - proto_tree_add_text(hsrp_tree, offset++, 1, "Holdtime: %u second%s (%sdefault)", + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "Holdtime: %u second%s (%sdefault)", hsrp.holdtime, plurality(hsrp.holdtime, "", "s"), (hsrp.holdtime == HSRP_DEFAULT_HOLDTIME) ? "" : "non-"); - proto_tree_add_text(hsrp_tree, offset++, 1, "Priority: %u", hsrp.priority); - proto_tree_add_text(hsrp_tree, offset++, 1, "Group: %u", hsrp.group); - proto_tree_add_text(hsrp_tree, offset++, 1, "Reserved: 0x%x", hsrp.reserved); + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "Priority: %u", hsrp.priority); + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "Group: %u", hsrp.group); + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 1, "Reserved: 0x%x", hsrp.reserved); memcpy(auth_buf, hsrp.auth_data, sizeof(hsrp.auth_data)); auth_buf[sizeof(auth_buf)] = '\0'; - proto_tree_add_text(hsrp_tree, offset, 8, "Authentication Data: `%s'", auth_buf); + proto_tree_add_text(hsrp_tree, NullTVB, offset, 8, "Authentication Data: `%s'", auth_buf); offset+=8; - proto_tree_add_text(hsrp_tree, offset++, 4, "Virtual IP address: %s", + proto_tree_add_text(hsrp_tree, NullTVB, offset++, 4, "Virtual IP address: %s", ip_to_str((guint8 *)&hsrp.virt_ip_addr)); } diff --git a/packet-http.c b/packet-http.c index 085e6bb8b1..50d9f9c458 100644 --- a/packet-http.c +++ b/packet-http.c @@ -3,7 +3,7 @@ * * Guy Harris * - * $Id: packet-http.c,v 1.17 2000/04/08 07:07:17 guy Exp $ + * $Id: packet-http.c,v 1.18 2000/05/11 08:15:10 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -92,7 +92,7 @@ void dissect_http(const u_char *pd, int offset, frame_data *fd, proto_tree *tree } if (tree) { - ti = proto_tree_add_item(tree, proto_http, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_http, NullTVB, offset, END_OF_FRAME, NULL); http_tree = proto_item_add_subtree(ti, ett_http); while (data < dataend) { @@ -180,7 +180,7 @@ void dissect_http(const u_char *pd, int offset, frame_data *fd, proto_tree *tree /* * Put this line. */ - proto_tree_add_text(http_tree, offset, linelen, "%s", + proto_tree_add_text(http_tree, NullTVB, offset, linelen, "%s", format_text(data, linelen)); offset += linelen; data = lineend; @@ -190,12 +190,12 @@ void dissect_http(const u_char *pd, int offset, frame_data *fd, proto_tree *tree case HTTP_RESPONSE: proto_tree_add_item_hidden(http_tree, - hf_http_response, 0, 0, 1); + hf_http_response, NullTVB, 0, 0, 1); break; case HTTP_REQUEST: proto_tree_add_item_hidden(http_tree, - hf_http_request, 0, 0, 1); + hf_http_request, NullTVB, 0, 0, 1); break; case HTTP_OTHERS: diff --git a/packet-icmpv6.c b/packet-icmpv6.c index 6f6125e28f..2623a46b33 100644 --- a/packet-icmpv6.c +++ b/packet-icmpv6.c @@ -1,7 +1,7 @@ /* packet-icmpv6.c * Routines for ICMPv6 packet disassembly * - * $Id: packet-icmpv6.c,v 1.15 2000/04/20 07:05:53 guy Exp $ + * $Id: packet-icmpv6.c,v 1.16 2000/05/11 08:15:10 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -92,7 +92,7 @@ again: len = opt->nd_opt_len << 3; /* !!! specify length */ - ti = proto_tree_add_text(tree, offset, len, "ICMPv6 options"); + ti = proto_tree_add_text(tree, NullTVB, offset, len, "ICMPv6 options"); icmp6opt_tree = proto_item_add_subtree(ti, ett_icmpv6opt); switch (opt->nd_opt_type) { @@ -116,10 +116,10 @@ again: break; } - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + offsetof(struct nd_opt_hdr, nd_opt_type), 1, "Type: 0x%02x (%s)", opt->nd_opt_type, typename); - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + offsetof(struct nd_opt_hdr, nd_opt_len), 1, "Length: %d bytes (0x%02x)", opt->nd_opt_len << 3, opt->nd_opt_len); @@ -140,7 +140,7 @@ again: t[i * 3 - 1] = ':'; sprintf(&t[i * 3], "%02x", p[i] & 0xff); } - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + sizeof(*opt), len, "Link-layer address: %s", t); break; } @@ -148,36 +148,36 @@ again: { struct nd_opt_prefix_info *pi = (struct nd_opt_prefix_info *)opt; int flagoff; - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + offsetof(struct nd_opt_prefix_info, nd_opt_pi_prefix_len), 1, "Prefix length: %d", pi->nd_opt_pi_prefix_len); flagoff = offsetof(struct nd_opt_prefix_info, nd_opt_pi_flags_reserved); - tf = proto_tree_add_text(icmp6opt_tree, flagoff, 1, "Flags: 0x%02x", + tf = proto_tree_add_text(icmp6opt_tree, NullTVB, flagoff, 1, "Flags: 0x%02x", pntohl(&pi->nd_opt_pi_flags_reserved)); field_tree = proto_item_add_subtree(tf, ett_icmpv6flag); - proto_tree_add_text(field_tree, flagoff, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pi->nd_opt_pi_flags_reserved, 0x80, 8, "Onlink", "Not onlink")); - proto_tree_add_text(field_tree, flagoff, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pi->nd_opt_pi_flags_reserved, 0x40, 8, "Auto", "Not auto")); - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + offsetof(struct nd_opt_prefix_info, nd_opt_pi_valid_time), 4, "Valid lifetime: 0x%08x", pntohl(&pi->nd_opt_pi_valid_time)); - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + offsetof(struct nd_opt_prefix_info, nd_opt_pi_preferred_time), 4, "Preferred lifetime: 0x%08x", pntohl(&pi->nd_opt_pi_preferred_time)); - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + offsetof(struct nd_opt_prefix_info, nd_opt_pi_prefix), 16, "Prefix: %s", ip6_to_str(&pi->nd_opt_pi_prefix)); break; } case ND_OPT_REDIRECTED_HEADER: - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + 8, (opt->nd_opt_len << 3) - 8, "Redirected packet"); /* tiny sanity check */ if ((pd[offset + 8] & 0xf0) == 0x60) @@ -188,7 +188,7 @@ again: case ND_OPT_MTU: { struct nd_opt_mtu *pi = (struct nd_opt_mtu *)opt; - proto_tree_add_text(icmp6opt_tree, + proto_tree_add_text(icmp6opt_tree, NullTVB, offset + offsetof(struct nd_opt_mtu, nd_opt_mtu_mtu), 4, "MTU: %d", pntohl(&pi->nd_opt_mtu_mtu)); break; @@ -345,20 +345,20 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { /* !!! specify length */ - ti = proto_tree_add_item(tree, proto_icmpv6, offset, len, NULL); + ti = proto_tree_add_item(tree, proto_icmpv6, NullTVB, offset, len, NULL); icmp6_tree = proto_item_add_subtree(ti, ett_icmpv6); - proto_tree_add_uint_format(icmp6_tree, hf_icmpv6_type, + proto_tree_add_uint_format(icmp6_tree, hf_icmpv6_type, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_type), 1, dp->icmp6_type, "Type: 0x%02x (%s)", dp->icmp6_type, typename); if (codename) { - proto_tree_add_uint_format(icmp6_tree, hf_icmpv6_code, + proto_tree_add_uint_format(icmp6_tree, hf_icmpv6_code, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_code), 1, dp->icmp6_code, "Code: 0x%02x (%s)", dp->icmp6_code, codename); } - proto_tree_add_item(icmp6_tree, hf_icmpv6_checksum, + proto_tree_add_item(icmp6_tree, hf_icmpv6_checksum, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_cksum), 2, (guint16)htons(dp->icmp6_cksum)); @@ -374,7 +374,7 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } break; case ICMP6_PACKET_TOO_BIG: - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_mtu), 4, "MTU: %d", pntohl(&dp->icmp6_mtu)); /* tiny sanity check */ @@ -385,7 +385,7 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } break; case ICMP6_PARAM_PROB: - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_pptr), 4, "Problem pointer: 0x%04x", pntohl(&dp->icmp6_pptr)); /* tiny sanity check */ @@ -397,10 +397,10 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) break; case ICMP6_ECHO_REQUEST: case ICMP6_ECHO_REPLY: - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_id), 2, "ID: 0x%04x", (guint16)ntohs(dp->icmp6_id)); - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_seq), 2, "Sequence: 0x%04x", (guint16)ntohs(dp->icmp6_seq)); dissect_data(pd, offset + sizeof(*dp), fd, icmp6_tree); @@ -408,11 +408,11 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case ICMP6_MEMBERSHIP_QUERY: case ICMP6_MEMBERSHIP_REPORT: case ICMP6_MEMBERSHIP_REDUCTION: - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_hdr, icmp6_maxdelay), 2, "Maximum response delay: %d", (guint16)ntohs(dp->icmp6_maxdelay)); - proto_tree_add_text(icmp6_tree, offset + sizeof(*dp), 16, + proto_tree_add_text(icmp6_tree, NullTVB, offset + sizeof(*dp), 16, "Multicast Address: %s", ip6_to_str((struct e_in6_addr *)(dp + 1))); break; @@ -425,29 +425,29 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) int flagoff; guint32 ra_flags; - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct nd_router_advert, nd_ra_curhoplimit), 1, "Cur hop limit: %d", ra->nd_ra_curhoplimit); flagoff = offset + offsetof(struct nd_router_advert, nd_ra_flags_reserved); ra_flags = pntohl(&pd[flagoff]); - tf = proto_tree_add_text(icmp6_tree, flagoff, 4, "Flags: 0x%08x", ra_flags); + tf = proto_tree_add_text(icmp6_tree, NullTVB, flagoff, 4, "Flags: 0x%08x", ra_flags); field_tree = proto_item_add_subtree(tf, ett_icmpv6flag); - proto_tree_add_text(field_tree, flagoff, 4, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 4, "%s", decode_boolean_bitfield(ra_flags, 0x80000000, 32, "Managed", "Not managed")); - proto_tree_add_text(field_tree, flagoff, 4, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 4, "%s", decode_boolean_bitfield(ra_flags, 0x40000000, 32, "Other", "Not other")); - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct nd_router_advert, nd_ra_router_lifetime), 2, "Router lifetime: %d", (guint16)ntohs(ra->nd_ra_router_lifetime)); - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct nd_router_advert, nd_ra_reachable), 4, "Reachable time: %d", pntohl(&ra->nd_ra_reachable)); - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct nd_router_advert, nd_ra_retransmit), 4, "Retrans time: %d", pntohl(&ra->nd_ra_retransmit)); dissect_icmpv6opt(pd, offset + sizeof(struct nd_router_advert), fd, icmp6_tree); @@ -457,7 +457,7 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct nd_neighbor_solicit *ns = (struct nd_neighbor_solicit *)dp; - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct nd_neighbor_solicit, nd_ns_target), 16, #ifdef INET6 "Target: %s (%s)", @@ -479,21 +479,21 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) flagoff = offset + offsetof(struct nd_neighbor_advert, nd_na_flags_reserved); na_flags = pntohl(&pd[flagoff]); - tf = proto_tree_add_text(icmp6_tree, flagoff, 4, "Flags: 0x%08x", na_flags); + tf = proto_tree_add_text(icmp6_tree, NullTVB, flagoff, 4, "Flags: 0x%08x", na_flags); field_tree = proto_item_add_subtree(tf, ett_icmpv6flag); - proto_tree_add_text(field_tree, flagoff, 4, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 4, "%s", decode_boolean_bitfield(na_flags, 0x80000000, 32, "Router", "Not router")); - proto_tree_add_text(field_tree, flagoff, 4, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 4, "%s", decode_boolean_bitfield(na_flags, 0x40000000, 32, "Solicited", "Not adverted")); - proto_tree_add_text(field_tree, flagoff, 4, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 4, "%s", decode_boolean_bitfield(na_flags, 0x20000000, 32, "Override", "Not override")); targetoff = offset + offsetof(struct nd_neighbor_advert, nd_na_target); na_target_p = (struct e_in6_addr*) &pd[targetoff]; - proto_tree_add_text(icmp6_tree, targetoff, 16, + proto_tree_add_text(icmp6_tree, NullTVB, targetoff, 16, #ifdef INET6 "Target: %s (%s)", get_hostname6(na_target_p), @@ -509,7 +509,7 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct nd_redirect *rd = (struct nd_redirect *)dp; - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct nd_redirect, nd_rd_target), 16, #ifdef INET6 "Target: %s (%s)", @@ -519,7 +519,7 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) #endif ip6_to_str(&rd->nd_rd_target)); - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct nd_redirect, nd_rd_dst), 16, #ifdef INET6 "Destination: %s (%s)", @@ -536,35 +536,35 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct icmp6_router_renum *rr = (struct icmp6_router_renum *)dp; int flagoff; - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_router_renum, rr_seqnum), 4, /*"Sequence number: 0x%08x", (u_int32_t)htonl(rr->rr_seqnum));*/ "Sequence number: 0x%08x", pntohl(&rr->rr_seqnum)); - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_router_renum, rr_segnum), 1, "Segment number: 0x%02x", rr->rr_segnum); flagoff = offset + offsetof(struct icmp6_router_renum, rr_segnum) + 1; - tf = proto_tree_add_text(icmp6_tree, flagoff, 4, "Flags: 0x%08x", + tf = proto_tree_add_text(icmp6_tree, NullTVB, flagoff, 4, "Flags: 0x%08x", pd[flagoff]); field_tree = proto_item_add_subtree(tf, ett_icmpv6flag); - proto_tree_add_text(field_tree, flagoff, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pd[flagoff], 0x80, 8, "Test command", "Not test command")); - proto_tree_add_text(field_tree, flagoff, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pd[flagoff], 0x40, 8, "Result requested", "Result not requested")); - proto_tree_add_text(field_tree, flagoff, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pd[flagoff], 0x20, 8, "All interfaces", "Not all interfaces")); - proto_tree_add_text(field_tree, flagoff, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pd[flagoff], 0x10, 8, "Site specific", "Not site specific")); - proto_tree_add_text(field_tree, flagoff, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pd[flagoff], 0x08, 8, "Processed previously", "Complete result")); - proto_tree_add_text(icmp6_tree, + proto_tree_add_text(icmp6_tree, NullTVB, offset + offsetof(struct icmp6_router_renum, rr_segnum), 2, "Max delay: 0x%04x", pntohs(&rr->rr_maxdelay)); dissect_data(pd, offset + sizeof(*rr), fd, tree); /*XXX*/ diff --git a/packet-icp.c b/packet-icp.c index 2562f502d5..f890d9603d 100644 --- a/packet-icp.c +++ b/packet-icp.c @@ -2,7 +2,7 @@ * Routines for ICP (internet cache protocol) packet disassembly * RFC 2186 && RFC 2187 * - * $Id: packet-icp.c,v 1.6 2000/04/08 07:07:18 guy Exp $ + * $Id: packet-icp.c,v 1.7 2000/05/11 08:15:10 gram Exp $ * * Ethereal - Network traffic analyzer * By Peter Torvals @@ -114,7 +114,7 @@ guint16 objectlength; { case CODE_ICP_OP_QUERY: /* 4 byte requester host address */ - proto_tree_add_text(pload_tree,offset,4, + proto_tree_add_text(pload_tree, NullTVB,offset,4, "Requester Host Address %u.%u.%u.%u", (guint8)pd[offset], (guint8)pd[offset+1], @@ -129,7 +129,7 @@ guint16 objectlength; } textbuf[i]=0; i++; - proto_tree_add_text(pload_tree, offset+4,i, + proto_tree_add_text(pload_tree, NullTVB, offset+4,i, "URL: %s", textbuf); break; case CODE_ICP_OP_HIT_OBJ: @@ -141,17 +141,17 @@ guint16 objectlength; } textbuf[i]=0; i++; - proto_tree_add_text(pload_tree, offset,i, + proto_tree_add_text(pload_tree, NullTVB, offset,i, "URL: %s", textbuf); /* 2 byte object size */ /* object data not recommended by standard*/ objectlength=pntohs(&pd[offset]); - proto_tree_add_text(pload_tree,offset,2,"object length: %u", objectlength); + proto_tree_add_text(pload_tree, NullTVB,offset,2,"object length: %u", objectlength); /* object data not recommended by standard*/ - proto_tree_add_text(pload_tree,offset+2, maxlength-2,"object data"); + proto_tree_add_text(pload_tree, NullTVB,offset+2, maxlength-2,"object data"); if (objectlength > maxlength-2) { - proto_tree_add_text(pload_tree,offset,0, + proto_tree_add_text(pload_tree, NullTVB,offset,0, "Packet is fragmented, rest of object is in next udp packet"); } case CODE_ICP_OP_MISS: @@ -163,7 +163,7 @@ guint16 objectlength; } textbuf[i]=0; i++; - proto_tree_add_text(pload_tree, offset,i, + proto_tree_add_text(pload_tree, NullTVB, offset,i, "URL: %s", textbuf); default: /* check for fragmentation and add message if next part @@ -209,47 +209,47 @@ static void dissect_icp(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(tree,proto_icp ,offset,fd->pkt_len-offset, + ti = proto_tree_add_item(tree,proto_icp , NullTVB,offset,fd->pkt_len-offset, NULL); icp_tree = proto_item_add_subtree(ti, ett_icp); - proto_tree_add_uint_format(icp_tree,hf_icp_opcode, offset, 1, + proto_tree_add_uint_format(icp_tree,hf_icp_opcode, NullTVB, offset, 1, icph.opcode, "Opcode:0x%01x (%s)",icph.opcode, opcodestrval); - proto_tree_add_uint_format(icp_tree,hf_icp_version, offset+1, 1, + proto_tree_add_uint_format(icp_tree,hf_icp_version, NullTVB, offset+1, 1, icph.version,"Version: 0x%01x (%d)", icph.version, (int)icph.version); - proto_tree_add_uint_format(icp_tree,hf_icp_length, offset+2, 2, + proto_tree_add_uint_format(icp_tree,hf_icp_length, NullTVB, offset+2, 2, icph.message_length, "Length: 0x%02x (%d)", icph.message_length,(int)icph.message_length); - proto_tree_add_uint_format(icp_tree,hf_icp_request_nr, offset+4, 4, + proto_tree_add_uint_format(icp_tree,hf_icp_request_nr, NullTVB, offset+4, 4, icph.request_number, "Request Number: 0x%04x (%u)", icph.request_number,icph.request_number); if ( (icph.opcode == CODE_ICP_OP_QUERY) && ((icph.options & 0x80000000 ) != 0) ) { - proto_tree_add_text(icp_tree,offset+8,4, + proto_tree_add_text(icp_tree, NullTVB,offset+8,4, "option: ICP_FLAG_HIT_OBJ"); } if ( (icph.opcode == CODE_ICP_OP_QUERY)&& ((icph.options & 0x40000000 ) != 0) ) { - proto_tree_add_text(icp_tree,offset+8,4, + proto_tree_add_text(icp_tree, NullTVB,offset+8,4, "option:ICP_FLAG_SRC_RTT"); } if ((icph.opcode != CODE_ICP_OP_QUERY)&& ((icph.options & 0x40000000 ) != 0)) { - proto_tree_add_text(icp_tree,offset+8,8, + proto_tree_add_text(icp_tree, NullTVB,offset+8,8, "option: ICP_FLAG_SCR_RTT RTT=%u", icph.option_data & 0x0000ffff); } - proto_tree_add_text(icp_tree,offset+16, 4, + proto_tree_add_text(icp_tree, NullTVB,offset+16, 4, "Sender Host IP address %u.%u.%u.%u", (guint8)icph.sender_address[0], (guint8)icph.sender_address[1], (guint8)icph.sender_address[2], (guint8)icph.sender_address[3]); - payloadtf = proto_tree_add_text(icp_tree, + payloadtf = proto_tree_add_text(icp_tree, NullTVB, offset+20,icph.message_length - 20, "Payload"); payload_tree = proto_item_add_subtree(payloadtf, ett_icp_payload); diff --git a/packet-icq.c b/packet-icq.c index f3ee9cea3d..3de6b91747 100644 --- a/packet-icq.c +++ b/packet-icq.c @@ -1,7 +1,7 @@ /* packet-icq.c * Routines for ICQ packet disassembly * - * $Id: packet-icq.c,v 1.14 2000/04/08 07:07:18 guy Exp $ + * $Id: packet-icq.c,v 1.15 2000/05/11 08:15:10 gram Exp $ * * Ethereal - Network traffic analyzer * By Johan Feyaerts @@ -469,7 +469,7 @@ proto_tree_add_hexdump(proto_tree* t, added = sprintf(buf + done, "."); done += added; } - proto_tree_add_text(t, + proto_tree_add_text(t, NullTVB, offset + i*16, 16, buf); @@ -504,7 +504,7 @@ proto_tree_add_hexdump(proto_tree* t, } done += added; } - proto_tree_add_text(t, + proto_tree_add_text(t, NullTVB, offset + line*16, size % 16, buf); @@ -610,7 +610,7 @@ proto_add_icq_attr(proto_tree* tree, /* The tree to add to */ len = pletohs(pd); left -= sizeof(guint16); if (left0 && (group<=sizeof(groups)/sizeof(const char*))) - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_RAND_SEARCH_GROUP, 4, "Group: (%u) %s", group, groups[group-1]); else - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_RAND_SEARCH_GROUP, 4, "Group: (%u)", group); @@ -983,12 +985,13 @@ icqv5_cmd_ack_messages(proto_tree* tree,/* Tree to put the data in */ if (tree){ ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, 4, CMD_ACK_MESSAGES, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_ACK_MESSAGES_RANDOM, 4, "Random: 0x%08x", random); @@ -1008,12 +1011,13 @@ icqv5_cmd_keep_alive(proto_tree* tree,/* Tree to put the data in */ if (tree){ ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, 4, CMD_KEEP_ALIVE, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_KEEP_ALIVE_RANDOM, 4, "Random: 0x%08x", random); @@ -1036,6 +1040,7 @@ icqv5_cmd_send_text_code(proto_tree* tree,/* Tree to put the data in */ if (tree){ ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, left, CMD_KEEP_ALIVE, @@ -1048,7 +1053,7 @@ icqv5_cmd_send_text_code(proto_tree* tree,/* Tree to put the data in */ left -= sizeof(gint16); if (tree){ subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_SEND_TEXT_CODE_LEN, 2, "Length: %d", len); @@ -1061,7 +1066,7 @@ icqv5_cmd_send_text_code(proto_tree* tree,/* Tree to put the data in */ text[len] = '\0'; left -= len; if (tree){ - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_SEND_TEXT_CODE_TEXT, len, "Text: %s",text); @@ -1075,7 +1080,7 @@ icqv5_cmd_send_text_code(proto_tree* tree,/* Tree to put the data in */ x1 = pletohs(pd + size - left); left -= sizeof(gint16); if (tree){ - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_SEND_TEXT_CODE_TEXT + len, 2, "X1: 0x%04x", x1); @@ -1096,12 +1101,13 @@ icqv5_cmd_add_to_list(proto_tree* tree,/* Tree to put the data in */ if (tree){ ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, 4, CMD_ADD_TO_LIST, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_ADD_TO_LIST_UIN, 4, "UIN: %u", uin); @@ -1123,13 +1129,14 @@ icqv5_cmd_status_change(proto_tree* tree,/* Tree to put the data in */ if (tree){ ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, 4, CMD_STATUS_CHANGE, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); if (status!=-1) - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_STATUS_CHANGE_STATUS, 4, "Status: %08x (%s)", status, findStatus(status)); @@ -1166,16 +1173,17 @@ icqv5_cmd_send_msg(proto_tree* tree, if (tree) { ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, size, cmd, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_SEND_MSG_RECV_UIN, 4, "Receiver UIN: %u", receiverUIN); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_SEND_MSG_MSG_LEN, 2, "Length: %u", msgLen); @@ -1227,33 +1235,34 @@ icqv5_cmd_login(proto_tree* tree, if (tree) { ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, size, CMD_SEND_MSG, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); if (theTime!=-1) - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_LOGIN_TIME, 4, "Time: %ld = %s", (long)theTime, ctime(&theTime)); if (port!=-1) - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_LOGIN_PORT, 4, "Port: %u", port); if ((passwdLen!=-1) && (password!=NULL)) - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_LOGIN_PASSLEN, 2 + passwdLen, "Passwd: %s", password); if (ipAddrp!=NULL) - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_LOGIN_PASSWD + CMD_LOGIN_IP, 4, "IP: %s", ip_to_str(ipAddrp)); if (status!=-1) - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_LOGIN_PASSWD + CMD_LOGIN_IP, 4, "Status: %s", findStatus(status)); @@ -1281,12 +1290,13 @@ icqv5_cmd_contact_list(proto_tree* tree, if (tree) { ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, size, CMD_CONTACT_LIST, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + CMD_CONTACT_LIST, 1, "Number of uins: %u", num); @@ -1299,7 +1309,7 @@ icqv5_cmd_contact_list(proto_tree* tree, for (i = 0; (i0);i++) { if (left>=4) { uin = pletohl(p); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset, 4, "UIN[%d]: %u",i,uin); @@ -1324,12 +1334,13 @@ icqv5_cmd_no_params(proto_tree* tree,/* Tree to put the data in */ if (tree){ ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, 0, cmd, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset, 0, "No parameters"); @@ -1355,12 +1366,13 @@ icqv5_srv_no_params(proto_tree* tree,/* Tree to put the data in */ if (tree){ ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, 0, cmd, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset, 0, "No Parameters"); @@ -1383,12 +1395,13 @@ icqv5_srv_login_reply(proto_tree* tree,/* Tree to put the data in */ if (tree) { ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, SRV_LOGIN_REPLY_IP + 8, SRV_LOGIN_REPLY, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_LOGIN_REPLY_IP, 4, "IP: %s", ip_to_str(ipAddrp)); @@ -1436,32 +1449,33 @@ icqv5_srv_user_online(proto_tree* tree,/* Tree to put the data in */ if (tree) { ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, SRV_LOGIN_REPLY_IP + 8, SRV_LOGIN_REPLY, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_USER_ONL_UIN, 4, "UIN: %u", uin); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_USER_ONL_IP, 4, "IP: %s", ip_to_str(ipAddrp)); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_USER_ONL_PORT, 4, "Port: %u", port); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_USER_ONL_REALIP, 4, "RealIP: %s", ip_to_str(realipAddrp)); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_USER_ONL_STATUS, 2, "Status: %s", findStatus(status)); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_USER_ONL_X2, 4, "Version: %08x", version); @@ -1484,12 +1498,13 @@ icqv5_srv_user_offline(proto_tree* tree,/* Tree to put the data in */ if (tree) { ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, SRV_USER_OFFLINE_UIN + 4, SRV_USER_OFFLINE, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_USER_OFFLINE_UIN, 4, "UIN: %u", uin); @@ -1516,12 +1531,13 @@ icqv5_srv_multi(proto_tree* tree,/* Tree to put the data in */ if (tree) { ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, size, SRV_MULTI, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_MULTI_NUM, 1, "Number of pkts: %u", num); @@ -1574,27 +1590,28 @@ icqv5_srv_meta_user(proto_tree* tree, /* Tree to put the data in */ #if 0 ti = proto_tree_add_uint_format(tree, hf_icq_cmd, + NullTVB, offset, size, SRV_META_USER, "Body"); subtree = proto_item_add_subtree(ti, ett_icq_body); - ti = proto_tree_add_text(subtree, + ti = proto_tree_add_text(subtree, NullTVB, offset + SRV_META_USER_SUBCMD, 2, "%s", findSubCmd(subcmd)); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + SRV_META_USER_RESULT, 1, "%s", (result==0x0a)?"Success":"Failure"); sstree = proto_item_add_subtree(ti, ett_icq_body_parts); #else - ti = proto_tree_add_text(tree, + ti = proto_tree_add_text(tree, NullTVB, offset + SRV_META_USER_SUBCMD, 2, "%s", findSubCmd(subcmd)); sstree = proto_item_add_subtree(ti, ett_icq_body_parts); - proto_tree_add_text(sstree, + proto_tree_add_text(sstree, NullTVB, offset + SRV_META_USER_RESULT, 1, "%s", (result==0x0a)?"Success":"Failure"); @@ -1614,7 +1631,7 @@ icqv5_srv_meta_user(proto_tree* tree, /* Tree to put the data in */ /* Read the lenght field */ pktLen = pletohs(p); - proto_tree_add_text(sstree, + proto_tree_add_text(sstree, NullTVB, offset + size - left, sizeof(guint16), "Length: %u", pktLen); @@ -1646,7 +1663,7 @@ icqv5_srv_meta_user(proto_tree* tree, /* Tree to put the data in */ if (left0) { item = g_malloc(len); strncpy(item, p, len); - proto_tree_add_text(sstree, + proto_tree_add_text(sstree, NullTVB, offset + size - left - sizeof(guint16), sizeof(guint16)+len, "%s(%d): %s",*d, len, item); @@ -1779,7 +1796,7 @@ icqv5_srv_meta_user(proto_tree* tree, /* Tree to put the data in */ if (left * - * $Id: packet-imap.c,v 1.5 2000/04/08 07:07:19 guy Exp $ + * $Id: packet-imap.c,v 1.6 2000/05/11 08:15:11 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -91,23 +91,23 @@ dissect_imap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_imap, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_imap, NullTVB, offset, END_OF_FRAME, NULL); imap_tree = proto_item_add_subtree(ti, ett_imap); if (pi.match_port == pi.destport) { /* Request */ - proto_tree_add_item_hidden(imap_tree, hf_imap_request, offset, i1, TRUE); - proto_tree_add_text(imap_tree, offset, i1, "Request Tag: %s", rr); + proto_tree_add_item_hidden(imap_tree, hf_imap_request, NullTVB, offset, i1, TRUE); + proto_tree_add_text(imap_tree, NullTVB, offset, i1, "Request Tag: %s", rr); - proto_tree_add_text(imap_tree, offset + i1 + 1, END_OF_FRAME, "Request: %s", rd); + proto_tree_add_text(imap_tree, NullTVB, offset + i1 + 1, END_OF_FRAME, "Request: %s", rd); } else { - proto_tree_add_item_hidden(imap_tree, hf_imap_response, offset, i1, TRUE); - proto_tree_add_text(imap_tree, offset, i1, "Response Tag: %s", rr); + proto_tree_add_item_hidden(imap_tree, hf_imap_response, NullTVB, offset, i1, TRUE); + proto_tree_add_text(imap_tree, NullTVB, offset, i1, "Response Tag: %s", rr); - proto_tree_add_text(imap_tree, offset + i1 + 1, END_OF_FRAME, "Response: %s", rd); + proto_tree_add_text(imap_tree, NullTVB, offset + i1 + 1, END_OF_FRAME, "Response: %s", rd); } } diff --git a/packet-ip.c b/packet-ip.c index d84eab9a39..0cdd138b00 100644 --- a/packet-ip.c +++ b/packet-ip.c @@ -1,7 +1,7 @@ /* packet-ip.c * Routines for IP and miscellaneous IP protocol packet disassembly * - * $Id: packet-ip.c,v 1.84 2000/05/10 21:36:55 gerald Exp $ + * $Id: packet-ip.c,v 1.85 2000/05/11 08:15:11 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -410,28 +410,28 @@ dissect_ipopt_security(const ip_tcp_opt *optp, const u_char *opd, int offset, {IPSEC_RESERVED8, "Reserved" }, {0, NULL } }; - tf = proto_tree_add_text(opt_tree, offset, optlen, "%s:", optp->name); + tf = proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s:", optp->name); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; val = pntohs(opd); - proto_tree_add_text(field_tree, offset, 2, + proto_tree_add_text(field_tree, NullTVB, offset, 2, "Security: %s", val_to_str(val, secl_vals, "Unknown (0x%x)")); offset += 2; opd += 2; val = pntohs(opd); - proto_tree_add_text(field_tree, offset, 2, + proto_tree_add_text(field_tree, NullTVB, offset, 2, "Compartments: %u", val); offset += 2; opd += 2; - proto_tree_add_text(field_tree, offset, 2, + proto_tree_add_text(field_tree, NullTVB, offset, 2, "Handling restrictions: %c%c", opd[0], opd[1]); offset += 2; opd += 2; - proto_tree_add_text(field_tree, offset, 3, + proto_tree_add_text(field_tree, NullTVB, offset, 3, "Transmission control code: %c%c%c", opd[0], opd[1], opd[2]); } @@ -445,7 +445,7 @@ dissect_ipopt_route(const ip_tcp_opt *optp, const u_char *opd, int offset, int optoffset = 0; struct in_addr addr; - tf = proto_tree_add_text(opt_tree, offset, optlen, "%s (%u bytes)", + tf = proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s (%u bytes)", optp->name, optlen); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); @@ -453,7 +453,7 @@ dissect_ipopt_route(const ip_tcp_opt *optp, const u_char *opd, int offset, optlen -= 2; /* subtract size of type and length */ ptr = *opd; - proto_tree_add_text(field_tree, offset + optoffset, 1, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, 1, "Pointer: %d%s", ptr, ((ptr < 4) ? " (points before first address)" : ((ptr & 3) ? " (points to middle of address)" : ""))); @@ -464,7 +464,7 @@ dissect_ipopt_route(const ip_tcp_opt *optp, const u_char *opd, int offset, while (optlen > 0) { if (optlen < 4) { - proto_tree_add_text(field_tree, offset, optlen, + proto_tree_add_text(field_tree, NullTVB, offset, optlen, "(suboption would go past end of option)"); break; } @@ -472,7 +472,7 @@ dissect_ipopt_route(const ip_tcp_opt *optp, const u_char *opd, int offset, /* Avoids alignment problems on many architectures. */ memcpy((char *)&addr, (char *)opd, sizeof(addr)); - proto_tree_add_text(field_tree, offset + optoffset, 4, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, 4, "%s%s", ((addr.s_addr == 0) ? "-" : (char *)get_hostname(addr.s_addr)), ((optoffset == ptr) ? " <- (current)" : "")); @@ -486,7 +486,7 @@ static void dissect_ipopt_sid(const ip_tcp_opt *optp, const u_char *opd, int offset, guint optlen, proto_tree *opt_tree) { - proto_tree_add_text(opt_tree, offset, optlen, + proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s: %d", optp->name, pntohs(opd)); return; } @@ -508,14 +508,14 @@ dissect_ipopt_timestamp(const ip_tcp_opt *optp, const u_char *opd, struct in_addr addr; guint ts; - tf = proto_tree_add_text(opt_tree, offset, optlen, "%s:", optp->name); + tf = proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s:", optp->name); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); optoffset += 2; /* skip past type and length */ optlen -= 2; /* subtract size of type and length */ ptr = *opd; - proto_tree_add_text(field_tree, offset + optoffset, 1, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, 1, "Pointer: %d%s", ptr, ((ptr < 5) ? " (points before first address)" : (((ptr - 1) & 3) ? " (points to middle of address)" : ""))); @@ -525,10 +525,10 @@ dissect_ipopt_timestamp(const ip_tcp_opt *optp, const u_char *opd, ptr--; /* ptr is 1-origin */ flg = *opd; - proto_tree_add_text(field_tree, offset + optoffset, 1, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, 1, "Overflow: %d", flg >> 4); flg &= 0xF; - proto_tree_add_text(field_tree, offset + optoffset, 1, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, 1, "Flag: %s", val_to_str(flg, flag_vals, "Unknown (0x%x)")); optoffset++; opd++; @@ -538,7 +538,7 @@ dissect_ipopt_timestamp(const ip_tcp_opt *optp, const u_char *opd, if (flg == IPOPT_TS_TSANDADDR) { /* XXX - check whether it goes past end of packet */ if (optlen < 8) { - proto_tree_add_text(field_tree, offset + optoffset, optlen, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, optlen, "(suboption would go past end of option)"); break; } @@ -547,14 +547,14 @@ dissect_ipopt_timestamp(const ip_tcp_opt *optp, const u_char *opd, ts = pntohl(opd); opd += 4; optlen -= 8; - proto_tree_add_text(field_tree, offset + optoffset, 8, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, 8, "Address = %s, time stamp = %u", ((addr.s_addr == 0) ? "-" : (char *)get_hostname(addr.s_addr)), ts); optoffset += 8; } else { if (optlen < 4) { - proto_tree_add_text(field_tree, offset + optoffset, optlen, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, optlen, "(suboption would go past end of option)"); break; } @@ -562,7 +562,7 @@ dissect_ipopt_timestamp(const ip_tcp_opt *optp, const u_char *opd, ts = pntohl(opd); opd += 4; optlen -= 4; - proto_tree_add_text(field_tree, offset + optoffset, 4, + proto_tree_add_text(field_tree, NullTVB, offset + optoffset, 4, "Time stamp = %u", ts); optoffset += 4; } @@ -683,7 +683,7 @@ dissect_ip_tcp_options(const u_char *opd, int offset, guint length, if (length == 0) { /* Bogus - packet must at least include option code byte and length byte! */ - proto_tree_add_text(opt_tree, offset, 1, + proto_tree_add_text(opt_tree, NullTVB, offset, 1, "%s (length byte past end of options)", name); return; } @@ -692,33 +692,33 @@ dissect_ip_tcp_options(const u_char *opd, int offset, guint length, if (len < 2) { /* Bogus - option length is too short to include option code and option length. */ - proto_tree_add_text(opt_tree, offset, 2, + proto_tree_add_text(opt_tree, NullTVB, offset, 2, "%s (with too-short option length = %u byte%s)", name, len, plurality(len, "", "s")); return; } else if (len - 2 > length) { /* Bogus - option goes past the end of the header. */ - proto_tree_add_text(opt_tree, offset, length, + proto_tree_add_text(opt_tree, NullTVB, offset, length, "%s (option length = %u byte%s says option goes past end of options)", name, len, plurality(len, "", "s")); return; } else if (len_type == FIXED_LENGTH && len != optlen) { /* Bogus - option length isn't what it's supposed to be for this option. */ - proto_tree_add_text(opt_tree, offset, len, + proto_tree_add_text(opt_tree, NullTVB, offset, len, "%s (with option length = %u byte%s; should be %u)", name, len, plurality(len, "", "s"), optlen); return; } else if (len_type == VARIABLE_LENGTH && len < optlen) { /* Bogus - option length is less than what it's supposed to be for this option. */ - proto_tree_add_text(opt_tree, offset, len, + proto_tree_add_text(opt_tree, NullTVB, offset, len, "%s (with option length = %u byte%s; should be >= %u)", name, len, plurality(len, "", "s"), optlen); return; } else { if (optp == NULL) { - proto_tree_add_text(opt_tree, offset, len, "%s (%u byte%s)", + proto_tree_add_text(opt_tree, NullTVB, offset, len, "%s (%u byte%s)", name, len, plurality(len, "", "s")); } else { if (dissect != NULL) { @@ -726,7 +726,7 @@ dissect_ip_tcp_options(const u_char *opd, int offset, guint length, (*dissect)(optp, opd, offset, len, opt_tree); } else { /* Option has no data, hence no dissector. */ - proto_tree_add_text(opt_tree, offset, len, "%s", name); + proto_tree_add_text(opt_tree, NullTVB, offset, len, "%s", name); } } len -= 2; /* subtract size of type and length */ @@ -735,7 +735,7 @@ dissect_ip_tcp_options(const u_char *opd, int offset, guint length, opd += len; length -= len; } else { - proto_tree_add_text(opt_tree, offset, 1, "%s", name); + proto_tree_add_text(opt_tree, NullTVB, offset, 1, "%s", name); offset += 1; } if (opt == eol) @@ -889,61 +889,61 @@ dissect_ip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { break; } - ti = proto_tree_add_item(tree, proto_ip, offset, hlen, NULL); + ti = proto_tree_add_item(tree, proto_ip, NullTVB, offset, hlen, NULL); ip_tree = proto_item_add_subtree(ti, ett_ip); - proto_tree_add_item(ip_tree, hf_ip_version, offset, 1, hi_nibble(iph.ip_v_hl)); - proto_tree_add_uint_format(ip_tree, hf_ip_hdr_len, offset, 1, hlen, + proto_tree_add_item(ip_tree, hf_ip_version, NullTVB, offset, 1, hi_nibble(iph.ip_v_hl)); + proto_tree_add_uint_format(ip_tree, hf_ip_hdr_len, NullTVB, offset, 1, hlen, "Header length: %u bytes", hlen); if (g_ip_dscp_actif) { - tf = proto_tree_add_uint_format(ip_tree, hf_ip_dsfield, offset + 1, 1, iph.ip_tos, + tf = proto_tree_add_uint_format(ip_tree, hf_ip_dsfield, NullTVB, offset + 1, 1, iph.ip_tos, "Differentiated Services Field: 0x%02x (DSCP 0x%02x: %s)", iph.ip_tos, IPDSFIELD_DSCP(iph.ip_tos), val_to_str(IPDSFIELD_DSCP(iph.ip_tos), dscp_vals, "Unknown DSCP")); field_tree = proto_item_add_subtree(tf, ett_ip_dsfield); - proto_tree_add_item(field_tree, hf_ip_dsfield_dscp, offset + 1, 1, iph.ip_tos); - proto_tree_add_item(field_tree, hf_ip_dsfield_cu, offset + 1, 1, iph.ip_tos); + proto_tree_add_item(field_tree, hf_ip_dsfield_dscp, NullTVB, offset + 1, 1, iph.ip_tos); + proto_tree_add_item(field_tree, hf_ip_dsfield_cu, NullTVB, offset + 1, 1, iph.ip_tos); } else { - tf = proto_tree_add_uint_format(ip_tree, hf_ip_tos, offset + 1, 1, iph.ip_tos, + tf = proto_tree_add_uint_format(ip_tree, hf_ip_tos, NullTVB, offset + 1, 1, iph.ip_tos, "Type of service: 0x%02x (%s)", iph.ip_tos, val_to_str( IPTOS_TOS(iph.ip_tos), iptos_vals, "Unknown") ); field_tree = proto_item_add_subtree(tf, ett_ip_tos); - proto_tree_add_item(field_tree, hf_ip_tos_precedence, offset + 1, 1, iph.ip_tos); - proto_tree_add_item(field_tree, hf_ip_tos_delay, offset + 1, 1, iph.ip_tos); - proto_tree_add_item(field_tree, hf_ip_tos_throughput, offset + 1, 1, iph.ip_tos); - proto_tree_add_item(field_tree, hf_ip_tos_reliability, offset + 1, 1, iph.ip_tos); - proto_tree_add_item(field_tree, hf_ip_tos_cost, offset + 1, 1, iph.ip_tos); + proto_tree_add_item(field_tree, hf_ip_tos_precedence, NullTVB, offset + 1, 1, iph.ip_tos); + proto_tree_add_item(field_tree, hf_ip_tos_delay, NullTVB, offset + 1, 1, iph.ip_tos); + proto_tree_add_item(field_tree, hf_ip_tos_throughput, NullTVB, offset + 1, 1, iph.ip_tos); + proto_tree_add_item(field_tree, hf_ip_tos_reliability, NullTVB, offset + 1, 1, iph.ip_tos); + proto_tree_add_item(field_tree, hf_ip_tos_cost, NullTVB, offset + 1, 1, iph.ip_tos); } - proto_tree_add_item(ip_tree, hf_ip_len, offset + 2, 2, iph.ip_len); - proto_tree_add_item(ip_tree, hf_ip_id, offset + 4, 2, iph.ip_id); + proto_tree_add_item(ip_tree, hf_ip_len, NullTVB, offset + 2, 2, iph.ip_len); + proto_tree_add_item(ip_tree, hf_ip_id, NullTVB, offset + 4, 2, iph.ip_id); flags = (iph.ip_off & (IP_DF|IP_MF)) >> 12; - tf = proto_tree_add_item(ip_tree, hf_ip_flags, offset + 6, 1, flags); + tf = proto_tree_add_item(ip_tree, hf_ip_flags, NullTVB, offset + 6, 1, flags); field_tree = proto_item_add_subtree(tf, ett_ip_off); - proto_tree_add_item(field_tree, hf_ip_flags_df, offset + 6, 1, flags), - proto_tree_add_item(field_tree, hf_ip_flags_mf, offset + 6, 1, flags), + proto_tree_add_item(field_tree, hf_ip_flags_df, NullTVB, offset + 6, 1, flags), + proto_tree_add_item(field_tree, hf_ip_flags_mf, NullTVB, offset + 6, 1, flags), - proto_tree_add_item(ip_tree, hf_ip_frag_offset, offset + 6, 2, + proto_tree_add_item(ip_tree, hf_ip_frag_offset, NullTVB, offset + 6, 2, iph.ip_off & IP_OFFSET); - proto_tree_add_item(ip_tree, hf_ip_ttl, offset + 8, 1, iph.ip_ttl); - proto_tree_add_uint_format(ip_tree, hf_ip_proto, offset + 9, 1, iph.ip_p, + proto_tree_add_item(ip_tree, hf_ip_ttl, NullTVB, offset + 8, 1, iph.ip_ttl); + proto_tree_add_uint_format(ip_tree, hf_ip_proto, NullTVB, offset + 9, 1, iph.ip_p, "Protocol: %s (0x%02x)", ipprotostr(iph.ip_p), iph.ip_p); - proto_tree_add_uint_format(ip_tree, hf_ip_checksum, offset + 10, 2, iph.ip_sum, + proto_tree_add_uint_format(ip_tree, hf_ip_checksum, NullTVB, offset + 10, 2, iph.ip_sum, "Header checksum: 0x%04x (%s)", iph.ip_sum, ip_checksum_state((e_ip*) &pd[offset])); - proto_tree_add_item(ip_tree, hf_ip_src, offset + 12, 4, iph.ip_src); - proto_tree_add_item(ip_tree, hf_ip_dst, offset + 16, 4, iph.ip_dst); - proto_tree_add_item_hidden(ip_tree, hf_ip_addr, offset + 12, 4, iph.ip_src); - proto_tree_add_item_hidden(ip_tree, hf_ip_addr, offset + 16, 4, iph.ip_dst); + proto_tree_add_item(ip_tree, hf_ip_src, NullTVB, offset + 12, 4, iph.ip_src); + proto_tree_add_item(ip_tree, hf_ip_dst, NullTVB, offset + 16, 4, iph.ip_dst); + proto_tree_add_item_hidden(ip_tree, hf_ip_addr, NullTVB, offset + 12, 4, iph.ip_src); + proto_tree_add_item_hidden(ip_tree, hf_ip_addr, NullTVB, offset + 16, 4, iph.ip_dst); /* Decode IP options, if any. */ if (hlen > sizeof (e_ip)) { /* There's more than just the fixed-length header. Decode the options. */ optlen = hlen - sizeof (e_ip); /* length of options, in bytes */ - tf = proto_tree_add_text(ip_tree, offset + 20, optlen, + tf = proto_tree_add_text(ip_tree, NullTVB, offset + 20, optlen, "Options: (%u bytes)", optlen); field_tree = proto_item_add_subtree(tf, ett_ip_options); dissect_ip_tcp_options(&pd[offset + 20], offset + 20, optlen, @@ -1121,17 +1121,17 @@ dissect_icmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { col_add_str(fd, COL_INFO, type_str); if (tree) { - ti = proto_tree_add_item(tree, proto_icmp, offset, 4, NULL); + ti = proto_tree_add_item(tree, proto_icmp, NullTVB, offset, 4, NULL); icmp_tree = proto_item_add_subtree(ti, ett_icmp); - proto_tree_add_uint_format(icmp_tree, hf_icmp_type, offset, 1, + proto_tree_add_uint_format(icmp_tree, hf_icmp_type, NullTVB, offset, 1, ih.icmp_type, "Type: %u (%s)", ih.icmp_type, type_str); - proto_tree_add_uint_format(icmp_tree, hf_icmp_code, offset + 1, 1, + proto_tree_add_uint_format(icmp_tree, hf_icmp_code, NullTVB, offset + 1, 1, ih.icmp_code, "Code: %u %s", ih.icmp_code, code_str); - proto_tree_add_item(icmp_tree, hf_icmp_checksum, offset + 2, 2, + proto_tree_add_item(icmp_tree, hf_icmp_checksum, NullTVB, offset + 2, 2, cksum); /* Decode the second 4 bytes of the packet. */ @@ -1144,16 +1144,16 @@ dissect_icmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { case ICMP_IREQREPLY: case ICMP_MASKREQ: case ICMP_MASKREPLY: - proto_tree_add_text(icmp_tree, offset + 4, 2, "Identifier: 0x%04x", + proto_tree_add_text(icmp_tree, NullTVB, offset + 4, 2, "Identifier: 0x%04x", pntohs(&pd[offset + 4])); - proto_tree_add_text(icmp_tree, offset + 6, 2, "Sequence number: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 6, 2, "Sequence number: %u", pntohs(&pd[offset + 6])); break; case ICMP_UNREACH: switch (ih.icmp_code) { case ICMP_FRAG_NEEDED: - proto_tree_add_text(icmp_tree, offset + 6, 2, "MTU of next hop: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 6, 2, "MTU of next hop: %u", pntohs(&pd[offset + 6])); break; } @@ -1161,22 +1161,22 @@ dissect_icmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { case ICMP_RTRADVERT: num_addrs = pd[offset + 4]; - proto_tree_add_text(icmp_tree, offset + 4, 1, "Number of addresses: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 4, 1, "Number of addresses: %u", num_addrs); addr_entry_size = pd[offset + 5]; - proto_tree_add_text(icmp_tree, offset + 5, 1, "Address entry size: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 5, 1, "Address entry size: %u", addr_entry_size); - proto_tree_add_text(icmp_tree, offset + 6, 2, "Lifetime: %s", + proto_tree_add_text(icmp_tree, NullTVB, offset + 6, 2, "Lifetime: %s", time_secs_to_str(pntohs(&pd[offset + 6]))); break; case ICMP_PARAMPROB: - proto_tree_add_text(icmp_tree, offset + 4, 1, "Pointer: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 4, 1, "Pointer: %u", pd[offset + 4]); break; case ICMP_REDIRECT: - proto_tree_add_text(icmp_tree, offset + 4, 4, "Gateway address: %s", + proto_tree_add_text(icmp_tree, NullTVB, offset + 4, 4, "Gateway address: %s", ip_to_str((guint8 *)&pd[offset + 4])); break; } @@ -1204,10 +1204,10 @@ dissect_icmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { case ICMP_RTRADVERT: if (addr_entry_size == 2) { for (i = 0; i < num_addrs; i++) { - proto_tree_add_text(icmp_tree, offset + 8 + (i*8), 4, + proto_tree_add_text(icmp_tree, NullTVB, offset + 8 + (i*8), 4, "Router address: %s", ip_to_str((guint8 *)&pd[offset + 8 + (i*8)])); - proto_tree_add_text(icmp_tree, offset + 12 + (i*8), 4, + proto_tree_add_text(icmp_tree, NullTVB, offset + 12 + (i*8), 4, "Preference level: %u", pntohl(&pd[offset + 12 + (i*8)])); } } else @@ -1216,17 +1216,17 @@ dissect_icmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { case ICMP_TSTAMP: case ICMP_TSTAMPREPLY: - proto_tree_add_text(icmp_tree, offset + 8, 4, "Originate timestamp: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 8, 4, "Originate timestamp: %u", pntohl(&pd[offset + 8])); - proto_tree_add_text(icmp_tree, offset + 12, 4, "Receive timestamp: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 12, 4, "Receive timestamp: %u", pntohl(&pd[offset + 12])); - proto_tree_add_text(icmp_tree, offset + 16, 4, "Transmit timestamp: %u", + proto_tree_add_text(icmp_tree, NullTVB, offset + 16, 4, "Transmit timestamp: %u", pntohl(&pd[offset + 16])); break; case ICMP_MASKREQ: case ICMP_MASKREPLY: - proto_tree_add_text(icmp_tree, offset + 8, 4, "Address mask: %s (0x%8x)", + proto_tree_add_text(icmp_tree, NullTVB, offset + 8, 4, "Address mask: %s (0x%8x)", ip_to_str((guint8 *)&pd[offset + 8]), pntohl(&pd[offset + 8])); break; } @@ -1280,21 +1280,21 @@ dissect_igmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, type_str); if (tree) { - ti = proto_tree_add_item(tree, proto_igmp, offset, 8, NULL); + ti = proto_tree_add_item(tree, proto_igmp, NullTVB, offset, 8, NULL); igmp_tree = proto_item_add_subtree(ti, ett_igmp); - proto_tree_add_item(igmp_tree, hf_igmp_version, offset, 1, + proto_tree_add_item(igmp_tree, hf_igmp_version, NullTVB, offset, 1, hi_nibble(ih.igmp_v_t)); - proto_tree_add_uint_format(igmp_tree, hf_igmp_type, offset , 1, + proto_tree_add_uint_format(igmp_tree, hf_igmp_type, NullTVB, offset , 1, lo_nibble(ih.igmp_v_t), "Type: %u (%s)", lo_nibble(ih.igmp_v_t), type_str); - proto_tree_add_uint_format(igmp_tree, hf_igmp_unused, offset + 1, 1, + proto_tree_add_uint_format(igmp_tree, hf_igmp_unused, NullTVB, offset + 1, 1, ih.igmp_unused, "Unused: 0x%02x", ih.igmp_unused); - proto_tree_add_item(igmp_tree, hf_igmp_checksum, offset + 2, 2, + proto_tree_add_item(igmp_tree, hf_igmp_checksum, NullTVB, offset + 2, 2, cksum); - proto_tree_add_item(igmp_tree, hf_igmp_group, offset + 4, 4, + proto_tree_add_item(igmp_tree, hf_igmp_group, NullTVB, offset + 4, 4, ih.igmp_gaddr); } } @@ -1537,17 +1537,17 @@ dissect_eigrp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { val_to_str( ih.eigrp_opcode, eigrp_opcode_vals, "Unknown (0x%04x)")); if (tree) { - ti = proto_tree_add_item(tree, proto_eigrp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_eigrp, NullTVB, offset, END_OF_FRAME, NULL); eigrp_tree = proto_item_add_subtree(ti, ett_eigrp); - proto_tree_add_text(eigrp_tree, offset, 1, "Version: %u", ih.eigrp_version); - proto_tree_add_text(eigrp_tree, offset + 1, 1, "Opcode: %u (%s)", ih.eigrp_opcode, + proto_tree_add_text(eigrp_tree, NullTVB, offset, 1, "Version: %u", ih.eigrp_version); + proto_tree_add_text(eigrp_tree, NullTVB, offset + 1, 1, "Opcode: %u (%s)", ih.eigrp_opcode, val_to_str( ih.eigrp_opcode, eigrp_opcode_vals, "Unknown") ); - proto_tree_add_text(eigrp_tree, offset + 2, 2, "Checksum: 0x%x", cksum); - proto_tree_add_text(eigrp_tree, offset + 4, 2, "Subnets in local net: %u", ih.eigrp_subnets); - proto_tree_add_text(eigrp_tree, offset + 6, 2, "Networks in Autonomous System: %d", ih.eigrp_networks); - proto_tree_add_text(eigrp_tree, offset + 8, 4, "Sequence Number: 0x%x", ih.eigrp_sequence); - proto_tree_add_text(eigrp_tree, offset + 12, 4, "Autonomous System number: %u", ih.eigrp_asnumber); + proto_tree_add_text(eigrp_tree, NullTVB, offset + 2, 2, "Checksum: 0x%x", cksum); + proto_tree_add_text(eigrp_tree, NullTVB, offset + 4, 2, "Subnets in local net: %u", ih.eigrp_subnets); + proto_tree_add_text(eigrp_tree, NullTVB, offset + 6, 2, "Networks in Autonomous System: %d", ih.eigrp_networks); + proto_tree_add_text(eigrp_tree, NullTVB, offset + 8, 4, "Sequence Number: 0x%x", ih.eigrp_sequence); + proto_tree_add_text(eigrp_tree, NullTVB, offset + 12, 4, "Autonomous System number: %u", ih.eigrp_asnumber); } } diff --git a/packet-ipp.c b/packet-ipp.c index f59c7f3860..32aa93dbde 100644 --- a/packet-ipp.c +++ b/packet-ipp.c @@ -3,7 +3,7 @@ * * Guy Harris * - * $Id: packet-ipp.c,v 1.8 2000/04/08 07:07:20 guy Exp $ + * $Id: packet-ipp.c,v 1.9 2000/05/11 08:15:13 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -177,15 +177,15 @@ void dissect_ipp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_item(tree, proto_ipp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ipp, NullTVB, offset, END_OF_FRAME, NULL); ipp_tree = proto_item_add_subtree(ti, ett_ipp); - proto_tree_add_text(ipp_tree, offset, 2, "Version: %u.%u", + proto_tree_add_text(ipp_tree, NullTVB, offset, 2, "Version: %u.%u", pd[offset], pd[offset + 1]); offset += 2; if (is_request) { - proto_tree_add_text(ipp_tree, offset, 2, "Operation-id: %s", + proto_tree_add_text(ipp_tree, NullTVB, offset, 2, "Operation-id: %s", val_to_str(pntohs(&pd[offset]), operation_vals, "Unknown (0x%04x)")); } else { @@ -216,12 +216,12 @@ void dissect_ipp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) status_fmt = "Unknown (0x%04x)"; break; } - proto_tree_add_text(ipp_tree, offset, 2, "Status-code: %s", + proto_tree_add_text(ipp_tree, NullTVB, offset, 2, "Status-code: %s", val_to_str(status_code, status_vals, status_fmt)); } offset += 2; - proto_tree_add_text(ipp_tree, offset, 4, "Request ID: %u", + proto_tree_add_text(ipp_tree, NullTVB, offset, 4, "Request ID: %u", pntohl(&pd[offset])); offset += 4; @@ -335,7 +335,7 @@ parse_attributes(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* * Now create a new item for this tag. */ - tas = proto_tree_add_text(tree, offset, 1, + tas = proto_tree_add_text(tree, NullTVB, offset, 1, "%s", tag_desc); offset++; if (tag == TAG_END_OF_ATTRIBUTES) { @@ -459,13 +459,13 @@ add_integer_tree(proto_tree *tree, const u_char *pd, int offset, proto_item *ti; if (value_length != 4) { - ti = proto_tree_add_text(tree, offset, + ti = proto_tree_add_text(tree, NullTVB, offset, 1 + 2 + name_length + 2 + value_length, "%.*s: Invalid integer (length is %u, should be 4)", name_length, &pd[offset + 1 + 2], value_length); } else { - ti = proto_tree_add_text(tree, offset, + ti = proto_tree_add_text(tree, NullTVB, offset, 1 + 2 + name_length + 2 + value_length, "%.*s: %u", name_length, &pd[offset + 1 + 2], @@ -481,7 +481,7 @@ add_integer_value(guint tag, gchar *tag_desc, proto_tree *tree, offset = add_value_head(tag, tag_desc, tree, pd, offset, name_length, value_length); if (value_length == 4) { - proto_tree_add_text(tree, offset, value_length, + proto_tree_add_text(tree, NullTVB, offset, value_length, "Value: %u", pntohl(&pd[offset])); } } @@ -492,7 +492,7 @@ add_octetstring_tree(proto_tree *tree, const u_char *pd, int offset, { proto_item *ti; - ti = proto_tree_add_text(tree, offset, + ti = proto_tree_add_text(tree, NullTVB, offset, 1 + 2 + name_length + 2 + value_length, "%.*s: %s", name_length, @@ -507,7 +507,7 @@ add_octetstring_value(guint tag, gchar *tag_desc, proto_tree *tree, { offset = add_value_head(tag, tag_desc, tree, pd, offset, name_length, value_length); - proto_tree_add_text(tree, offset, value_length, + proto_tree_add_text(tree, NullTVB, offset, value_length, "Value: %s", bytes_to_str(&pd[offset], value_length)); } @@ -517,7 +517,7 @@ add_charstring_tree(proto_tree *tree, const u_char *pd, int offset, { proto_item *ti; - ti = proto_tree_add_text(tree, offset, + ti = proto_tree_add_text(tree, NullTVB, offset, 1 + 2 + name_length + 2 + value_length, "%.*s: %.*s", name_length, &pd[offset + 1 + 2], @@ -531,7 +531,7 @@ add_charstring_value(guint tag, gchar *tag_desc, proto_tree *tree, { offset = add_value_head(tag, tag_desc, tree, pd, offset, name_length, value_length); - proto_tree_add_text(tree, offset, value_length, + proto_tree_add_text(tree, NullTVB, offset, value_length, "Value: %.*s", value_length, &pd[offset]); } @@ -539,17 +539,17 @@ static int add_value_head(guint tag, gchar *tag_desc, proto_tree *tree, const u_char *pd, int offset, int name_length, int value_length) { - proto_tree_add_text(tree, offset, 1, "Tag: %s", tag_desc); + proto_tree_add_text(tree, NullTVB, offset, 1, "Tag: %s", tag_desc); offset += 1; - proto_tree_add_text(tree, offset, 2, "Name length: %u", + proto_tree_add_text(tree, NullTVB, offset, 2, "Name length: %u", name_length); offset += 2; if (name_length != 0) { - proto_tree_add_text(tree, offset, name_length, + proto_tree_add_text(tree, NullTVB, offset, name_length, "Name: %.*s", name_length, &pd[offset]); } offset += name_length; - proto_tree_add_text(tree, offset, 2, "Value length: %u", + proto_tree_add_text(tree, NullTVB, offset, 2, "Value length: %u", value_length); offset += 2; return offset; diff --git a/packet-ipsec.c b/packet-ipsec.c index 8fd2b5d882..eafdb5ce83 100644 --- a/packet-ipsec.c +++ b/packet-ipsec.c @@ -1,7 +1,7 @@ /* packet-ipsec.c * Routines for IPsec/IPComp packet disassembly * - * $Id: packet-ipsec.c,v 1.14 2000/04/20 07:05:55 guy Exp $ + * $Id: packet-ipsec.c,v 1.15 2000/05/11 08:15:14 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -120,20 +120,20 @@ dissect_ah(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { /* !!! specify length */ - ti = proto_tree_add_item(tree, proto_ah, offset, advance, NULL); + ti = proto_tree_add_item(tree, proto_ah, NullTVB, offset, advance, NULL); ah_tree = proto_item_add_subtree(ti, ett_ah); - proto_tree_add_text(ah_tree, offset + offsetof(struct newah, ah_nxt), 1, + proto_tree_add_text(ah_tree, NullTVB, offset + offsetof(struct newah, ah_nxt), 1, "Next Header: %s (0x%02x)", ipprotostr(ah.ah_nxt), ah.ah_nxt); - proto_tree_add_text(ah_tree, offset + offsetof(struct newah, ah_len), 1, + proto_tree_add_text(ah_tree, NullTVB, offset + offsetof(struct newah, ah_len), 1, "Length: %d", ah.ah_len << 2); - proto_tree_add_item(ah_tree, hf_ah_spi, + proto_tree_add_item(ah_tree, hf_ah_spi, NullTVB, offset + offsetof(struct newah, ah_spi), 4, (guint32)ntohl(ah.ah_spi)); - proto_tree_add_item(ah_tree, hf_ah_sequence, + proto_tree_add_item(ah_tree, hf_ah_sequence, NullTVB, offset + offsetof(struct newah, ah_seq), 4, (guint32)ntohl(ah.ah_seq)); - proto_tree_add_text(ah_tree, offset + sizeof(ah), (ah.ah_len - 1) << 2, + proto_tree_add_text(ah_tree, NullTVB, offset + sizeof(ah), (ah.ah_len - 1) << 2, "ICV"); } @@ -166,12 +166,12 @@ dissect_esp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) * (ie none) */ if(tree) { - ti = proto_tree_add_item(tree, proto_esp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_esp, NullTVB, offset, END_OF_FRAME, NULL); esp_tree = proto_item_add_subtree(ti, ett_esp); - proto_tree_add_item(esp_tree, hf_esp_spi, + proto_tree_add_item(esp_tree, hf_esp_spi, NullTVB, offset + offsetof(struct newesp, esp_spi), 4, (guint32)ntohl(esp.esp_spi)); - proto_tree_add_item(esp_tree, hf_esp_sequence, + proto_tree_add_item(esp_tree, hf_esp_sequence, NullTVB, offset + offsetof(struct newesp, esp_seq), 4, (guint32)ntohl(esp.esp_seq)); dissect_data(pd, offset + sizeof(struct newesp), fd, esp_tree); @@ -208,24 +208,24 @@ dissect_ipcomp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) * (ie none) */ if (tree) { - ti = proto_tree_add_item(tree, proto_ipcomp, offset, END_OF_FRAME, + ti = proto_tree_add_item(tree, proto_ipcomp, NullTVB, offset, END_OF_FRAME, NULL); ipcomp_tree = proto_item_add_subtree(ti, ett_ipcomp); - proto_tree_add_text(ipcomp_tree, + proto_tree_add_text(ipcomp_tree, NullTVB, offset + offsetof(struct ipcomp, comp_nxt), 1, "Next Header: %s (0x%02x)", ipprotostr(ipcomp.comp_nxt), ipcomp.comp_nxt); - proto_tree_add_item(ipcomp_tree, hf_ipcomp_flags, + proto_tree_add_item(ipcomp_tree, hf_ipcomp_flags, NullTVB, offset + offsetof(struct ipcomp, comp_flags), 1, ipcomp.comp_flags); p = val_to_str(ntohs(ipcomp.comp_cpi), cpi2val, ""); if (p[0] == '\0') { - proto_tree_add_item(ipcomp_tree, hf_ipcomp_cpi, + proto_tree_add_item(ipcomp_tree, hf_ipcomp_cpi, NullTVB, offset + offsetof(struct ipcomp, comp_cpi), 2, ntohs(ipcomp.comp_cpi)); } else { - proto_tree_add_uint_format(ipcomp_tree, hf_ipcomp_cpi, + proto_tree_add_uint_format(ipcomp_tree, hf_ipcomp_cpi, NullTVB, offset + offsetof(struct ipcomp, comp_cpi), 2, ntohs(ipcomp.comp_cpi), "CPI: %s (0x%04x)", diff --git a/packet-ipv6.c b/packet-ipv6.c index 267a7ae543..4753315e3e 100644 --- a/packet-ipv6.c +++ b/packet-ipv6.c @@ -1,7 +1,7 @@ /* packet-ipv6.c * Routines for IPv6 packet disassembly * - * $Id: packet-ipv6.c,v 1.35 2000/04/20 07:05:56 guy Exp $ + * $Id: packet-ipv6.c,v 1.36 2000/05/11 08:15:14 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -90,20 +90,20 @@ dissect_routing6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { /* !!! specify length */ - ti = proto_tree_add_text(tree, offset, len, + ti = proto_tree_add_text(tree, NullTVB, offset, len, "Routing Header, Type %u", rt.ip6r_type); rthdr_tree = proto_item_add_subtree(ti, ett_ipv6); - proto_tree_add_text(rthdr_tree, + proto_tree_add_text(rthdr_tree, NullTVB, offset + offsetof(struct ip6_rthdr, ip6r_nxt), 1, "Next header: %s (0x%02x)", ipprotostr(rt.ip6r_nxt), rt.ip6r_nxt); - proto_tree_add_text(rthdr_tree, + proto_tree_add_text(rthdr_tree, NullTVB, offset + offsetof(struct ip6_rthdr, ip6r_len), 1, "Length: %u (%d bytes)", rt.ip6r_len, len); - proto_tree_add_text(rthdr_tree, + proto_tree_add_text(rthdr_tree, NullTVB, offset + offsetof(struct ip6_rthdr, ip6r_type), 1, "Type: %u", rt.ip6r_type); - proto_tree_add_text(rthdr_tree, + proto_tree_add_text(rthdr_tree, NullTVB, offset + offsetof(struct ip6_rthdr, ip6r_segleft), 1, "Segments left: %u", rt.ip6r_segleft); @@ -117,7 +117,7 @@ dissect_routing6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) for (a = rt0->ip6r0_addr, n = 0; a < (struct e_in6_addr *)(buf + len); a++, n++) { - proto_tree_add_text(rthdr_tree, + proto_tree_add_text(rthdr_tree, NullTVB, offset + offsetof(struct ip6_rthdr0, ip6r0_addr) + n * sizeof(struct e_in6_addr), sizeof(struct e_in6_addr), #ifdef INET6 @@ -173,14 +173,14 @@ dissect_opts(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, if (tree) { /* !!! specify length */ - ti = proto_tree_add_text(tree, offset, len, + ti = proto_tree_add_text(tree, NullTVB, offset, len, "%s Header", optname); dstopt_tree = proto_item_add_subtree(ti, ett_ipv6); - proto_tree_add_text(dstopt_tree, + proto_tree_add_text(dstopt_tree, NullTVB, offset + offsetof(struct ip6_ext, ip6e_nxt), 1, "Next header: %s (0x%02x)", ipprotostr(ext.ip6e_nxt), ext.ip6e_nxt); - proto_tree_add_text(dstopt_tree, + proto_tree_add_text(dstopt_tree, NullTVB, offset + offsetof(struct ip6_ext, ip6e_len), 1, "Length: %u (%d bytes)", ext.ip6e_len, len); @@ -188,23 +188,23 @@ dissect_opts(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, while (p < pd + offset + len) { switch (p[0]) { case IP6OPT_PAD1: - proto_tree_add_text(dstopt_tree, p - pd, 1, + proto_tree_add_text(dstopt_tree, NullTVB, p - pd, 1, "Pad1"); p++; break; case IP6OPT_PADN: - proto_tree_add_text(dstopt_tree, p - pd, p[1] + 2, + proto_tree_add_text(dstopt_tree, NullTVB, p - pd, p[1] + 2, "PadN: %u bytes", p[1] + 2); p += p[1]; p += 2; break; case IP6OPT_JUMBO: if (p[1] == 4) { - proto_tree_add_text(dstopt_tree, p - pd, p[1] + 2, + proto_tree_add_text(dstopt_tree, NullTVB, p - pd, p[1] + 2, "Jumbo payload: %u (%u bytes)", pntohl(&p[2]), p[1] + 2); } else { - proto_tree_add_text(dstopt_tree, p - pd, p[1] + 2, + proto_tree_add_text(dstopt_tree, NullTVB, p - pd, p[1] + 2, "Jumbo payload: Invalid length (%u bytes)", p[1] + 2); } @@ -220,7 +220,7 @@ dissect_opts(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, "Unknown"); } else rta = "Invalid length"; - ti = proto_tree_add_text(dstopt_tree, p - pd, p[1] + 2, + ti = proto_tree_add_text(dstopt_tree, NullTVB, p - pd, p[1] + 2, "Router alert: %s (%u bytes)", rta, p[1] + 2); p += p[1]; p += 2; @@ -268,16 +268,16 @@ dissect_ipv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (tree) { /* !!! specify length */ - ti = proto_tree_add_item(tree, proto_ipv6, offset, 40, NULL); + ti = proto_tree_add_item(tree, proto_ipv6, NullTVB, offset, 40, NULL); ipv6_tree = proto_item_add_subtree(ti, ett_ipv6); /* !!! warning: version also contains 4 Bit priority */ - proto_tree_add_item(ipv6_tree, hf_ipv6_version, + proto_tree_add_item(ipv6_tree, hf_ipv6_version, NullTVB, offset + offsetof(struct ip6_hdr, ip6_vfc), 1, (ipv6.ip6_vfc >> 4) & 0x0f); - proto_tree_add_item(ipv6_tree, hf_ipv6_class, + proto_tree_add_item(ipv6_tree, hf_ipv6_class, NullTVB, offset + offsetof(struct ip6_hdr, ip6_flow), 4, (guint8)((ntohl(ipv6.ip6_flow) >> 20) & 0xff)); @@ -285,27 +285,27 @@ dissect_ipv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { * there should be no alignment problems for ip6_flow, since it's the first * guint32 in the ipv6 struct */ - proto_tree_add_uint_format(ipv6_tree, hf_ipv6_flow, + proto_tree_add_uint_format(ipv6_tree, hf_ipv6_flow, NullTVB, offset + offsetof(struct ip6_hdr, ip6_flow), 4, (unsigned long)(ntohl(ipv6.ip6_flow & IPV6_FLOWLABEL_MASK)), "Flowlabel: 0x%05lx", (unsigned long)(ntohl(ipv6.ip6_flow & IPV6_FLOWLABEL_MASK))); - proto_tree_add_item(ipv6_tree, hf_ipv6_plen, + proto_tree_add_item(ipv6_tree, hf_ipv6_plen, NullTVB, offset + offsetof(struct ip6_hdr, ip6_plen), 2, ntohs(ipv6.ip6_plen)); - proto_tree_add_uint_format(ipv6_tree, hf_ipv6_nxt, + proto_tree_add_uint_format(ipv6_tree, hf_ipv6_nxt, NullTVB, offset + offsetof(struct ip6_hdr, ip6_nxt), 1, ipv6.ip6_nxt, "Next header: %s (0x%02x)", ipprotostr(ipv6.ip6_nxt), ipv6.ip6_nxt); - proto_tree_add_item(ipv6_tree, hf_ipv6_hlim, + proto_tree_add_item(ipv6_tree, hf_ipv6_hlim, NullTVB, offset + offsetof(struct ip6_hdr, ip6_hlim), 1, ipv6.ip6_hlim); - proto_tree_add_ipv6_format(ipv6_tree, hf_ipv6_src, + proto_tree_add_ipv6_format(ipv6_tree, hf_ipv6_src, NullTVB, offset + offsetof(struct ip6_hdr, ip6_src), 16, (guint8 *)&ipv6.ip6_src, #ifdef INET6 @@ -316,7 +316,7 @@ dissect_ipv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { #endif ip6_to_str(&ipv6.ip6_src)); - proto_tree_add_ipv6_format(ipv6_tree, hf_ipv6_dst, + proto_tree_add_ipv6_format(ipv6_tree, hf_ipv6_dst, NullTVB, offset + offsetof(struct ip6_hdr, ip6_dst), 16, (guint8 *)&ipv6.ip6_dst, #ifdef INET6 @@ -363,7 +363,7 @@ again: } #ifdef TEST_FINALHDR - proto_tree_add_item_hidden(ipv6_tree, hf_ipv6_final, poffset, 1, nxt); + proto_tree_add_item_hidden(ipv6_tree, hf_ipv6_final, NullTVB, poffset, 1, nxt); #endif if (frag) { /* fragmented */ diff --git a/packet-ipx.c b/packet-ipx.c index 9812986852..68c666ce03 100644 --- a/packet-ipx.c +++ b/packet-ipx.c @@ -2,7 +2,7 @@ * Routines for NetWare's IPX * Gilbert Ramirez * - * $Id: packet-ipx.c,v 1.56 2000/04/18 04:46:05 guy Exp $ + * $Id: packet-ipx.c,v 1.57 2000/05/11 08:15:14 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -399,22 +399,22 @@ dissect_ipx(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { ipx_checksum = pntohs(&pd[offset]); ipx_hops = pd[offset+4]; - ti = proto_tree_add_item(tree, proto_ipx, offset, 30, NULL); + ti = proto_tree_add_item(tree, proto_ipx, NullTVB, offset, 30, NULL); ipx_tree = proto_item_add_subtree(ti, ett_ipx); - proto_tree_add_item(ipx_tree, hf_ipx_checksum, offset, 2, ipx_checksum); - proto_tree_add_uint_format(ipx_tree, hf_ipx_len, offset+2, 2, ipx_length, + proto_tree_add_item(ipx_tree, hf_ipx_checksum, NullTVB, offset, 2, ipx_checksum); + proto_tree_add_uint_format(ipx_tree, hf_ipx_len, NullTVB, offset+2, 2, ipx_length, "Length: %d bytes", ipx_length); - proto_tree_add_uint_format(ipx_tree, hf_ipx_hops, offset+4, 1, ipx_hops, + proto_tree_add_uint_format(ipx_tree, hf_ipx_hops, NullTVB, offset+4, 1, ipx_hops, "Transport Control: %d hops", ipx_hops); - proto_tree_add_item(ipx_tree, hf_ipx_packet_type, offset+5, 1, ipx_type); - proto_tree_add_item(ipx_tree, hf_ipx_dnet, offset+6, 4, ipx_dnet_val); - proto_tree_add_item(ipx_tree, hf_ipx_dnode, offset+10, 6, ipx_dnode); - proto_tree_add_uint_format(ipx_tree, hf_ipx_dsocket, offset+16, 2, + proto_tree_add_item(ipx_tree, hf_ipx_packet_type, NullTVB, offset+5, 1, ipx_type); + proto_tree_add_item(ipx_tree, hf_ipx_dnet, NullTVB, offset+6, 4, ipx_dnet_val); + proto_tree_add_item(ipx_tree, hf_ipx_dnode, NullTVB, offset+10, 6, ipx_dnode); + proto_tree_add_uint_format(ipx_tree, hf_ipx_dsocket, NullTVB, offset+16, 2, ipx_dsocket, "Destination Socket: %s (0x%04X)", port_text(ipx_dsocket), ipx_dsocket); - proto_tree_add_item(ipx_tree, hf_ipx_snet, offset+18, 4, ipx_snet_val); - proto_tree_add_item(ipx_tree, hf_ipx_snode, offset+22, 6, ipx_snode); - proto_tree_add_uint_format(ipx_tree, hf_ipx_ssocket, offset+28, 2, + proto_tree_add_item(ipx_tree, hf_ipx_snet, NullTVB, offset+18, 4, ipx_snet_val); + proto_tree_add_item(ipx_tree, hf_ipx_snode, NullTVB, offset+22, 6, ipx_snode); + proto_tree_add_uint_format(ipx_tree, hf_ipx_ssocket, NullTVB, offset+28, 2, ipx_ssocket, "Source Socket: %s (0x%04X)", port_text(ipx_ssocket), ipx_ssocket); } @@ -508,40 +508,40 @@ dissect_spx(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { col_add_str(fd, COL_INFO, "SPX"); if (tree) { - ti = proto_tree_add_item(tree, proto_spx, offset, 12, NULL); + ti = proto_tree_add_item(tree, proto_spx, NullTVB, offset, 12, NULL); spx_tree = proto_item_add_subtree(ti, ett_spx); - proto_tree_add_uint_format(spx_tree, hf_spx_connection_control, + proto_tree_add_uint_format(spx_tree, hf_spx_connection_control, NullTVB, offset, 1, pd[offset], "Connection Control: %s (0x%02X)", spx_conn_ctrl(pd[offset]), pd[offset]); - proto_tree_add_uint_format(spx_tree, hf_spx_datastream_type, + proto_tree_add_uint_format(spx_tree, hf_spx_datastream_type, NullTVB, offset+1, 1, pd[offset+1], "Datastream Type: %s (0x%02X)", spx_datastream(pd[offset+1]), pd[offset+1]); - proto_tree_add_item(spx_tree, hf_spx_src_id, + proto_tree_add_item(spx_tree, hf_spx_src_id, NullTVB, offset+2, 2, pntohs( &pd[offset+2] )); - proto_tree_add_item(spx_tree, hf_spx_dst_id, + proto_tree_add_item(spx_tree, hf_spx_dst_id, NullTVB, offset+4, 2, pntohs( &pd[offset+4] )); - proto_tree_add_item(spx_tree, hf_spx_seq_nr, + proto_tree_add_item(spx_tree, hf_spx_seq_nr, NullTVB, offset+6, 2, pntohs( &pd[offset+6] ) ); - proto_tree_add_item(spx_tree, hf_spx_ack_nr, + proto_tree_add_item(spx_tree, hf_spx_ack_nr, NullTVB, offset+8, 2, pntohs( &pd[offset+8] ) ); - proto_tree_add_item(spx_tree, hf_spx_all_nr, + proto_tree_add_item(spx_tree, hf_spx_all_nr, NullTVB, offset+10, 2, pntohs( &pd[offset+10] ) ); @@ -551,7 +551,7 @@ dissect_spx(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } /* ================================================================= */ -/* IPX Message */ +/* IPX Message */ /* ================================================================= */ static void dissect_ipxmsg(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { @@ -576,11 +576,11 @@ dissect_ipxmsg(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_item(tree, proto_ipxmsg, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ipxmsg, NullTVB, offset, END_OF_FRAME, NULL); msg_tree = proto_item_add_subtree(ti, ett_ipxmsg); - proto_tree_add_item(msg_tree, hf_msg_conn, offset, 1, conn_number); - proto_tree_add_item(msg_tree, hf_msg_sigchar, offset+1, 1, sig_char); + proto_tree_add_item(msg_tree, hf_msg_conn, NullTVB, offset, 1, conn_number); + proto_tree_add_item(msg_tree, hf_msg_sigchar, NullTVB, offset+1, 1, sig_char); } } @@ -612,26 +612,26 @@ dissect_ipxrip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_item(tree, proto_ipxrip, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ipxrip, NullTVB, offset, END_OF_FRAME, NULL); rip_tree = proto_item_add_subtree(ti, ett_ipxrip); if (operation < 2) { - proto_tree_add_text(rip_tree, offset, 2, + proto_tree_add_text(rip_tree, NullTVB, offset, 2, "RIP packet type: %s", rip_type[operation]); if (operation == 0) { proto_tree_add_item_hidden(rip_tree, hf_ipxrip_request, - offset, 2, 1); + NullTVB, offset, 2, 1); } else { proto_tree_add_item_hidden(rip_tree, hf_ipxrip_response, - offset, 2, 1); + NullTVB, offset, 2, 1); } } else { - proto_tree_add_text(rip_tree, offset, 2, "Unknown RIP packet type"); + proto_tree_add_text(rip_tree, NullTVB, offset, 2, "Unknown RIP packet type"); } for (cursor = offset + 2; cursor < pi.captured_len; cursor += 8) { @@ -640,14 +640,14 @@ dissect_ipxrip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { route.ticks = pntohs(&pd[cursor+6]); if (operation == IPX_RIP_REQUEST - 1) { - proto_tree_add_text(rip_tree, cursor, 8, + proto_tree_add_text(rip_tree, NullTVB, cursor, 8, "Route Vector: %s, %d hop%s, %d tick%s", ipxnet_to_string((guint8*)&route.network), route.hops, route.hops == 1 ? "" : "s", route.ticks, route.ticks == 1 ? "" : "s"); } else { - proto_tree_add_text(rip_tree, cursor, 8, + proto_tree_add_text(rip_tree, NullTVB, cursor, 8, "Route Vector: %s, %d hop%s, %d tick%s (%d ms)", ipxnet_to_string((guint8*)&route.network), route.hops, route.hops == 1 ? "" : "s", @@ -661,7 +661,7 @@ dissect_ipxrip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* ================================================================= */ -/* SAP */ +/* SAP */ /* ================================================================= */ static char* server_type(guint16 type) @@ -760,23 +760,23 @@ dissect_ipxsap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_item(tree, proto_sap, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_sap, NullTVB, offset, END_OF_FRAME, NULL); sap_tree = proto_item_add_subtree(ti, ett_ipxsap); if (query.query_type >= 1 && query.query_type <= 4) { - proto_tree_add_text(sap_tree, offset, 2, sap_type[query.query_type - 1]); + proto_tree_add_text(sap_tree, NullTVB, offset, 2, sap_type[query.query_type - 1]); if ((query.query_type - 1) % 2) { proto_tree_add_item_hidden(sap_tree, hf_sap_response, - offset, 2, 1); + NullTVB, offset, 2, 1); } else { proto_tree_add_item_hidden(sap_tree, hf_sap_request, - offset, 2, 1); + NullTVB, offset, 2, 1); } } else { - proto_tree_add_text(sap_tree, offset, 2, + proto_tree_add_text(sap_tree, NullTVB, offset, 2, "Unknown SAP Packet Type %d", query.query_type); } @@ -791,25 +791,25 @@ dissect_ipxsap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { server.server_port = pntohs(&pd[cursor+60]); server.intermediate_network = pntohs(&pd[cursor+62]); - ti = proto_tree_add_text(sap_tree, cursor+2, 48, + ti = proto_tree_add_text(sap_tree, NullTVB, cursor+2, 48, "Server Name: %s", server.server_name); s_tree = proto_item_add_subtree(ti, ett_ipxsap_server); - proto_tree_add_text(s_tree, cursor, 2, "Server Type: %s (0x%04X)", + proto_tree_add_text(s_tree, NullTVB, cursor, 2, "Server Type: %s (0x%04X)", server_type(server.server_type), server.server_type); - proto_tree_add_text(s_tree, cursor+50, 4, "Network: %s", + proto_tree_add_text(s_tree, NullTVB, cursor+50, 4, "Network: %s", ipxnet_to_string((guint8*)&pd[cursor+50])); - proto_tree_add_text(s_tree, cursor+54, 6, "Node: %s", + proto_tree_add_text(s_tree, NullTVB, cursor+54, 6, "Node: %s", ether_to_str((guint8*)&pd[cursor+54])); - proto_tree_add_text(s_tree, cursor+60, 2, "Socket: %s (0x%04X)", + proto_tree_add_text(s_tree, NullTVB, cursor+60, 2, "Socket: %s (0x%04X)", port_text(server.server_port), server.server_port); - proto_tree_add_text(s_tree, cursor+62, 2, + proto_tree_add_text(s_tree, NullTVB, cursor+62, 2, "Intermediate Networks: %d", server.intermediate_network); } } else { /* queries */ - proto_tree_add_text(sap_tree, offset+2, 2, "Server Type: %s (0x%04X)", + proto_tree_add_text(sap_tree, NullTVB, offset+2, 2, "Server Type: %s (0x%04X)", server_type(query.server_type), query.server_type); } } diff --git a/packet-irc.c b/packet-irc.c index e0c0bc9b13..e32454954d 100644 --- a/packet-irc.c +++ b/packet-irc.c @@ -1,7 +1,7 @@ /* packet-irc.c * Routines for MSX irc packet dissection * - * $Id: packet-irc.c,v 1.4 2000/04/08 07:07:22 guy Exp $ + * $Id: packet-irc.c,v 1.5 2000/05/11 08:15:15 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -55,18 +55,18 @@ static gint ett_irc = -1; static void dissect_irc_request(proto_tree *tree, char *line, int offset, int len) { - proto_tree_add_item_hidden(tree, hf_irc_request, + proto_tree_add_item_hidden(tree, hf_irc_request, NullTVB, offset, len, TRUE); - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Request Line: %s", line); } static void dissect_irc_response(proto_tree *tree, char *line, int offset, int len) { - proto_tree_add_item_hidden(tree, hf_irc_response, + proto_tree_add_item_hidden(tree, hf_irc_response, NullTVB, offset, len, TRUE); - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Response Line: %s", line); } @@ -89,7 +89,7 @@ dissect_irc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_irc, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_irc, NullTVB, offset, END_OF_FRAME, NULL); irc_tree = proto_item_add_subtree(ti, ett_irc); tmpline = (char *)g_malloc( pi.captured_len ); diff --git a/packet-isakmp.c b/packet-isakmp.c index 2d4970f089..e8d14407c5 100644 --- a/packet-isakmp.c +++ b/packet-isakmp.c @@ -2,7 +2,7 @@ * Routines for the Internet Security Association and Key Management Protocol (ISAKMP) * Brad Robel-Forrest * - * $Id: packet-isakmp.c,v 1.14 2000/04/28 17:53:25 guy Exp $ + * $Id: packet-isakmp.c,v 1.15 2000/05/11 08:15:15 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -353,28 +353,28 @@ dissect_isakmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { proto_item * ti; proto_tree * isakmp_tree; - ti = proto_tree_add_item(tree, proto_isakmp, offset, len, NULL); + ti = proto_tree_add_item(tree, proto_isakmp, NullTVB, offset, len, NULL); isakmp_tree = proto_item_add_subtree(ti, ett_isakmp); - proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->icookie), + proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->icookie), "Initiator cookie"); offset += sizeof(hdr->icookie); - proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->rcookie), + proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->rcookie), "Responder cookie"); offset += sizeof(hdr->rcookie); - proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload); - proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->version), + proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->version), "Version: %u.%u", hi_nibble(hdr->version), lo_nibble(hdr->version)); offset += sizeof(hdr->version); - proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->exch_type), + proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->exch_type), "Exchange type: %s (%u)", exchtype2str(hdr->exch_type), hdr->exch_type); offset += sizeof(hdr->exch_type); @@ -383,31 +383,31 @@ dissect_isakmp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { proto_item * fti; proto_tree * ftree; - fti = proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->flags), "Flags"); + fti = proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->flags), "Flags"); ftree = proto_item_add_subtree(fti, ett_isakmp_flags); - proto_tree_add_text(ftree, offset, 1, "%s", + proto_tree_add_text(ftree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(hdr->flags, E_FLAG, sizeof(hdr->flags)*8, "Encryption", "No encryption")); - proto_tree_add_text(ftree, offset, 1, "%s", + proto_tree_add_text(ftree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(hdr->flags, C_FLAG, sizeof(hdr->flags)*8, "Commit", "No commit")); - proto_tree_add_text(ftree, offset, 1, "%s", + proto_tree_add_text(ftree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(hdr->flags, A_FLAG, sizeof(hdr->flags)*8, "Authentication", "No authentication")); offset += sizeof(hdr->flags); } - proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->message_id), "Message ID"); + proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->message_id), "Message ID"); offset += sizeof(hdr->message_id); - proto_tree_add_text(isakmp_tree, offset, sizeof(hdr->length), + proto_tree_add_text(isakmp_tree, NullTVB, offset, sizeof(hdr->length), "Length: %u", len); offset += sizeof(hdr->length); if (hdr->flags & E_FLAG) { if (IS_DATA_IN_FRAME(offset) && isakmp_tree) { - proto_tree_add_text(isakmp_tree, offset, END_OF_FRAME, + proto_tree_add_text(isakmp_tree, NullTVB, offset, END_OF_FRAME, "Encrypted payload (%d byte%s)", END_OF_FRAME, plurality(END_OF_FRAME, "", "s")); } @@ -435,26 +435,26 @@ dissect_sa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { guint16 length = pntohs(&hdr->length); guint32 doi = pntohl(&hdr->doi); guint32 situation = pntohl(&hdr->situation); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Security Association payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Security Association payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(doi), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(doi), "Domain of interpretation: %s (%u)", doitype2str(doi), doi); offset += sizeof(doi); - proto_tree_add_text(ntree, offset, sizeof(situation), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(situation), "Situation: %s (%u)", situation2str(situation), situation); offset += sizeof(situation); @@ -477,41 +477,41 @@ dissect_proposal(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) struct proposal_hdr * hdr = (struct proposal_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Proposal payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Proposal payload"); proto_tree * ntree; int next_hdr_offset = offset + length; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(hdr->proposal_num), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->proposal_num), "Proposal number: %u", hdr->proposal_num); offset += sizeof(hdr->proposal_num); - proto_tree_add_text(ntree, offset, sizeof(hdr->protocol_id), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->protocol_id), "Protocol ID: %s (%u)", proto2str(hdr->protocol_id), hdr->protocol_id); offset += sizeof(hdr->protocol_id); - proto_tree_add_text(ntree, offset, sizeof(hdr->spi_size), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->spi_size), "SPI size: %u", hdr->spi_size); offset += sizeof(hdr->spi_size); - proto_tree_add_text(ntree, offset, sizeof(hdr->num_transforms), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->num_transforms), "Number of transforms: %u", hdr->num_transforms); offset += sizeof(hdr->num_transforms); if (hdr->spi_size) { - proto_tree_add_text(ntree, offset, hdr->spi_size, "SPI"); + proto_tree_add_text(ntree, NullTVB, offset, hdr->spi_size, "SPI"); offset += hdr->spi_size; } @@ -535,38 +535,38 @@ dissect_transform(const u_char *pd, int offset, frame_data *fd, struct trans_hdr * hdr = (struct trans_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Transform payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Transform payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(hdr->transform_num), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->transform_num), "Transform number: %u", hdr->transform_num); offset += sizeof(hdr->transform_num); switch (protocol_id) { default: case 1: /* ISAKMP */ - proto_tree_add_text(ntree, offset, sizeof(hdr->transform_id), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->transform_id), "Transform ID: %s (%u)", trans2str(hdr->transform_id), hdr->transform_id); break; case 2: /* AH */ - proto_tree_add_text(ntree, offset, sizeof(hdr->transform_id), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->transform_id), "Transform ID: %s (%u)", ah_trans2str(hdr->transform_id), hdr->transform_id); break; case 3: /* ESP */ - proto_tree_add_text(ntree, offset, sizeof(hdr->transform_id), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->transform_id), "Transform ID: %s (%u)", esp_trans2str(hdr->transform_id), hdr->transform_id); break; @@ -589,7 +589,7 @@ dissect_transform(const u_char *pd, int offset, frame_data *fd, } if (pd[offset] & 0xf0) { - proto_tree_add_text(ntree, offset, 4, + proto_tree_add_text(ntree, NullTVB, offset, 4, "%s (%u): %s (%u)", str, type, value2str(ike_phase1, type, val_len), val_len); @@ -599,7 +599,7 @@ dissect_transform(const u_char *pd, int offset, frame_data *fd, else { guint16 pack_len = 4 + val_len; - proto_tree_add_text(ntree, offset, pack_len, + proto_tree_add_text(ntree, NullTVB, offset, pack_len, "%s (%u): %s", str, type, num2str(pd + offset + 4, val_len)); @@ -623,21 +623,21 @@ dissect_key_exch(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) struct ke_hdr * hdr = (struct ke_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Key Exchange payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Key Exchange payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Key Exchange Data"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Key Exchange Data"); offset += (length - sizeof(*hdr)); if (hdr->next_payload < NUM_LOAD_TYPES) { @@ -655,45 +655,45 @@ dissect_id(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct id_hdr * hdr = (struct id_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Identification payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Identification payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(hdr->id_type), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->id_type), "ID type: %s (%u)", id2str(hdr->id_type), hdr->id_type); offset += sizeof(hdr->id_type); - proto_tree_add_text(ntree, offset, sizeof(hdr->protocol_id), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->protocol_id), "Protocol ID: %u", hdr->protocol_id); offset += sizeof(hdr->protocol_id); - proto_tree_add_text(ntree, offset, sizeof(hdr->port), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->port), "Port: %u", pntohs(&hdr->port)); offset += sizeof(hdr->port); switch (hdr->id_type) { case 1: case 4: - proto_tree_add_text(ntree, offset, length-sizeof(*hdr), + proto_tree_add_text(ntree, NullTVB, offset, length-sizeof(*hdr), "Identification data: %s", ip_to_str(pd+offset)); break; case 2: case 3: - proto_tree_add_text(ntree, offset, length-sizeof(*hdr), + proto_tree_add_text(ntree, NullTVB, offset, length-sizeof(*hdr), "Identification data: %s", (char *)(pd+offset)); break; default: - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Identification Data"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Identification Data"); } offset += (length - sizeof(*hdr)); @@ -712,25 +712,25 @@ dissect_cert(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct cert_hdr * hdr = (struct cert_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Certificate payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Certificate payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(hdr->cert_enc), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->cert_enc), "Certificate encoding: %u", hdr->cert_enc); offset += sizeof(hdr->cert_enc); - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Certificate Data"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Certificate Data"); offset += (length - sizeof(*hdr)); if (hdr->next_payload < NUM_LOAD_TYPES) { @@ -748,25 +748,25 @@ dissect_certreq(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) struct certreq_hdr * hdr = (struct certreq_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Certificate Request payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Certificate Request payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(hdr->cert_type), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->cert_type), "Certificate type: %u", hdr->cert_type); offset += sizeof(hdr->cert_type); - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Certificate Authority"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Certificate Authority"); offset += (length - sizeof(*hdr)); if (hdr->next_payload < NUM_LOAD_TYPES) { @@ -784,21 +784,21 @@ dissect_hash(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct hash_hdr * hdr = (struct hash_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Hash payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Hash payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Hash Data"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Hash Data"); offset += (length - sizeof(*hdr)); if (hdr->next_payload < NUM_LOAD_TYPES) { @@ -816,21 +816,21 @@ dissect_sig(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct sig_hdr * hdr = (struct sig_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Signature payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Signature payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Signature Data"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Signature Data"); offset += (length - sizeof(*hdr)); if (hdr->next_payload < NUM_LOAD_TYPES) { @@ -848,21 +848,21 @@ dissect_nonce(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct nonce_hdr * hdr = (struct nonce_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Nonce payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Nonce payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Nonce Data"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Nonce Data"); offset += (length - sizeof(*hdr)); if (hdr->next_payload < NUM_LOAD_TYPES) { @@ -882,44 +882,44 @@ dissect_notif(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { guint16 length = pntohs(&hdr->length); guint32 doi = pntohl(&hdr->doi); guint16 msgtype = pntohs(&hdr->msgtype); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Notification payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Notification payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(doi), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(doi), "Domain of Interpretation: %s (%u)", doitype2str(doi), doi); offset += sizeof(doi); - proto_tree_add_text(ntree, offset, sizeof(hdr->protocol_id), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->protocol_id), "Protocol ID: %s (%u)", proto2str(hdr->protocol_id), hdr->protocol_id); offset += sizeof(hdr->protocol_id); - proto_tree_add_text(ntree, offset, sizeof(hdr->spi_size), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->spi_size), "SPI size: %u", hdr->spi_size); offset += sizeof(hdr->spi_size); - proto_tree_add_text(ntree, offset, sizeof(msgtype), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(msgtype), "Message type: %s (%u)", msgtype2str(msgtype), msgtype); offset += sizeof(msgtype); if (hdr->spi_size) { - proto_tree_add_text(ntree, offset, hdr->spi_size, "Security Parameter Index"); + proto_tree_add_text(ntree, NullTVB, offset, hdr->spi_size, "Security Parameter Index"); offset += hdr->spi_size; } if (length - sizeof(*hdr)) { - proto_tree_add_text(ntree, offset, length - sizeof(*hdr) - hdr->spi_size, + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr) - hdr->spi_size, "Notification Data"); offset += (length - sizeof(*hdr) - hdr->spi_size); } @@ -941,40 +941,40 @@ dissect_delete(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { guint16 length = pntohs(&hdr->length); guint32 doi = pntohl(&hdr->doi); guint16 num_spis = pntohs(&hdr->num_spis); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Delete payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Delete payload"); proto_tree * ntree; guint16 i; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, sizeof(doi), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(doi), "Domain of Interpretation: %s (%u)", doitype2str(doi), doi); offset += sizeof(doi); - proto_tree_add_text(ntree, offset, sizeof(hdr->protocol_id), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->protocol_id), "Protocol ID: %s (%u)", proto2str(hdr->protocol_id), hdr->protocol_id); offset += sizeof(hdr->protocol_id); - proto_tree_add_text(ntree, offset, sizeof(hdr->spi_size), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->spi_size), "SPI size: %u", hdr->spi_size); offset += sizeof(hdr->spi_size); - proto_tree_add_text(ntree, offset, num_spis, + proto_tree_add_text(ntree, NullTVB, offset, num_spis, "Number of SPIs: %u", num_spis); offset += sizeof(hdr->num_spis); for (i = 0; i < num_spis; ++i) { - proto_tree_add_text(ntree, offset, hdr->spi_size, + proto_tree_add_text(ntree, NullTVB, offset, hdr->spi_size, "SPI (%d)", i); offset += hdr->spi_size; } @@ -994,21 +994,21 @@ dissect_vid(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct vid_hdr * hdr = (struct vid_hdr *)(pd + offset); guint16 length = pntohs(&hdr->length); - proto_item * ti = proto_tree_add_text(tree, offset, length, "Vendor ID payload"); + proto_item * ti = proto_tree_add_text(tree, NullTVB, offset, length, "Vendor ID payload"); proto_tree * ntree; ntree = proto_item_add_subtree(ti, ett_isakmp_payload); - proto_tree_add_text(ntree, offset, sizeof(hdr->next_payload), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(hdr->next_payload), "Next payload: %s (%u)", payloadtype2str(hdr->next_payload), hdr->next_payload); offset += sizeof(hdr->next_payload) * 2; - proto_tree_add_text(ntree, offset, sizeof(length), + proto_tree_add_text(ntree, NullTVB, offset, sizeof(length), "Length: %u", length); offset += sizeof(length); - proto_tree_add_text(ntree, offset, length - sizeof(*hdr), "Vendor ID"); + proto_tree_add_text(ntree, NullTVB, offset, length - sizeof(*hdr), "Vendor ID"); offset += (length - sizeof(*hdr)); if (hdr->next_payload < NUM_LOAD_TYPES) { diff --git a/packet-isis-clv.c b/packet-isis-clv.c index 1de98279c9..ed1354af90 100644 --- a/packet-isis-clv.c +++ b/packet-isis-clv.c @@ -1,7 +1,7 @@ /* packet-isis-clv.c * Common CLV decode routines. * - * $Id: packet-isis-clv.c,v 1.3 2000/04/15 22:11:09 guy Exp $ + * $Id: packet-isis-clv.c,v 1.4 2000/05/11 08:15:16 gram Exp $ * Stuart Stanley * * Ethereal - Network traffic analyzer @@ -98,7 +98,7 @@ isis_dissect_area_address_clv(const u_char *pd, int offset, sbuf = print_nsap_net( pd + offset + 1, mylen ); /* and spit it out */ if ( tree ) { - proto_tree_add_text ( tree, offset, mylen + 1, + proto_tree_add_text ( tree, NullTVB, offset, mylen + 1, "Area address (%d): %s", mylen, sbuf ); } offset += mylen + 1; @@ -167,7 +167,7 @@ isis_dissect_authentication_clv(const u_char *pd, int offset, guint length, } /* NOTE, s no longer valid */ } - proto_tree_add_text ( tree, offset - 1, length + 1, + proto_tree_add_text ( tree, NullTVB, offset - 1, length + 1, "%s %s", meaning, sbuf ); if ( !use_cleartext ) { if ( length ) { @@ -212,7 +212,7 @@ isis_dissect_ip_int_clv(const u_char *pd, int offset, } memcpy(&addr, &pd[offset], sizeof(addr)); if ( tree ) { - proto_tree_add_item(tree, tree_id, offset, 4, addr); + proto_tree_add_item(tree, tree_id, NullTVB, offset, 4, addr); } offset += 4; length -= 4; @@ -258,7 +258,7 @@ isis_dissect_nlpid_clv(const u_char *pd, int offset, sprintf ( sbuf, "--none--" ); } - proto_tree_add_text ( tree, old_offset, hlen, + proto_tree_add_text ( tree, NullTVB, old_offset, hlen, "NLPID: %s", sbuf ); } @@ -319,7 +319,7 @@ isis_dissect_clvs(const isis_clv_handle_t *opts, int len, /* adjust by 2 for code/len octets */ snprintf ( sbuf, sizeof(sbuf), "%s (%d)", opts[q].tree_text, length ); - ti = proto_tree_add_text(tree, offset - 2, + ti = proto_tree_add_text(tree, NullTVB, offset - 2, length + 2, sbuf); clv_tree = proto_item_add_subtree(ti, *opts[q].tree_id ); @@ -331,7 +331,7 @@ isis_dissect_clvs(const isis_clv_handle_t *opts, int len, if (tree) { snprintf ( sbuf, sizeof(sbuf), "Unknown code (%d:%d)", code, length ); - ti = proto_tree_add_text(tree, offset - 2, + ti = proto_tree_add_text(tree, NullTVB, offset - 2, length + 2, sbuf); clv_tree = proto_item_add_subtree(ti, unknown_tree_id ); diff --git a/packet-isis-hello.c b/packet-isis-hello.c index 3c53125469..519e0e48b3 100644 --- a/packet-isis-hello.c +++ b/packet-isis-hello.c @@ -1,7 +1,7 @@ /* packet-isis-hello.c * Routines for decoding isis hello packets and their CLVs * - * $Id: packet-isis-hello.c,v 1.6 2000/04/15 22:11:09 guy Exp $ + * $Id: packet-isis-hello.c,v 1.7 2000/05/11 08:15:16 gram Exp $ * Stuart Stanley * * Ethereal - Network traffic analyzer @@ -360,7 +360,7 @@ dissect_hello_is_neighbors_clv(const u_char *pd, int offset, * format string. */ if ( tree ) { - proto_tree_add_text ( tree, offset, 6, + proto_tree_add_text ( tree, NullTVB, offset, 6, "IS Neighbor: %s", print_system_id( pd + offset, 6 ) ); } offset += 6; @@ -436,12 +436,12 @@ isis_dissect_isis_hello(int hello_type, int header_length, ihp = (isis_hello_t *) &pd[offset]; if (tree) { - ti = proto_tree_add_item(tree, proto_isis_hello, + ti = proto_tree_add_item(tree, proto_isis_hello, NullTVB, offset, END_OF_FRAME, NULL); hello_tree = proto_item_add_subtree(ti, ett_isis_hello); proto_tree_add_uint_format(hello_tree, hf_isis_hello_circuit_reserved, - offset, 1, ihp->isis_hello_circuit_reserved, + NullTVB, offset, 1, ihp->isis_hello_circuit_reserved, "Circuit type : %s, reserved(0x%02x == 0)", val_to_str(ihp->isis_hello_circuit, isis_hello_circuit_type_vals, @@ -449,23 +449,23 @@ isis_dissect_isis_hello(int hello_type, int header_length, ihp->isis_hello_creserved ); - proto_tree_add_string_format(hello_tree, hf_isis_hello_lan_id, + proto_tree_add_string_format(hello_tree, hf_isis_hello_lan_id, NullTVB, offset + 1, 6, ihp->isis_hello_source_id, "SystemID{ Sender of PDU } : %s", print_system_id( pd + offset + 1, 6 ) ); - proto_tree_add_item(hello_tree, hf_isis_hello_holding_timer, + proto_tree_add_item(hello_tree, hf_isis_hello_holding_timer, NullTVB, offset + 7, 2,pntohs(&ihp->isis_hello_holding_timer[0])); - proto_tree_add_item(hello_tree, hf_isis_hello_pdu_length, + proto_tree_add_item(hello_tree, hf_isis_hello_pdu_length, NullTVB, offset + 9, 2,pntohs(&ihp->isis_hello_pdu_length[0])); - proto_tree_add_uint_format(hello_tree, hf_isis_hello_priority_reserved, + proto_tree_add_uint_format(hello_tree, hf_isis_hello_priority_reserved, NullTVB, offset + 11, 1, ihp->isis_hello_priority_reserved, "Priority : %d, reserved(0x%02x == 0)", ihp->isis_hello_priority, ihp->isis_hello_preserved ); if (hello_type == ISIS_TYPE_PTP_HELLO) { - proto_tree_add_item(hello_tree, hf_isis_hello_local_circuit_id, + proto_tree_add_item(hello_tree, hf_isis_hello_local_circuit_id, NullTVB, offset + 12, 1, ihp->isis_hello_lan_id[0] ); } else { - proto_tree_add_string_format(hello_tree, hf_isis_hello_lan_id, + proto_tree_add_string_format(hello_tree, hf_isis_hello_lan_id, NullTVB, offset + 12, 7, ihp->isis_hello_lan_id, "SystemID{ Designated IS } : %s", print_system_id( pd + offset + 12, 7 ) ); diff --git a/packet-isis-lsp.c b/packet-isis-lsp.c index 296123d7f0..0b27029389 100644 --- a/packet-isis-lsp.c +++ b/packet-isis-lsp.c @@ -1,7 +1,7 @@ /* packet-isis-lsp.c * Routines for decoding isis lsp packets and their CLVs * - * $Id: packet-isis-lsp.c,v 1.5 2000/04/15 22:11:09 guy Exp $ + * $Id: packet-isis-lsp.c,v 1.6 2000/05/11 08:15:16 gram Exp $ * Stuart Stanley * * Ethereal - Network traffic analyzer @@ -267,7 +267,7 @@ dissect_metric(proto_tree *tree, int offset, guint8 value, if ( !tree ) return; s = ISIS_LSP_CLV_METRIC_SUPPORTED(value); - proto_tree_add_text ( tree, offset, 1, + proto_tree_add_text ( tree, NullTVB, offset, 1, "%s Metric: %s%s %s%d:%d", pstr, s ? "Not supported" : "Supported", (s && force_supported) ? "(but is required to be)":"", @@ -314,7 +314,7 @@ dissect_lsp_ip_reachability_clv(const u_char *pd, int offset, if ( tree ) { memcpy(&src, &pd[offset+4], 4); memcpy(&mask, &pd[offset+8], 4); - ti = proto_tree_add_text ( tree, offset, 12, + ti = proto_tree_add_text ( tree, NullTVB, offset, 12, "IP prefix: %s (%s) : %s", get_hostname(src), ip_to_str((guint8*)&src), ip_to_str((guint8*)&mask) ); @@ -490,10 +490,10 @@ dissect_lsp_eis_neighbors_clv_inner(const u_char *pd, int offset, if ( tree ) { if ( show_virtual ) { /* virtual path flag */ - proto_tree_add_text ( tree, offset, 1, + proto_tree_add_text ( tree, NullTVB, offset, 1, &pd[offset] ? "IsNotVirtual" : "IsVirtual" ); } else { - proto_tree_add_text ( tree, offset, 1, + proto_tree_add_text ( tree, NullTVB, offset, 1, "Reserved value 0x%02x, must == 0", pd[offset] ); } @@ -515,11 +515,11 @@ dissect_lsp_eis_neighbors_clv_inner(const u_char *pd, int offset, */ if ( tree ) { if ( is_eis ) { - ti = proto_tree_add_text ( tree, offset, 11, + ti = proto_tree_add_text ( tree, NullTVB, offset, 11, "ES Neighbor: %s", print_system_id( pd + offset + 4, 6 ) ); } else { - ti = proto_tree_add_text ( tree, offset, 11, + ti = proto_tree_add_text ( tree, NullTVB, offset, 11, "IS Neighbor: %s", print_system_id( pd + offset + 4, 6 ) ); } @@ -643,7 +643,7 @@ dissect_lsp_partition_dis_clv(const u_char *pd, int offset, * Gotta build a sub-tree for all our pieces */ if ( tree ) { - proto_tree_add_text ( tree, offset+4, 6, + proto_tree_add_text ( tree, NullTVB, offset+4, 6, "Partition designated L2 IS: %s", print_system_id( pd + offset, 6 ) ); } @@ -718,7 +718,7 @@ dissect_lsp_prefix_neighbors_clv(const u_char *pd, int offset, sbuf = print_area( pd + offset + 1, mylen ); /* and spit it out */ if ( tree ) { - proto_tree_add_text ( tree, offset, mylen + 1, + proto_tree_add_text ( tree, NullTVB, offset, mylen + 1, "Area address (%d): %s", mylen, sbuf ); } offset += mylen + 1; @@ -744,7 +744,7 @@ dissect_lsp_prefix_neighbors_clv(const u_char *pd, int offset, void isis_lsp_decode_lsp_id(char *tstr, proto_tree *tree, int offset, isis_lsp_id_t *id ) { - proto_tree_add_text(tree, offset, 8, + proto_tree_add_text(tree, NullTVB, offset, 8, "%s: %s.%02x-%02x", tstr, print_system_id( id->source_id, 6 ), id->psuodonode_id, @@ -790,21 +790,21 @@ isis_dissect_isis_lsp(int lsp_type, int header_length, ilp = (isis_lsp_t *) &pd[offset]; if (tree) { - ti = proto_tree_add_item(tree, proto_isis_lsp, + ti = proto_tree_add_item(tree, proto_isis_lsp, NullTVB, offset, END_OF_FRAME, NULL); lsp_tree = proto_item_add_subtree(ti, ett_isis_lsp); - proto_tree_add_item(lsp_tree, hf_isis_lsp_pdu_length, + proto_tree_add_item(lsp_tree, hf_isis_lsp_pdu_length, NullTVB, offset, 2, pntohs(&ilp->isis_lsp_pdu_length)); - proto_tree_add_item(lsp_tree, hf_isis_lsp_remaining_life, + proto_tree_add_item(lsp_tree, hf_isis_lsp_remaining_life, NullTVB, offset + 2, 2, pntohs(&ilp->isis_lsp_remaining_life)); isis_lsp_decode_lsp_id("LSP ID", lsp_tree, offset + 4, &ilp->isis_lsp_id ); - proto_tree_add_item(lsp_tree, hf_isis_lsp_sequence_number, + proto_tree_add_item(lsp_tree, hf_isis_lsp_sequence_number, NullTVB, offset + 12, 4, pntohl(&ilp->isis_lsp_sequence_number)); /* XXX -> we could validate the cksum here! */ - proto_tree_add_item(lsp_tree, hf_isis_lsp_checksum, + proto_tree_add_item(lsp_tree, hf_isis_lsp_checksum, NullTVB, offset + 16, 2, pntohs(&ilp->isis_lsp_checksum)); /* @@ -826,7 +826,7 @@ isis_dissect_isis_lsp(int lsp_type, int header_length, if (!some) { strcat ( sbuf, "" ); } - proto_tree_add_text(lsp_tree, offset + 18, 1, + proto_tree_add_text(lsp_tree, NullTVB, offset + 18, 1, "Type block(0x%02x): P:%d, Supported metric(s): %s, OL:%d, istype:%s", ilp->isis_lsp_type_block, ISIS_LSP_PARTITION(ilp->isis_lsp_type_block) ? 1 : 0, diff --git a/packet-isis-snp.c b/packet-isis-snp.c index 6b37ac5f0d..a5ce886790 100644 --- a/packet-isis-snp.c +++ b/packet-isis-snp.c @@ -1,7 +1,7 @@ /* packet-isis-snp.c * Routines for decoding isis complete & partial SNP and their payload * - * $Id: packet-isis-snp.c,v 1.3 2000/04/15 22:11:10 guy Exp $ + * $Id: packet-isis-snp.c,v 1.4 2000/05/11 08:15:17 gram Exp $ * Stuart Stanley * * Ethereal - Network traffic analyzer @@ -197,14 +197,14 @@ dissect_snp_lsp_entries(const u_char *pd, int offset, guint length, return; } - proto_tree_add_text(tree, offset, 2, "Remaining life : %d", + proto_tree_add_text(tree, NullTVB, offset, 2, "Remaining life : %d", pntohs(&ps->isis_snp_remaining_lifetime)); isis_lsp_decode_lsp_id( "LSP ID ", tree, offset + 2, &ps->isis_snp_lsp_id ); - proto_tree_add_text(tree, offset+10, 4, + proto_tree_add_text(tree, NullTVB, offset+10, 4, "LSP Sequence Number : 0x%04x", pntohl(&ps->isis_snp_sequence_number)); - proto_tree_add_text(tree, offset+14, 2, + proto_tree_add_text(tree, NullTVB, offset+14, 2, "LSP checksum : 0x%02x", pntohs(&ps->isis_snp_checksum)); length -= sizeof ( isis_snp_t ); @@ -253,12 +253,12 @@ isis_dissect_isis_csnp(int type, int header_length, const u_char *pd, ilp = (isis_csnp_t *) &pd[offset]; if (tree) { - ti = proto_tree_add_item(tree, proto_isis_csnp, + ti = proto_tree_add_item(tree, proto_isis_csnp, NullTVB, offset, END_OF_FRAME, NULL); csnp_tree = proto_item_add_subtree(ti, ett_isis_csnp); - proto_tree_add_item(csnp_tree, hf_isis_csnp_pdu_length, + proto_tree_add_item(csnp_tree, hf_isis_csnp_pdu_length, NullTVB, offset, 2, pntohs(&ilp->isis_csnp_pdu_length)); - proto_tree_add_text(csnp_tree, offset + 2, 7, + proto_tree_add_text(csnp_tree, NullTVB, offset + 2, 7, "Source id : %s", print_system_id( pd + offset + 2, 7 ) ); isis_lsp_decode_lsp_id( "Start LSP id ", csnp_tree, offset + 9, @@ -321,12 +321,12 @@ isis_dissect_isis_psnp(int type, int header_length, const u_char *pd, ilp = (isis_psnp_t *) &pd[offset]; if (tree) { - ti = proto_tree_add_item(tree, proto_isis_psnp, + ti = proto_tree_add_item(tree, proto_isis_psnp, NullTVB, offset, END_OF_FRAME, NULL); psnp_tree = proto_item_add_subtree(ti, ett_isis_psnp); - proto_tree_add_item(psnp_tree, hf_isis_psnp_pdu_length, + proto_tree_add_item(psnp_tree, hf_isis_psnp_pdu_length, NullTVB, offset, 2, pntohs(&ilp->isis_psnp_pdu_length)); - proto_tree_add_text(psnp_tree, offset + 2, 7, + proto_tree_add_text(psnp_tree, NullTVB, offset + 2, 7, "Source id: %s", print_system_id( pd + offset + 2, 7 ) ); } diff --git a/packet-isis.c b/packet-isis.c index 81fd5b80ac..b402506cfc 100644 --- a/packet-isis.c +++ b/packet-isis.c @@ -2,7 +2,7 @@ * Routines for ISO/OSI network and transport protocol packet disassembly, core * bits. * - * $Id: packet-isis.c,v 1.8 2000/04/17 01:36:31 guy Exp $ + * $Id: packet-isis.c,v 1.9 2000/05/11 08:15:17 gram Exp $ * Stuart Stanley * * Ethereal - Network traffic analyzer @@ -111,7 +111,7 @@ isis_dissect_unknown(int offset,guint length,proto_tree *tree,frame_data *fd, } va_start(ap, fmat); - proto_tree_add_text(tree, offset, length, fmat, ap); + proto_tree_add_text(tree, NullTVB, offset, length, fmat, ap); va_end(ap); } /* @@ -159,18 +159,18 @@ dissect_isis(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(tree, proto_isis, offset, + ti = proto_tree_add_item(tree, proto_isis, NullTVB, offset, END_OF_FRAME, NULL ); isis_tree = proto_item_add_subtree(ti, ett_isis); - proto_tree_add_item(isis_tree, hf_isis_irpd, offset, 1, + proto_tree_add_item(isis_tree, hf_isis_irpd, NullTVB, offset, 1, ihdr->isis_irpd ); - proto_tree_add_item(isis_tree, hf_isis_header_length, + proto_tree_add_item(isis_tree, hf_isis_header_length, NullTVB, offset + 1, 1, ihdr->isis_header_length ); - proto_tree_add_item(isis_tree, hf_isis_version, + proto_tree_add_item(isis_tree, hf_isis_version, NullTVB, offset + 2, 1, ihdr->isis_version ); - proto_tree_add_item(isis_tree, hf_isis_system_id_length, + proto_tree_add_item(isis_tree, hf_isis_system_id_length, NullTVB, offset + 3, 1, ihdr->isis_system_id_len ); - proto_tree_add_uint_format(isis_tree, hf_isis_type, + proto_tree_add_uint_format(isis_tree, hf_isis_type, NullTVB, offset + 4, 1, ihdr->isis_type, "Type : %s (R:%s%s%s)", val_to_str(ihdr->isis_type & ISIS_TYPE_MASK, isis_vals, @@ -178,11 +178,11 @@ dissect_isis(const u_char *pd, int offset, frame_data *fd, (ihdr->isis_type & ISIS_R8_MASK) ? "1" : "0", (ihdr->isis_type & ISIS_R7_MASK) ? "1" : "0", (ihdr->isis_type & ISIS_R6_MASK) ? "1" : "0"); - proto_tree_add_item(isis_tree, hf_isis_version2, + proto_tree_add_item(isis_tree, hf_isis_version2, NullTVB, offset + 5, 1, ihdr->isis_version2 ); - proto_tree_add_item(isis_tree, hf_isis_reserved, + proto_tree_add_item(isis_tree, hf_isis_reserved, NullTVB, offset + 6, 1, ihdr->isis_reserved ); - proto_tree_add_item(isis_tree, hf_isis_max_area_adr, + proto_tree_add_item(isis_tree, hf_isis_max_area_adr, NullTVB, offset + 7, 1, ihdr->isis_max_area_adr ); } diff --git a/packet-isl.c b/packet-isl.c index b821c7d095..4d1a94773d 100644 --- a/packet-isl.c +++ b/packet-isl.c @@ -1,7 +1,7 @@ /* packet-isl.c * Routines for Cisco ISL Ethernet header disassembly * - * $Id: packet-isl.c,v 1.7 2000/03/20 22:22:45 gram Exp $ + * $Id: packet-isl.c,v 1.8 2000/05/11 08:15:17 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -158,49 +158,49 @@ dissect_isl(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) type = (pd[offset+5] >> 4)&0x0F; if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_isl, offset, ISL_HEADER_SIZE, + ti = proto_tree_add_protocol_format(tree, proto_isl, NullTVB, offset, ISL_HEADER_SIZE, "ISL"); fh_tree = proto_item_add_subtree(ti, ett_isl); - proto_tree_add_item(fh_tree, hf_isl_dst, offset+0, 6, &pd[offset+0]); - proto_tree_add_item_hidden(fh_tree, hf_isl_addr, offset+0, 6, &pd[offset+0]); - proto_tree_add_item(fh_tree, hf_isl_type, offset+5, 1, pd[offset+5]); + proto_tree_add_item(fh_tree, hf_isl_dst, NullTVB, offset+0, 6, &pd[offset+0]); + proto_tree_add_item_hidden(fh_tree, hf_isl_addr, NullTVB, offset+0, 6, &pd[offset+0]); + proto_tree_add_item(fh_tree, hf_isl_type, NullTVB, offset+5, 1, pd[offset+5]); switch (type) { case TYPE_ETHER: - proto_tree_add_item(fh_tree, hf_isl_user_eth, offset+5, 1, + proto_tree_add_item(fh_tree, hf_isl_user_eth, NullTVB, offset+5, 1, pd[offset+5]&0x03); break; default: /* XXX - the spec appears to indicate that the "User" field is used for TYPE_TR to distinguish between types of packets. */ - proto_tree_add_item(fh_tree, hf_isl_user, offset+5, 1, pd[offset+5]); + proto_tree_add_item(fh_tree, hf_isl_user, NullTVB, offset+5, 1, pd[offset+5]); break; } - proto_tree_add_item(fh_tree, hf_isl_src, offset+6, 6, &pd[offset+6]); - proto_tree_add_item_hidden(fh_tree, hf_isl_addr, offset+6, 6, &pd[offset+6]); + proto_tree_add_item(fh_tree, hf_isl_src, NullTVB, offset+6, 6, &pd[offset+6]); + proto_tree_add_item_hidden(fh_tree, hf_isl_addr, NullTVB, offset+6, 6, &pd[offset+6]); length = pntohs(&pd[offset+12]); - proto_tree_add_item(fh_tree, hf_isl_len, offset+12, 2, length); + proto_tree_add_item(fh_tree, hf_isl_len, NullTVB, offset+12, 2, length); /* This part looks sort of like a SNAP-encapsulated LLC header... */ - proto_tree_add_text(fh_tree, offset+14, 1, "DSAP: 0x%X", pd[offset+14]); - proto_tree_add_text(fh_tree, offset+15, 1, "SSAP: 0x%X", pd[offset+15]); - proto_tree_add_text(fh_tree, offset+16, 1, "Control: 0x%X", pd[offset+16]); + proto_tree_add_text(fh_tree, NullTVB, offset+14, 1, "DSAP: 0x%X", pd[offset+14]); + proto_tree_add_text(fh_tree, NullTVB, offset+15, 1, "SSAP: 0x%X", pd[offset+15]); + proto_tree_add_text(fh_tree, NullTVB, offset+16, 1, "Control: 0x%X", pd[offset+16]); /* ...but this is the manufacturer's ID portion of the source address field (which is, admittedly, an OUI). */ - proto_tree_add_item(fh_tree, hf_isl_hsa, offset+17, 3, + proto_tree_add_item(fh_tree, hf_isl_hsa, NullTVB, offset+17, 3, pd[offset+17] << 16 | pd[offset+18] << 8 | pd[offset+19]); - proto_tree_add_item(fh_tree, hf_isl_vlan_id, offset+20, 2, + proto_tree_add_item(fh_tree, hf_isl_vlan_id, NullTVB, offset+20, 2, pntohs(&pd[offset+20])); - proto_tree_add_item(fh_tree, hf_isl_bpdu, offset+20, 2, + proto_tree_add_item(fh_tree, hf_isl_bpdu, NullTVB, offset+20, 2, pntohs(&pd[offset+20])); - proto_tree_add_item(fh_tree, hf_isl_index, offset+22, 2, + proto_tree_add_item(fh_tree, hf_isl_index, NullTVB, offset+22, 2, pntohs(&pd[offset+22])); /* Now for the CRC, which is at the *end* of the packet. */ if (BYTES_ARE_IN_FRAME(pi.len - 4, 4)) { - proto_tree_add_item(fh_tree, hf_isl_crc, pi.len - 4, 4, + proto_tree_add_item(fh_tree, hf_isl_crc, NullTVB, pi.len - 4, 4, pntohl(&pd[END_OF_FRAME - 4])); } } @@ -212,17 +212,17 @@ dissect_isl(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) break; case TYPE_TR: - proto_tree_add_item(fh_tree, hf_isl_src_vlan_id, offset+24, 2, + proto_tree_add_item(fh_tree, hf_isl_src_vlan_id, NullTVB, offset+24, 2, pntohs(&pd[offset+24])); - proto_tree_add_item(fh_tree, hf_isl_explorer, offset+24, 2, + proto_tree_add_item(fh_tree, hf_isl_explorer, NullTVB, offset+24, 2, pntohs(&pd[offset+24])); - proto_tree_add_item(fh_tree, hf_isl_dst_route_descriptor, offset+26, 2, + proto_tree_add_item(fh_tree, hf_isl_dst_route_descriptor, NullTVB, offset+26, 2, pntohs(&pd[offset+26])); - proto_tree_add_item(fh_tree, hf_isl_src_route_descriptor, offset+28, 2, + proto_tree_add_item(fh_tree, hf_isl_src_route_descriptor, NullTVB, offset+28, 2, pntohs(&pd[offset+28])); - proto_tree_add_item(fh_tree, hf_isl_fcs_not_incl, offset+30, 1, + proto_tree_add_item(fh_tree, hf_isl_fcs_not_incl, NullTVB, offset+30, 1, pd[offset+30]); - proto_tree_add_item(fh_tree, hf_isl_esize, offset+16, 1, + proto_tree_add_item(fh_tree, hf_isl_esize, NullTVB, offset+16, 1, pd[offset+30]); dissect_tr(pd, offset+31, fd, tree); break; diff --git a/packet-l2tp.c b/packet-l2tp.c index 2bf2f5636a..7daefb6aa9 100644 --- a/packet-l2tp.c +++ b/packet-l2tp.c @@ -7,7 +7,7 @@ * Laurent Cazalet * Thomas Parvais * - * $Id: packet-l2tp.c,v 1.8 2000/04/08 07:07:24 guy Exp $ + * $Id: packet-l2tp.c,v 1.9 2000/05/11 08:15:17 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -336,27 +336,27 @@ dissect_l2tp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_fstr(fd,COL_INFO,textbuffer); } if (tree) { - ti = proto_tree_add_item(tree,proto_l2tp, offset, length , NULL); + ti = proto_tree_add_item(tree,proto_l2tp, NullTVB, offset, length , NULL); l2tp_tree = proto_item_add_subtree(ti, ett_l2tp); - proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, offset ,1, + proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, NullTVB, offset ,1, rhcode, "Packet Type: %s Tunnel Id=%d Session Id=%d",( CONTROL_BIT(ver) ? control_msg : data_msg) ,tid,cid); if (LENGTH_BIT(ver)) { - proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, (offset += 2), 2, + proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, NullTVB, (offset += 2), 2, rhcode, "Length: %d ", length); } if (SEQUENCE_BIT(ver)) { memcpy(&Ns,(ptr+=2),sizeof(unsigned short)); memcpy(&Nr,(ptr+=2),sizeof(unsigned short)); index += 4; - proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, (offset += 6 ), 4, + proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, NullTVB, (offset += 6 ), 4, rhcode, "Ns: %d Nr: %d ", htons(Ns), htons(Nr)); } if ((LENGTH_BIT(ver))&&(length==12)) { - proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code,offset,1,rhcode, + proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, NullTVB,offset,1,rhcode, "Zero Length Bit message"); } if (!CONTROL_BIT(ver)) { /* Data Messages so we are done */ - proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, (offset += 4) , (length - 12 ) , rhcode, "Data: "); + proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, NullTVB, (offset += 4) , (length - 12 ) , rhcode, "Data: "); return; } @@ -369,16 +369,16 @@ dissect_l2tp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) memcpy(&vendor,(tmp_ptr+=2),sizeof(unsigned short)); memcpy(&avp_type,(tmp_ptr+=2),sizeof(unsigned short)); avp_type=htons(avp_type); - tf = proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, offset , avp_len, + tf = proto_tree_add_uint_format(l2tp_tree,hf_l2tp_code, NullTVB, offset , avp_len, rhcode, "AVP Type %s ", (NUM_AVP_TYPES > avp_type) ? avptypestr[avp_type] : "Unknown"); l2tp_avp_tree = proto_item_add_subtree(tf, ett_l2tp_avp); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset , 1, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset , 1, rhcode, " Mandatory:%s" , (MANDATORY_BIT(htons(ver_len_hidden))) ? "True" : "False" ); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset , 1, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset , 1, rhcode, " Hidden:%s" , (HIDDEN_BIT(htons(ver_len_hidden))) ? "True" : "False" ); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, (offset + 1), 1, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, (offset + 1), 1, rhcode, " Length:%d" , avp_len ); if (HIDDEN_BIT(htons(ver_len_hidden))) { /* don't try do display hidden */ @@ -391,7 +391,7 @@ dissect_l2tp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case CONTROL_MESSAGE: memcpy(&msg_type,(tmp_ptr+=2),sizeof(unsigned short)); msg_type=htons(msg_type); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 2 , + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 2 , rhcode, " Control Message Type: (%d) %s", msg_type, ((NUM_CONTROL_CALL_TYPES + 1 ) > msg_type) ? calltypestr[msg_type] : "Unknown" ); @@ -401,7 +401,7 @@ dissect_l2tp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if ( avp_len >= 8 ) { memcpy(&result_code,(tmp_ptr+=2),sizeof(unsigned short)); result_code=htons(result_code); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 2, rhcode, " Result code: %d", result_code ); @@ -409,14 +409,14 @@ dissect_l2tp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if ( avp_len >= 10 ) { memcpy(&error_code,(tmp_ptr+=2),sizeof(unsigned short)); error_code=htons(error_code); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 8, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 8, 2, rhcode, " Error code: %d", error_code); } if ( avp_len > 10 ) { memset(error_string,'\0' ,sizeof(error_string)); strncpy(error_string,(tmp_ptr),(avp_len - 10)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 10, (avp_len - 10), + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 10, (avp_len - 10), rhcode, " Error Message: %s", error_string ); } break; @@ -428,235 +428,235 @@ dissect_l2tp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) avp_ver=(htons(avp_ver)); avp_rev=(htons(avp_rev)); memcpy(&avp_rev,(tmp_ptr+=2),sizeof(unsigned short)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 1, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 1, rhcode, " Version: %d", ((avp_ver&0xff00)>>8) ); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 7, 1, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 7, 1, rhcode, " Revision: %d", (avp_ver&0x00ff)); break; case FRAMING_CAPABIlITIES: tmp_ptr+=2; memcpy(&framing,(tmp_ptr+=2),sizeof(unsigned short)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 4, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 4, rhcode, " ASYNC FRAMING: %s" , (FRAMING_ASYNC(htons(framing))) ? "True" : "False" ); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 4, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 4, rhcode, " SYNC FRAMING: %s" , (FRAMING_SYNC(htons(framing))) ? "True" : "False" ); break; case BEARER_CAPABIlITIES: tmp_ptr+=2; memcpy(&framing,(tmp_ptr+=2),sizeof(unsigned short)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 4 , + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 4 , rhcode, " Analog Access: %s" , (FRAMING_ASYNC(htons(framing))) ? "True" : "False" ); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 4, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 4, rhcode, " Digital Access: %s" , (FRAMING_SYNC(htons(framing))) ? "True" : "False" ); break; case TIE_BREAKER: memcpy(&long_type,(tmp_ptr+=8),sizeof(unsigned long)); long_type = htonl(long_type); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 1, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 1, rhcode, " TIE_BREAKER %lu 0x%lx", long_type,long_type ); break; case FIRMWARE_REVISION: memcpy(&firmware_rev,(tmp_ptr+=2),sizeof(unsigned short)); firmware_rev=htons(firmware_rev); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, 2, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, 2, rhcode, " Firmware Revision: %d 0x%x", firmware_rev,firmware_rev ); break; case HOST_NAME: memset(error_string,'\0',sizeof(error_string)); strncpy(error_string,(tmp_ptr+=2),(avp_len - 6)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, (avp_len - 6), rhcode, " Host Name: %s", error_string ); break; case VENDOR_NAME: memset(message_string,'\0' ,sizeof(message_string)); strncpy(message_string,(tmp_ptr+=2),(avp_len - 6)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, (avp_len - 6), rhcode, " Vendor Name: %s", message_string ); break; case ASSIGNED_TUNNEL_ID: memcpy(&gen_type,(tmp_ptr+=2),sizeof(unsigned short)); gen_type=htons(gen_type); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 2, rhcode, " Tunnel ID: %d", gen_type ); break; case RECEIVE_WINDOW_SIZE: memcpy(&gen_type,(tmp_ptr+=2),sizeof(unsigned short)); gen_type=htons(gen_type); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 2, rhcode, " Receive Window Size: %d", gen_type ); break; case CHALLENGE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " CHAP Challenge: "); break; case CHALLENGE_RESPONSE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " CHAP Challenge Response: "); break; case CAUSE_CODE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 1, rhcode, " Cause Code: "); break; case ASSIGNED_SESSION: memcpy(&gen_type,(tmp_ptr+=2),sizeof(unsigned short)); gen_type=htons(gen_type); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 2, rhcode, " Assigned Session: %d", gen_type ); break; case CALL_SERIAL_NUMBER: memcpy(&gen_type,(tmp_ptr+=2),sizeof(unsigned short)); gen_type=htons(gen_type); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " Call Serial Number: %d", gen_type ); break; case MINIMUM_BPS: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " Minimum BPS: "); break; case MAXIMUM_BPS: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " Maximum BPS "); break; case BEARER_TYPE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " Bearer Type: "); break; case FRAMING_TYPE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " Framing Type: "); break; case UNKNOWN_MESSAGE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 1, rhcode, " Unknown Message: "); break; case CALLED_NUMBER: memset(message_string,'\0' ,sizeof(message_string)); strncpy(message_string,(tmp_ptr+=2),(avp_len - 6)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, (avp_len - 6), rhcode, " Called Number: %s", message_string ); break; case CALLING_NUMBER: memset(message_string,'\0' ,sizeof(message_string)); strncpy(message_string,(tmp_ptr+=2),(avp_len - 6)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, (avp_len - 6), rhcode, " Calling Number: %s", message_string ); break; case SUB_ADDRESS: memset(message_string,'\0' ,sizeof(message_string)); strncpy(message_string,(tmp_ptr+=2),(avp_len - 6)); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB, offset + 6, (avp_len - 6), rhcode, " Sub-Address: %s", message_string ); break; case TX_CONNECT_SPEED: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " Connect Speed: "); break; case PHYSICAL_CHANNEL: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " Physical Channel: "); break; case INITIAL_RECEIVED_LCP: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " Initial LCP Conf REQ: "); break; case LAST_SEND_LCP_CONFREQ: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " Last Sent LCP Conf REQ: "); break; case LAST_RECEIVED_LCP_CONFREQ: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " Last Received LCP Conf REQ: "); break; case PROXY_AUTHEN_TYPE: memcpy(&msg_type,(tmp_ptr+=2),sizeof(unsigned short)); msg_type=htons(msg_type); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 1, rhcode, " Proxy Authen Type: %s ", authen_types[msg_type] ); break; case PROXY_AUTHEN_NAME: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " Proxy Authen Name: "); break; case PROXY_AUTHEN_CHALLENGE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " Proxy Authen Challenge: "); break; case PROXY_AUTHEN_ID: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 2, rhcode, " Paorx Authen ID: "); break; case PROXY_AUTHEN_RESPONSE: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, (avp_len - 6 ), rhcode, " Proxy Authen Response: "); break; case CALL_STATUS_AVPS: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " CRC Errors: "); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 10, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 10, 4, rhcode, " Framing Errors: "); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 14, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 14, 4, rhcode, " Hardware Overruns: "); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 18, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 18, 4, rhcode, " Buffer Overruns: "); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 23, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 23, 4, rhcode, " Time-out Errors: "); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 26, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 26, 4, rhcode, " Alignment Errors: "); break; case ACCM: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 2, rhcode, " Reserve Quantity: "); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 8, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 8, 4, rhcode, " Send ACCM: "); - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 12, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 12, 4, rhcode, " Recv ACCM: "); break; case PRIVATE_GROUP_ID: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 1, rhcode, " Private Group ID: "); break; case RX_CONNECT_SPEED: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset + 6, + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset + 6, 4, rhcode, " RX Connect Speed: "); break; case SEQUENCING_REQUIRED: - proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code,offset , + proto_tree_add_uint_format(l2tp_avp_tree,hf_l2tp_code, NullTVB,offset , 1, rhcode, " Sequencing Required: "); break; } diff --git a/packet-lapb.c b/packet-lapb.c index c4e012d764..7ba2899318 100644 --- a/packet-lapb.c +++ b/packet-lapb.c @@ -2,7 +2,7 @@ * Routines for lapb frame disassembly * Olivier Abad * - * $Id: packet-lapb.c,v 1.12 2000/03/15 19:17:08 oabad Exp $ + * $Id: packet-lapb.c,v 1.13 2000/05/11 08:15:18 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -64,7 +64,7 @@ dissect_lapb(const u_char *pd, frame_data *fd, proto_tree *tree) if (check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, "Invalid LAPB frame"); if (tree) - ti = proto_tree_add_protocol_format(tree, proto_lapb, 0, fd->cap_len, + ti = proto_tree_add_protocol_format(tree, proto_lapb, NullTVB, 0, fd->cap_len, "Invalid LAPB frame"); return; } @@ -89,10 +89,10 @@ dissect_lapb(const u_char *pd, frame_data *fd, proto_tree *tree) is_response = FALSE; if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_lapb, 0, 2, + ti = proto_tree_add_protocol_format(tree, proto_lapb, NullTVB, 0, 2, "LAPB"); lapb_tree = proto_item_add_subtree(ti, ett_lapb); - proto_tree_add_uint_format(lapb_tree, hf_lapb_address, 0, 1, pd[0], + proto_tree_add_uint_format(lapb_tree, hf_lapb_address, NullTVB, 0, 1, pd[0], "Address: 0x%02X", pd[0]); } else diff --git a/packet-lapd.c b/packet-lapd.c index 8bc6f360d8..4dfaa26244 100644 --- a/packet-lapd.c +++ b/packet-lapd.c @@ -2,7 +2,7 @@ * Routines for LAPD frame disassembly * Gilbert Ramirez * - * $Id: packet-lapd.c,v 1.5 2000/02/15 21:02:31 gram Exp $ + * $Id: packet-lapd.c,v 1.6 2000/05/11 08:15:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -119,17 +119,17 @@ dissect_lapd(const u_char *pd, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_lapd, 0, 3, NULL); + ti = proto_tree_add_item(tree, proto_lapd, NullTVB, 0, 3, NULL); lapd_tree = proto_item_add_subtree(ti, ett_lapd); - ti = proto_tree_add_item(lapd_tree, hf_lapd_address, 0, 2, address); + ti = proto_tree_add_item(lapd_tree, hf_lapd_address, NullTVB, 0, 2, address); addr_tree = proto_item_add_subtree(ti, ett_lapd_address); - proto_tree_add_item(addr_tree, hf_lapd_sapi, 0, 1, address); - proto_tree_add_item(addr_tree, hf_lapd_cr, 0, 1, address); - proto_tree_add_item(addr_tree, hf_lapd_ea1, 0, 1, address); - proto_tree_add_item(addr_tree, hf_lapd_tei, 1, 1, address); - proto_tree_add_item(addr_tree, hf_lapd_ea2, 1, 1, address); + proto_tree_add_item(addr_tree, hf_lapd_sapi, NullTVB, 0, 1, address); + proto_tree_add_item(addr_tree, hf_lapd_cr, NullTVB, 0, 1, address); + proto_tree_add_item(addr_tree, hf_lapd_ea1, NullTVB, 0, 1, address); + proto_tree_add_item(addr_tree, hf_lapd_tei, NullTVB, 1, 1, address); + proto_tree_add_item(addr_tree, hf_lapd_ea2, NullTVB, 1, 1, address); } else { lapd_tree = NULL; diff --git a/packet-ldap.c b/packet-ldap.c index b00a373ba1..e967cb2bf7 100644 --- a/packet-ldap.c +++ b/packet-ldap.c @@ -1,7 +1,7 @@ /* packet-ldap.c * Routines for ldap packet dissection * - * $Id: packet-ldap.c,v 1.9 2000/04/08 07:07:26 guy Exp $ + * $Id: packet-ldap.c,v 1.10 2000/05/11 08:15:21 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -152,7 +152,7 @@ static int read_length(ASN1_SCK *a, proto_tree *tree, int hf_id, guint *len) *len = length; if (tree) - proto_tree_add_item(tree, hf_id, start-a->begin, a->pointer-start, length); + proto_tree_add_item(tree, hf_id, NullTVB, start-a->begin, a->pointer-start, length); return 0; } @@ -204,7 +204,7 @@ static int read_integer_value(ASN1_SCK *a, proto_tree *tree, int hf_id, if (tree) { proto_tree *temp_tree = 0; - temp_tree = proto_tree_add_item(tree, hf_id, start-a->begin, a->pointer-start, integer); + temp_tree = proto_tree_add_item(tree, hf_id, NullTVB, start-a->begin, a->pointer-start, integer); if (new_tree) *new_tree = temp_tree; } @@ -245,7 +245,7 @@ static void read_string_value(ASN1_SCK *a, proto_tree *tree, int hf_id, if (tree) { proto_tree *temp_tree; - temp_tree = proto_tree_add_item(tree, hf_id, start - a->begin, a->pointer - start, string); + temp_tree = proto_tree_add_item(tree, hf_id, NullTVB, start - a->begin, a->pointer - start, string); if (new_tree) *new_tree = temp_tree; } @@ -446,10 +446,10 @@ static int read_filter(ASN1_SCK *a, proto_tree *tree, int hf_id) if (tree) { if (ret != -1) { - proto_tree_add_text(tree, start-a->begin, 0, + proto_tree_add_text(tree, NullTVB, start-a->begin, 0, "Error parsing filter (%d)", ret); } else - proto_tree_add_item(tree, hf_id, start-a->begin, a->pointer-start, filter); + proto_tree_add_item(tree, hf_id, NullTVB, start-a->begin, a->pointer-start, filter); } g_free(filter); @@ -475,7 +475,7 @@ static int dissect_ldap_result(ASN1_SCK *a, proto_tree *tree) proto_tree *t, *referralTree; read_sequence(a, &length); - t = proto_tree_add_text(tree, start-a->begin, length, "Referral URLs"); + t = proto_tree_add_text(tree, NullTVB, start-a->begin, length, "Referral URLs"); referralTree = proto_item_add_subtree(t, ett_ldap_referrals); end = a->pointer + length;; @@ -500,7 +500,7 @@ static int dissect_ldap_request_bind(ASN1_SCK *a, proto_tree *tree) return 1; /* XXX - right return value for an error? */ if (cls != ASN1_CTX) return 1; /* RFCs 1777 and 2251 say these are context-specific types */ - proto_tree_add_item(tree, hf_ldap_message_bind_auth, start - a->begin, + proto_tree_add_item(tree, hf_ldap_message_bind_auth, NullTVB, start - a->begin, a->pointer - start, tag); switch (tag) { @@ -646,7 +646,7 @@ static int dissect_ldap_request_compare(ASN1_SCK *a, proto_tree *tree) length = 2 + strlen(string1) + strlen(string2); compare = g_malloc0(length); snprintf(compare, length, "%s=%s", string1, string2); - proto_tree_add_item(tree, hf_ldap_message_compare, start-a->begin, a->pointer-start, compare); + proto_tree_add_item(tree, hf_ldap_message_compare, NullTVB, start-a->begin, a->pointer-start, compare); g_free(string1); g_free(string2); @@ -721,7 +721,7 @@ dissect_ldap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_ldap, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ldap, NullTVB, offset, END_OF_FRAME, NULL); ldap_tree = proto_item_add_subtree(ti, ett_ldap); } @@ -738,14 +738,14 @@ dissect_ldap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (read_sequence(&a, &messageLength)) { if (ldap_tree) - proto_tree_add_text(ldap_tree, offset, 1, "Invalid LDAP packet"); + proto_tree_add_text(ldap_tree, NullTVB, offset, 1, "Invalid LDAP packet"); break; } if (messageLength > (a.end - a.pointer)) { if (ldap_tree) - proto_tree_add_text(ldap_tree, message_start, END_OF_FRAME, "Short message! (expected: %u, actual: %u)", + proto_tree_add_text(ldap_tree, NullTVB, message_start, END_OF_FRAME, "Short message! (expected: %u, actual: %u)", messageLength, a.end - a.pointer); break; } @@ -776,10 +776,10 @@ dissect_ldap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (ldap_tree) { - proto_tree_add_item_hidden(ldap_tree, hf_ldap_message_id, message_id_start, message_id_length, messageId); - proto_tree_add_item_hidden(ldap_tree, hf_ldap_message_type, + proto_tree_add_item_hidden(ldap_tree, hf_ldap_message_id, NullTVB, message_id_start, message_id_length, messageId); + proto_tree_add_item_hidden(ldap_tree, hf_ldap_message_type, NullTVB, start - a.begin, a.pointer - start, protocolOpTag); - ti = proto_tree_add_text(ldap_tree, message_id_start, messageLength, "Message: Id=%u %s", messageId, typestr); + ti = proto_tree_add_text(ldap_tree, NullTVB, message_id_start, messageLength, "Message: Id=%u %s", messageId, typestr); msg_tree = proto_item_add_subtree(ti, ett_ldap_message); start = a.pointer; read_length(&a, msg_tree, hf_ldap_message_length, &opLen); diff --git a/packet-llc.c b/packet-llc.c index dc1948e3bc..463a5aa4e6 100644 --- a/packet-llc.c +++ b/packet-llc.c @@ -2,7 +2,7 @@ * Routines for IEEE 802.2 LLC layer * Gilbert Ramirez * - * $Id: packet-llc.c,v 1.55 2000/04/17 00:32:39 guy Exp $ + * $Id: packet-llc.c,v 1.56 2000/05/11 08:15:22 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -287,15 +287,15 @@ dissect_llc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_item(tree, proto_llc, offset, 0, NULL); + ti = proto_tree_add_item(tree, proto_llc, NullTVB, offset, 0, NULL); llc_tree = proto_item_add_subtree(ti, ett_llc); - proto_tree_add_item(llc_tree, hf_llc_dsap, offset, + proto_tree_add_item(llc_tree, hf_llc_dsap, NullTVB, offset, 1, pd[offset] & SAP_MASK); - proto_tree_add_item(llc_tree, hf_llc_dsap_ig, offset, + proto_tree_add_item(llc_tree, hf_llc_dsap_ig, NullTVB, offset, 1, pd[offset] & DSAP_GI_BIT); - proto_tree_add_item(llc_tree, hf_llc_ssap, offset+1, + proto_tree_add_item(llc_tree, hf_llc_ssap, NullTVB, offset+1, 1, pd[offset+1] & SAP_MASK); - proto_tree_add_item(llc_tree, hf_llc_ssap_cr, offset+1, + proto_tree_add_item(llc_tree, hf_llc_ssap_cr, NullTVB, offset+1, 1, pd[offset+1] & SSAP_CR_BIT); } else llc_tree = NULL; @@ -333,7 +333,7 @@ dissect_llc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { etype); } if (tree) { - proto_tree_add_item(llc_tree, hf_llc_oui, offset+3, 3, + proto_tree_add_item(llc_tree, hf_llc_oui, NullTVB, offset+3, 3, oui); } switch (oui) { @@ -362,7 +362,7 @@ dissect_llc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { Ethernet? */ if (tree) { proto_tree_add_item(llc_tree, - hf_llc_pid, offset+6, 2, etype); + hf_llc_pid, NullTVB, offset+6, 2, etype); } if (XDLC_IS_INFORMATION(control)) { switch (etype) { @@ -396,7 +396,7 @@ dissect_llc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { case OUI_CABLE_BPDU: /* DOCSIS cable modem spanning tree BPDU */ if (tree) { proto_tree_add_item(llc_tree, - hf_llc_pid, offset+6, 2, etype); + hf_llc_pid, NullTVB, offset+6, 2, etype); } dissect_bpdu(pd, offset+8, fd, tree); break; @@ -404,7 +404,7 @@ dissect_llc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { default: if (tree) { proto_tree_add_item(llc_tree, - hf_llc_pid, offset+6, 2, etype); + hf_llc_pid, NullTVB, offset+6, 2, etype); } dissect_data(pd, offset+8, fd, tree); break; diff --git a/packet-lpd.c b/packet-lpd.c index 63f2009c5d..f354757101 100644 --- a/packet-lpd.c +++ b/packet-lpd.c @@ -2,7 +2,7 @@ * Routines for LPR and LPRng packet disassembly * Gilbert Ramirez * - * $Id: packet-lpd.c,v 1.18 2000/04/20 15:24:41 gram Exp $ + * $Id: packet-lpd.c,v 1.19 2000/05/11 08:15:23 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -104,23 +104,23 @@ dissect_lpd(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_item(tree, proto_lpd, offset, + ti = proto_tree_add_item(tree, proto_lpd, NullTVB, offset, END_OF_FRAME, NULL); lpd_tree = proto_item_add_subtree(ti, ett_lpd); if (lpr_packet_type == response) { - proto_tree_add_item_hidden(lpd_tree, hf_lpd_response, 0, 0, TRUE); + proto_tree_add_item_hidden(lpd_tree, hf_lpd_response, NullTVB, 0, 0, TRUE); } else { - proto_tree_add_item_hidden(lpd_tree, hf_lpd_request, 0, 0, TRUE); + proto_tree_add_item_hidden(lpd_tree, hf_lpd_request, NullTVB, 0, 0, TRUE); } if (lpr_packet_type == request) { printer = find_printer_string(pd, offset+1, END_OF_FRAME); if (pd[offset] <= 9 && printer) { - proto_tree_add_text(lpd_tree, offset, 1, + proto_tree_add_text(lpd_tree, NullTVB, offset, 1, lpd_client_code[pd[offset]]); - proto_tree_add_text(lpd_tree, offset+1, + proto_tree_add_text(lpd_tree, NullTVB, offset+1, strlen(printer), "Printer/options: %s", printer); } else { @@ -134,7 +134,7 @@ dissect_lpd(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) int response = pd[offset]; if (response <= 3) { - proto_tree_add_text(lpd_tree, offset, 1, "Response: %s", + proto_tree_add_text(lpd_tree, NullTVB, offset, 1, "Response: %s", lpd_server_code[response]); } else { diff --git a/packet-mapi.c b/packet-mapi.c index bde5bb8dcc..32672b0622 100644 --- a/packet-mapi.c +++ b/packet-mapi.c @@ -1,7 +1,7 @@ /* packet-mapi.c * Routines for MSX mapi packet dissection * - * $Id: packet-mapi.c,v 1.5 2000/04/08 07:07:29 guy Exp $ + * $Id: packet-mapi.c,v 1.6 2000/05/11 08:15:23 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -66,21 +66,21 @@ dissect_mapi(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_mapi, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_mapi, NullTVB, offset, END_OF_FRAME, NULL); mapi_tree = proto_item_add_subtree(ti, ett_mapi); if (pi.match_port == pi.destport) { - proto_tree_add_item_hidden(mapi_tree, hf_mapi_request, + proto_tree_add_item_hidden(mapi_tree, hf_mapi_request, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(mapi_tree, offset, + proto_tree_add_text(mapi_tree, NullTVB, offset, END_OF_FRAME, "Request: " ); } else { - proto_tree_add_item_hidden(mapi_tree, hf_mapi_response, + proto_tree_add_item_hidden(mapi_tree, hf_mapi_response, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(mapi_tree, offset, + proto_tree_add_text(mapi_tree, NullTVB, offset, END_OF_FRAME, "Response: "); } } diff --git a/packet-mount.c b/packet-mount.c index bbda07bdbe..349b68b9fb 100644 --- a/packet-mount.c +++ b/packet-mount.c @@ -1,7 +1,7 @@ /* packet-mount.c * Routines for mount dissection * - * $Id: packet-mount.c,v 1.13 2000/04/04 06:46:25 guy Exp $ + * $Id: packet-mount.c,v 1.14 2000/05/11 08:15:23 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -86,7 +86,7 @@ dissect_fhstatus(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; status = EXTRACT_UINT(pd, offset+0); if (tree) { - proto_tree_add_item(tree, hf_mount_status, offset, 4, status); + proto_tree_add_item(tree, hf_mount_status, NullTVB, offset, 4, status); } offset += 4; @@ -139,7 +139,7 @@ dissect_mountlist(const u_char *pd, int offset, frame_data *fd, proto_tree *tree char* directory; if (tree) { - mountlist_item = proto_tree_add_item(tree, hf_mount_mountlist, + mountlist_item = proto_tree_add_item(tree, hf_mount_mountlist, NullTVB, offset+0, END_OF_FRAME, NULL); if (mountlist_item) mountlist_tree = proto_item_add_subtree(mountlist_item, ett_mount_mountlist); @@ -198,7 +198,7 @@ dissect_exportlist(const u_char *pd, int offset, frame_data *fd, proto_tree *tre char* directory; if (tree) { - exportlist_item = proto_tree_add_item(tree, hf_mount_exportlist, + exportlist_item = proto_tree_add_item(tree, hf_mount_exportlist, NullTVB, offset+0, END_OF_FRAME, NULL); if (exportlist_item) exportlist_tree = proto_item_add_subtree(exportlist_item, ett_mount_exportlist); @@ -207,7 +207,7 @@ dissect_exportlist(const u_char *pd, int offset, frame_data *fd, proto_tree *tre offset = dissect_rpc_string(pd, offset, fd, exportlist_tree, hf_mount_exportlist_directory,&directory); groups_offset = offset; if (tree) { - groups_item = proto_tree_add_item(exportlist_tree, hf_mount_groups, + groups_item = proto_tree_add_item(exportlist_tree, hf_mount_groups, NullTVB, offset+0, END_OF_FRAME, NULL); if (groups_item) groups_tree = proto_item_add_subtree(groups_item, ett_mount_groups); @@ -331,7 +331,7 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, if (!(pc_mask & (PC_ERROR_LINK_MAX|PC_ERROR_ALL))) { if (tree) { proto_tree_add_item(tree, - hf_mount_pathconf_link_max, offset, 4, + hf_mount_pathconf_link_max, NullTVB, offset, 4, EXTRACT_UINT(pd, offset+0)); } } @@ -342,7 +342,7 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, if (!(pc_mask & (PC_ERROR_MAX_CANON|PC_ERROR_ALL))) { if (tree) { proto_tree_add_item(tree, - hf_mount_pathconf_max_canon, offset + 2, 2, + hf_mount_pathconf_max_canon, NullTVB, offset + 2, 2, (EXTRACT_UINT(pd, offset+0)) & 0xFFFF); } } @@ -354,7 +354,7 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, if (!(pc_mask & (PC_ERROR_MAX_INPUT|PC_ERROR_ALL))) { if (tree) { proto_tree_add_item(tree, - hf_mount_pathconf_max_input, offset + 2, 2, + hf_mount_pathconf_max_input, NullTVB, offset + 2, 2, (EXTRACT_UINT(pd, offset+0)) & 0xFFFF); } } @@ -365,7 +365,7 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, if (!(pc_mask & (PC_ERROR_NAME_MAX|PC_ERROR_ALL))) { if (tree) { proto_tree_add_item(tree, - hf_mount_pathconf_name_max, offset + 2, 2, + hf_mount_pathconf_name_max, NullTVB, offset + 2, 2, (EXTRACT_UINT(pd, offset+0)) & 0xFFFF); } } @@ -376,7 +376,7 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, if (!(pc_mask & (PC_ERROR_PATH_MAX|PC_ERROR_ALL))) { if (tree) { proto_tree_add_item(tree, - hf_mount_pathconf_path_max, offset + 2, 2, + hf_mount_pathconf_path_max, NullTVB, offset + 2, 2, (EXTRACT_UINT(pd, offset+0)) & 0xFFFF); } } @@ -387,7 +387,7 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, if (!(pc_mask & (PC_ERROR_PIPE_BUF|PC_ERROR_ALL))) { if (tree) { proto_tree_add_item(tree, - hf_mount_pathconf_pipe_buf, offset + 2, 2, + hf_mount_pathconf_pipe_buf, NullTVB, offset + 2, 2, (EXTRACT_UINT(pd, offset+0)) & 0xFFFF); } } @@ -400,35 +400,35 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, if (!(pc_mask & (PC_ERROR_VDISABLE|PC_ERROR_ALL))) { if (tree) { proto_tree_add_item(tree, - hf_mount_pathconf_vdisable, offset + 3, 1, + hf_mount_pathconf_vdisable, NullTVB, offset + 3, 1, (EXTRACT_UINT(pd, offset+0)) & 0xFF); } } offset += 4; if (tree) { - ti = proto_tree_add_item(tree, hf_mount_pathconf_mask, + ti = proto_tree_add_item(tree, hf_mount_pathconf_mask, NullTVB, offset + 2, 2, pc_mask); mask_tree = proto_item_add_subtree(ti, ett_mount_pathconf_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_all, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_all, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_link_max, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_link_max, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_max_canon, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_max_canon, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_max_input, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_max_input, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_name_max, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_name_max, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_path_max, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_path_max, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_pipe_buf, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_pipe_buf, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_chown_restricted, + proto_tree_add_item(mask_tree, hf_mount_pathconf_chown_restricted, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_no_trunc, + proto_tree_add_item(mask_tree, hf_mount_pathconf_no_trunc, NullTVB, offset + 2, 2, pc_mask); - proto_tree_add_item(mask_tree, hf_mount_pathconf_error_vdisable, + proto_tree_add_item(mask_tree, hf_mount_pathconf_error_vdisable, NullTVB, offset + 2, 2, pc_mask); } offset += 4; @@ -510,7 +510,7 @@ dissect_mountstat3(const u_char *pd, int offset, frame_data *fd, proto_tree *tre mountstat3 = EXTRACT_UINT(pd, offset+0); if (tree) { - proto_tree_add_item(tree, hfindex, offset, 4, mountstat3); + proto_tree_add_item(tree, hfindex, NullTVB, offset, 4, mountstat3); } offset += 4; @@ -535,13 +535,13 @@ dissect_mount3_mnt_reply(const u_char *pd, int offset, frame_data *fd, offset = dissect_nfs_fh3(pd,offset,fd,tree,"fhandle"); if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; auth_flavors = EXTRACT_UINT(pd,offset+0); - proto_tree_add_item(tree,hf_mount_flavors, + proto_tree_add_item(tree,hf_mount_flavors, NullTVB, offset, 4, auth_flavors); offset += 4; for (auth_flavor_i = 0 ; auth_flavor_i < hf_mount_flavors ; auth_flavor_i++) { if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; auth_flavor = EXTRACT_UINT(pd,offset+0); - proto_tree_add_item(tree,hf_mount_flavor, + proto_tree_add_item(tree,hf_mount_flavor, NullTVB, offset, 4, auth_flavor); offset += 4; } diff --git a/packet-mpls.c b/packet-mpls.c index c6c95c3017..87adfb23aa 100644 --- a/packet-mpls.c +++ b/packet-mpls.c @@ -3,7 +3,7 @@ * * (c) Copyright Ashok Narayanan * - * $Id: packet-mpls.c,v 1.5 2000/04/16 22:59:37 guy Exp $ + * $Id: packet-mpls.c,v 1.6 2000/05/11 08:15:23 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -153,23 +153,23 @@ dissect_mpls(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_mpls, offset, 4, NULL); + ti = proto_tree_add_item(tree, proto_mpls, NullTVB, offset, 4, NULL); mpls_tree = proto_item_add_subtree(ti, ett_mpls); if (label <= MAX_RESERVED) - proto_tree_add_uint_format(mpls_tree, mpls_filter[MPLSF_LABEL], + proto_tree_add_uint_format(mpls_tree, mpls_filter[MPLSF_LABEL], NullTVB, offset, 3, label, "Label: %d (%s)", label, val_to_str(label, special_labels, "Reserved - Unknown")); else - proto_tree_add_item(mpls_tree, mpls_filter[MPLSF_LABEL], + proto_tree_add_item(mpls_tree, mpls_filter[MPLSF_LABEL], NullTVB, offset, 3, label); - proto_tree_add_item(mpls_tree,mpls_filter[MPLSF_EXP], + proto_tree_add_item(mpls_tree,mpls_filter[MPLSF_EXP], NullTVB, offset+2,1, exp); - proto_tree_add_item(mpls_tree,mpls_filter[MPLSF_BOTTOM_OF_STACK], + proto_tree_add_item(mpls_tree,mpls_filter[MPLSF_BOTTOM_OF_STACK], NullTVB, offset+2,1, bos); - proto_tree_add_item(mpls_tree,mpls_filter[MPLSF_TTL], + proto_tree_add_item(mpls_tree,mpls_filter[MPLSF_TTL], NullTVB, offset+3,1, ttl); } offset += 4; diff --git a/packet-msproxy.c b/packet-msproxy.c index 1746e73880..97ac51e79c 100644 --- a/packet-msproxy.c +++ b/packet-msproxy.c @@ -2,7 +2,7 @@ * Routines for Microsoft Proxy packet dissection * Copyright 2000, Jeffrey C. Foster * - * $Id: packet-msproxy.c,v 1.1 2000/04/20 02:17:54 guy Exp $ + * $Id: packet-msproxy.c,v 1.2 2000/05/11 08:15:23 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -79,7 +79,7 @@ #endif #define CHECK_PACKET_LENGTH(X) if ((offset+X) > fd->cap_len){ \ - proto_tree_add_text(tree, offset, 0, "****FRAME TOO SHORT***"); return;} + proto_tree_add_text(tree, NullTVB, offset, 0, "****FRAME TOO SHORT***"); return;} extern void udp_hash_add(guint16 proto, void (*dissect)(const u_char *, int, frame_data *, proto_tree *)); @@ -242,15 +242,15 @@ static void msproxy_sub_dissector( const u_char *pd, int offset, frame_data *fd, "UDP packets")); if ( tree) { - ti = proto_tree_add_item( tree, proto_msproxy, offset, 0, + ti = proto_tree_add_item( tree, proto_msproxy, NullTVB, offset, 0, NULL, "MS Proxy:" ); msp_tree = proto_item_add_subtree(ti, ett_msproxy); - proto_tree_add_item( msp_tree, hf_msproxy_dstport, + proto_tree_add_item( msp_tree, hf_msproxy_dstport, NullTVB, offset, 0, redirect_info->remote_port); - proto_tree_add_item( msp_tree, hf_msproxy_dstaddr, offset, 0, + proto_tree_add_item( msp_tree, hf_msproxy_dstaddr, NullTVB, offset, 0, redirect_info->remote_addr); } @@ -324,13 +324,13 @@ static int display_application_name(const u_char *pd, int offset, char temp[255]; if ((offset+ 1) > fd->cap_len){ - proto_tree_add_text(tree, offset, 0, "****FRAME TOO SHORT***"); + proto_tree_add_text(tree, NullTVB, offset, 0, "****FRAME TOO SHORT***"); return 0; } strncpy( temp, &pd[ offset], MIN( 255, END_OF_FRAME)); temp[ MIN( 255, END_OF_FRAME)] = 0; - proto_tree_add_text( tree, offset, strlen(temp), "Application: %s", temp); + proto_tree_add_text( tree, NullTVB, offset, strlen(temp), "Application: %s", temp); return strlen(temp); @@ -391,21 +391,21 @@ static void dissect_user_info_2(const u_char *pd, int offset, frame_data *fd, pr strncpy( str, &pd[ offset], MIN( 255, END_OF_FRAME)); str[ MIN( 255, END_OF_FRAME)] = 0; - proto_tree_add_text( tree, offset, strlen( str) + 1, + proto_tree_add_text( tree, NullTVB, offset, strlen( str) + 1, "User name: %s", str); offset += strlen( str) + 2; strncpy( str, &pd[ offset], MIN( 255, END_OF_FRAME)); str[ MIN( 255, END_OF_FRAME)] = 0; - proto_tree_add_text( tree, offset, strlen( str) + 1, + proto_tree_add_text( tree, NullTVB, offset, strlen( str) + 1, "Application name: %s", str); offset += strlen( str) + 1; strncpy( str, &pd[ offset], MIN( 255, END_OF_FRAME)); str[ MIN( 255, END_OF_FRAME)] = 0; - proto_tree_add_text( tree, offset, strlen( str) + 1, + proto_tree_add_text( tree, NullTVB, offset, strlen( str) + 1, "Client computer name: %s", str); } } @@ -434,19 +434,19 @@ static void dissect_bind(const u_char *pd, int offset, frame_data *fd, CHECK_PACKET_LENGTH( 4); if ( tree) - proto_tree_add_item( tree, hf_msproxy_bindaddr, offset, 4, + proto_tree_add_item( tree, hf_msproxy_bindaddr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_bindport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_bindport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 6; CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_clntport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_clntport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; @@ -455,7 +455,7 @@ static void dissect_bind(const u_char *pd, int offset, frame_data *fd, if ( tree){ CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_boundport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_boundport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 82; @@ -477,7 +477,7 @@ static void dissect_auth(const u_char *pd, int offset, strncpy( temp, &pd[ offset], 7); temp[ 7] = 0; - proto_tree_add_text( tree, offset, 7, "NTLMSSP signature: %s", + proto_tree_add_text( tree, NullTVB, offset, 7, "NTLMSSP signature: %s", temp); offset += 7; } @@ -499,11 +499,11 @@ static void dissect_tcp_bind(const u_char *pd, int offset, offset += 6; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_bind_id, offset, 4, pntohl( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_bind_id, NullTVB, offset, 4, pntohl( &pd[ offset])); offset += 16; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_boundport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_boundport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 96; @@ -523,7 +523,7 @@ static void dissect_request_connect(const u_char *pd, int offset, frame_data *fd CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_dstport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_dstport, NullTVB, offset, 2, pntohs( &pd[ offset])); conv_info->dst_port = pntohs( &pd[ offset]); @@ -531,7 +531,7 @@ static void dissect_request_connect(const u_char *pd, int offset, frame_data *fd CHECK_PACKET_LENGTH( 4); if ( tree) - proto_tree_add_item( tree, hf_msproxy_dstaddr, offset, 4, + proto_tree_add_item( tree, hf_msproxy_dstaddr, NullTVB, offset, 4, GWORD( pd, offset)); memcpy( &conv_info->dst_addr, &pd[ offset], sizeof( guint32)); @@ -542,7 +542,7 @@ static void dissect_request_connect(const u_char *pd, int offset, frame_data *fd conv_info->clnt_port = pntohs( &pd[ offset]); if ( tree){ - proto_tree_add_item( tree, hf_msproxy_clntport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_clntport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 84; @@ -562,31 +562,31 @@ static void dissect_bind_info_ack(const u_char *pd, int offset, frame_data *fd, offset += 6; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_bind_id, offset, 4, pntohl( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_bind_id, NullTVB, offset, 4, pntohl( &pd[ offset])); offset += 14; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_dstport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_dstport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_dstaddr, offset, 4, + proto_tree_add_item( tree, hf_msproxy_dstaddr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 12; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_int_port, offset, + proto_tree_add_item( tree, hf_msproxy_server_int_port, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 4; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_ext_port, offset, + proto_tree_add_item( tree, hf_msproxy_server_ext_port, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_server_ext_addr, offset, + proto_tree_add_item( tree, hf_msproxy_server_ext_addr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 78; @@ -613,17 +613,17 @@ static void dissect_request_resolve(const u_char *pd, int offset, strncpy( temp, &pd[ offset + 18], length); temp[ length ] = 0; - ti = proto_tree_add_text(tree, offset, length + 1, + ti = proto_tree_add_text(tree, NullTVB, offset, length + 1, "Host Name: %s", temp); name_tree = proto_item_add_subtree(ti, ett_msproxy_name); - proto_tree_add_text( name_tree, offset, 1, "Length: %d", length); + proto_tree_add_text( name_tree, NullTVB, offset, 1, "Length: %d", length); ++offset; offset += 17; - proto_tree_add_text( name_tree, offset, length, "String: %s", + proto_tree_add_text( name_tree, NullTVB, offset, length, "String: %s", temp); } } @@ -644,19 +644,19 @@ static void dissect_udp_bind(const u_char *pd, int offset, CHECK_PACKET_LENGTH( 4); if ( tree) - proto_tree_add_item( tree, hf_msproxy_bind_id, offset, 4, pntohl( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_bind_id, NullTVB, offset, 4, pntohl( &pd[ offset])); offset += 12; CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_dstport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_dstport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); if ( tree) - proto_tree_add_item( tree, hf_msproxy_dstaddr, offset, 4, + proto_tree_add_item( tree, hf_msproxy_dstaddr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 96; @@ -677,7 +677,7 @@ static void dissect_udp_assoc(const u_char *pd, int offset, CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_clntport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_clntport, NullTVB, offset, 2, pntohs( &pd[ offset])); conv_info->clnt_port = pntohs( &pd[ offset]); @@ -699,34 +699,34 @@ static void dissect_msproxy_request(const u_char *pd, int offset, frame_data *fd if ( tree) { CHECK_PACKET_LENGTH( 4); - proto_tree_add_text( tree, offset, 4, "Client id: 0x%0x", + proto_tree_add_text( tree, NullTVB, offset, 4, "Client id: 0x%0x", GWORD( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 4); - proto_tree_add_text( tree, offset, 4, "Version: 0x%04x", + proto_tree_add_text( tree, NullTVB, offset, 4, "Version: 0x%04x", GWORD( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 4); - proto_tree_add_text( tree, offset, 4, "Server id: 0x%0x", + proto_tree_add_text( tree, NullTVB, offset, 4, "Server id: 0x%0x", GWORD( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 2); - proto_tree_add_text( tree, offset, 1, "Server ack: %u", + proto_tree_add_text( tree, NullTVB, offset, 1, "Server ack: %u", GBYTE( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 1); - proto_tree_add_text( tree, offset, 1, "Sequence Number: %u", + proto_tree_add_text( tree, NullTVB, offset, 1, "Sequence Number: %u", GBYTE( pd, offset)); offset += 8; CHECK_PACKET_LENGTH( 4); strncpy( temp, &pd[ offset], 4); temp[ 4] = 0; - proto_tree_add_text( tree, offset, 4, "RWSP signature: %s", temp); + proto_tree_add_text( tree, NullTVB, offset, 4, "RWSP signature: %s", temp); offset += 12; } else /* no tree */ @@ -736,7 +736,7 @@ static void dissect_msproxy_request(const u_char *pd, int offset, frame_data *fd cmd = pntohs( &pd[offset]); if ( tree) - proto_tree_add_uint_format( tree, hf_msproxy_cmd, offset, 2, + proto_tree_add_uint_format( tree, hf_msproxy_cmd, NullTVB, offset, 2, cmd, "Command: 0x%02x (%s)", cmd, get_msproxy_cmd_name( cmd, FROM_CLIENT)); @@ -784,7 +784,7 @@ static void dissect_msproxy_request(const u_char *pd, int offset, frame_data *fd break; default: if ( tree) - proto_tree_add_text( tree, offset, 0, + proto_tree_add_text( tree, NullTVB, offset, 0, "Unhandled request command (report this, please)"); } } @@ -800,12 +800,12 @@ static void dissect_hello_ack(const u_char *pd, int offset, frame_data *fd, if ( tree) { CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_serverport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_serverport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_serveraddr, offset, 4, + proto_tree_add_item( tree, hf_msproxy_serveraddr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 4; } @@ -834,15 +834,15 @@ static void dissect_udpassociate_ack( const u_char *pd, int offset, if ( tree) { CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_bind_id, offset, 4, pntohl( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_bind_id, NullTVB, offset, 4, pntohl( &pd[ offset])); offset += 14; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_ext_port, offset, 2, pntohs( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_server_ext_port, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_server_ext_addr, offset, 4, GWORD( pd, offset)); + proto_tree_add_item( tree, hf_msproxy_server_ext_addr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 96; display_application_name( pd, offset, fd, tree); @@ -862,12 +862,12 @@ static void dissect_auth_1_ack(const u_char *pd, int offset, frame_data *fd, pro CHECK_PACKET_LENGTH( 7); strncpy( temp, &pd[ offset], 7); temp[ 7] = 0; - proto_tree_add_text( tree, offset, 7, "NTLMSSP signature: %s", temp); + proto_tree_add_text( tree, NullTVB, offset, 7, "NTLMSSP signature: %s", temp); offset += 48; strncpy( temp, &pd[ offset], MIN( 255, END_OF_FRAME)); temp[ MIN( 255, END_OF_FRAME)] = 0; - proto_tree_add_text( tree, offset, 255, "NT domain: %s", temp); + proto_tree_add_text( tree, NullTVB, offset, 255, "NT domain: %s", temp); offset += 7; } } @@ -893,7 +893,7 @@ static void dissect_connect_ack( const u_char *pd, int offset, frame_data *fd, CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_server_int_port, offset, 2, pntohs( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_server_int_port, NullTVB, offset, 2, pntohs( &pd[ offset])); conv_info->proto = PT_TCP; @@ -902,15 +902,15 @@ static void dissect_connect_ack( const u_char *pd, int offset, frame_data *fd, if ( tree){ CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_int_addr, offset, 2, GWORD( pd, offset)); + proto_tree_add_item( tree, hf_msproxy_server_int_addr, NullTVB, offset, 2, GWORD( pd, offset)); offset += 14; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_ext_port, offset, 2, pntohs( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_server_ext_port, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_server_ext_addr, offset, 4, GWORD( pd, offset)); + proto_tree_add_item( tree, hf_msproxy_server_ext_addr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 80; display_application_name( pd, offset, fd, tree); @@ -930,21 +930,21 @@ static void dissect_tcp_bind_ack( const u_char *pd, int offset, frame_data *fd, offset += 6; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_bind_id, offset, 4, pntohl( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_bind_id, NullTVB, offset, 4, pntohl( &pd[ offset])); offset += 16; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_int_port, offset, + proto_tree_add_item( tree, hf_msproxy_server_int_port, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 6; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_ext_port, offset, + proto_tree_add_item( tree, hf_msproxy_server_ext_port, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_server_ext_addr, offset, + proto_tree_add_item( tree, hf_msproxy_server_ext_addr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 88; @@ -964,20 +964,20 @@ static void dissect_bind_info( const u_char *pd, int offset, frame_data *fd, CHECK_PACKET_LENGTH( 4); if ( tree) - proto_tree_add_item( tree, hf_msproxy_bind_id, offset, 4, pntohl( &pd[ offset])); + proto_tree_add_item( tree, hf_msproxy_bind_id, NullTVB, offset, 4, pntohl( &pd[ offset])); offset += 14; CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_dstport, offset, 2, + proto_tree_add_item( tree, hf_msproxy_dstport, NullTVB, offset, 2, pntohs( &pd[ offset])); conv_info->dst_port = pntohs( &pd[ offset]); offset += 2; CHECK_PACKET_LENGTH( 4); if ( tree) - proto_tree_add_item( tree, hf_msproxy_dstaddr, offset, 4, + proto_tree_add_item( tree, hf_msproxy_dstaddr, NullTVB, offset, 4, GWORD( pd, offset)); memcpy( &conv_info->dst_addr, &pd[ offset], sizeof( guint32)); @@ -986,7 +986,7 @@ static void dissect_bind_info( const u_char *pd, int offset, frame_data *fd, CHECK_PACKET_LENGTH( 2); if ( tree) - proto_tree_add_item( tree, hf_msproxy_server_int_port, offset, + proto_tree_add_item( tree, hf_msproxy_server_int_port, NullTVB, offset, 2, pntohs( &pd[ offset])); conv_info->server_int_port = pntohs( &pd[ offset]); offset += 4; @@ -994,12 +994,12 @@ static void dissect_bind_info( const u_char *pd, int offset, frame_data *fd, if ( tree) { CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( tree, hf_msproxy_server_ext_port, offset, + proto_tree_add_item( tree, hf_msproxy_server_ext_port, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_server_ext_addr, offset, + proto_tree_add_item( tree, hf_msproxy_server_ext_addr, NullTVB, offset, 4, GWORD( pd, offset)); offset += 78; @@ -1024,7 +1024,7 @@ static void dissect_resolve(const u_char *pd, int offset, frame_data *fd, int addr_offset = GBYTE( pd, offset); - proto_tree_add_text( tree, offset, 1, "Address offset: %d", + proto_tree_add_text( tree, NullTVB, offset, 1, "Address offset: %d", addr_offset); ++offset; @@ -1034,7 +1034,7 @@ static void dissect_resolve(const u_char *pd, int offset, frame_data *fd, offset += addr_offset; CHECK_PACKET_LENGTH( 4); - proto_tree_add_item( tree, hf_msproxy_resolvaddr, offset, 4, + proto_tree_add_item( tree, hf_msproxy_resolvaddr, NullTVB, offset, 4, GWORD( pd, offset)); } } @@ -1049,28 +1049,28 @@ static void dissect_msproxy_response(const u_char *pd, int offset, frame_data *f if ( tree) { CHECK_PACKET_LENGTH( 4); - proto_tree_add_text( tree, offset, 4, "Client id: 0x%0x", + proto_tree_add_text( tree, NullTVB, offset, 4, "Client id: 0x%0x", GWORD( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 4); - proto_tree_add_text( tree, offset, 4, "Version: 0x%04x", + proto_tree_add_text( tree, NullTVB, offset, 4, "Version: 0x%04x", GWORD( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 4); - proto_tree_add_text( tree, offset, 4, "Server id: 0x%04x", + proto_tree_add_text( tree, NullTVB, offset, 4, "Server id: 0x%04x", GWORD( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 1); - proto_tree_add_text( tree, offset, 1, "Client ack: 0x%02x", + proto_tree_add_text( tree, NullTVB, offset, 1, "Client ack: 0x%02x", GBYTE( pd, offset)); offset += 4; CHECK_PACKET_LENGTH( 1); - proto_tree_add_text( tree, offset, 1, "Sequence Number: 0x%02x", + proto_tree_add_text( tree, NullTVB, offset, 1, "Sequence Number: 0x%02x", GBYTE( pd, offset)); offset += 8; @@ -1078,7 +1078,7 @@ static void dissect_msproxy_response(const u_char *pd, int offset, frame_data *f CHECK_PACKET_LENGTH( 4); strncpy( temp, &pd[ offset], 4); temp[ 4] = 0; - proto_tree_add_text( tree, offset, 4, "RWSP signature: %s", temp); + proto_tree_add_text( tree, NullTVB, offset, 4, "RWSP signature: %s", temp); offset += 12; } @@ -1089,7 +1089,7 @@ static void dissect_msproxy_response(const u_char *pd, int offset, frame_data *f cmd = pntohs( &pd[offset]); if ( tree) - proto_tree_add_uint_format( tree, hf_msproxy_cmd, offset, 2, + proto_tree_add_uint_format( tree, hf_msproxy_cmd, NullTVB, offset, 2, cmd, "Command: 0x%02x (%s)", cmd, get_msproxy_cmd_name( cmd, FROM_SERVER)); offset += 2; @@ -1136,7 +1136,7 @@ static void dissect_msproxy_response(const u_char *pd, int offset, frame_data *f case MSPROXY_CONNECT_AUTHFAILED: case MSPROXY_BIND_AUTHFAILED: - proto_tree_add_text( tree, offset, 0, "No know information (help wanted)"); + proto_tree_add_text( tree, NullTVB, offset, 0, "No know information (help wanted)"); break; default: @@ -1144,11 +1144,11 @@ static void dissect_msproxy_response(const u_char *pd, int offset, frame_data *f if (tree && (((cmd >> 8) == MSPROXY_CONNREFUSED) || ((cmd >> 12) == MSPROXY_CONNREFUSED))) - proto_tree_add_text( tree, offset, 0, + proto_tree_add_text( tree, NullTVB, offset, 0, "No know information (help wanted)"); else if ( tree) - proto_tree_add_text( tree, offset, 0, + proto_tree_add_text( tree, NullTVB, offset, 0, "Unhandled response command (report this, please)"); } @@ -1202,7 +1202,7 @@ static void dissect_msproxy(const u_char *pd, int offset, frame_data *fd, proto_ } if (tree) { /* if proto tree, decode data */ - ti = proto_tree_add_item( tree, proto_msproxy, offset, + ti = proto_tree_add_item( tree, proto_msproxy, NullTVB, offset, END_OF_FRAME, NULL, "MSproxy:" ); msproxy_tree = proto_item_add_subtree(ti, ett_msproxy); diff --git a/packet-nbipx.c b/packet-nbipx.c index d31a6c7553..882ad594f1 100644 --- a/packet-nbipx.c +++ b/packet-nbipx.c @@ -2,7 +2,7 @@ * Routines for NetBIOS over IPX packet disassembly * Gilbert Ramirez * - * $Id: packet-nbipx.c,v 1.18 2000/02/15 21:02:35 gram Exp $ + * $Id: packet-nbipx.c,v 1.19 2000/05/11 08:15:24 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -144,7 +144,7 @@ add_routers(proto_tree *tree, const u_char *pd, int offset) rtr_offset = offset + (i << 2); memcpy(&router, &pd[rtr_offset], 4); if (router != 0) { - proto_tree_add_text(tree, rtr_offset, 4, "IPX Network: %s", + proto_tree_add_text(tree, NullTVB, rtr_offset, 4, "IPX Network: %s", ipxnet_to_string((guint8*)&router)); } } @@ -187,37 +187,37 @@ dissect_nbipx_ns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, } if (tree) { - ti = proto_tree_add_item(tree, proto_nbipx, offset, 50, NULL); + ti = proto_tree_add_item(tree, proto_nbipx, NullTVB, offset, 50, NULL); nbipx_tree = proto_item_add_subtree(ti, ett_nbipx); add_routers(nbipx_tree, pd, offset); - tf = proto_tree_add_text(nbipx_tree, offset+32, 1, + tf = proto_tree_add_text(nbipx_tree, NullTVB, offset+32, 1, "Name type flag: 0x%02x", name_type_flag); name_type_flag_tree = proto_item_add_subtree(tf, ett_nbipx_name_type_flags); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x80, 8, "Group name", "Unique name")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x40, 8, "Name in use", "Name not used")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x04, 8, "Name registered", "Name not registered")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x02, 8, "Name duplicated", "Name not duplicated")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x01, 8, "Name deregistered", "Name not deregistered")); - proto_tree_add_text(nbipx_tree, offset+33, 1, + proto_tree_add_text(nbipx_tree, NullTVB, offset+33, 1, "Packet Type: %s (%02X)", val_to_str(packet_type, nbipx_data_stream_type_vals, "Unknown"), packet_type); @@ -238,18 +238,18 @@ dissect_nbipx_dg(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, col_add_fstr(fd, COL_INFO, "NetBIOS datagram over NBIPX"); if (tree) { - ti = proto_tree_add_item(tree, proto_nbipx, offset, + ti = proto_tree_add_item(tree, proto_nbipx, NullTVB, offset, 2+NETBIOS_NAME_LEN+NETBIOS_NAME_LEN, NULL); nbipx_tree = proto_item_add_subtree(ti, ett_nbipx); - proto_tree_add_text(nbipx_tree, offset, 1, + proto_tree_add_text(nbipx_tree, NullTVB, offset, 1, "Connection control: 0x%02x", pd[offset]); offset += 1; max_data -= 1; if (!BYTES_ARE_IN_FRAME(offset, 1)) return; - proto_tree_add_text(nbipx_tree, offset, 1, + proto_tree_add_text(nbipx_tree, NullTVB, offset, 1, "Packet Type: %s (%02X)", val_to_str(pd[offset], nbipx_data_stream_type_vals, "Unknown"), pd[offset]); @@ -341,7 +341,7 @@ dissect_nwlink_dg(const u_char *pd, int offset, frame_data *fd, proto_tree *tree } if (tree) { - ti = proto_tree_add_item(tree, proto_nbipx, offset, 68, NULL); + ti = proto_tree_add_item(tree, proto_nbipx, NullTVB, offset, 68, NULL); nbipx_tree = proto_item_add_subtree(ti, ett_nbipx); add_routers(nbipx_tree, pd, offset); @@ -352,28 +352,28 @@ dissect_nwlink_dg(const u_char *pd, int offset, frame_data *fd, proto_tree *tree */ if (packet_type != NWLINK_SMB && packet_type != NWLINK_NETBIOS_DATAGRAM) { - tf = proto_tree_add_text(nbipx_tree, offset+32, 1, + tf = proto_tree_add_text(nbipx_tree, NullTVB, offset+32, 1, "Name type flag: 0x%02x", name_type_flag); name_type_flag_tree = proto_item_add_subtree(tf, ett_nbipx_name_type_flags); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x80, 8, "Group name", "Unique name")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x40, 8, "Name in use", "Name not used")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x04, 8, "Name registered", "Name not registered")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x02, 8, "Name duplicated", "Name not duplicated")); - proto_tree_add_text(name_type_flag_tree, offset+32, + proto_tree_add_text(name_type_flag_tree, NullTVB, offset+32, 1, "%s", decode_boolean_bitfield(name_type_flag, 0x01, 8, "Name deregistered", "Name not deregistered")); @@ -384,18 +384,18 @@ dissect_nwlink_dg(const u_char *pd, int offset, frame_data *fd, proto_tree *tree if (!netbios_add_name("Node name", pd, offset+52, nbipx_tree)) return; - proto_tree_add_text(nbipx_tree, offset+33, 1, + proto_tree_add_text(nbipx_tree, NullTVB, offset+33, 1, "Packet Type: %s (%02X)", val_to_str(packet_type, nwlink_data_stream_type_vals, "Unknown"), packet_type); } else { - proto_tree_add_text(nbipx_tree, offset+32, 1, + proto_tree_add_text(nbipx_tree, NullTVB, offset+32, 1, "Packet type: 0x%02x", name_type_flag); - proto_tree_add_text(nbipx_tree, offset+33, 1, + proto_tree_add_text(nbipx_tree, NullTVB, offset+33, 1, "Name Type: %s (0x%02x)", netbios_name_type_descr(packet_type), packet_type); - proto_tree_add_text(nbipx_tree, offset+34, 2, + proto_tree_add_text(nbipx_tree, NullTVB, offset+34, 2, "Message ID: 0x%04x", pletohs(&pd[offset+34])); if (!netbios_add_name("Requested name", pd, offset+36, nbipx_tree)) diff --git a/packet-nbns.c b/packet-nbns.c index b0b7d2a7a8..e99161d54a 100644 --- a/packet-nbns.c +++ b/packet-nbns.c @@ -4,7 +4,7 @@ * Gilbert Ramirez * Much stuff added by Guy Harris * - * $Id: packet-nbns.c,v 1.41 2000/04/12 21:42:31 guy Exp $ + * $Id: packet-nbns.c,v 1.42 2000/05/11 08:15:24 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -325,10 +325,10 @@ add_name_and_type(proto_tree *tree, int offset, int len, char *tag, char *name, int name_type) { if (name_type != -1) { - proto_tree_add_text(tree, offset, len, "%s: %s (%s)", + proto_tree_add_text(tree, NullTVB, offset, len, "%s: %s (%s)", tag, name, netbios_name_type_descr(name_type)); } else { - proto_tree_add_text(tree, offset, len, "%s: %s", + proto_tree_add_text(tree, NullTVB, offset, len, "%s: %s", tag, name); } } @@ -366,7 +366,7 @@ dissect_nbns_query(const u_char *pd, int offset, int nbns_data_offset, if (fd != NULL) col_append_fstr(fd, COL_INFO, " %s %s", type_name, name); if (nbns_tree != NULL) { - tq = proto_tree_add_text(nbns_tree, offset, len, + tq = proto_tree_add_text(nbns_tree, NullTVB, offset, len, "%s: type %s, class %s", name, type_name, class_name); q_tree = proto_item_add_subtree(tq, ett_nbns_qd); @@ -374,10 +374,10 @@ dissect_nbns_query(const u_char *pd, int offset, int nbns_data_offset, name_type); offset += name_len; - proto_tree_add_text(q_tree, offset, 2, "Type: %s", type_name); + proto_tree_add_text(q_tree, NullTVB, offset, 2, "Type: %s", type_name); offset += 2; - proto_tree_add_text(q_tree, offset, 2, "Class: %s", class_name); + proto_tree_add_text(q_tree, NullTVB, offset, 2, "Class: %s", class_name); offset += 2; } @@ -411,48 +411,48 @@ nbns_add_nbns_flags(proto_tree *nbns_tree, int offset, u_short flags, strcat(buf, val_to_str(flags & F_RCODE, rcode_vals, "Unknown error")); } - tf = proto_tree_add_text(nbns_tree, offset, 2, + tf = proto_tree_add_text(nbns_tree, NullTVB, offset, 2, "Flags: 0x%04x (%s)", flags, buf); field_tree = proto_item_add_subtree(tf, ett_nbns_flags); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, F_RESPONSE, 2*8, "Response", "Query")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(flags, F_OPCODE, 2*8, opcode_vals, "%s")); if (flags & F_RESPONSE) { - proto_tree_add_text(field_tree, offset, 2, + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, F_AUTHORITATIVE, 2*8, "Server is an authority for domain", "Server isn't an authority for domain")); } - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, F_TRUNCATED, 2*8, "Message is truncated", "Message is not truncated")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, F_RECDESIRED, 2*8, "Do query recursively", "Don't do query recursively")); if (flags & F_RESPONSE) { - proto_tree_add_text(field_tree, offset, 2, + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, F_RECAVAIL, 2*8, "Server can do recursive queries", "Server can't do recursive queries")); } - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, F_BROADCAST, 2*8, "Broadcast packet", "Not a broadcast packet")); if (flags & F_RESPONSE && !is_wack) { - proto_tree_add_text(field_tree, offset, 2, + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(flags, F_RCODE, 2*8, @@ -481,15 +481,15 @@ nbns_add_nb_flags(proto_tree *rr_tree, int offset, u_short flags) strcat(buf, "group"); else strcat(buf, "unique"); - tf = proto_tree_add_text(rr_tree, offset, 2, "Flags: 0x%x (%s)", flags, + tf = proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Flags: 0x%x (%s)", flags, buf); field_tree = proto_item_add_subtree(tf, ett_nbns_nb_flags); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, NB_FLAGS_G, 2*8, "Group name", "Unique name")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(flags, NB_FLAGS_ONT, 2*8, nb_flags_ont_vals, "%s")); } @@ -522,33 +522,33 @@ nbns_add_name_flags(proto_tree *rr_tree, int offset, u_short flags) strcat(buf, ", active"); if (flags & NAME_FLAGS_PRM) strcat(buf, ", permanent node name"); - tf = proto_tree_add_text(rr_tree, offset, 2, "Name flags: 0x%x (%s)", + tf = proto_tree_add_text(rr_tree, NullTVB, offset, 2, "Name flags: 0x%x (%s)", flags, buf); field_tree = proto_item_add_subtree(tf, ett_nbns_name_flags); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, NAME_FLAGS_G, 2*8, "Group name", "Unique name")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(flags, NAME_FLAGS_ONT, 2*8, name_flags_ont_vals, "%s")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, NAME_FLAGS_DRG, 2*8, "Name is being deregistered", "Name is not being deregistered")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, NAME_FLAGS_CNF, 2*8, "Name is in conflict", "Name is not in conflict")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, NAME_FLAGS_ACT, 2*8, "Name is active", "Name is not active")); - proto_tree_add_text(field_tree, offset, 2, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, NAME_FLAGS_PRM, 2*8, "Permanent node name", @@ -621,7 +621,7 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, } if (nbns_tree == NULL) break; - trr = proto_tree_add_text(nbns_tree, offset, + trr = proto_tree_add_text(nbns_tree, NullTVB, offset, (dptr - data_start) + data_len, "%s: type %s, class %s", name, type_name, class_name); @@ -641,7 +641,7 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } @@ -658,7 +658,7 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } @@ -674,11 +674,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 4) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 4, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Addr: %s", ip_to_str((guint8 *)dptr)); dptr += 4; @@ -693,7 +693,7 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, col_append_fstr(fd, COL_INFO, " %s", type_name); if (nbns_tree == NULL) break; - trr = proto_tree_add_text(nbns_tree, offset, + trr = proto_tree_add_text(nbns_tree, NullTVB, offset, (dptr - data_start) + data_len, "%s: type %s, class %s", name, type_name, class_name); @@ -705,13 +705,13 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 1) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } num_names = *dptr; dptr += 1; - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of names: %u", num_names); cur_offset += 1; @@ -722,7 +722,7 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < NETBIOS_NAME_LEN) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); goto out; } @@ -730,7 +730,7 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, dptr += NETBIOS_NAME_LEN; name_type = process_netbios_name(nbname, name_str); - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, NETBIOS_NAME_LEN, "Name: %s<%02x> (%s)", name_str, name_type, netbios_name_type_descr(name_type)); @@ -743,7 +743,7 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); goto out; } @@ -762,11 +762,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 6) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 6, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 6, "Unit ID: %s", ether_to_str((guint8 *)dptr)); dptr += 6; @@ -779,11 +779,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 1) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 1, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Jumpers: 0x%x", *dptr); dptr += 1; cur_offset += 1; @@ -795,11 +795,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 1) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 1, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 1, "Test result: 0x%x", *dptr); dptr += 1; cur_offset += 1; @@ -811,11 +811,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Version number: 0x%x", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -827,11 +827,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Period of statistics: 0x%x", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -843,11 +843,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of CRCs: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -859,11 +859,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of alignment errors: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -875,11 +875,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of collisions: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -891,11 +891,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of send aborts: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -907,11 +907,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 4) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 4, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Number of good sends: %u", pntohl(dptr)); dptr += 4; cur_offset += 4; @@ -923,11 +923,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 4) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 4, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 4, "Number of good receives: %u", pntohl(dptr)); dptr += 4; cur_offset += 4; @@ -939,11 +939,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of retransmits: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -955,11 +955,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of no resource conditions: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -971,11 +971,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of command blocks: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -987,11 +987,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Number of pending sessions: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -1003,11 +1003,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Max number of pending sessions: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -1018,11 +1018,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Max total sessions possible: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -1034,11 +1034,11 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, return 0; } if (data_len < 2) { - proto_tree_add_text(rr_tree, cur_offset, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "(incomplete entry)"); break; } - proto_tree_add_text(rr_tree, cur_offset, 2, + proto_tree_add_text(rr_tree, NullTVB, cur_offset, 2, "Session data packet size: %u", pntohs(dptr)); dptr += 2; cur_offset += 2; @@ -1051,13 +1051,13 @@ dissect_nbns_answer(const u_char *pd, int offset, int nbns_data_offset, col_append_fstr(fd, COL_INFO, " %s", type_name); if (nbns_tree == NULL) break; - trr = proto_tree_add_text(nbns_tree, offset, + trr = proto_tree_add_text(nbns_tree, NullTVB, offset, (dptr - data_start) + data_len, "%s: type %s, class %s", name, type_name, class_name); rr_tree = add_rr_to_tree(trr, ett_nbns_rr, offset, name, name_len, type_name, class_name, ttl, data_len); - proto_tree_add_text(rr_tree, cur_offset, data_len, "Data"); + proto_tree_add_text(rr_tree, NullTVB, cur_offset, data_len, "Data"); break; } dptr += data_len; @@ -1075,7 +1075,7 @@ dissect_query_records(const u_char *pd, int cur_off, int nbns_data_offset, start_off = cur_off; if (nbns_tree != NULL) { - ti = proto_tree_add_text(nbns_tree, start_off, 0, "Queries"); + ti = proto_tree_add_text(nbns_tree, NullTVB, start_off, 0, "Queries"); qatree = proto_item_add_subtree(ti, ett_nbns_qry); } while (count-- > 0) { @@ -1106,7 +1106,7 @@ dissect_answer_records(const u_char *pd, int cur_off, int nbns_data_offset, start_off = cur_off; if (nbns_tree != NULL) { - ti = proto_tree_add_text(nbns_tree, start_off, 0, name); + ti = proto_tree_add_text(nbns_tree, NullTVB, start_off, 0, name); qatree = proto_item_add_subtree(ti, ett_nbns_ans); } while (count-- > 0) { @@ -1167,28 +1167,28 @@ dissect_nbns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_item(tree, proto_nbns, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_nbns, NullTVB, offset, END_OF_FRAME, NULL); nbns_tree = proto_item_add_subtree(ti, ett_nbns); if (flags & F_RESPONSE) { - proto_tree_add_item_hidden(nbns_tree, hf_nbns_response, + proto_tree_add_item_hidden(nbns_tree, hf_nbns_response, NullTVB, 0, 0, TRUE); } else { - proto_tree_add_item_hidden(nbns_tree, hf_nbns_query, + proto_tree_add_item_hidden(nbns_tree, hf_nbns_query, NullTVB, 0, 0, TRUE); } - proto_tree_add_item(nbns_tree, hf_nbns_transaction_id, + proto_tree_add_item(nbns_tree, hf_nbns_transaction_id, NullTVB, offset + NBNS_ID, 2, id); nbns_add_nbns_flags(nbns_tree, offset + NBNS_FLAGS, flags, 0); - proto_tree_add_item(nbns_tree, hf_nbns_count_questions, + proto_tree_add_item(nbns_tree, hf_nbns_count_questions, NullTVB, offset + NBNS_QUEST, 2, quest); - proto_tree_add_item(nbns_tree, hf_nbns_count_answers, + proto_tree_add_item(nbns_tree, hf_nbns_count_answers, NullTVB, offset + NBNS_ANS, 2, ans); - proto_tree_add_item(nbns_tree, hf_nbns_count_auth_rr, + proto_tree_add_item(nbns_tree, hf_nbns_count_auth_rr, NullTVB, offset + NBNS_AUTH, 2, auth); - proto_tree_add_item(nbns_tree, hf_nbns_count_add_rr, + proto_tree_add_item(nbns_tree, hf_nbns_count_add_rr, NullTVB, offset + NBNS_ADD, 2, add); } @@ -1325,35 +1325,35 @@ dissect_nbdgm(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - ti = proto_tree_add_item(tree, proto_nbdgm, offset, header.dgm_length, NULL); + ti = proto_tree_add_item(tree, proto_nbdgm, NullTVB, offset, header.dgm_length, NULL); nbdgm_tree = proto_item_add_subtree(ti, ett_nbdgm); - proto_tree_add_uint_format(nbdgm_tree, hf_nbdgm_type, + proto_tree_add_uint_format(nbdgm_tree, hf_nbdgm_type, NullTVB, offset, 1, header.msg_type, "Message Type: %s", message[message_index]); - proto_tree_add_boolean_format(nbdgm_tree, hf_nbdgm_fragment, + proto_tree_add_boolean_format(nbdgm_tree, hf_nbdgm_fragment, NullTVB, offset+1, 1, header.flags.more, "More fragments follow: %s", yesno[header.flags.more]); - proto_tree_add_boolean_format(nbdgm_tree, hf_nbdgm_first, + proto_tree_add_boolean_format(nbdgm_tree, hf_nbdgm_first, NullTVB, offset+1, 1, header.flags.first, "This is first fragment: %s", yesno[header.flags.first]); - proto_tree_add_uint_format(nbdgm_tree, hf_nbdgm_node_type, + proto_tree_add_uint_format(nbdgm_tree, hf_nbdgm_node_type, NullTVB, offset+1, 1, header.flags.node_type, "Node Type: %s", node[header.flags.node_type]); - proto_tree_add_item(nbdgm_tree, hf_nbdgm_datagram_id, + proto_tree_add_item(nbdgm_tree, hf_nbdgm_datagram_id, NullTVB, offset+2, 2, header.dgm_id); - proto_tree_add_item(nbdgm_tree, hf_nbdgm_src_ip, + proto_tree_add_item(nbdgm_tree, hf_nbdgm_src_ip, NullTVB, offset+4, 4, header.src_ip); - proto_tree_add_item(nbdgm_tree, hf_nbdgm_src_port, + proto_tree_add_item(nbdgm_tree, hf_nbdgm_src_port, NullTVB, offset+8, 2, header.src_port); } @@ -1365,9 +1365,9 @@ dissect_nbdgm(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) header.msg_type == 0x11 || header.msg_type == 0x12) { if (tree) { - proto_tree_add_text(nbdgm_tree, offset, 2, + proto_tree_add_text(nbdgm_tree, NullTVB, offset, 2, "Datagram length: %d bytes", header.dgm_length); - proto_tree_add_text(nbdgm_tree, offset+2, 2, + proto_tree_add_text(nbdgm_tree, NullTVB, offset+2, 2, "Packet offset: %d bytes", header.pkt_offset); } @@ -1399,7 +1399,7 @@ dissect_nbdgm(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } else if (header.msg_type == 0x13) { if (tree) { - proto_tree_add_text(nbdgm_tree, offset, 1, "Error code: %s", + proto_tree_add_text(nbdgm_tree, NullTVB, offset, 1, "Error code: %s", val_to_str(header.error_code, error_codes, "Unknown (0x%x)")); } } @@ -1490,10 +1490,10 @@ dissect_nbss_packet(const u_char *pd, int offset, frame_data *fd, proto_tree *tr } if (tree) { - ti = proto_tree_add_item(tree, proto_nbss, offset, length + 4, NULL); + ti = proto_tree_add_item(tree, proto_nbss, NullTVB, offset, length + 4, NULL); nbss_tree = proto_item_add_subtree(ti, ett_nbss); - proto_tree_add_uint_format(nbss_tree, hf_nbss_type, + proto_tree_add_uint_format(nbss_tree, hf_nbss_type, NullTVB, offset, 1, msg_type, "Message Type: %s", @@ -1505,21 +1505,21 @@ dissect_nbss_packet(const u_char *pd, int offset, frame_data *fd, proto_tree *tr if (is_cifs) { if (tree) { - proto_tree_add_text(nbss_tree, offset, 3, "Length: %u", length); + proto_tree_add_text(nbss_tree, NullTVB, offset, 3, "Length: %u", length); } offset += 3; } else { if (tree) { - tf = proto_tree_add_item(nbss_tree, hf_nbss_flags, offset, 1, flags); + tf = proto_tree_add_item(nbss_tree, hf_nbss_flags, NullTVB, offset, 1, flags); field_tree = proto_item_add_subtree(tf, ett_nbss_flags); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, NBSS_FLAGS_E, 8, "Add 65536 to length", "Add 0 to length")); } offset += 1; if (tree) { - proto_tree_add_text(nbss_tree, offset, 2, "Length: %u", length); + proto_tree_add_text(nbss_tree, NullTVB, offset, 2, "Length: %u", length); } offset += 2; @@ -1544,21 +1544,21 @@ dissect_nbss_packet(const u_char *pd, int offset, frame_data *fd, proto_tree *tr case NEGATIVE_SESSION_RESPONSE: if (tree) - proto_tree_add_text(nbss_tree, offset, 1, + proto_tree_add_text(nbss_tree, NullTVB, offset, 1, "Error code: %s", val_to_str(pd[offset], error_codes, "Unknown (%x)")); break; case RETARGET_SESSION_RESPONSE: if (tree) - proto_tree_add_text(nbss_tree, offset, 4, + proto_tree_add_text(nbss_tree, NullTVB, offset, 4, "Retarget IP address: %s", ip_to_str((guint8 *)&pd[offset])); offset += 4; if (tree) - proto_tree_add_text(nbss_tree, offset, 2, + proto_tree_add_text(nbss_tree, NullTVB, offset, 2, "Retarget port: %u", pntohs(&pd[offset])); break; @@ -1633,7 +1633,7 @@ dissect_nbss(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) - proto_tree_add_text(tree, offset, max_data, "Continuation data"); + proto_tree_add_text(tree, NullTVB, offset, max_data, "Continuation data"); return; } diff --git a/packet-ncp.c b/packet-ncp.c index ef215e127f..d36accadca 100644 --- a/packet-ncp.c +++ b/packet-ncp.c @@ -3,7 +3,7 @@ * Gilbert Ramirez * Modified to allow NCP over TCP/IP decodes by James Coe * - * $Id: packet-ncp.c,v 1.34 2000/04/18 04:46:06 guy Exp $ + * $Id: packet-ncp.c,v 1.35 2000/05/11 08:15:26 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -576,18 +576,18 @@ dissect_ncp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { nw_ncp_type = header.type; if (tree) { - ti = proto_tree_add_item(tree, proto_ncp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ncp, NullTVB, offset, END_OF_FRAME, NULL); ncp_tree = proto_item_add_subtree(ti, ett_ncp); if ( pi.ptype == PT_TCP || pi.ptype == PT_UDP ) { - proto_tree_add_item(ncp_tree, hf_ncp_ip_sig, offset - 16, 4, ncpiph.signature); - proto_tree_add_text(ncp_tree, offset - 12, 4, "Length: %d", ncpiph.length); + proto_tree_add_item(ncp_tree, hf_ncp_ip_sig, NullTVB, offset - 16, 4, ncpiph.signature); + proto_tree_add_text(ncp_tree, NullTVB, offset - 12, 4, "Length: %d", ncpiph.length); if ( ncpiph.signature == NCPIP_RQST ) { - proto_tree_add_item(ncp_tree, hf_ncp_ip_ver, offset - 8, 4, ncpiphrq.version); - proto_tree_add_text(ncp_tree, offset - 4, 4, "Reply buffer size: %d", ncpiphrq.rplybufsize); + proto_tree_add_item(ncp_tree, hf_ncp_ip_ver, NullTVB, offset - 8, 4, ncpiphrq.version); + proto_tree_add_text(ncp_tree, NullTVB, offset - 4, 4, "Reply buffer size: %d", ncpiphrq.rplybufsize); }; }; - proto_tree_add_uint_format(ncp_tree, hf_ncp_type, + proto_tree_add_uint_format(ncp_tree, hf_ncp_type, NullTVB, offset, 2, header.type, "Type: %s", @@ -595,13 +595,13 @@ dissect_ncp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { request_reply_values, "Unknown (%04X)")); - proto_tree_add_item(ncp_tree, hf_ncp_seq, + proto_tree_add_item(ncp_tree, hf_ncp_seq, NullTVB, offset+2, 1, header.sequence); - proto_tree_add_item(ncp_tree, hf_ncp_connection, + proto_tree_add_item(ncp_tree, hf_ncp_connection, NullTVB, offset+3, 3, nw_connection); - proto_tree_add_item(ncp_tree, hf_ncp_task, + proto_tree_add_item(ncp_tree, hf_ncp_task, NullTVB, offset+4, 1, header.task); } @@ -688,16 +688,16 @@ dissect_ncp_request(const u_char *pd, int offset, frame_data *fd, } if (ncp_tree) { - proto_tree_add_text(ncp_tree, offset+6, 1, + proto_tree_add_text(ncp_tree, NullTVB, offset+6, 1, "Function Code: 0x%02X (%s)", request.function, description); if (ncp_request) { if (ncp_request->submask == SUBFUNC) { - proto_tree_add_text(ncp_tree, offset+7, 2, + proto_tree_add_text(ncp_tree, NullTVB, offset+7, 2, "Packet Length: %d bytes", pntohs(&pd[offset+7])); - proto_tree_add_text(ncp_tree, offset+9, 1, + proto_tree_add_text(ncp_tree, NullTVB, offset+9, 1, "Subfunction Code: 0x%02x", pd[offset+9]); offset += 7 + 3; } @@ -706,7 +706,7 @@ dissect_ncp_request(const u_char *pd, int offset, frame_data *fd, } if (ncp_request->req) { - ti = proto_tree_add_text(ncp_tree, offset, END_OF_FRAME, + ti = proto_tree_add_text(ncp_tree, NullTVB, offset, END_OF_FRAME, "NCP Request Packet"); field_tree = proto_item_add_subtree(ti, ett_ncp_request_fields); @@ -770,23 +770,23 @@ dissect_ncp_reply(const u_char *pd, int offset, frame_data *fd, /* A completion code of 0 always means OK. Other values have different * meanings */ if (ncp_request) { - proto_tree_add_text(ncp_tree, offset+6, 1, + proto_tree_add_text(ncp_tree, NullTVB, offset+6, 1, "Completion Code: 0x%02x (%s)", reply.completion_code, ncp_completion_code(reply.completion_code, ncp_request->family)); } else { - proto_tree_add_text(ncp_tree, offset+6, 1, + proto_tree_add_text(ncp_tree, NullTVB, offset+6, 1, "Completion Code: 0x%02x (%s)", reply.completion_code, reply.completion_code == 0 ? "OK" : "Unknown"); } - proto_tree_add_text(ncp_tree, offset+7, 1, + proto_tree_add_text(ncp_tree, NullTVB, offset+7, 1, "Connection Status: %d", reply.connection_state); if (ncp_request) { if (ncp_request->rep) { - ti = proto_tree_add_text(ncp_tree, offset+8, END_OF_FRAME, + ti = proto_tree_add_text(ncp_tree, NullTVB, offset+8, END_OF_FRAME, "NCP Reply Packet"); field_tree = proto_item_add_subtree(ti, ett_ncp_reply_fields); @@ -810,20 +810,20 @@ parse_ncp_svc_fields(const u_char *pd, proto_tree *ncp_tree, int offset, switch(rec->type) { case nbeshort: field_length = 2; - proto_tree_add_text(ncp_tree, field_offset, + proto_tree_add_text(ncp_tree, NullTVB, field_offset, field_length, rec->description, pntohs(&pd[field_offset])); break; case nasciile: field_length = pd[field_offset]; - proto_tree_add_text(ncp_tree, field_offset, + proto_tree_add_text(ncp_tree, NullTVB, field_offset, field_length + 1, rec->description, field_length, &pd[field_offset+1]); break; case nhex: field_length = rec->length; - proto_tree_add_text(ncp_tree, field_offset, + proto_tree_add_text(ncp_tree, NullTVB, field_offset, field_length, rec->description); break; diff --git a/packet-netbios.c b/packet-netbios.c index 5b92ef4829..d48e4e9d2b 100644 --- a/packet-netbios.c +++ b/packet-netbios.c @@ -5,7 +5,7 @@ * * derived from the packet-nbns.c * - * $Id: packet-netbios.c,v 1.18 2000/04/17 00:32:40 guy Exp $ + * $Id: packet-netbios.c,v 1.19 2000/05/11 08:15:28 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -255,14 +255,14 @@ gboolean netbios_add_name(char* label, const u_char *pd, int offset, } name_type_str = netbios_name_type_descr(name_type); - tf = proto_tree_add_text( tree, offset, NETBIOS_NAME_LEN, + tf = proto_tree_add_text( tree, NullTVB, offset, NETBIOS_NAME_LEN, "%s: %s<%02x> (%s)", label, name_str, name_type, name_type_str); field_tree = proto_item_add_subtree( tf, ett_netb_name); - proto_tree_add_text( field_tree, offset, 15, "%s", + proto_tree_add_text( field_tree, NullTVB, offset, 15, "%s", name_str); - proto_tree_add_text( field_tree, offset + 15, 1, + proto_tree_add_text( field_tree, NullTVB, offset + 15, 1, "0x%02x (%s)", name_type, name_type_str); return TRUE; } @@ -277,19 +277,19 @@ static void netbios_data_first_middle_flags(const u_char *pd, proto_tree *tree, guint flags = pd[offset]; /* decode the flag field for Data First Middle packet*/ - tf = proto_tree_add_text(tree, offset, 1, + tf = proto_tree_add_text(tree, NullTVB, offset, 1, "Flags: 0x%02x", flags); field_tree = proto_item_add_subtree(tf, ett_netb_flags); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x08, 8, "Acknowledge_included", "No Acknowledge_included")); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x02, 8, "No acknowledgement expected", "Acknowledgement expected")); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x01, 8, "RECEIVE_CONTINUE requested", "RECEIVE_CONTINUE not requested")); } @@ -303,19 +303,19 @@ static void netbios_data_only_flags(const u_char *pd, proto_tree *tree, guint flags = pd[offset]; /* decode the flag field for Data Only Last packet*/ - tf = proto_tree_add_text(tree, offset, 1, + tf = proto_tree_add_text(tree, NullTVB, offset, 1, "Flags: 0x%02x", flags); field_tree = proto_item_add_subtree(tf, ett_netb_flags); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x08, 8, "ACKNOWLEDGE_INCLUDED", "No ACKNOWLEDGE_INCLUDED")); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x04, 8, "ACKNOWLEDGE_WITH_DATA_ALLOWED", "No ACKNOWLEDGE_WITH_DATA_ALLOWED")); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x02, 8, "No acknowledgement expected", "Acknowledgement expected")); } @@ -329,15 +329,15 @@ static void netbios_add_ses_confirm_flags(const u_char *pd, proto_tree *tree, guint flags = pd[offset]; /* decode the flag field for Session Confirm packet */ - tf = proto_tree_add_text(tree, offset, 1, + tf = proto_tree_add_text(tree, NullTVB, offset, 1, "Flags: 0x%02x", flags); field_tree = proto_item_add_subtree( tf, ett_netb_flags); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x80, 8, "Can handle SEND.NO.ACK", "Can't handle SEND.NO.ACK")); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x01, 8, "NetBIOS 2.00 or higher", "NetBIOS 1.xx")); } @@ -351,19 +351,19 @@ static void netbios_add_session_init_flags(const u_char *pd, proto_tree *tree, guint flags = pd[offset]; /* decode the flag field for Session Init packet */ - tf = proto_tree_add_text(tree, offset, 1, + tf = proto_tree_add_text(tree, NullTVB, offset, 1, "Flags: 0x%02x", flags); field_tree = proto_item_add_subtree(tf, ett_netb_flags); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x80, 8, "Can handle SEND.NO.ACK", "Can't handle SEND.NO.ACK")); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_numeric_bitfield(flags, 0x0E, 8, "Largest frame value = %u")); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x01, 8, "NetBIOS 2.00 or higher", "NetBIOS 1.xx")); } @@ -378,12 +378,12 @@ static void netbios_no_receive_flags(const u_char *pd, proto_tree *tree, guint flags = pd[offset]; /* decode the flag field for No Receive packet*/ - tf = proto_tree_add_text(tree, offset, 1, + tf = proto_tree_add_text(tree, NullTVB, offset, 1, "Flags: 0x%02x", flags); if (flags & 0x02) { field_tree = proto_item_add_subtree(tf, ett_netb_flags); - proto_tree_add_text(field_tree, offset, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x02, 8, "SEND.NO.ACK data not received", NULL)); } @@ -401,7 +401,7 @@ static void nb_xmit_corrl(const u_char *pd, int offset, proto_tree *tree) {/* display the transmit correlator */ - proto_tree_add_text( tree, offset + NB_XMIT_CORL, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_XMIT_CORL, 2, "Transmit Correlator: 0x%04x", pletohs(&pd[offset + NB_XMIT_CORL])); } @@ -410,7 +410,7 @@ static void nb_resp_corrl(const u_char *pd, int offset, proto_tree *tree) {/* display the response correlator */ - proto_tree_add_text( tree, offset + NB_RESP_CORL, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_RESP_CORL, 2, "Response Correlator: 0x%04x", pletohs(&pd[offset + NB_RESP_CORL])); } @@ -425,17 +425,17 @@ static void nb_call_name_type(const u_char *pd, int offset, switch (name_type_value) { case 0x00: - proto_tree_add_text( tree, offset + NB_CALL_NAME_TYPE, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_CALL_NAME_TYPE, 1, "Caller's Name Type: Unique name"); break; case 0x01: - proto_tree_add_text( tree, offset + NB_CALL_NAME_TYPE, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_CALL_NAME_TYPE, 1, "Caller's Name Type: Group name"); break; default: - proto_tree_add_text( tree, offset + NB_CALL_NAME_TYPE, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_CALL_NAME_TYPE, 1, "Caller's Name Type: 0x%02x (should be 0 or 1)", name_type_value); break; @@ -448,7 +448,7 @@ static void nb_local_session(const u_char *pd, int offset, {/* add the local session to tree */ - proto_tree_add_text(tree, offset + NB_LOCAL_SES, 1, + proto_tree_add_text(tree, NullTVB, offset + NB_LOCAL_SES, 1, "Local Session No.: 0x%02x", pd[offset + NB_LOCAL_SES]); } @@ -458,7 +458,7 @@ static void nb_remote_session(const u_char *pd, int offset, {/* add the remote session to tree */ - proto_tree_add_text(tree, offset + NB_RMT_SES, 1, + proto_tree_add_text(tree, NullTVB, offset + NB_RMT_SES, 1, "Remote Session No.: 0x%02x", pd[offset + NB_RMT_SES]); } @@ -471,7 +471,7 @@ static void nb_data2(char *label, int len, const u_char *pd, int offset, int value = (len == 1 ? pd[offset + NB_DATA2] : pletohs(&pd[offset + NB_DATA2])); - proto_tree_add_text(tree, offset + NB_DATA2, len, label, value); + proto_tree_add_text(tree, NullTVB, offset + NB_DATA2, len, label, value); } static void nb_resync_indicator(const u_char *pd, int offset, @@ -482,17 +482,17 @@ static void nb_resync_indicator(const u_char *pd, int offset, switch (resync_indicator) { case 0x0000: - proto_tree_add_text(tree, offset + NB_DATA2, 2, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA2, 2, "Re-sync indicator: Not first Data First Middle following Receive Outstanding"); break; case 0x0001: - proto_tree_add_text(tree, offset + NB_DATA2, 2, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA2, 2, "Re-sync indicator: First Data First Middle following Receive Outstanding"); break; default: - proto_tree_add_text(tree, offset + NB_DATA2, 2, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA2, 2, "Re-sync indicator: 0x%04x", resync_indicator); break; } @@ -558,17 +558,17 @@ static void dissect_netb_status_query(const u_char *pd, int offset, switch (status_request) { case 0: - proto_tree_add_text(tree, offset + NB_DATA1, 1, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA1, 1, "Status request: NetBIOS 1.x or 2.0"); break; case 1: - proto_tree_add_text(tree, offset + NB_DATA1, 1, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA1, 1, "Status request: NetBIOS 2.1, initial status request"); break; default: - proto_tree_add_text(tree, offset + NB_DATA1, 1, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA1, 1, "Status request: NetBIOS 2.1, %u names received so far", status_request); break; @@ -596,7 +596,7 @@ static void dissect_netb_datagram(const u_char *pd, int offset, /* Weird. In some datagrams, this is 10 octets of 0, followed by a MAC address.... */ if (memcmp(&pd[offset + NB_SENDER_NAME], zeroes, 10) == 0) { - proto_tree_add_text( tree, offset + NB_SENDER_NAME + 10, 6, + proto_tree_add_text( tree, NullTVB, offset + NB_SENDER_NAME + 10, 6, "Sender's MAC Address: %s", ether_to_str(&pd[offset + NB_SENDER_NAME + 10])); } else { @@ -613,7 +613,7 @@ static void dissect_netb_datagram_bcast(const u_char *pd, int offset, /* We assume the same weirdness can happen here.... */ if (memcmp(&pd[offset + NB_SENDER_NAME], zeroes, 10) == 0) { - proto_tree_add_text( tree, offset + NB_SENDER_NAME + 10, 6, + proto_tree_add_text( tree, NullTVB, offset + NB_SENDER_NAME + 10, 6, "Sender's Node Address: %s", ether_to_str(&pd[offset + NB_SENDER_NAME + 10])); } else { @@ -630,10 +630,10 @@ static void dissect_netb_name_query(const u_char *pd, int offset, guint8 local_session_number = pd[offset + NB_DATA2]; if (local_session_number == 0) { - proto_tree_add_text( tree, offset + NB_DATA2, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 1, "Local Session No.: 0 (FIND.NAME request)"); } else { - proto_tree_add_text( tree, offset + NB_DATA2, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 1, "Local Session No.: 0x%02x", local_session_number); } nb_call_name_type(pd, offset, tree); @@ -657,17 +657,17 @@ static void dissect_netb_add_name_resp(const u_char *pd, int offset, switch (status) { case 0: - proto_tree_add_text( tree, offset + NB_DATA1, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA1, 1, "Status: Add name not in process"); break; case 1: - proto_tree_add_text( tree, offset + NB_DATA1, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA1, 1, "Status: Add name in process"); break; default: - proto_tree_add_text( tree, offset + NB_DATA1, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA1, 1, "Status: 0x%02x (should be 0 or 1)", status); break; } @@ -675,17 +675,17 @@ static void dissect_netb_add_name_resp(const u_char *pd, int offset, switch (name_type) { case 0: - proto_tree_add_text( tree, offset + NB_DATA2, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 2, "Name type: Unique name"); break; case 1: - proto_tree_add_text( tree, offset + NB_DATA2, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 2, "Name type: Group name"); break; default: - proto_tree_add_text( tree, offset + NB_DATA2, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 2, "Name type: 0x%04x (should be 0 or 1)", name_type); break; } @@ -708,17 +708,17 @@ static void dissect_netb_name_resp(const u_char *pd, int offset, switch (local_session_number) { case 0x00: - proto_tree_add_text( tree, offset + NB_DATA2, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 1, "State of name: No LISTEN pending, or FIND.NAME response"); break; case 0xFF: - proto_tree_add_text( tree, offset + NB_DATA2, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 1, "State of name: LISTEN pending, but insufficient resources to establish session"); break; default: - proto_tree_add_text( tree, offset + NB_DATA2, 1, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 1, "Local Session No.: 0x%02x", local_session_number); break; } @@ -747,28 +747,28 @@ static void dissect_netb_status_resp(const u_char *pd, int offset, nb_call_name_type(pd, offset, tree); if (status_response == 0) { - proto_tree_add_text(tree, offset + NB_DATA1, 1, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA1, 1, "Status response: NetBIOS 1.x or 2.0"); } else { - proto_tree_add_text(tree, offset + NB_DATA1, 1, + proto_tree_add_text(tree, NullTVB, offset + NB_DATA1, 1, "Status response: NetBIOS 2.1, %u names sent so far", status_response); } data2 = pletohs(&pd[offset + NB_DATA2]); - td2 = proto_tree_add_text(tree, offset + NB_DATA2, 2, "Status: 0x%04x", + td2 = proto_tree_add_text(tree, NullTVB, offset + NB_DATA2, 2, "Status: 0x%04x", data2); data2_tree = proto_item_add_subtree(td2, ett_netb_status); if (data2 & 0x8000) { - proto_tree_add_text(data2_tree, offset, 2, "%s", + proto_tree_add_text(data2_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(data2, 0x8000, 8*2, "Data length exceeds maximum frame size", NULL)); } if (data2 & 0x4000) { - proto_tree_add_text(data2_tree, offset, 2, "%s", + proto_tree_add_text(data2_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(data2, 0x4000, 8*2, "Data length exceeds user's buffer", NULL)); } - proto_tree_add_text(data2_tree, offset, 2, "%s", + proto_tree_add_text(data2_tree, NullTVB, offset, 2, "%s", decode_numeric_bitfield(data2, 0x3FFF, 2*8, "Status data length = %u")); nb_xmit_corrl(pd, offset, tree); @@ -845,17 +845,17 @@ static void dissect_netb_session_end(const u_char *pd, int offset, switch (termination_indicator) { case 0x0000: - proto_tree_add_text( tree, offset + NB_DATA2, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 2, "Termination indicator: Normal session end"); break; case 0x0001: - proto_tree_add_text( tree, offset + NB_DATA2, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 2, "Termination indicator: Abormal session end"); break; default: - proto_tree_add_text( tree, offset + NB_DATA2, 2, + proto_tree_add_text( tree, NullTVB, offset + NB_DATA2, 2, "Termination indicator: 0x%04x (should be 0x0000 or 0x0001)", termination_indicator); break; @@ -985,11 +985,11 @@ static void dissect_netbios(const u_char *pd, int offset, frame_data *fd, col_add_str(fd, COL_INFO, "Bad packet"); if (tree) { - ti = proto_tree_add_item(tree, proto_netbios, + ti = proto_tree_add_item(tree, proto_netbios, NullTVB, offset, END_OF_FRAME, NULL); netb_tree = proto_item_add_subtree(ti, ett_netb); - proto_tree_add_text( netb_tree, offset, + proto_tree_add_text( netb_tree, NullTVB, offset, END_OF_FRAME, "Data (%u bytes)", END_OF_FRAME); } @@ -1030,17 +1030,17 @@ static void dissect_netbios(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(tree, proto_netbios, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_netbios, NullTVB, offset, END_OF_FRAME, NULL); netb_tree = proto_item_add_subtree(ti, ett_netb); - proto_tree_add_text(netb_tree, offset, 2, + proto_tree_add_text(netb_tree, NullTVB, offset, 2, "Header Length: %d", hdr_len); - proto_tree_add_text(netb_tree, offset + 2, 2, + proto_tree_add_text(netb_tree, NullTVB, offset + 2, 2, "Delimiter: EFFF (NetBIOS)"); - proto_tree_add_text(netb_tree, offset + NB_COMMAND, 1, + proto_tree_add_text(netb_tree, NullTVB, offset + NB_COMMAND, 1, "Command: 0x%02x (%s)", command, CommandName[ command]); /* if command in table range */ diff --git a/packet-nfs.c b/packet-nfs.c index 8191960572..2beb99888d 100644 --- a/packet-nfs.c +++ b/packet-nfs.c @@ -2,7 +2,7 @@ * Routines for nfs dissection * Copyright 1999, Uwe Girlich * - * $Id: packet-nfs.c,v 1.26 2000/04/04 06:46:25 guy Exp $ + * $Id: packet-nfs.c,v 1.27 2000/05/11 08:15:28 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -174,7 +174,7 @@ guint32* status) if (tree) { /* this gives the right NFSv2 number<->message relation */ /* and makes it searchable via "nfs.status" */ - proto_tree_add_uint_format(tree, hf_nfs_nfsstat3, + proto_tree_add_uint_format(tree, hf_nfs_nfsstat3, NullTVB, offset+0, 4, stat, "Status: %s (%u)", val_to_str(stat,names_nfs_stat,"%u"), stat); } @@ -221,7 +221,7 @@ char* name) ftype_name = val_to_str(ftype, nfs2_ftype, "%u"); if (tree) { - proto_tree_add_text(tree, offset, 4, + proto_tree_add_text(tree, NullTVB, offset, 4, "%s: %s (%u)", name, ftype_name, ftype); } @@ -242,7 +242,7 @@ dissect_fhandle_data(const u_char *pd, int offset, proto_tree *tree, int fhlen) sublen = 16; if (sublen > bytes_left) sublen = bytes_left; - proto_tree_add_text(tree, offset, sublen, + proto_tree_add_text(tree, NullTVB, offset, sublen, "%s%s", first_line ? "data: " : " ", @@ -261,7 +261,7 @@ dissect_fhandle(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, proto_tree* ftree = NULL; if (tree) { - fitem = proto_tree_add_text(tree, offset, FHSIZE, + fitem = proto_tree_add_text(tree, NullTVB, offset, FHSIZE, "%s", name); if (fitem) ftree = proto_item_add_subtree(fitem, ett_nfs_fhandle); @@ -299,16 +299,16 @@ dissect_timeval(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, mseconds = EXTRACT_UINT(pd, offset+4); if (tree) { - time_item = proto_tree_add_text(tree, offset, 8, + time_item = proto_tree_add_text(tree, NullTVB, offset, 8, "%s: %u.%06u", name, seconds, mseconds); if (time_item) time_tree = proto_item_add_subtree(time_item, ett_nfs_timeval); } if (time_tree) { - proto_tree_add_text(time_tree,offset+0,4, + proto_tree_add_text(time_tree, NullTVB,offset+0,4, "seconds: %u", seconds); - proto_tree_add_text(time_tree,offset+4,4, + proto_tree_add_text(time_tree, NullTVB,offset+4,4, "micro seconds: %u", mseconds); } offset += 8; @@ -339,39 +339,39 @@ char* name) mode = EXTRACT_UINT(pd, offset+0); if (tree) { - mode_item = proto_tree_add_text(tree, offset, 4, + mode_item = proto_tree_add_text(tree, NullTVB, offset, 4, "%s: 0%o", name, mode); if (mode_item) mode_tree = proto_item_add_subtree(mode_item, ett_nfs_mode); } if (mode_tree) { - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_enumerated_bitfield(mode, 0160000, 16, nfs2_mode_names, "%s")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 04000, 16, "Set user id on exec", "not SUID")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 02000, 16, "Set group id on exec", "not SGID")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 01000, 16, "Save swapped text even after use", "not save swapped text")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 0400, 16, "Read permission for owner", "no Read permission for owner")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 0200, 16, "Write permission for owner", "no Write permission for owner")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 0100, 16, "Execute permission for owner", "no Execute permission for owner")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 040, 16, "Read permission for group", "no Read permission for group")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 020, 16, "Write permission for group", "no Write permission for group")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 010, 16, "Execute permission for group", "no Execute permission for group")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 04, 16, "Read permission for others", "no Read permission for others")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 02, 16, "Write permission for others", "no Write permission for others")); - proto_tree_add_text(mode_tree, offset, 4, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode, 01, 16, "Execute permission for others", "no Execute permission for others")); } @@ -389,7 +389,7 @@ dissect_fattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch int old_offset = offset; if (tree) { - fattr_item = proto_tree_add_text(tree, offset, + fattr_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (fattr_item) fattr_tree = proto_item_add_subtree(fattr_item, ett_nfs_fattr); @@ -428,7 +428,7 @@ dissect_sattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch int old_offset = offset; if (tree) { - sattr_item = proto_tree_add_text(tree, offset, + sattr_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (sattr_item) sattr_tree = proto_item_add_subtree(sattr_item, ett_nfs_sattr); @@ -438,7 +438,7 @@ dissect_sattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch if (EXTRACT_UINT(pd, offset+0) != 0xffffffff) offset = dissect_mode (pd,offset,fd,sattr_tree,"mode"); else { - proto_tree_add_text(sattr_tree, offset, 4, "mode: no value"); + proto_tree_add_text(sattr_tree, NullTVB, offset, 4, "mode: no value"); offset += 4; } @@ -446,7 +446,7 @@ dissect_sattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch if (EXTRACT_UINT(pd, offset+0) != 0xffffffff) offset = dissect_unsigned_int (pd,offset,fd,sattr_tree,"uid"); else { - proto_tree_add_text(sattr_tree, offset, 4, "uid: no value"); + proto_tree_add_text(sattr_tree, NullTVB, offset, 4, "uid: no value"); offset += 4; } @@ -454,7 +454,7 @@ dissect_sattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch if (EXTRACT_UINT(pd, offset+0) != 0xffffffff) offset = dissect_unsigned_int (pd,offset,fd,sattr_tree,"gid"); else { - proto_tree_add_text(sattr_tree, offset, 4, "gid: no value"); + proto_tree_add_text(sattr_tree, NullTVB, offset, 4, "gid: no value"); offset += 4; } @@ -462,7 +462,7 @@ dissect_sattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch if (EXTRACT_UINT(pd, offset+0) != 0xffffffff) offset = dissect_unsigned_int (pd,offset,fd,sattr_tree,"size"); else { - proto_tree_add_text(sattr_tree, offset, 4, "size: no value"); + proto_tree_add_text(sattr_tree, NullTVB, offset, 4, "size: no value"); offset += 4; } @@ -470,7 +470,7 @@ dissect_sattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch if (EXTRACT_UINT(pd, offset+0) != 0xffffffff) offset = dissect_timeval (pd,offset,fd,sattr_tree,"atime"); else { - proto_tree_add_text(sattr_tree, offset, 8, "atime: no value"); + proto_tree_add_text(sattr_tree, NullTVB, offset, 8, "atime: no value"); offset += 8; } @@ -478,7 +478,7 @@ dissect_sattr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, ch if (EXTRACT_UINT(pd, offset+0) != 0xffffffff) offset = dissect_timeval (pd,offset,fd,sattr_tree,"mtime"); else { - proto_tree_add_text(sattr_tree, offset, 8, "mtime: no value"); + proto_tree_add_text(sattr_tree, NullTVB, offset, 8, "mtime: no value"); offset += 8; } @@ -548,7 +548,7 @@ dissect_diropargs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree int old_offset = offset; if (tree) { - diropargs_item = proto_tree_add_text(tree, offset, + diropargs_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (diropargs_item) diropargs_tree = proto_item_add_subtree(diropargs_item, ett_nfs_diropargs); @@ -663,11 +663,11 @@ dissect_nfs2_read_call(const u_char *pd, int offset, frame_data *fd, proto_tree count = EXTRACT_UINT(pd, offset+4); totalcount = EXTRACT_UINT(pd, offset+8); if (tree) { - proto_tree_add_item(tree, hf_nfs_read_offset, + proto_tree_add_item(tree, hf_nfs_read_offset, NullTVB, offset+0, 4, offset_value); - proto_tree_add_item(tree, hf_nfs_read_count, + proto_tree_add_item(tree, hf_nfs_read_count, NullTVB, offset+4, 4, count); - proto_tree_add_item(tree, hf_nfs_read_totalcount, + proto_tree_add_item(tree, hf_nfs_read_totalcount, NullTVB, offset+8, 4, totalcount); } offset += 12; @@ -711,11 +711,11 @@ dissect_nfs2_write_call(const u_char *pd, int offset, frame_data *fd, proto_tree offset_value = EXTRACT_UINT(pd, offset+4); totalcount = EXTRACT_UINT(pd, offset+8); if (tree) { - proto_tree_add_item(tree, hf_nfs_write_beginoffset, + proto_tree_add_item(tree, hf_nfs_write_beginoffset, NullTVB, offset+0, 4, beginoffset); - proto_tree_add_item(tree, hf_nfs_write_offset, + proto_tree_add_item(tree, hf_nfs_write_offset, NullTVB, offset+4, 4, offset_value); - proto_tree_add_item(tree, hf_nfs_write_totalcount, + proto_tree_add_item(tree, hf_nfs_write_totalcount, NullTVB, offset+8, 4, totalcount); } offset += 12; @@ -783,9 +783,9 @@ dissect_nfs2_readdir_call(const u_char *pd, int offset, frame_data *fd, proto_tr cookie = EXTRACT_UINT(pd, offset+ 0); count = EXTRACT_UINT(pd, offset+ 4); if (tree) { - proto_tree_add_item(tree, hf_nfs_readdir_cookie, + proto_tree_add_item(tree, hf_nfs_readdir_cookie, NullTVB, offset+ 0, 4, cookie); - proto_tree_add_item(tree, hf_nfs_readdir_count, + proto_tree_add_item(tree, hf_nfs_readdir_count, NullTVB, offset+ 4, 4, count); } offset += 8; @@ -806,7 +806,7 @@ dissect_readdir_entry(const u_char* pd, int offset, frame_data* fd, proto_tree* char *name; if (tree) { - entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, + entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, NullTVB, offset+0, END_OF_FRAME, NULL); if (entry_item) entry_tree = proto_item_add_subtree(entry_item, ett_nfs_readdir_entry); @@ -818,7 +818,7 @@ dissect_readdir_entry(const u_char* pd, int offset, frame_data* fd, proto_tree* } fileid = EXTRACT_UINT(pd, offset + 0); if (entry_tree) - proto_tree_add_item(entry_tree, hf_nfs_readdir_entry_fileid, + proto_tree_add_item(entry_tree, hf_nfs_readdir_entry_fileid, NullTVB, offset+0, 4, fileid); offset += 4; @@ -832,7 +832,7 @@ dissect_readdir_entry(const u_char* pd, int offset, frame_data* fd, proto_tree* if (!BYTES_ARE_IN_FRAME(offset, 4)) return offset; cookie = EXTRACT_UINT(pd, offset + 0); if (entry_tree) - proto_tree_add_item(entry_tree, hf_nfs_readdir_entry_cookie, + proto_tree_add_item(entry_tree, hf_nfs_readdir_entry_cookie, NullTVB, offset+0, 4, cookie); offset += 4; @@ -858,7 +858,7 @@ dissect_nfs2_readdir_reply(const u_char* pd, int offset, frame_data* fd, proto_t while (1) { if (!BYTES_ARE_IN_FRAME(offset,4)) break; value_follows = EXTRACT_UINT(pd, offset+0); - proto_tree_add_item(tree,hf_nfs_readdir_value_follows, + proto_tree_add_item(tree,hf_nfs_readdir_value_follows, NullTVB, offset+0, 4, value_follows); offset += 4; if (value_follows == 1) { @@ -871,7 +871,7 @@ dissect_nfs2_readdir_reply(const u_char* pd, int offset, frame_data* fd, proto_t if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; eof_value = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_readdir_eof, + proto_tree_add_item(tree, hf_nfs_readdir_eof, NullTVB, offset+ 0, 4, eof_value); offset += 4; break; @@ -905,15 +905,15 @@ dissect_nfs2_statfs_reply(const u_char* pd, int offset, frame_data* fd, proto_tr bfree = EXTRACT_UINT(pd, offset+12); bavail = EXTRACT_UINT(pd, offset+16); if (tree) { - proto_tree_add_item(tree, hf_nfs_statfs_tsize, + proto_tree_add_item(tree, hf_nfs_statfs_tsize, NullTVB, offset+ 0, 4, tsize); - proto_tree_add_item(tree, hf_nfs_statfs_bsize, + proto_tree_add_item(tree, hf_nfs_statfs_bsize, NullTVB, offset+ 4, 4, bsize); - proto_tree_add_item(tree, hf_nfs_statfs_blocks, + proto_tree_add_item(tree, hf_nfs_statfs_blocks, NullTVB, offset+ 8, 4, blocks); - proto_tree_add_item(tree, hf_nfs_statfs_bfree, + proto_tree_add_item(tree, hf_nfs_statfs_bfree, NullTVB, offset+12, 4, bfree); - proto_tree_add_item(tree, hf_nfs_statfs_bavail, + proto_tree_add_item(tree, hf_nfs_statfs_bavail, NullTVB, offset+16, 4, bavail); } offset += 20; @@ -1040,7 +1040,7 @@ int dissect_cookieverf3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (!BYTES_ARE_IN_FRAME(offset,8)) return offset; - proto_tree_add_text(tree, offset, NFS3_COOKIEVERFSIZE, + proto_tree_add_text(tree, NullTVB, offset, NFS3_COOKIEVERFSIZE, "Verifier: Opaque Data"); offset += NFS3_COOKIEVERFSIZE; return offset; @@ -1052,7 +1052,7 @@ int dissect_createverf3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (!BYTES_ARE_IN_FRAME(offset,8)) return offset; - proto_tree_add_text(tree, offset, NFS3_CREATEVERFSIZE, + proto_tree_add_text(tree, NullTVB, offset, NFS3_CREATEVERFSIZE, "Verifier: Opaque Data"); offset += NFS3_CREATEVERFSIZE; return offset; @@ -1064,7 +1064,7 @@ int dissect_writeverf3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (!BYTES_ARE_IN_FRAME(offset,8)) return offset; - proto_tree_add_text(tree, offset, NFS3_WRITEVERFSIZE, + proto_tree_add_text(tree, NullTVB, offset, NFS3_WRITEVERFSIZE, "Verifier: Opaque Data"); offset += NFS3_WRITEVERFSIZE; return offset; @@ -1124,7 +1124,7 @@ char* name) mode3 = EXTRACT_UINT(pd, offset+0); if (tree) { - mode3_item = proto_tree_add_text(tree, offset, 4, + mode3_item = proto_tree_add_text(tree, NullTVB, offset, 4, "%s: 0%o", name, mode3); if (mode3_item) mode3_tree = proto_item_add_subtree(mode3_item, ett_nfs_mode3); @@ -1132,29 +1132,29 @@ char* name) /* RFC 1813, Page 23 */ if (mode3_tree) { - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x800, 12, "Set user id on exec", "not SUID")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x400, 12, "Set group id on exec", "not SGID")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x200, 12, "Save swapped text even after use", "not save swapped text")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x100, 12, "Read permission for owner", "no Read permission for owner")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x80, 12, "Write permission for owner", "no Write permission for owner")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x40, 12, "Execute permission for owner", "no Execute permission for owner")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x20, 12, "Read permission for group", "no Read permission for group")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x10, 12, "Write permission for group", "no Write permission for group")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x8, 12, "Execute permission for group", "no Execute permission for group")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x4, 12, "Read permission for others", "no Read permission for others")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x2, 12, "Write permission for others", "no Write permission for others")); - proto_tree_add_text(mode3_tree, offset, 4, "%s", + proto_tree_add_text(mode3_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(mode3, 0x1, 12, "Execute permission for others", "no Execute permission for others")); } @@ -1219,7 +1219,7 @@ dissect_nfsstat3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, nfsstat3 = EXTRACT_UINT(pd, offset+0); if (tree) { - proto_tree_add_item(tree, hf_nfs_nfsstat3, + proto_tree_add_item(tree, hf_nfs_nfsstat3, NullTVB, offset, 4, nfsstat3); } @@ -1253,7 +1253,7 @@ int hf, guint32* ftype3) type = EXTRACT_UINT(pd, offset+0); if (tree) { - proto_tree_add_item(tree, hf, offset, 4, type); + proto_tree_add_item(tree, hf, NullTVB, offset, 4, type); } offset += 4; @@ -1277,7 +1277,7 @@ dissect_specdata3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree specdata2 = EXTRACT_UINT(pd, offset+4); if (tree) { - specdata3_item = proto_tree_add_text(tree, offset, 8, + specdata3_item = proto_tree_add_text(tree, NullTVB, offset, 8, "%s: %u,%u", name, specdata1, specdata2); if (specdata3_item) specdata3_tree = proto_item_add_subtree(specdata3_item, @@ -1285,9 +1285,9 @@ dissect_specdata3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree } if (specdata3_tree) { - proto_tree_add_text(specdata3_tree,offset+0,4, + proto_tree_add_text(specdata3_tree, NullTVB,offset+0,4, "specdata1: %u", specdata1); - proto_tree_add_text(specdata3_tree,offset+4,4, + proto_tree_add_text(specdata3_tree, NullTVB,offset+4,4, "specdata2: %u", specdata2); } @@ -1311,14 +1311,14 @@ dissect_nfs_fh3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, fh3_fill = fh3_len_full - fh3_len; if (tree) { - fitem = proto_tree_add_text(tree, offset, 4+fh3_len_full, + fitem = proto_tree_add_text(tree, NullTVB, offset, 4+fh3_len_full, "%s", name); if (fitem) ftree = proto_item_add_subtree(fitem, ett_nfs_fh3); } if (ftree) { - proto_tree_add_text(ftree,offset+0,4, + proto_tree_add_text(ftree, NullTVB,offset+0,4, "length: %u", fh3_len); dissect_fhandle_data(pd, offset+4, ftree, fh3_len); } @@ -1342,16 +1342,16 @@ dissect_nfstime3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, nseconds = EXTRACT_UINT(pd, offset+4); if (tree) { - time_item = proto_tree_add_text(tree, offset, 8, + time_item = proto_tree_add_text(tree, NullTVB, offset, 8, "%s: %u.%09u", name, seconds, nseconds); if (time_item) time_tree = proto_item_add_subtree(time_item, ett_nfs_nfstime3); } if (time_tree) { - proto_tree_add_text(time_tree,offset+0,4, + proto_tree_add_text(time_tree, NullTVB,offset+0,4, "seconds: %u", seconds); - proto_tree_add_text(time_tree,offset+4,4, + proto_tree_add_text(time_tree, NullTVB,offset+4,4, "nano seconds: %u", nseconds); } offset += 8; @@ -1369,7 +1369,7 @@ dissect_fattr3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, c guint32 type; if (tree) { - fattr3_item = proto_tree_add_text(tree, offset, + fattr3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (fattr3_item) fattr3_tree = proto_item_add_subtree(fattr3_item, ett_nfs_fattr3); @@ -1416,7 +1416,7 @@ dissect_post_op_attr(const u_char *pd, int offset, frame_data *fd, proto_tree *t guint32 attributes_follow; if (tree) { - post_op_attr_item = proto_tree_add_text(tree, offset, + post_op_attr_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (post_op_attr_item) post_op_attr_tree = proto_item_add_subtree(post_op_attr_item, ett_nfs_post_op_attr); @@ -1424,7 +1424,7 @@ dissect_post_op_attr(const u_char *pd, int offset, frame_data *fd, proto_tree *t if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; attributes_follow = EXTRACT_UINT(pd, offset+0); - proto_tree_add_text(post_op_attr_tree, offset, 4, + proto_tree_add_text(post_op_attr_tree, NullTVB, offset, 4, "attributes_follow: %s (%u)", val_to_str(attributes_follow,value_follows,"Unknown"), attributes_follow); offset += 4; @@ -1456,7 +1456,7 @@ dissect_wcc_attr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int old_offset = offset; if (tree) { - wcc_attr_item = proto_tree_add_text(tree, offset, + wcc_attr_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (wcc_attr_item) wcc_attr_tree = proto_item_add_subtree(wcc_attr_item, ett_nfs_wcc_attr); @@ -1485,7 +1485,7 @@ dissect_pre_op_attr(const u_char *pd, int offset, frame_data *fd, proto_tree *tr guint32 attributes_follow; if (tree) { - pre_op_attr_item = proto_tree_add_text(tree, offset, + pre_op_attr_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (pre_op_attr_item) pre_op_attr_tree = proto_item_add_subtree(pre_op_attr_item, ett_nfs_pre_op_attr); @@ -1493,7 +1493,7 @@ dissect_pre_op_attr(const u_char *pd, int offset, frame_data *fd, proto_tree *tr if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; attributes_follow = EXTRACT_UINT(pd, offset+0); - proto_tree_add_text(pre_op_attr_tree, offset, 4, + proto_tree_add_text(pre_op_attr_tree, NullTVB, offset, 4, "attributes_follow: %s (%u)", val_to_str(attributes_follow,value_follows,"Unknown"), attributes_follow); offset += 4; @@ -1525,7 +1525,7 @@ dissect_wcc_data(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int old_offset = offset; if (tree) { - wcc_data_item = proto_tree_add_text(tree, offset, + wcc_data_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (wcc_data_item) wcc_data_tree = proto_item_add_subtree(wcc_data_item, ett_nfs_wcc_data); @@ -1553,7 +1553,7 @@ dissect_post_op_fh3(const u_char *pd, int offset, frame_data *fd, proto_tree *tr guint32 handle_follows; if (tree) { - post_op_fh3_item = proto_tree_add_text(tree, offset, + post_op_fh3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (post_op_fh3_item) post_op_fh3_tree = proto_item_add_subtree(post_op_fh3_item, ett_nfs_post_op_fh3); @@ -1561,7 +1561,7 @@ dissect_post_op_fh3(const u_char *pd, int offset, frame_data *fd, proto_tree *tr if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; handle_follows = EXTRACT_UINT(pd, offset+0); - proto_tree_add_text(post_op_fh3_tree, offset, 4, + proto_tree_add_text(post_op_fh3_tree, NullTVB, offset, 4, "handle_follows: %s (%u)", val_to_str(handle_follows,value_follows,"Unknown"), handle_follows); offset += 4; @@ -1599,14 +1599,14 @@ dissect_set_mode3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree set_it_name = val_to_str(set_it,value_follows,"Unknown"); if (tree) { - set_mode3_item = proto_tree_add_text(tree, offset, + set_mode3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s: %s", name, set_it_name); if (set_mode3_item) set_mode3_tree = proto_item_add_subtree(set_mode3_item, ett_nfs_set_mode3); } if (set_mode3_tree) - proto_tree_add_text(set_mode3_tree, offset, 4, + proto_tree_add_text(set_mode3_tree, NullTVB, offset, 4, "set_it: %s (%u)", set_it_name, set_it); offset += 4; @@ -1645,14 +1645,14 @@ dissect_set_uid3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, set_it_name = val_to_str(set_it,value_follows,"Unknown"); if (tree) { - set_uid3_item = proto_tree_add_text(tree, offset, + set_uid3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s: %s", name, set_it_name); if (set_uid3_item) set_uid3_tree = proto_item_add_subtree(set_uid3_item, ett_nfs_set_uid3); } if (set_uid3_tree) - proto_tree_add_text(set_uid3_tree, offset, 4, + proto_tree_add_text(set_uid3_tree, NullTVB, offset, 4, "set_it: %s (%u)", set_it_name, set_it); offset += 4; @@ -1691,14 +1691,14 @@ dissect_set_gid3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, set_it_name = val_to_str(set_it,value_follows,"Unknown"); if (tree) { - set_gid3_item = proto_tree_add_text(tree, offset, + set_gid3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s: %s", name, set_it_name); if (set_gid3_item) set_gid3_tree = proto_item_add_subtree(set_gid3_item, ett_nfs_set_gid3); } if (set_gid3_tree) - proto_tree_add_text(set_gid3_tree, offset, 4, + proto_tree_add_text(set_gid3_tree, NullTVB, offset, 4, "set_it: %s (%u)", set_it_name, set_it); offset += 4; @@ -1737,14 +1737,14 @@ dissect_set_size3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree set_it_name = val_to_str(set_it,value_follows,"Unknown"); if (tree) { - set_size3_item = proto_tree_add_text(tree, offset, + set_size3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s: %s", name, set_it_name); if (set_size3_item) set_size3_tree = proto_item_add_subtree(set_size3_item, ett_nfs_set_size3); } if (set_size3_tree) - proto_tree_add_text(set_size3_tree, offset, 4, + proto_tree_add_text(set_size3_tree, NullTVB, offset, 4, "set_it: %s (%u)", set_it_name, set_it); offset += 4; @@ -1797,7 +1797,7 @@ dissect_set_atime(const u_char *pd, int offset, frame_data *fd, proto_tree *tree set_it_name = val_to_str(set_it,time_how,"Unknown"); if (tree) { - set_atime_item = proto_tree_add_text(tree, offset, + set_atime_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s: %s", name, set_it_name); if (set_atime_item) @@ -1805,7 +1805,7 @@ dissect_set_atime(const u_char *pd, int offset, frame_data *fd, proto_tree *tree } if (set_atime_tree) - proto_tree_add_text(set_atime_tree, offset, 4, + proto_tree_add_text(set_atime_tree, NullTVB, offset, 4, "set_it: %s (%u)", set_it_name, set_it); offset += 4; @@ -1845,7 +1845,7 @@ dissect_set_mtime(const u_char *pd, int offset, frame_data *fd, proto_tree *tree set_it_name = val_to_str(set_it,time_how,"Unknown"); if (tree) { - set_mtime_item = proto_tree_add_text(tree, offset, + set_mtime_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s: %s", name, set_it_name); if (set_mtime_item) @@ -1853,7 +1853,7 @@ dissect_set_mtime(const u_char *pd, int offset, frame_data *fd, proto_tree *tree } if (set_mtime_tree) - proto_tree_add_text(set_mtime_tree, offset, 4, + proto_tree_add_text(set_mtime_tree, NullTVB, offset, 4, "set_it: %s (%u)", set_it_name, set_it); offset += 4; @@ -1887,7 +1887,7 @@ dissect_sattr3(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, c int old_offset = offset; if (tree) { - sattr3_item = proto_tree_add_text(tree, offset, + sattr3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (sattr3_item) sattr3_tree = proto_item_add_subtree(sattr3_item, ett_nfs_sattr3); @@ -1918,7 +1918,7 @@ dissect_diropargs3(const u_char *pd, int offset, frame_data *fd, proto_tree *tre int old_offset = offset; if (tree) { - diropargs3_item = proto_tree_add_text(tree, offset, + diropargs3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s", name); if (diropargs3_item) diropargs3_tree = proto_item_add_subtree(diropargs3_item, ett_nfs_diropargs3); @@ -1958,24 +1958,24 @@ dissect_access(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, c access = EXTRACT_UINT(pd, offset+0); if (tree) { - access_item = proto_tree_add_text(tree, offset, 4, + access_item = proto_tree_add_text(tree, NullTVB, offset, 4, "%s: 0x%02x", name, access); if (access_item) access_tree = proto_item_add_subtree(access_item, ett_nfs_access); } if (access_tree) { - proto_tree_add_text(access_tree, offset, 4, "%s READ", + proto_tree_add_text(access_tree, NullTVB, offset, 4, "%s READ", decode_boolean_bitfield(access, 0x001, 6, "allow", "not allow")); - proto_tree_add_text(access_tree, offset, 4, "%s LOOKUP", + proto_tree_add_text(access_tree, NullTVB, offset, 4, "%s LOOKUP", decode_boolean_bitfield(access, 0x002, 6, "allow", "not allow")); - proto_tree_add_text(access_tree, offset, 4, "%s MODIFY", + proto_tree_add_text(access_tree, NullTVB, offset, 4, "%s MODIFY", decode_boolean_bitfield(access, 0x004, 6, "allowed", "not allow")); - proto_tree_add_text(access_tree, offset, 4, "%s EXTEND", + proto_tree_add_text(access_tree, NullTVB, offset, 4, "%s EXTEND", decode_boolean_bitfield(access, 0x008, 6, "allow", "not allow")); - proto_tree_add_text(access_tree, offset, 4, "%s DELETE", + proto_tree_add_text(access_tree, NullTVB, offset, 4, "%s DELETE", decode_boolean_bitfield(access, 0x010, 6, "allow", "not allow")); - proto_tree_add_text(access_tree, offset, 4, "%s EXECUTE", + proto_tree_add_text(access_tree, NullTVB, offset, 4, "%s EXECUTE", decode_boolean_bitfield(access, 0x020, 6, "allow", "not allow")); } @@ -2050,14 +2050,14 @@ dissect_sattrguard3(const u_char* pd, int offset, frame_data* fd, proto_tree* tr check_name = val_to_str(check,value_follows,"Unknown"); if (tree) { - sattrguard3_item = proto_tree_add_text(tree, offset, + sattrguard3_item = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "%s: %s", name, check_name); if (sattrguard3_item) sattrguard3_tree = proto_item_add_subtree(sattrguard3_item, ett_nfs_sattrguard3); } if (sattrguard3_tree) - proto_tree_add_text(sattrguard3_tree, offset, 4, + proto_tree_add_text(sattrguard3_tree, NullTVB, offset, 4, "check: %s (%u)", check_name, check); offset += 4; @@ -2249,7 +2249,7 @@ dissect_stable_how(const u_char* pd, int offset, frame_data* fd, proto_tree* tre if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; stable_how = EXTRACT_UINT(pd,offset+0); if (tree) { - proto_tree_add_item(tree, hfindex, + proto_tree_add_item(tree, hfindex, NullTVB, offset, 4, stable_how); } offset += 4; @@ -2313,7 +2313,7 @@ dissect_createmode3(const u_char* pd, int offset, frame_data* fd, proto_tree* tr if (!BYTES_ARE_IN_FRAME(offset, 4)) return offset; mode_value = EXTRACT_UINT(pd, offset + 0); if (tree) { - proto_tree_add_item(tree, hf_nfs_createmode3, + proto_tree_add_item(tree, hf_nfs_createmode3, NullTVB, offset+0, 4, mode_value); } offset += 4; @@ -2526,7 +2526,7 @@ dissect_entry3(const u_char* pd, int offset, frame_data* fd, proto_tree* tree) char *name; if (tree) { - entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, + entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, NullTVB, offset+0, END_OF_FRAME, NULL); if (entry_item) entry_tree = proto_item_add_subtree(entry_item, ett_nfs_readdir_entry); @@ -2567,7 +2567,7 @@ dissect_nfs3_readdir_reply(const u_char* pd, int offset, frame_data* fd, proto_t while (1) { if (!BYTES_ARE_IN_FRAME(offset,4)) break; value_follows = EXTRACT_UINT(pd, offset+0); - proto_tree_add_item(tree,hf_nfs_readdir_value_follows, + proto_tree_add_item(tree,hf_nfs_readdir_value_follows, NullTVB, offset+0, 4, value_follows); offset += 4; if (value_follows == 1) { @@ -2580,7 +2580,7 @@ dissect_nfs3_readdir_reply(const u_char* pd, int offset, frame_data* fd, proto_t if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; eof_value = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_readdir_eof, + proto_tree_add_item(tree, hf_nfs_readdir_eof, NullTVB, offset+ 0, 4, eof_value); offset += 4; break; @@ -2617,7 +2617,7 @@ dissect_entryplus3(const u_char* pd, int offset, frame_data* fd, proto_tree* tre char *name; if (tree) { - entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, + entry_item = proto_tree_add_item(tree, hf_nfs_readdir_entry, NullTVB, offset+0, END_OF_FRAME, NULL); if (entry_item) entry_tree = proto_item_add_subtree(entry_item, ett_nfs_readdir_entry); @@ -2661,7 +2661,7 @@ dissect_nfs3_readdirplus_reply(const u_char* pd, int offset, frame_data* fd, pro while (1) { if (!BYTES_ARE_IN_FRAME(offset,4)) break; value_follows = EXTRACT_UINT(pd, offset+0); - proto_tree_add_item(tree,hf_nfs_readdir_value_follows, + proto_tree_add_item(tree,hf_nfs_readdir_value_follows, NullTVB, offset+0, 4, value_follows); offset += 4; if (value_follows == 1) { @@ -2674,7 +2674,7 @@ dissect_nfs3_readdirplus_reply(const u_char* pd, int offset, frame_data* fd, pro if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; eof_value = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_readdir_eof, + proto_tree_add_item(tree, hf_nfs_readdir_eof, NullTVB, offset+ 0, 4, eof_value); offset += 4; break; @@ -2707,7 +2707,7 @@ dissect_nfs3_fsstat_reply(const u_char* pd, int offset, frame_data* fd, proto_tr if (!BYTES_ARE_IN_FRAME(offset, 4)) return offset; invarsec = EXTRACT_UINT(pd, offset + 0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsstat_invarsec, + proto_tree_add_item(tree, hf_nfs_fsstat_invarsec, NullTVB, offset+0, 4, invarsec); offset += 4; break; @@ -2749,43 +2749,43 @@ dissect_nfs3_fsinfo_reply(const u_char* pd, int offset, frame_data* fd, proto_tr if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; rtmax = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsinfo_rtmax, + proto_tree_add_item(tree, hf_nfs_fsinfo_rtmax, NullTVB, offset+0, 4, rtmax); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; rtpref = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsinfo_rtpref, + proto_tree_add_item(tree, hf_nfs_fsinfo_rtpref, NullTVB, offset+0, 4, rtpref); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; rtmult = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsinfo_rtmult, + proto_tree_add_item(tree, hf_nfs_fsinfo_rtmult, NullTVB, offset+0, 4, rtmult); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; wtmax = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsinfo_wtmax, + proto_tree_add_item(tree, hf_nfs_fsinfo_wtmax, NullTVB, offset+0, 4, wtmax); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; wtpref = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsinfo_wtpref, + proto_tree_add_item(tree, hf_nfs_fsinfo_wtpref, NullTVB, offset+0, 4, wtpref); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; wtmult = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsinfo_wtmult, + proto_tree_add_item(tree, hf_nfs_fsinfo_wtmult, NullTVB, offset+0, 4, wtmult); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; dtpref = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hf_nfs_fsinfo_dtpref, + proto_tree_add_item(tree, hf_nfs_fsinfo_dtpref, NullTVB, offset+0, 4, dtpref); offset += 4; @@ -2796,32 +2796,32 @@ dissect_nfs3_fsinfo_reply(const u_char* pd, int offset, frame_data* fd, proto_tr if (tree) { properties_item = proto_tree_add_item(tree, hf_nfs_fsinfo_properties, - offset+0, 4, properties); + NullTVB, offset+0, 4, properties); if (properties_item) properties_tree = proto_item_add_subtree(properties_item, ett_nfs_fsinfo_properties); if (properties_tree) { - proto_tree_add_text(properties_tree, + proto_tree_add_text(properties_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(properties, FSF3_CANSETTIME,5, "SETATTR can set time on server", "SETATTR can't set time on server")); - proto_tree_add_text(properties_tree, + proto_tree_add_text(properties_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(properties, FSF3_HOMOGENEOUS,5, "PATHCONF is valid for all files", "PATHCONF should be get for every single file")); - proto_tree_add_text(properties_tree, + proto_tree_add_text(properties_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(properties, FSF3_SYMLINK,5, "File System supports symbolic links", "File System does not symbolic hard links")); - proto_tree_add_text(properties_tree, + proto_tree_add_text(properties_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(properties, FSF3_LINK,5, @@ -2855,13 +2855,13 @@ dissect_nfs3_pathconf_reply(const u_char* pd, int offset, frame_data* fd, proto_ if (!BYTES_ARE_IN_FRAME(offset, 4)) return offset; linkmax = EXTRACT_UINT(pd, offset + 0); if (tree) - proto_tree_add_item(tree, hf_nfs_pathconf_linkmax, + proto_tree_add_item(tree, hf_nfs_pathconf_linkmax, NullTVB, offset+0, 4, linkmax); offset += 4; if (!BYTES_ARE_IN_FRAME(offset, 4)) return offset; name_max = EXTRACT_UINT(pd, offset + 0); if (tree) - proto_tree_add_item(tree, hf_nfs_pathconf_name_max, + proto_tree_add_item(tree, hf_nfs_pathconf_name_max, NullTVB, offset+0, 4, name_max); offset += 4; offset = dissect_rpc_bool(pd, offset, fd, tree, hf_nfs_pathconf_no_trunc); diff --git a/packet-nntp.c b/packet-nntp.c index 12db6e789a..54b04196a0 100644 --- a/packet-nntp.c +++ b/packet-nntp.c @@ -2,7 +2,7 @@ * Routines for nntp packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-nntp.c,v 1.8 2000/04/08 07:07:31 guy Exp $ + * $Id: packet-nntp.c,v 1.9 2000/05/11 08:15:30 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -84,13 +84,13 @@ dissect_nntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_nntp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_nntp, NullTVB, offset, END_OF_FRAME, NULL); nntp_tree = proto_item_add_subtree(ti, ett_nntp); if (pi.match_port == pi.destport) { - proto_tree_add_item_hidden(nntp_tree, hf_nntp_request, 0, 0, TRUE); + proto_tree_add_item_hidden(nntp_tree, hf_nntp_request, NullTVB, 0, 0, TRUE); } else { - proto_tree_add_item_hidden(nntp_tree, hf_nntp_response, 0, 0, TRUE); + proto_tree_add_item_hidden(nntp_tree, hf_nntp_response, NullTVB, 0, 0, TRUE); } /* @@ -111,7 +111,7 @@ dissect_nntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* * Put this line. */ - proto_tree_add_text(nntp_tree, offset, linelen, "%s", + proto_tree_add_text(nntp_tree, NullTVB, offset, linelen, "%s", format_text(data, linelen)); offset += linelen; data = lineend; diff --git a/packet-ntp.c b/packet-ntp.c index 463d2a6a9c..751a44b927 100644 --- a/packet-ntp.c +++ b/packet-ntp.c @@ -2,7 +2,7 @@ * Routines for NTP packet dissection * Copyright 1999, Nathan Neulinger * - * $Id: packet-ntp.c,v 1.11 2000/04/08 07:07:32 guy Exp $ + * $Id: packet-ntp.c,v 1.12 2000/05/11 08:15:30 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -255,21 +255,21 @@ dissect_ntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { /* Adding NTP item and subtree */ - ti = proto_tree_add_item(tree, proto_ntp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ntp, NullTVB, offset, END_OF_FRAME, NULL); ntp_tree = proto_item_add_subtree(ti, ett_ntp); - tf = proto_tree_add_item(ntp_tree, hf_ntp_flags, offset, 1, pkt->flags); + tf = proto_tree_add_item(ntp_tree, hf_ntp_flags, NullTVB, offset, 1, pkt->flags); /* Adding flag subtree and items */ flags_tree = proto_item_add_subtree(tf, ett_ntp_flags); - proto_tree_add_uint_format(flags_tree, hf_ntp_flags_li, offset, 1, + proto_tree_add_uint_format(flags_tree, hf_ntp_flags_li, NullTVB, offset, 1, *pkt->flags & NTP_LI_MASK, decode_enumerated_bitfield(*pkt->flags, NTP_LI_MASK, sizeof(pkt->flags) * 8, li_types, "Leap Indicator: %s")); - proto_tree_add_uint_format(flags_tree, hf_ntp_flags_vn, offset, 1, + proto_tree_add_uint_format(flags_tree, hf_ntp_flags_vn, NullTVB, offset, 1, *pkt->flags & NTP_VN_MASK, decode_enumerated_bitfield(*pkt->flags, NTP_VN_MASK, sizeof(pkt->flags) * 8, ver_nums, "Version number: %s")); - proto_tree_add_uint_format(flags_tree, hf_ntp_flags_mode, offset, 1, + proto_tree_add_uint_format(flags_tree, hf_ntp_flags_mode, NullTVB, offset, 1, *pkt->flags & NTP_MODE_MASK, decode_enumerated_bitfield(*pkt->flags, NTP_MODE_MASK, sizeof(pkt->flags) * 8, mode_types, "Mode: %s")); @@ -285,12 +285,12 @@ dissect_ntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } else { strcpy (buff, "Peer Clock Stratum: reserved: %d"); } - proto_tree_add_bytes_format(ntp_tree, hf_ntp_stratum, offset+1, 1, pkt->stratum, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_stratum, NullTVB, offset+1, 1, pkt->stratum, buff, (int) *pkt->stratum); /* Poll interval, 1byte field indicating the maximum interval between * successive messages, in seconds to the nearest power of two. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_ppoll, offset+2, 1, pkt->ppoll, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_ppoll, NullTVB, offset+2, 1, pkt->ppoll, (((*pkt->ppoll >= 4) && (*pkt->ppoll <= 16)) ? "Peer Pooling Interval: %d (%d sec)" : "Peer Pooling Interval: invalid (%d)"), (int) *pkt->ppoll, @@ -298,13 +298,13 @@ dissect_ntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Precision, 1byte field indicating the precision of the * local clock, in seconds to the nearest power of two. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_precision, offset+3, 1, pkt->precision, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_precision, NullTVB, offset+3, 1, pkt->precision, "Peer Clock Precision: %8.6f sec", pow(2, *pkt->precision)); /* Root Delay is a 32-bit signed fixed-point number indicating the * total roundtrip delay to the primary reference source, in seconds * with fraction point between bits 15 and 16. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_rootdelay, offset+4, 4, pkt->rootdelay, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_rootdelay, NullTVB, offset+4, 4, pkt->rootdelay, "Root Delay: %9.4f sec", ((gint32) pntohs(pkt->rootdelay)) + pntohs(pkt->rootdelay + 2) / 65536.0); @@ -312,7 +312,7 @@ dissect_ntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) * the nominal error relative to the primary reference source, in * seconds with fraction point between bits 15 and 16. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_rootdispersion, offset+8, 4, pkt->rootdispersion, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_rootdispersion, NullTVB, offset+8, 4, pkt->rootdispersion, "Clock Dispersion: %9.4f sec", ((gint32) pntohs(pkt->rootdispersion)) + pntohs(pkt->rootdispersion + 2) / 65536.0); @@ -335,30 +335,30 @@ dissect_ntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } } else strcpy (buff, get_hostname (pntohl(pkt->refid))); - proto_tree_add_bytes_format(ntp_tree, hf_ntp_refid, offset+12, 4, pkt->refid, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_refid, NullTVB, offset+12, 4, pkt->refid, "Reference Clock ID: %s", buff); /* Reference Timestamp: This is the time at which the local clock was * last set or corrected. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_reftime, offset+16, 8, pkt->reftime, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_reftime, NullTVB, offset+16, 8, pkt->reftime, "Reference Clock Update Time: %s", ntp_fmt_ts(pkt->reftime, buff)); /* Originate Timestamp: This is the time at which the request departed * the client for the server. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_org, offset+24, 8, pkt->org, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_org, NullTVB, offset+24, 8, pkt->org, "Originate Time Stamp: %s", ntp_fmt_ts(pkt->org, buff)); /* Receive Timestamp: This is the time at which the request arrived at * the server. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_rec, offset+32, 8, pkt->rec, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_rec, NullTVB, offset+32, 8, pkt->rec, "Receive Time Stamp: %s", ntp_fmt_ts(pkt->rec, buff)); /* Transmit Timestamp: This is the time at which the reply departed the * server for the client. */ - proto_tree_add_bytes_format(ntp_tree, hf_ntp_xmt, offset+40, 8, pkt->xmt, + proto_tree_add_bytes_format(ntp_tree, hf_ntp_xmt, NullTVB, offset+40, 8, pkt->xmt, "Transmit Time Stamp: %s", ntp_fmt_ts(pkt->xmt, buff)); @@ -368,9 +368,9 @@ dissect_ntp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) * hex code for now. */ if ( BYTES_ARE_IN_FRAME(offset, 50) ) - proto_tree_add_item(ntp_tree, hf_ntp_keyid, offset+48, 4, pkt->keyid); + proto_tree_add_item(ntp_tree, hf_ntp_keyid, NullTVB, offset+48, 4, pkt->keyid); if ( BYTES_ARE_IN_FRAME(offset, 53) ) - proto_tree_add_item(ntp_tree, hf_ntp_mac, offset+52, END_OF_FRAME, pkt->mac); + proto_tree_add_item(ntp_tree, hf_ntp_mac, NullTVB, offset+52, END_OF_FRAME, pkt->mac); } } diff --git a/packet-null.c b/packet-null.c index b891777687..3de8f390d8 100644 --- a/packet-null.c +++ b/packet-null.c @@ -1,7 +1,7 @@ /* packet-null.c * Routines for null packet disassembly * - * $Id: packet-null.c,v 1.20 2000/03/27 17:53:19 gram Exp $ + * $Id: packet-null.c,v 1.21 2000/05/11 08:15:30 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -267,7 +267,7 @@ dissect_null( const u_char *pd, frame_data *fd, proto_tree *tree ) */ if (null_header > IEEE_802_3_MAX_LEN) { if (tree) { - ti = proto_tree_add_item(tree, proto_null, 0, 4, NULL); + ti = proto_tree_add_item(tree, proto_null, NullTVB, 0, 4, NULL); fh_tree = proto_item_add_subtree(ti, ett_null); } else fh_tree = NULL; @@ -276,9 +276,9 @@ dissect_null( const u_char *pd, frame_data *fd, proto_tree *tree ) /* populate a tree in the second pane with the status of the link layer (ie none) */ if (tree) { - ti = proto_tree_add_item(tree, proto_null, 0, 4, NULL); + ti = proto_tree_add_item(tree, proto_null, NullTVB, 0, 4, NULL); fh_tree = proto_item_add_subtree(ti, ett_null); - proto_tree_add_item(fh_tree, hf_null_family, 0, 4, null_header); + proto_tree_add_item(fh_tree, hf_null_family, NullTVB, 0, 4, null_header); } switch (null_header) { diff --git a/packet-osi-options.c b/packet-osi-options.c index 9db8f89d7a..5b9f1c1e88 100644 --- a/packet-osi-options.c +++ b/packet-osi-options.c @@ -5,7 +5,7 @@ * ISO 10589 ISIS (Intradomain Routeing Information Exchange Protocol) * ISO 9542 ESIS (End System To Intermediate System Routeing Exchange Protocol) * - * $Id: packet-osi-options.c,v 1.1 2000/04/15 22:11:11 guy Exp $ + * $Id: packet-osi-options.c,v 1.2 2000/05/11 08:15:31 gram Exp $ * Ralf Schneider * * Ethereal - Network traffic analyzer @@ -178,7 +178,7 @@ dissect_option_qos( const u_char type, const u_char sub_type, u_char offset, proto_tree *osi_qos_tree = NULL; - ti = proto_tree_add_text( tree, offset, len, + ti = proto_tree_add_text( tree, NullTVB, offset, len, "Quality of service maintenance: %s", val_to_str( type, osi_opt_qos_vals, "Unknown (0x%x)") ); @@ -188,33 +188,33 @@ dissect_option_qos( const u_char type, const u_char sub_type, u_char offset, tmp_type = sub_type & OSI_OPT_QOS_SUB_RSVD; if ( tmp_type ) { - proto_tree_add_text( osi_qos_tree, offset, len, + proto_tree_add_text( osi_qos_tree, NullTVB, offset, len, val_to_str( tmp_type, osi_opt_qos_sub_vals, "Unknown (0x%x)") ); } tmp_type = sub_type & OSI_OPT_QOS_SUB_SEQ_VS_TRS; if ( tmp_type ) { - proto_tree_add_text( osi_qos_tree, offset, len, + proto_tree_add_text( osi_qos_tree, NullTVB, offset, len, val_to_str( tmp_type, osi_opt_qos_sub_vals, "Unknown (0x%x)") ); } tmp_type = sub_type &OSI_OPT_QOS_SUB_CONG_EXPED; if ( tmp_type ) { - proto_tree_add_text( osi_qos_tree, offset, len, + proto_tree_add_text( osi_qos_tree, NullTVB, offset, len, val_to_str( tmp_type, osi_opt_qos_sub_vals, "Unknown (0x%x)") ); } tmp_type = sub_type & OSI_OPT_QOS_SUB_TSD_VS_COST; if ( tmp_type ) { - proto_tree_add_text( osi_qos_tree, offset, len, + proto_tree_add_text( osi_qos_tree, NullTVB, offset, len, val_to_str( tmp_type, osi_opt_qos_sub_vals, "Unknown (0x%x)") ); } tmp_type = sub_type & OSI_OPT_QOS_SUB_RESERR_TRS; if ( tmp_type ) { - proto_tree_add_text( osi_qos_tree, offset, len, + proto_tree_add_text( osi_qos_tree, NullTVB, offset, len, val_to_str( tmp_type, osi_opt_qos_sub_vals, "Unknown (0x%x)") ); } tmp_type = sub_type & OSI_OPT_QOS_SUB_RESERR_COST; if ( tmp_type ) { - proto_tree_add_text( osi_qos_tree, offset, len, + proto_tree_add_text( osi_qos_tree, NullTVB, offset, len, val_to_str( tmp_type, osi_opt_qos_sub_vals, "Unknown (0x%x)") ); } } @@ -242,7 +242,7 @@ dissect_option_route( u_char parm_type, u_char offset, u_char parm_len, netl = pd[next_hop + 2 ]; this_hop = offset + 3; /* points to first netl */ - ti = proto_tree_add_text( tree, offset + next_hop, netl, + ti = proto_tree_add_text( tree, NullTVB, offset + next_hop, netl, "Source Routing: %s ( Next Hop Highlighted In Data Buffer )", (pd[offset] == 0) ? "Partial Source Routeing" : "Complete Source Routeing" ); @@ -251,7 +251,7 @@ dissect_option_route( u_char parm_type, u_char offset, u_char parm_len, last_hop = pd[offset + 1 ]; /* points to the end of the list */ netl = pd[ last_hop ]; /* mis-used to highlight buffer */ - ti = proto_tree_add_text( tree, offset + next_hop, netl, + ti = proto_tree_add_text( tree, NullTVB, offset + next_hop, netl, "Record of Route: %s : %s", (pd[offset] == 0) ? "Partial Source Routeing" : "Complete Source Routeing" , @@ -265,7 +265,7 @@ dissect_option_route( u_char parm_type, u_char offset, u_char parm_len, while ( this_hop < parm_len ) { netl = pd[this_hop + 1]; - proto_tree_add_text( osi_route_tree, offset + this_hop, netl, + proto_tree_add_text( osi_route_tree, NullTVB, offset + this_hop, netl, "Hop #%3u NETL: %2u, NET: %s", cnt_hops++, netl, @@ -294,37 +294,37 @@ dissect_option_rfd( const u_char error, const u_char field, u_char offset, error_class = error & OSI_OPT_RFD_MASK; if ( OSI_OPT_RFD_GENERAL == error_class ) { - proto_tree_add_text( tree, offset + field, 1, format_string[0], + proto_tree_add_text( tree, NullTVB, offset + field, 1, format_string[0], val_to_str( error & OSI_OPT_RFD_SUB_MASK, osi_opt_rfd_general, "Unknown (0x%x)"), field ); } else if ( OSI_OPT_RFD_ADDRESS == error_class ) { - proto_tree_add_text( tree, offset + field, 1, format_string[1], + proto_tree_add_text( tree, NullTVB, offset + field, 1, format_string[1], val_to_str( error & OSI_OPT_RFD_SUB_MASK, osi_opt_rfd_address, "Unknown (0x%x)"), field ); } else if ( OSI_OPT_RFD_SOURCE_ROUTEING == error_class ) { - proto_tree_add_text( tree, offset + field, 1, format_string[2], + proto_tree_add_text( tree, NullTVB, offset + field, 1, format_string[2], val_to_str( error & OSI_OPT_RFD_SUB_MASK, osi_opt_rfd_src_route, "Unknown (0x%x)"), field ); } else if ( OSI_OPT_RFD_LIFETIME == error_class ) { - proto_tree_add_text( tree, offset + field, 1, format_string[3], + proto_tree_add_text( tree, NullTVB, offset + field, 1, format_string[3], val_to_str( error & OSI_OPT_RFD_SUB_MASK, osi_opt_rfd_lifetime, "Unknown (0x%x)"), field ); } else if ( OSI_OPT_RFD_PDU_DISCARDED == error_class ) { - proto_tree_add_text( tree, offset + field, 1, format_string[4], + proto_tree_add_text( tree, NullTVB, offset + field, 1, format_string[4], val_to_str( error & OSI_OPT_RFD_SUB_MASK, osi_opt_rfd_discarded, "Unknown (0x%x)"), field ); } else if ( OSI_OPT_RFD_REASSEMBLY == error_class ) { - proto_tree_add_text( tree, offset + field, 1, format_string[5], + proto_tree_add_text( tree, NullTVB, offset + field, 1, format_string[5], val_to_str( error & OSI_OPT_RFD_SUB_MASK, osi_opt_rfd_reassembly, "Unknown (0x%x)"), field ); } else { - proto_tree_add_text( tree, offset, len, + proto_tree_add_text( tree, NullTVB, offset, len, "Reason for discard: UNKNOWN Error Class" ); } }; @@ -360,18 +360,18 @@ dissect_osi_options( u_char pdu_type, u_char opt_len, const u_char *pd, if (tree) { if ( 0 == opt_len ) { - proto_tree_add_text( tree, offset, 0, + proto_tree_add_text( tree, NullTVB, offset, 0, "### No Options for this PDU ###" ); return; } if ( opt_len > END_OF_FRAME ) { - proto_tree_add_text( tree, offset, END_OF_FRAME, + proto_tree_add_text( tree, NullTVB, offset, END_OF_FRAME, "### Options go past the end of the captured data in this PDU ###" ); return; } - ti = proto_tree_add_text( tree, offset, opt_len, + ti = proto_tree_add_text( tree, NullTVB, offset, opt_len, "### Option Section ###" ); osi_option_tree = proto_item_add_subtree( ti, ott_osi_options ); @@ -386,36 +386,36 @@ dissect_osi_options( u_char pdu_type, u_char opt_len, const u_char *pd, offset, parm_len, pd, osi_option_tree ); break; case OSI_OPT_SECURITY: - proto_tree_add_text( osi_option_tree, offset, parm_len, + proto_tree_add_text( osi_option_tree, NullTVB, offset, parm_len, "Security type: %s", val_to_str( pd[offset]&OSI_OPT_SEC_MASK, osi_opt_sec_vals, "Unknown (0x%x)") ); break; case OSI_OPT_PRIORITY: if ( OSI_OPT_MAX_PRIORITY >= pd[offset] ) { - proto_tree_add_text( osi_option_tree, offset, parm_len, + proto_tree_add_text( osi_option_tree, NullTVB, offset, parm_len, "Priority : %u", pd[offset] ); } else { - proto_tree_add_text( osi_option_tree, offset, parm_len, + proto_tree_add_text( osi_option_tree, NullTVB, offset, parm_len, "Priority : %u ( Invalid )", pd[offset] ); } break; case OSI_OPT_ADDRESS_MASK: - proto_tree_add_text( osi_option_tree, offset, parm_len, + proto_tree_add_text( osi_option_tree, NullTVB, offset, parm_len, "Address Mask: %s", print_area( &pd[offset], parm_len ) ); break; case OSI_OPT_SNPA_MASK: - proto_tree_add_text( osi_option_tree, offset, parm_len, + proto_tree_add_text( osi_option_tree, NullTVB, offset, parm_len, "SNPA Mask : %s", print_system_id( &pd[offset], parm_len )); break; case OSI_OPT_ES_CONFIG_TIMER: - proto_tree_add_text( osi_option_tree, offset, parm_len, + proto_tree_add_text( osi_option_tree, NullTVB, offset, parm_len, "ESCT : %u seconds", pntohs( &pd[offset] ) ); break; case OSI_OPT_PADDING: - proto_tree_add_text( osi_option_tree, offset, parm_len, + proto_tree_add_text( osi_option_tree, NullTVB, offset, parm_len, "Padding : %u Octets", parm_len ) ; break; case OSI_OPT_SOURCE_ROUTING: diff --git a/packet-ospf.c b/packet-ospf.c index dbd8c3a248..bf753bb689 100644 --- a/packet-ospf.c +++ b/packet-ospf.c @@ -2,7 +2,7 @@ * Routines for OSPF packet disassembly * (c) Copyright Hannes R. Boehm * - * $Id: packet-ospf.c,v 1.22 2000/04/16 22:46:20 guy Exp $ + * $Id: packet-ospf.c,v 1.23 2000/05/11 08:15:32 gram Exp $ * * At this time, this module is able to analyze OSPF * packets as specified in RFC2328. MOSPF (RFC1584) and other @@ -111,58 +111,58 @@ dissect_ospf(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_item(tree, proto_ospf, offset, ntohs(ospfh.length), NULL); + ti = proto_tree_add_item(tree, proto_ospf, NullTVB, offset, ntohs(ospfh.length), NULL); ospf_tree = proto_item_add_subtree(ti, ett_ospf); - ti = proto_tree_add_text(ospf_tree, offset, OSPF_HEADER_LENGTH, "OSPF Header"); + ti = proto_tree_add_text(ospf_tree, NullTVB, offset, OSPF_HEADER_LENGTH, "OSPF Header"); ospf_header_tree = proto_item_add_subtree(ti, ett_ospf_hdr); - proto_tree_add_text(ospf_header_tree, offset, 1, "OSPF Version: %d", ospfh.version); - proto_tree_add_text(ospf_header_tree, offset + 1 , 1, "OSPF Packet Type: %d (%s)", + proto_tree_add_text(ospf_header_tree, NullTVB, offset, 1, "OSPF Version: %d", ospfh.version); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 1 , 1, "OSPF Packet Type: %d (%s)", ospfh.packet_type, (packet_type != NULL ? packet_type : "Unknown")); - proto_tree_add_text(ospf_header_tree, offset + 2 , 2, "Packet Length: %d", + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 2 , 2, "Packet Length: %d", ntohs(ospfh.length)); - proto_tree_add_text(ospf_header_tree, offset + 4 , 4, "Source OSPF Router ID: %s", + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 4 , 4, "Source OSPF Router ID: %s", ip_to_str((guint8 *) &(ospfh.routerid))); if (!(ospfh.area)) { - proto_tree_add_text(ospf_header_tree, offset + 8 , 4, "Area ID: Backbone"); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 8 , 4, "Area ID: Backbone"); } else { - proto_tree_add_text(ospf_header_tree, offset + 8 , 4, "Area ID: %s", ip_to_str((guint8 *) &(ospfh.area))); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 8 , 4, "Area ID: %s", ip_to_str((guint8 *) &(ospfh.area))); } - proto_tree_add_text(ospf_header_tree, offset + 12 , 2, "Packet Checksum: 0x%x", + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 12 , 2, "Packet Checksum: 0x%x", ntohs(ospfh.checksum)); switch( ntohs(ospfh.auth_type) ) { case OSPF_AUTH_NONE: - proto_tree_add_text(ospf_header_tree, offset + 14 , 2, "Auth Type: none"); - proto_tree_add_text(ospf_header_tree, offset + 16 , 8, "Auth Data (none)"); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 14 , 2, "Auth Type: none"); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 16 , 8, "Auth Data (none)"); break; case OSPF_AUTH_SIMPLE: - proto_tree_add_text(ospf_header_tree, offset + 14 , 2, "Auth Type: simple"); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 14 , 2, "Auth Type: simple"); strncpy(auth_data, (char *) &ospfh.auth_data, 8); - proto_tree_add_text(ospf_header_tree, offset + 16 , 8, "Auth Data: %s", auth_data); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 16 , 8, "Auth Data: %s", auth_data); break; case OSPF_AUTH_CRYPT: crypto = (e_ospf_crypto *)ospfh.auth_data; - proto_tree_add_text(ospf_header_tree, offset + 14 , 2, "Auth Type: crypt"); - proto_tree_add_text(ospf_header_tree, offset + 18 , 1, "Auth Key ID: %d", + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 14 , 2, "Auth Type: crypt"); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 18 , 1, "Auth Key ID: %d", crypto->key_id); - proto_tree_add_text(ospf_header_tree, offset + 19 , 1, "Auth Data Length: %d", + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 19 , 1, "Auth Data Length: %d", crypto->length); - proto_tree_add_text(ospf_header_tree, offset + 20 , 4, "Auth Crypto Sequence Number: 0x%lx", + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 20 , 4, "Auth Crypto Sequence Number: 0x%lx", (unsigned long)ntohl(crypto->sequence_num)); ospflen = ntohs(ospfh.length); for (i = 0; i < crypto->length && i < (sizeof(auth_data)/2); i++) sprintf(&auth_data[i*2],"%02x",pd[offset + ospflen + i]); - proto_tree_add_text(ospf_header_tree, offset + ospflen , 16, "Auth Data: %s", auth_data); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + ospflen , 16, "Auth Data: %s", auth_data); break; default: - proto_tree_add_text(ospf_header_tree, offset + 14 , 2, "Auth Type (unknown)"); - proto_tree_add_text(ospf_header_tree, offset + 16 , 8, "Auth Data (unknown)"); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 14 , 2, "Auth Type (unknown)"); + proto_tree_add_text(ospf_header_tree, NullTVB, offset + 16 , 8, "Auth Data (unknown)"); } } @@ -215,12 +215,12 @@ dissect_ospf_hello(const u_char *pd, int offset, frame_data *fd, proto_tree *tre memcpy(&ospfhello, &pd[offset], sizeof(e_ospf_hello)); if (tree) { - ti = proto_tree_add_text(tree, offset, END_OF_FRAME, "OSPF Hello Packet"); + ti = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "OSPF Hello Packet"); ospf_hello_tree = proto_item_add_subtree(ti, ett_ospf_hello); - proto_tree_add_text(ospf_hello_tree, offset , 4, "Network Mask: %s", ip_to_str((guint8 *) &ospfhello.network_mask)); - proto_tree_add_text(ospf_hello_tree, offset + 4, 2, "Hello Interval: %d seconds", ntohs(ospfhello.hellointervall)); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset , 4, "Network Mask: %s", ip_to_str((guint8 *) &ospfhello.network_mask)); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset + 4, 2, "Hello Interval: %d seconds", ntohs(ospfhello.hellointervall)); /* ATTENTION !!! no check for length of options string */ options_offset=0; @@ -245,17 +245,17 @@ dissect_ospf_hello(const u_char *pd, int offset, frame_data *fd, proto_tree *tre options_offset+=3; } - proto_tree_add_text(ospf_hello_tree, offset + 6, 1, "Options: %d (%s)", ospfhello.options, options); - proto_tree_add_text(ospf_hello_tree, offset + 7, 1, "Router Priority: %d", ospfhello.priority); - proto_tree_add_text(ospf_hello_tree, offset + 8, 4, "Router Dead Interval: %ld seconds", (long)ntohl(ospfhello.dead_interval)); - proto_tree_add_text(ospf_hello_tree, offset + 12, 4, "Designated Router: %s", ip_to_str((guint8 *) &ospfhello.drouter)); - proto_tree_add_text(ospf_hello_tree, offset + 16, 4, "Backup Designated Router: %s", ip_to_str((guint8 *) &ospfhello.bdrouter)); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset + 6, 1, "Options: %d (%s)", ospfhello.options, options); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset + 7, 1, "Router Priority: %d", ospfhello.priority); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset + 8, 4, "Router Dead Interval: %ld seconds", (long)ntohl(ospfhello.dead_interval)); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset + 12, 4, "Designated Router: %s", ip_to_str((guint8 *) &ospfhello.drouter)); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset + 16, 4, "Backup Designated Router: %s", ip_to_str((guint8 *) &ospfhello.bdrouter)); offset+=20; while(((int)(pi.captured_len - offset)) >= 4){ ospfneighbor=(guint32 *) &pd[offset]; - proto_tree_add_text(ospf_hello_tree, offset, 4, "Active Neighbor: %s", ip_to_str((guint8 *) ospfneighbor)); + proto_tree_add_text(ospf_hello_tree, NullTVB, offset, 4, "Active Neighbor: %s", ip_to_str((guint8 *) ospfneighbor)); offset+=4; } } @@ -275,10 +275,10 @@ dissect_ospf_db_desc(const u_char *pd, int offset, frame_data *fd, proto_tree *t memcpy(&ospf_dbd, &pd[offset], sizeof(e_ospf_dbd)); if (tree) { - ti = proto_tree_add_text(tree, offset, END_OF_FRAME, "OSPF DB Description"); + ti = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "OSPF DB Description"); ospf_db_desc_tree = proto_item_add_subtree(ti, ett_ospf_desc); - proto_tree_add_text(ospf_db_desc_tree, offset, 2, "Interface MTU: %d", ntohs(ospf_dbd.interface_mtu) ); + proto_tree_add_text(ospf_db_desc_tree, NullTVB, offset, 2, "Interface MTU: %d", ntohs(ospf_dbd.interface_mtu) ); options_offset=0; @@ -303,7 +303,7 @@ dissect_ospf_db_desc(const u_char *pd, int offset, frame_data *fd, proto_tree *t options_offset+=3; } - proto_tree_add_text(ospf_db_desc_tree, offset + 2 , 1, "Options: %d (%s)", ospf_dbd.options, options ); + proto_tree_add_text(ospf_db_desc_tree, NullTVB, offset + 2 , 1, "Options: %d (%s)", ospf_dbd.options, options ); flags_offset=0; @@ -320,8 +320,8 @@ dissect_ospf_db_desc(const u_char *pd, int offset, frame_data *fd, proto_tree *t flags_offset+=3; } - proto_tree_add_text(ospf_db_desc_tree, offset + 3 , 1, "Flags: %d (%s)", ospf_dbd.flags, flags ); - proto_tree_add_text(ospf_db_desc_tree, offset + 4 , 4, "DD Sequence: %ld", (long)ntohl(ospf_dbd.dd_sequence) ); + proto_tree_add_text(ospf_db_desc_tree, NullTVB, offset + 3 , 1, "Flags: %d (%s)", ospf_dbd.flags, flags ); + proto_tree_add_text(ospf_db_desc_tree, NullTVB, offset + 4 , 4, "DD Sequence: %ld", (long)ntohl(ospf_dbd.dd_sequence) ); } /* LS Headers will be processed here */ /* skip to the end of DB-Desc header */ @@ -345,38 +345,38 @@ dissect_ospf_ls_req(const u_char *pd, int offset, frame_data *fd, proto_tree *tr if (tree) { while( ((int) (pi.captured_len - offset)) >= OSPF_LS_REQ_LENGTH ){ memcpy(&ospf_lsr, &pd[offset], sizeof(e_ospf_ls_req)); - ti = proto_tree_add_text(tree, offset, OSPF_LS_REQ_LENGTH, "Link State Request"); + ti = proto_tree_add_text(tree, NullTVB, offset, OSPF_LS_REQ_LENGTH, "Link State Request"); ospf_lsr_tree = proto_item_add_subtree(ti, ett_ospf_lsr); switch( ntohl( ospf_lsr.ls_type ) ){ case OSPF_LSTYPE_ROUTER: - proto_tree_add_text(ospf_lsr_tree, offset, 4, "LS Type: Router-LSA (%ld)", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset, 4, "LS Type: Router-LSA (%ld)", (long)ntohl( ospf_lsr.ls_type ) ); break; case OSPF_LSTYPE_NETWORK: - proto_tree_add_text(ospf_lsr_tree, offset, 4, "LS Type: Network-LSA (%ld)", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset, 4, "LS Type: Network-LSA (%ld)", (long)ntohl( ospf_lsr.ls_type ) ); break; case OSPF_LSTYPE_SUMMERY: - proto_tree_add_text(ospf_lsr_tree, offset, 4, "LS Type: Summary-LSA (IP network) (%ld)", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset, 4, "LS Type: Summary-LSA (IP network) (%ld)", (long)ntohl( ospf_lsr.ls_type ) ); break; case OSPF_LSTYPE_ASBR: - proto_tree_add_text(ospf_lsr_tree, offset, 4, "LS Type: Summary-LSA (ASBR) (%ld)", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset, 4, "LS Type: Summary-LSA (ASBR) (%ld)", (long)ntohl( ospf_lsr.ls_type ) ); break; case OSPF_LSTYPE_ASEXT: - proto_tree_add_text(ospf_lsr_tree, offset, 4, "LS Type: AS-External-LSA (ASBR) (%ld)", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset, 4, "LS Type: AS-External-LSA (ASBR) (%ld)", (long)ntohl( ospf_lsr.ls_type ) ); break; default: - proto_tree_add_text(ospf_lsr_tree, offset, 4, "LS Type: %ld (unknown)", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset, 4, "LS Type: %ld (unknown)", (long)ntohl( ospf_lsr.ls_type ) ); } - proto_tree_add_text(ospf_lsr_tree, offset + 4, 4, "Link State ID : %s", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset + 4, 4, "Link State ID : %s", ip_to_str((guint8 *) &(ospf_lsr.ls_id))); - proto_tree_add_text(ospf_lsr_tree, offset + 8, 4, "Advertising Router : %s", + proto_tree_add_text(ospf_lsr_tree, NullTVB, offset + 8, 4, "Advertising Router : %s", ip_to_str((guint8 *) &(ospf_lsr.adv_router))); offset+=12; @@ -395,10 +395,10 @@ dissect_ospf_ls_upd(const u_char *pd, int offset, frame_data *fd, proto_tree *tr memcpy(&upd_hdr, &pd[offset], sizeof(e_ospf_lsa_upd_hdr)); if (tree) { - ti = proto_tree_add_text(tree, offset, END_OF_FRAME, "LS Update Packet"); + ti = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "LS Update Packet"); ospf_lsa_upd_tree = proto_item_add_subtree(ti, ett_ospf_lsa_upd); - proto_tree_add_text(ospf_lsa_upd_tree, offset, 4, "Nr oF LSAs: %ld", (long)ntohl(upd_hdr.lsa_nr) ); + proto_tree_add_text(ospf_lsa_upd_tree, NullTVB, offset, 4, "Nr oF LSAs: %ld", (long)ntohl(upd_hdr.lsa_nr) ); } /* skip to the beginning of the first LSA */ offset+=4; /* the LS Upd PAcket contains only a 32 bit #LSAs field */ @@ -481,7 +481,7 @@ void dissect_ospf_lsa_mpls(const u_char *pd, char *stlv_name; int i; - ti = proto_tree_add_text(tree, offset, ntohs(lsa_hdr->length) - 20, + ti = proto_tree_add_text(tree, NullTVB, offset, ntohs(lsa_hdr->length) - 20, "MPLS Traffic Engineering LSA"); mpls_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls); @@ -491,21 +491,21 @@ void dissect_ospf_lsa_mpls(const u_char *pd, switch(tlv_type) { case MPLS_TLV_ROUTER: - ti = proto_tree_add_text(mpls_tree, offset+length, tlv_length+4, + ti = proto_tree_add_text(mpls_tree, NullTVB, offset+length, tlv_length+4, "Router Address: %s", ip_to_str((pd+offset+length+4))); tlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_router); - proto_tree_add_text(tlv_tree, offset+length, 2, "TLV Type: 1 - Router Address"); - proto_tree_add_text(tlv_tree, offset+length+2, 2, "TLV Length: %d", tlv_length); - proto_tree_add_text(tlv_tree, offset+length+4, 4, "Router Address: %s", + proto_tree_add_text(tlv_tree, NullTVB, offset+length, 2, "TLV Type: 1 - Router Address"); + proto_tree_add_text(tlv_tree, NullTVB, offset+length+2, 2, "TLV Length: %d", tlv_length); + proto_tree_add_text(tlv_tree, NullTVB, offset+length+4, 4, "Router Address: %s", ip_to_str((pd+offset+length+4))); break; case MPLS_TLV_LINK: - ti = proto_tree_add_text(mpls_tree, offset+length, tlv_length+4, + ti = proto_tree_add_text(mpls_tree, NullTVB, offset+length, tlv_length+4, "Link Information"); tlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link); - proto_tree_add_text(tlv_tree, offset+length, 2, "TLV Type: 2 - Link Information"); - proto_tree_add_text(tlv_tree, offset+length+2, 2, "TLV Length: %d", tlv_length); + proto_tree_add_text(tlv_tree, NullTVB, offset+length, 2, "TLV Type: 2 - Link Information"); + proto_tree_add_text(tlv_tree, NullTVB, offset+length+2, 2, "TLV Length: %d", tlv_length); /* Walk down the sub-TLVs for link information */ for (link_len = length + 4; link_len < length + 4 + tlv_length; link_len += 4) { @@ -515,86 +515,86 @@ void dissect_ospf_lsa_mpls(const u_char *pd, switch(stlv_type) { case MPLS_LINK_TYPE: - ti = proto_tree_add_text(tlv_tree, offset+link_len, stlv_len+4, + ti = proto_tree_add_text(tlv_tree, NullTVB, offset+link_len, stlv_len+4, "%s: %d", stlv_name, *((guint8 *)pd + offset + link_len + 4)); stlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link_stlv); - proto_tree_add_text(stlv_tree, offset+link_len, 2, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len, 2, "TLV Type: %d: %s", stlv_type, stlv_name); - proto_tree_add_text(stlv_tree, offset+link_len+2, 2, "TLV Length: %d", stlv_len); - proto_tree_add_text(stlv_tree, offset+link_len+4, 1, "%s: %d", stlv_name, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+2, 2, "TLV Length: %d", stlv_len); + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+4, 1, "%s: %d", stlv_name, *((guint8 *)pd + offset + link_len + 4)); break; case MPLS_LINK_ID: - ti = proto_tree_add_text(tlv_tree, offset+link_len, stlv_len+4, + ti = proto_tree_add_text(tlv_tree, NullTVB, offset+link_len, stlv_len+4, "%s: %s (%x)", stlv_name, ip_to_str(pd + offset + link_len + 4), pntohl(pd + offset + link_len + 4)); stlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link_stlv); - proto_tree_add_text(stlv_tree, offset+link_len, 2, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len, 2, "TLV Type: %d: %s", stlv_type, stlv_name); - proto_tree_add_text(stlv_tree, offset+link_len+2, 2, "TLV Length: %d", stlv_len); - proto_tree_add_text(stlv_tree, offset+link_len+4, 4, "%s: %s (%x)", stlv_name, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+2, 2, "TLV Length: %d", stlv_len); + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+4, 4, "%s: %s (%x)", stlv_name, ip_to_str(pd + offset + link_len + 4), pntohl(pd + offset + link_len + 4)); break; case MPLS_LINK_LOCAL_IF: case MPLS_LINK_REMOTE_IF: - ti = proto_tree_add_text(tlv_tree, offset+link_len, stlv_len+4, + ti = proto_tree_add_text(tlv_tree, NullTVB, offset+link_len, stlv_len+4, "%s: %s", stlv_name, ip_to_str(pd+offset+link_len+4)); stlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link_stlv); - proto_tree_add_text(stlv_tree, offset+link_len, 2, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len, 2, "TLV Type: %d: %s", stlv_type, stlv_name); - proto_tree_add_text(stlv_tree, offset+link_len+2, 2, "TLV Length: %d", stlv_len); - proto_tree_add_text(stlv_tree, offset+link_len+4, 4, "%s: %s", stlv_name, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+2, 2, "TLV Length: %d", stlv_len); + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+4, 4, "%s: %s", stlv_name, ip_to_str(pd+offset+link_len+4)); break; case MPLS_LINK_TE_METRIC: case MPLS_LINK_COLOR: - ti = proto_tree_add_text(tlv_tree, offset+link_len, stlv_len+4, + ti = proto_tree_add_text(tlv_tree, NullTVB, offset+link_len, stlv_len+4, "%s: %d", stlv_name, pntohl(pd + offset + link_len + 4)); stlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link_stlv); - proto_tree_add_text(stlv_tree, offset+link_len, 2, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len, 2, "TLV Type: %d: %s", stlv_type, stlv_name); - proto_tree_add_text(stlv_tree, offset+link_len+2, 2, "TLV Length: %d", stlv_len); - proto_tree_add_text(stlv_tree, offset+link_len+4, 4, "%s: %d", stlv_name, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+2, 2, "TLV Length: %d", stlv_len); + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+4, 4, "%s: %d", stlv_name, pntohl(pd + offset + link_len + 4)); break; case MPLS_LINK_MAX_BW: case MPLS_LINK_MAX_RES_BW: - ti = proto_tree_add_text(tlv_tree, offset+link_len, stlv_len+4, + ti = proto_tree_add_text(tlv_tree, NullTVB, offset+link_len, stlv_len+4, "%s: %ld", stlv_name, pieee_to_long(pd + offset + link_len + 4)); stlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link_stlv); - proto_tree_add_text(stlv_tree, offset+link_len, 2, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len, 2, "TLV Type: %d: %s", stlv_type, stlv_name); - proto_tree_add_text(stlv_tree, offset+link_len+2, 2, "TLV Length: %d", stlv_len); - proto_tree_add_text(stlv_tree, offset+link_len+4, 4, "%s: %ld", stlv_name, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+2, 2, "TLV Length: %d", stlv_len); + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+4, 4, "%s: %ld", stlv_name, pieee_to_long(pd + offset + link_len + 4)); break; case MPLS_LINK_UNRES_BW: - ti = proto_tree_add_text(tlv_tree, offset+link_len, stlv_len+4, + ti = proto_tree_add_text(tlv_tree, NullTVB, offset+link_len, stlv_len+4, "%s", stlv_name); stlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link_stlv); - proto_tree_add_text(stlv_tree, offset+link_len, 2, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len, 2, "TLV Type: %d: %s", stlv_type, stlv_name); - proto_tree_add_text(stlv_tree, offset+link_len+2, 2, "TLV Length: %d", stlv_len); + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+2, 2, "TLV Length: %d", stlv_len); for (i=0; i<8; i++) - proto_tree_add_text(stlv_tree, offset+link_len+4+(i*4), 4, + proto_tree_add_text(stlv_tree, NullTVB, offset+link_len+4+(i*4), 4, "Pri %d: %ld", i, pieee_to_long(pd + offset + link_len + 4 + i*4)); break; default: - proto_tree_add_text(tlv_tree, offset+link_len, stlv_len+4, + proto_tree_add_text(tlv_tree, NullTVB, offset+link_len, stlv_len+4, "Unknown Link sub-TLV: %d", stlv_type); } link_len += ((stlv_len+3)/4)*4; @@ -603,12 +603,12 @@ void dissect_ospf_lsa_mpls(const u_char *pd, break; default: - ti = proto_tree_add_text(mpls_tree, offset+length, tlv_length+4, + ti = proto_tree_add_text(mpls_tree, NullTVB, offset+length, tlv_length+4, "Unknown LSA: %d", tlv_type); tlv_tree = proto_item_add_subtree(ti, ett_ospf_lsa_mpls_link); - proto_tree_add_text(tlv_tree, offset+length, 2, "TLV Type: %d - Unknown", tlv_type); - proto_tree_add_text(tlv_tree, offset+length+2, 2, "TLV Length: %d", tlv_length); - proto_tree_add_text(tlv_tree, offset+length+4, tlv_length, "TLV Data"); + proto_tree_add_text(tlv_tree, NullTVB, offset+length, 2, "TLV Type: %d - Unknown", tlv_type); + proto_tree_add_text(tlv_tree, NullTVB, offset+length+2, 2, "TLV Length: %d", tlv_length); + proto_tree_add_text(tlv_tree, NullTVB, offset+length+4, tlv_length, "TLV Data"); break; } @@ -634,7 +634,7 @@ void dissect_ospf_lsa_opaque(const u_char *pd, break; default: - proto_tree_add_text(tree, offset, END_OF_FRAME, "Unknown LSA Type"); + proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Unknown LSA Type"); break; } /* switch on opaque LSA id */ } @@ -706,35 +706,35 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, if (tree) { if(disassemble_body){ - ti = proto_tree_add_text(tree, offset, ntohs(lsa_hdr.length), + ti = proto_tree_add_text(tree, NullTVB, offset, ntohs(lsa_hdr.length), "%s (Type: %d)", lsa_type, lsa_hdr.ls_type); } else { - ti = proto_tree_add_text(tree, offset, OSPF_LSA_HEADER_LENGTH, "LSA Header"); + ti = proto_tree_add_text(tree, NullTVB, offset, OSPF_LSA_HEADER_LENGTH, "LSA Header"); } ospf_lsa_tree = proto_item_add_subtree(ti, ett_ospf_lsa); - proto_tree_add_text(ospf_lsa_tree, offset, 2, "LS Age: %d seconds", ntohs(lsa_hdr.ls_age)); - proto_tree_add_text(ospf_lsa_tree, offset + 2, 1, "Options: %d ", lsa_hdr.options); - proto_tree_add_text(ospf_lsa_tree, offset + 3, 1, "LSA Type: %d (%s)", lsa_hdr.ls_type, lsa_type); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 2, "LS Age: %d seconds", ntohs(lsa_hdr.ls_age)); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 2, 1, "Options: %d ", lsa_hdr.options); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 3, 1, "LSA Type: %d (%s)", lsa_hdr.ls_type, lsa_type); if (is_opaque(lsa_hdr.ls_type)) { ls_id = ntohl(lsa_hdr.ls_id); - proto_tree_add_text(ospf_lsa_tree, offset + 4, 1, "Link State ID Opaque Type: %u ", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 4, 1, "Link State ID Opaque Type: %u ", (ls_id >> 24) & 0xff); - proto_tree_add_text(ospf_lsa_tree, offset + 5, 3, "Link State ID Opaque ID: %u ", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 5, 3, "Link State ID Opaque ID: %u ", ls_id & 0xffffff); } else - proto_tree_add_text(ospf_lsa_tree, offset + 4, 4, "Link State ID: %s ", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 4, 4, "Link State ID: %s ", ip_to_str((guint8 *) &(lsa_hdr.ls_id))); - proto_tree_add_text(ospf_lsa_tree, offset + 8, 4, "Advertising Router: %s ", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 8, 4, "Advertising Router: %s ", ip_to_str((guint8 *) &(lsa_hdr.adv_router))); - proto_tree_add_text(ospf_lsa_tree, offset + 12, 4, "LS Sequence Number: 0x%04lx ", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 12, 4, "LS Sequence Number: 0x%04lx ", (unsigned long)ntohl(lsa_hdr.ls_seq)); - proto_tree_add_text(ospf_lsa_tree, offset + 16, 2, "LS Checksum: %d ", ntohs(lsa_hdr.ls_checksum)); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 16, 2, "LS Checksum: %d ", ntohs(lsa_hdr.ls_checksum)); - proto_tree_add_text(ospf_lsa_tree, offset + 18, 2, "Length: %d ", ntohs(lsa_hdr.length)); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 18, 2, "Length: %d ", ntohs(lsa_hdr.length)); if(!disassemble_body){ return OSPF_LSA_HEADER_LENGTH; @@ -749,8 +749,8 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, memcpy(&router_lsa, &pd[offset], sizeof(e_ospf_router_lsa)); /* again: flags should be secified in detail */ - proto_tree_add_text(ospf_lsa_tree, offset, 1, "Flags: 0x%02x ", router_lsa.flags); - proto_tree_add_text(ospf_lsa_tree, offset + 2, 2, "Nr. of Links: %d ", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 1, "Flags: 0x%02x ", router_lsa.flags); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 2, 2, "Nr. of Links: %d ", ntohs(router_lsa.nr_links)); offset += 4; /* router_lsa.nr_links links follow @@ -782,17 +782,17 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, link_id="unknown link id"; } - proto_tree_add_text(ospf_lsa_tree, offset, 4, "%s: %s", link_id, + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 4, "%s: %s", link_id, ip_to_str((guint8 *) &(router_data.link_id))); /* link_data should be specified in detail (e.g. network mask) (depends on link type)*/ - proto_tree_add_text(ospf_lsa_tree, offset + 4, 4, "Link Data: %s", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 4, 4, "Link Data: %s", ip_to_str((guint8 *) &(router_data.link_data))); - proto_tree_add_text(ospf_lsa_tree, offset + 8, 1, "Link Type: %d - %s", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 8, 1, "Link Type: %d - %s", router_data.link_type, link_type); - proto_tree_add_text(ospf_lsa_tree, offset + 9, 1, "Nr. of TOS metrics: %d", router_data.nr_tos); - proto_tree_add_text(ospf_lsa_tree, offset + 10, 2, "TOS 0 metric: %d", ntohs( router_data.tos0_metric )); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 9, 1, "Nr. of TOS metrics: %d", router_data.nr_tos); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 10, 2, "TOS 0 metric: %d", ntohs( router_data.tos0_metric )); offset += 12; @@ -803,7 +803,7 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, for(tos_counter = 1 ; link_counter <= ntohs(router_data.nr_tos); tos_counter++){ memcpy(&tos_data, &pd[offset], sizeof(e_ospf_router_metric)); - proto_tree_add_text(ospf_lsa_tree, offset, 1, "TOS: %d, Metric: %d", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 1, "TOS: %d, Metric: %d", tos_data.tos, ntohs(tos_data.metric)); offset += 4; } @@ -811,13 +811,13 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, break; case(OSPF_LSTYPE_NETWORK): memcpy(&network_lsa, &pd[offset], sizeof(e_ospf_network_lsa)); - proto_tree_add_text(ospf_lsa_tree, offset, 4, "Netmask: %s", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 4, "Netmask: %s", ip_to_str((guint8 *) &(network_lsa.network_mask))); offset += 4; while( (lsa_end - offset) >= 4){ attached_router = (guint32 *) &pd[offset]; - proto_tree_add_text(ospf_lsa_tree, offset, 4, "Attached Router: %s", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 4, "Attached Router: %s", ip_to_str((guint8 *) attached_router)); offset += 4; } @@ -826,22 +826,22 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, /* Type 3 and 4 LSAs have the same format */ case(OSPF_LSTYPE_ASBR): memcpy(&summary_lsa, &pd[offset], sizeof(e_ospf_summary_lsa)); - proto_tree_add_text(ospf_lsa_tree, offset, 4, "Netmask: %s", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 4, "Netmask: %s", ip_to_str((guint8 *) &(summary_lsa.network_mask))); /* returns only the TOS 0 metric (even if there are more TOS metrics) */ break; case(OSPF_LSTYPE_ASEXT): memcpy(&summary_lsa, &pd[offset], sizeof(e_ospf_summary_lsa)); - proto_tree_add_text(ospf_lsa_tree, offset, 4, "Netmask: %s", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 4, "Netmask: %s", ip_to_str((guint8 *) &(summary_lsa.network_mask))); /* asext_lsa = (e_ospf_asexternal_lsa *) &pd[offset + 4]; */ memcpy(&asext_lsa, &pd[offset + 4], sizeof(asext_lsa)); if( (asext_lsa.options & 128) == 128 ) { /* check wether or not E bit is set */ - proto_tree_add_text(ospf_lsa_tree, offset, 1, + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, 1, "External Type: Type 2 (metric is larger than any other link state path)"); } else { - proto_tree_add_text(ospf_lsa_tree, offset + 4, 1, + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 4, 1, "External Type: Type 1 (metric is specified in the same units as interface cost)"); } /* the metric field of a AS-external LAS is specified in 3 bytes -> not well aligned */ @@ -851,10 +851,10 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, /* erase the leading 8 bits (the dont belong to the metric */ asext_metric = ntohl(asext_metric) & 0x00ffffff ; - proto_tree_add_text(ospf_lsa_tree, offset + 5, 3,"Metric: %d", asext_metric); - proto_tree_add_text(ospf_lsa_tree, offset + 8, 4,"Forwarding Address: %s", + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 5, 3,"Metric: %d", asext_metric); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 8, 4,"Forwarding Address: %s", ip_to_str((guint8 *) &(asext_lsa.gateway))); - proto_tree_add_text(ospf_lsa_tree, offset + 12, 4,"External Route Tag: %ld", (long)ntohl(asext_lsa.external_tag)); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset + 12, 4,"External Route Tag: %ld", (long)ntohl(asext_lsa.external_tag)); break; @@ -866,7 +866,7 @@ dissect_ospf_lsa(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, default: /* unknown LSA type */ - proto_tree_add_text(ospf_lsa_tree, offset, END_OF_FRAME, "Unknown LSA Type"); + proto_tree_add_text(ospf_lsa_tree, NullTVB, offset, END_OF_FRAME, "Unknown LSA Type"); } } /* return the length of this LSA */ diff --git a/packet-pim.c b/packet-pim.c index 4bb7065020..e8ffeba716 100644 --- a/packet-pim.c +++ b/packet-pim.c @@ -2,7 +2,7 @@ * Routines for PIM disassembly * (c) Copyright Jun-ichiro itojun Hagino * - * $Id: packet-pim.c,v 1.12 2000/04/20 07:05:56 guy Exp $ + * $Id: packet-pim.c,v 1.13 2000/05/11 08:15:33 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -218,21 +218,21 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { col_add_fstr(fd, COL_INFO, "%s", typestr); if (tree) { - ti = proto_tree_add_item(tree, proto_pim, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_pim, NullTVB, offset, END_OF_FRAME, NULL); pim_tree = proto_item_add_subtree(ti, ett_pim); - proto_tree_add_item(pim_tree, hf_pim_version, offset, 1, + proto_tree_add_item(pim_tree, hf_pim_version, NullTVB, offset, 1, PIM_VER(pim.pim_typever)); - proto_tree_add_uint_format(pim_tree, hf_pim_type, offset, 1, + proto_tree_add_uint_format(pim_tree, hf_pim_type, NullTVB, offset, 1, PIM_TYPE(pim.pim_typever), "Type: %s (%u)", typestr, PIM_TYPE(pim.pim_typever)); - proto_tree_add_item(pim_tree, hf_pim_cksum, + proto_tree_add_item(pim_tree, hf_pim_cksum, NullTVB, offset + offsetof(struct pim, pim_cksum), sizeof(pim.pim_cksum), ntohs(pim.pim_cksum)); if (sizeof(struct pim) < END_OF_FRAME) { - tiopt = proto_tree_add_text(pim_tree, + tiopt = proto_tree_add_text(pim_tree, NullTVB, offset + sizeof(struct pim), END_OF_FRAME, "PIM parameters"); pimopt_tree = proto_item_add_subtree(tiopt, ett_pim); @@ -251,7 +251,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { while ((guint8 *)w < &pd[offset + END_OF_FRAME]) { if (pntohs(&w[0]) == 1 && pntohs(&w[1]) == 2 && (guint8 *)&w[3] <= &pd[offset + END_OF_FRAME]) { - proto_tree_add_text(pimopt_tree, (guint8 *)w - pd, 6, + proto_tree_add_text(pimopt_tree, NullTVB, (guint8 *)w - pd, 6, "Holdtime: %u%s", pntohs(&w[2]), pntohs(&w[2]) == 0xffff ? " (infty)" : ""); w += 3; @@ -269,13 +269,13 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { int flagoff; flagoff = offset + sizeof(struct pim); - tiflag = proto_tree_add_text(pimopt_tree, flagoff, 4, + tiflag = proto_tree_add_text(pimopt_tree, NullTVB, flagoff, 4, "Flags: 0x%08x", pntohl(&pd[flagoff])); flag_tree = proto_item_add_subtree(tiflag, ett_pim); - proto_tree_add_text(flag_tree, flagoff, 1, "%s", + proto_tree_add_text(flag_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pd[flagoff], 0x80000000, 32, "Border", "Not border")); - proto_tree_add_text(flag_tree, flagoff, 1, "%s", + proto_tree_add_text(flag_tree, NullTVB, flagoff, 1, "%s", decode_boolean_bitfield(pd[flagoff], 0x40000000, 32, "Null-Register", "Not Null-Register")); @@ -296,7 +296,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { #endif break; default: - proto_tree_add_text(pimopt_tree, + proto_tree_add_text(pimopt_tree, NullTVB, ip - pd, END_OF_FRAME, "Unknown IP version %d", (*ip & 0xf0) >> 4); break; @@ -315,12 +315,12 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { s = dissect_pim_addr(&pd[offset], ep, pimv2_group, &advance); if (s == NULL) break; - proto_tree_add_text(pimopt_tree, offset, advance, "Group: %s", s); + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Group: %s", s); offset += advance; s = dissect_pim_addr(&pd[offset], ep, pimv2_unicast, &advance); if (s == NULL) break; - proto_tree_add_text(pimopt_tree, offset, advance, "Source: %s", s); + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Source: %s", s); break; } @@ -345,7 +345,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { s = dissect_pim_addr(&pd[offset], ep, pimv2_unicast, &advance); if (s == NULL) break; - proto_tree_add_text(pimopt_tree, offset, advance, + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Upstream-neighbor: %s", s); offset += advance; } @@ -353,7 +353,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (&pd[offset + 2] > ep) break; ngroup = pd[offset + 1]; - proto_tree_add_text(pimopt_tree, offset + 1, 1, + proto_tree_add_text(pimopt_tree, NullTVB, offset + 1, 1, "Groups: %u", pd[offset + 1]); offset += 2; @@ -361,7 +361,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { break; if (PIM_TYPE(pim.pim_typever) != 7) { /* not graft-ack */ - proto_tree_add_text(pimopt_tree, offset, 2, + proto_tree_add_text(pimopt_tree, NullTVB, offset, 2, "Holdtime: %u%s", pntohs(&pd[offset]), pntohs(&pd[offset]) == 0xffff ? " (infty)" : ""); } @@ -374,7 +374,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { s = dissect_pim_addr(&pd[offset], ep, pimv2_group, &advance); if (s == NULL) goto breakbreak3; - tigroup = proto_tree_add_text(pimopt_tree, offset, advance, + tigroup = proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Group %d: %s", i, s); grouptree = proto_item_add_subtree(tigroup, ett_pim); offset += advance; @@ -384,7 +384,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { njoin = pntohs(&pd[offset]); nprune = pntohs(&pd[offset + 2]); - tisub = proto_tree_add_text(grouptree, offset, 2, + tisub = proto_tree_add_text(grouptree, NullTVB, offset, 2, "Join: %d", njoin); subtree = proto_item_add_subtree(tisub, ett_pim); off = offset + 4; @@ -393,12 +393,12 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { &advance); if (s == NULL) goto breakbreak3; - proto_tree_add_text(subtree, off, advance, + proto_tree_add_text(subtree, NullTVB, off, advance, "IP address: %s", s); off += advance; } - tisub = proto_tree_add_text(grouptree, offset + 2, 2, + tisub = proto_tree_add_text(grouptree, NullTVB, offset + 2, 2, "Prune: %d", nprune); subtree = proto_item_add_subtree(tisub, ett_pim); for (j = 0; j < nprune; j++) { @@ -406,7 +406,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { &advance); if (s == NULL) goto breakbreak3; - proto_tree_add_text(subtree, off, advance, + proto_tree_add_text(subtree, NullTVB, off, advance, "IP address: %s", s); off += advance; } @@ -428,15 +428,15 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (END_OF_FRAME < 2) break; - proto_tree_add_text(pimopt_tree, offset, 2, + proto_tree_add_text(pimopt_tree, NullTVB, offset, 2, "Fragment tag: 0x%04x", pntohs(&pd[offset])); offset += 2; if (END_OF_FRAME < 2) break; - proto_tree_add_text(pimopt_tree, offset, 1, + proto_tree_add_text(pimopt_tree, NullTVB, offset, 1, "Hash mask len: %u", pd[offset]); - proto_tree_add_text(pimopt_tree, offset + 1, 1, + proto_tree_add_text(pimopt_tree, NullTVB, offset + 1, 1, "BSR priority: %u", pd[offset + 1]); offset += 2; @@ -444,7 +444,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { pimv2_unicast, &advance); if (s == NULL) break; - proto_tree_add_text(pimopt_tree, offset, advance, "BSR: %s", s); + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "BSR: %s", s); offset += advance; for (i = 0; END_OF_FRAME > 0; i++) { @@ -452,16 +452,16 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { pimv2_group, &advance); if (s == NULL) goto breakbreak4; - tigroup = proto_tree_add_text(pimopt_tree, offset, advance, + tigroup = proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Group %d: %s", i, s); grouptree = proto_item_add_subtree(tigroup, ett_pim); offset += advance; if (END_OF_FRAME < 2) goto breakbreak4; - proto_tree_add_text(grouptree, offset, 1, + proto_tree_add_text(grouptree, NullTVB, offset, 1, "RP count: %u", pd[offset]); - proto_tree_add_text(grouptree, offset + 1, 1, + proto_tree_add_text(grouptree, NullTVB, offset + 1, 1, "FRP count: %u", pd[offset + 1]); frpcnt = pd[offset + 1]; offset += 4; @@ -471,16 +471,16 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { &pd[offset + END_OF_FRAME], pimv2_unicast, &advance); if (s == NULL) goto breakbreak4; - proto_tree_add_text(grouptree, offset, advance, + proto_tree_add_text(grouptree, NullTVB, offset, advance, "RP %d: %s", j, s); offset += advance; if (END_OF_FRAME < 4) goto breakbreak4; - proto_tree_add_text(grouptree, offset, 2, + proto_tree_add_text(grouptree, NullTVB, offset, 2, "Holdtime: %u%s", pntohs(&pd[offset]), pntohs(&pd[offset]) == 0xffff ? " (infty)" : ""); - proto_tree_add_text(grouptree, offset + 3, 1, + proto_tree_add_text(grouptree, NullTVB, offset + 3, 1, "Priority: %u", pd[offset + 3]); offset += 4; @@ -502,28 +502,28 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { pimv2_group, &advance); if (s == NULL) break; - proto_tree_add_text(pimopt_tree, offset, advance, "Group: %s", s); + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Group: %s", s); offset += advance; s = dissect_pim_addr(&pd[offset], &pd[offset + END_OF_FRAME], pimv2_unicast, &advance); if (s == NULL) break; - proto_tree_add_text(pimopt_tree, offset, advance, "Source: %s", s); + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Source: %s", s); offset += advance; if (END_OF_FRAME < 4) break; - proto_tree_add_text(pimopt_tree, offset, 1, "%s", + proto_tree_add_text(pimopt_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(pd[offset], 0x80, 8, "RP Tree", "Not RP Tree")); - proto_tree_add_text(pimopt_tree, offset, 4, "Preference: %u", + proto_tree_add_text(pimopt_tree, NullTVB, offset, 4, "Preference: %u", pntohl(&pd[offset]) & 0x7fffffff); offset += 4; if (END_OF_FRAME < 4) break; - proto_tree_add_text(pimopt_tree, offset, 4, "Metric: %u", + proto_tree_add_text(pimopt_tree, NullTVB, offset, 4, "Metric: %u", pntohl(&pd[offset])); break; @@ -540,11 +540,11 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (END_OF_FRAME < 4) break; pfxcnt = pd[offset]; - proto_tree_add_text(pimopt_tree, offset, 1, + proto_tree_add_text(pimopt_tree, NullTVB, offset, 1, "Prefix-count: %u", pd[offset]); - proto_tree_add_text(pimopt_tree, offset + 1, 1, + proto_tree_add_text(pimopt_tree, NullTVB, offset + 1, 1, "Priority: %u", pd[offset + 1]); - proto_tree_add_text(pimopt_tree, offset + 2, 2, + proto_tree_add_text(pimopt_tree, NullTVB, offset + 2, 2, "Holdtime: %u%s", pntohs(&pd[offset + 2]), pntohs(&pd[offset + 2]) == 0xffff ? " (infty)" : ""); offset += 4; @@ -555,7 +555,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { pimv2_unicast, &advance); if (s == NULL) break; - proto_tree_add_text(pimopt_tree, offset, advance, "RP: %s", s); + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "RP: %s", s); offset += advance; for (i = 0; i < pfxcnt && END_OF_FRAME > 0; i++) { @@ -563,7 +563,7 @@ dissect_pim(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { pimv2_group, &advance); if (s == NULL) goto breakbreak8; - proto_tree_add_text(pimopt_tree, offset, advance, + proto_tree_add_text(pimopt_tree, NullTVB, offset, advance, "Group %d: %s", i, s); offset += advance; } diff --git a/packet-pop.c b/packet-pop.c index 909085bc23..ff93456b7c 100644 --- a/packet-pop.c +++ b/packet-pop.c @@ -2,7 +2,7 @@ * Routines for pop packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-pop.c,v 1.13 2000/04/08 07:07:33 guy Exp $ + * $Id: packet-pop.c,v 1.14 2000/05/11 08:15:33 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -101,27 +101,27 @@ dissect_pop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_pop, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_pop, NullTVB, offset, END_OF_FRAME, NULL); pop_tree = proto_item_add_subtree(ti, ett_pop); if (pi.match_port == pi.destport) { /* Request */ - proto_tree_add_item_hidden(pop_tree, hf_pop_request, offset, i1, TRUE); - proto_tree_add_text(pop_tree, offset, i1, "Request: %s", rr); + proto_tree_add_item_hidden(pop_tree, hf_pop_request, NullTVB, offset, i1, TRUE); + proto_tree_add_text(pop_tree, NullTVB, offset, i1, "Request: %s", rr); if (strlen(rd) != 0) - proto_tree_add_text(pop_tree, offset + i1 + 1, END_OF_FRAME, "Request Arg: %s", rd); + proto_tree_add_text(pop_tree, NullTVB, offset + i1 + 1, END_OF_FRAME, "Request Arg: %s", rd); } else { - proto_tree_add_item_hidden(pop_tree, hf_pop_response, offset, i1, TRUE); + proto_tree_add_item_hidden(pop_tree, hf_pop_response, NullTVB, offset, i1, TRUE); if (is_continuation(pd+offset)) dissect_data(pd, offset, fd, pop_tree); else { - proto_tree_add_text(pop_tree, offset, i1, "Response: %s", rr); + proto_tree_add_text(pop_tree, NullTVB, offset, i1, "Response: %s", rr); if (strlen(rd) != 0) - proto_tree_add_text(pop_tree, offset + i1 + 1, END_OF_FRAME, "Response Arg: %s", rd); + proto_tree_add_text(pop_tree, NullTVB, offset + i1 + 1, END_OF_FRAME, "Response Arg: %s", rd); } } diff --git a/packet-portmap.c b/packet-portmap.c index 27cc97ee85..802df7ab18 100644 --- a/packet-portmap.c +++ b/packet-portmap.c @@ -1,7 +1,7 @@ /* packet-portmap.c * Routines for portmap dissection * - * $Id: packet-portmap.c,v 1.14 2000/04/04 06:46:27 guy Exp $ + * $Id: packet-portmap.c,v 1.15 2000/05/11 08:15:34 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -74,17 +74,17 @@ int dissect_getport_call(const u_char *pd, int offset, frame_data *fd, if ( tree ) { prog = pntohl(&pd[offset+0]); - proto_tree_add_uint_format(tree, hf_portmap_prog, + proto_tree_add_uint_format(tree, hf_portmap_prog, NullTVB, offset, 4, prog, "Program: %s (%u)", rpc_prog_name(prog), prog); - proto_tree_add_item(tree, hf_portmap_version, + proto_tree_add_item(tree, hf_portmap_version, NullTVB, offset+4, 4, pntohl(&pd[offset+4])); proto = pntohl(&pd[offset+8]); - proto_tree_add_uint_format(tree, hf_portmap_proto, + proto_tree_add_uint_format(tree, hf_portmap_proto, NullTVB, offset+8, 4, proto, "Proto: %s (%u)", ipprotostr(proto), proto); - proto_tree_add_item(tree, hf_portmap_port, + proto_tree_add_item(tree, hf_portmap_port, NullTVB, offset+12, 4, pntohl(&pd[offset+12])); } @@ -97,7 +97,7 @@ int dissect_getport_reply(const u_char *pd, int offset, frame_data *fd, if ( !BYTES_ARE_IN_FRAME(offset, 4)) return offset; if ( tree ) { - proto_tree_add_item(tree, hf_portmap_port, + proto_tree_add_item(tree, hf_portmap_port, NullTVB, offset, 4, pntohl(&pd[offset+0])); } return offset+=4; @@ -114,17 +114,17 @@ int dissect_set_call(const u_char *pd, int offset, frame_data *fd, if ( tree ) { prog = pntohl(&pd[offset+0]); - proto_tree_add_uint_format(tree, hf_portmap_prog, + proto_tree_add_uint_format(tree, hf_portmap_prog, NullTVB, offset, 4, prog, "Program: %s (%d)", rpc_prog_name(prog), prog); - proto_tree_add_item(tree, hf_portmap_version, + proto_tree_add_item(tree, hf_portmap_version, NullTVB, offset+4, 4, pntohl(&pd[offset+4])); proto = pntohl(&pd[offset+8]); - proto_tree_add_uint_format(tree, hf_portmap_proto, + proto_tree_add_uint_format(tree, hf_portmap_proto, NullTVB, offset+8, 4, proto, "Proto: %s (%d)", ipprotostr(proto), proto); - proto_tree_add_item(tree, hf_portmap_port, + proto_tree_add_item(tree, hf_portmap_port, NullTVB, offset+12, 4, pntohl(&pd[offset+12])); } @@ -142,17 +142,17 @@ int dissect_unset_call(const u_char *pd, int offset, frame_data *fd, if ( tree ) { prog = pntohl(&pd[offset+0]); - proto_tree_add_uint_format(tree, hf_portmap_prog, + proto_tree_add_uint_format(tree, hf_portmap_prog, NullTVB, offset, 4, prog, "Program: %s (%d)", rpc_prog_name(prog), prog); - proto_tree_add_item(tree, hf_portmap_version, + proto_tree_add_item(tree, hf_portmap_version, NullTVB, offset+4, 4, pntohl(&pd[offset+4])); proto = pntohl(&pd[offset+8]); - proto_tree_add_item(tree, hf_portmap_proto, + proto_tree_add_item(tree, hf_portmap_proto, NullTVB, offset+8, 4, proto); - proto_tree_add_item(tree, hf_portmap_port, + proto_tree_add_item(tree, hf_portmap_port, NullTVB, offset+12, 4, pntohl(&pd[offset+12])); } @@ -166,7 +166,7 @@ int dissect_set_reply(const u_char *pd, int offset, frame_data *fd, { if ( !BYTES_ARE_IN_FRAME(offset, 4)) return offset; - proto_tree_add_item(tree, hf_portmap_answer, + proto_tree_add_item(tree, hf_portmap_answer, NullTVB, offset, 4, pntohl(&pd[offset+0])); offset += 4; } @@ -184,7 +184,7 @@ int dissect_dump_reply(const u_char *pd, int offset, frame_data *fd, value_follows = pntohl(&pd[offset+0]); if ( tree ) { - proto_tree_add_item(tree, hf_portmap_value_follows, + proto_tree_add_item(tree, hf_portmap_value_follows, NullTVB, offset, 4, value_follows); } offset += 4; @@ -202,19 +202,19 @@ int dissect_dump_reply(const u_char *pd, int offset, frame_data *fd, if ( tree ) { - ti = proto_tree_add_text(tree, offset, 16, "Map Entry: %s (%u) V%d", + ti = proto_tree_add_text(tree, NullTVB, offset, 16, "Map Entry: %s (%u) V%d", rpc_prog_name(prog), prog, version); subtree = proto_item_add_subtree(ti, ett_portmap_entry); - proto_tree_add_uint_format(subtree, hf_portmap_prog, + proto_tree_add_uint_format(subtree, hf_portmap_prog, NullTVB, offset+0, 4, prog, "Program: %s (%u)", rpc_prog_name(prog), prog); - proto_tree_add_item(subtree, hf_portmap_version, + proto_tree_add_item(subtree, hf_portmap_version, NullTVB, offset+4, 4, version); - proto_tree_add_uint_format(subtree, hf_portmap_proto, + proto_tree_add_uint_format(subtree, hf_portmap_proto, NullTVB, offset+8, 4, proto, "Protocol: %s (0x%02x)", ipprotostr(proto), proto); - proto_tree_add_item(subtree, hf_portmap_port, + proto_tree_add_item(subtree, hf_portmap_port, NullTVB, offset+12, 4, port); } offset += 16; @@ -264,7 +264,7 @@ int dissect_rpcb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, guint32 version; if (tree) { - rpcb_item = proto_tree_add_item(tree, hfindex, + rpcb_item = proto_tree_add_item(tree, hfindex, NullTVB, offset+0, END_OF_FRAME, NULL); if (rpcb_item) rpcb_tree = proto_item_add_subtree(rpcb_item, ett_portmap_rpcb); @@ -273,7 +273,7 @@ int dissect_rpcb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, if (!BYTES_ARE_IN_FRAME(offset, 4)) return offset; prog = EXTRACT_UINT(pd, offset + 0); if (rpcb_tree) - proto_tree_add_uint_format(rpcb_tree, hf_portmap_rpcb_prog, + proto_tree_add_uint_format(rpcb_tree, hf_portmap_rpcb_prog, NullTVB, offset+0, 4, prog, "Program: %s (%u)", rpc_prog_name(prog), prog); offset += 4; @@ -281,7 +281,7 @@ int dissect_rpcb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, if (!BYTES_ARE_IN_FRAME(offset, 4)) return offset; version = EXTRACT_UINT(pd, offset + 0); if (rpcb_tree) - proto_tree_add_item(rpcb_tree, hf_portmap_rpcb_version, + proto_tree_add_item(rpcb_tree, hf_portmap_rpcb_version, NullTVB, offset+0, 4, version); offset += 4; @@ -328,7 +328,7 @@ int dissect_rpcb3_dump_reply(const u_char *pd, int offset, frame_data *fd, while (1) { if (!BYTES_ARE_IN_FRAME(offset,4)) break; value_follows = EXTRACT_UINT(pd, offset+0); - proto_tree_add_item(tree,hf_portmap_value_follows, + proto_tree_add_item(tree,hf_portmap_value_follows, NullTVB, offset+0, 4, value_follows); offset += 4; if (value_follows == 1) { diff --git a/packet-ppp.c b/packet-ppp.c index 7737784ff3..17ba70cbe7 100644 --- a/packet-ppp.c +++ b/packet-ppp.c @@ -1,7 +1,7 @@ /* packet-ppp.c * Routines for ppp packet disassembly * - * $Id: packet-ppp.c,v 1.32 2000/04/19 03:28:06 gram Exp $ + * $Id: packet-ppp.c,v 1.33 2000/05/11 08:15:34 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -523,14 +523,14 @@ static void dissect_lcp_mru_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, guint length, proto_tree *tree) { - proto_tree_add_text(tree, offset, length, "MRU: %u", pntohs(opd)); + proto_tree_add_text(tree, NullTVB, offset, length, "MRU: %u", pntohs(opd)); } static void dissect_lcp_async_map_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, guint length, proto_tree *tree) { - proto_tree_add_text(tree, offset, length, "Async characters to map: 0x%08x", + proto_tree_add_text(tree, NullTVB, offset, length, "Async characters to map: 0x%08x", pntohl(opd)); } @@ -542,19 +542,19 @@ dissect_lcp_protocol_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, proto_item *tf; proto_tree *field_tree = NULL; - tf = proto_tree_add_text(tree, offset, length, "%s: %u byte%s", + tf = proto_tree_add_text(tree, NullTVB, offset, length, "%s: %u byte%s", optp->name, length, plurality(length, "", "s")); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; length -= 2; protocol = pntohs(opd); - proto_tree_add_text(field_tree, offset, 2, "%s: %s (0x%02x)", optp->name, + proto_tree_add_text(field_tree, NullTVB, offset, 2, "%s: %s (0x%02x)", optp->name, val_to_str(protocol, ppp_vals, "Unknown"), protocol); offset += 2; opd += 2; length -= 2; if (length > 0) - proto_tree_add_text(field_tree, offset, length, "Data (%d byte%s)", length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Data (%d byte%s)", length, plurality(length, "", "s")); } @@ -562,7 +562,7 @@ static void dissect_lcp_magicnumber_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, guint length, proto_tree *tree) { - proto_tree_add_text(tree, offset, length, "Magic number: 0x%08x", + proto_tree_add_text(tree, NullTVB, offset, length, "Magic number: 0x%08x", pntohl(opd)); } @@ -575,18 +575,18 @@ dissect_lcp_fcs_alternatives_opt(const ip_tcp_opt *optp, const u_char *opd, guint8 alternatives; alternatives = *opd; - tf = proto_tree_add_text(tree, offset, length, "%s: 0x%02x", + tf = proto_tree_add_text(tree, NullTVB, offset, length, "%s: 0x%02x", optp->name, alternatives); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; if (alternatives & 0x1) - proto_tree_add_text(field_tree, offset + 2, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + 2, 1, "%s", decode_boolean_bitfield(alternatives, 0x1, 8, "Null FCS", NULL)); if (alternatives & 0x2) - proto_tree_add_text(field_tree, offset + 2, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + 2, 1, "%s", decode_boolean_bitfield(alternatives, 0x2, 8, "CCITT 16-bit FCS", NULL)); if (alternatives & 0x4) - proto_tree_add_text(field_tree, offset + 2, 1, "%s", + proto_tree_add_text(field_tree, NullTVB, offset + 2, 1, "%s", decode_boolean_bitfield(alternatives, 0x4, 8, "CCITT 32-bit FCS", NULL)); } @@ -594,7 +594,7 @@ static void dissect_lcp_self_describing_pad_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, guint length, proto_tree *tree) { - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Maximum octets of self-describing padding: %u", *opd); } @@ -606,17 +606,17 @@ dissect_lcp_numbered_mode_opt(const ip_tcp_opt *optp, const u_char *opd, proto_item *tf; proto_tree *field_tree = NULL; - tf = proto_tree_add_text(tree, offset, length, "%s: %u byte%s", + tf = proto_tree_add_text(tree, NullTVB, offset, length, "%s: %u byte%s", optp->name, length, plurality(length, "", "s")); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; length -= 2; - proto_tree_add_text(field_tree, offset, 1, "Window: %u", *opd); + proto_tree_add_text(field_tree, NullTVB, offset, 1, "Window: %u", *opd); offset += 1; opd += 1; length -= 1; if (length > 0) - proto_tree_add_text(field_tree, offset, length, "Address (%d byte%s)", + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s)", length, plurality(length, "", "s")); } @@ -636,19 +636,19 @@ dissect_lcp_callback_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, proto_item *tf; proto_tree *field_tree = NULL; - tf = proto_tree_add_text(tree, offset, length, "%s: %u byte%s", + tf = proto_tree_add_text(tree, NullTVB, offset, length, "%s: %u byte%s", optp->name, length, plurality(length, "", "s")); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; length -= 2; - proto_tree_add_text(field_tree, offset, 1, "Operation: %s (0x%02x)", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "Operation: %s (0x%02x)", val_to_str(*opd, callback_op_vals, "Unknown"), *opd); offset += 1; opd += 1; length -= 1; if (length > 0) - proto_tree_add_text(field_tree, offset, length, "Message (%d byte%s)", + proto_tree_add_text(field_tree, NullTVB, offset, length, "Message (%d byte%s)", length, plurality(length, "", "s")); } @@ -656,7 +656,7 @@ static void dissect_lcp_multilink_mrru_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, guint length, proto_tree *tree) { - proto_tree_add_text(tree, offset, length, "Multilink MRRU: %u", + proto_tree_add_text(tree, NullTVB, offset, length, "Multilink MRRU: %u", pntohs(opd)); } @@ -685,13 +685,13 @@ dissect_lcp_multilink_ep_disc_opt(const ip_tcp_opt *optp, const u_char *opd, proto_tree *field_tree = NULL; guint8 ep_disc_class; - tf = proto_tree_add_text(tree, offset, length, "%s: %u byte%s", + tf = proto_tree_add_text(tree, NullTVB, offset, length, "%s: %u byte%s", optp->name, length, plurality(length, "", "s")); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; length -= 2; ep_disc_class = *opd; - proto_tree_add_text(field_tree, offset, 1, "Class: %s (%u)", + proto_tree_add_text(field_tree, NullTVB, offset, 1, "Class: %s (%u)", val_to_str(ep_disc_class, multilink_ep_disc_class_vals, "Unknown"), ep_disc_class); offset += 1; @@ -701,18 +701,18 @@ dissect_lcp_multilink_ep_disc_opt(const ip_tcp_opt *optp, const u_char *opd, switch (ep_disc_class) { case CLASS_NULL: - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s), should have been empty", length, plurality(length, "", "s")); break; case CLASS_LOCAL: if (length > 20) { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s), should have been <20", length, plurality(length, "", "s")); } else { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s)", length, plurality(length, "", "s")); } @@ -720,22 +720,22 @@ dissect_lcp_multilink_ep_disc_opt(const ip_tcp_opt *optp, const u_char *opd, case CLASS_IP: if (length != 4) { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s), should have been 4", length, plurality(length, "", "s")); } else { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address: %s", ip_to_str(opd)); } break; case CLASS_IEEE_802_1: if (length != 6) { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s), should have been 6", length, plurality(length, "", "s")); } else { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address: %s", ether_to_str(opd)); } break; @@ -743,11 +743,11 @@ dissect_lcp_multilink_ep_disc_opt(const ip_tcp_opt *optp, const u_char *opd, case CLASS_PPP_MAGIC_NUMBER: /* XXX - dissect as 32-bit magic numbers */ if (length > 20) { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s), should have been <20", length, plurality(length, "", "s")); } else { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s)", length, plurality(length, "", "s")); } @@ -755,18 +755,18 @@ dissect_lcp_multilink_ep_disc_opt(const ip_tcp_opt *optp, const u_char *opd, case CLASS_PSDN_DIRECTORY_NUMBER: if (length > 15) { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s), should have been <20", length, plurality(length, "", "s")); } else { - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s)", length, plurality(length, "", "s")); } break; default: - proto_tree_add_text(field_tree, offset, length, + proto_tree_add_text(field_tree, NullTVB, offset, length, "Address (%d byte%s)", length, plurality(length, "", "s")); break; @@ -778,7 +778,7 @@ static void dissect_lcp_bap_link_discriminator_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, guint length, proto_tree *tree) { - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Link discriminator for BAP: 0x%04x", pntohs(opd)); } @@ -796,12 +796,12 @@ dissect_lcp_internationalization_opt(const ip_tcp_opt *optp, const u_char *opd, proto_item *tf; proto_tree *field_tree = NULL; - tf = proto_tree_add_text(tree, offset, length, "%s: %u byte%s", + tf = proto_tree_add_text(tree, NullTVB, offset, length, "%s: %u byte%s", optp->name, length, plurality(length, "", "s")); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; length -= 2; - proto_tree_add_text(field_tree, offset, 4, "Character set: %s (0x%04x)", + proto_tree_add_text(field_tree, NullTVB, offset, 4, "Character set: %s (0x%04x)", val_to_str(pntohl(opd), charset_num_vals, "Unknown"), pntohl(opd)); offset += 4; @@ -809,7 +809,7 @@ dissect_lcp_internationalization_opt(const ip_tcp_opt *optp, const u_char *opd, length -= 4; if (length > 0) { /* XXX - should be displayed as an ASCII string */ - proto_tree_add_text(field_tree, offset, length, "Language tag (%d byte%s)", + proto_tree_add_text(field_tree, NullTVB, offset, length, "Language tag (%d byte%s)", length, plurality(length, "", "s")); } } @@ -821,24 +821,24 @@ dissect_ipcp_addrs_opt(const ip_tcp_opt *optp, const u_char *opd, proto_item *tf; proto_tree *field_tree = NULL; - tf = proto_tree_add_text(tree, offset, length, "%s: %u byte%s", + tf = proto_tree_add_text(tree, NullTVB, offset, length, "%s: %u byte%s", optp->name, length, plurality(length, "", "s")); field_tree = proto_item_add_subtree(tf, *optp->subtree_index); offset += 2; length -= 2; - proto_tree_add_text(field_tree, offset, 4, + proto_tree_add_text(field_tree, NullTVB, offset, 4, "Source IP address: %s", ip_to_str(opd)); offset += 4; opd += 4; length -= 4; - proto_tree_add_text(field_tree, offset, 4, + proto_tree_add_text(field_tree, NullTVB, offset, 4, "Destination IP address: %s", ip_to_str(opd)); } static void dissect_ipcp_addr_opt(const ip_tcp_opt *optp, const u_char *opd, int offset, guint length, proto_tree *tree) { - proto_tree_add_text(tree, offset, length, "%s: %s", optp->name, + proto_tree_add_text(tree, NullTVB, offset, length, "%s: %s", optp->name, ip_to_str((guint8 *)opd)); } @@ -866,14 +866,14 @@ dissect_cp( const u_char *pd, int offset, const char *proto_short_name, val_to_str(code, proto_vals, "Unknown")); if(tree) { - ti = proto_tree_add_text(tree, 0+offset, 4, "%s Control Protocol", + ti = proto_tree_add_text(tree, NullTVB, 0+offset, 4, "%s Control Protocol", proto_long_name); fh_tree = proto_item_add_subtree(ti, proto_subtree_index); - proto_tree_add_text(fh_tree, 0+offset, 1, "Code: %s (0x%02x)", + proto_tree_add_text(fh_tree, NullTVB, 0+offset, 1, "Code: %s (0x%02x)", val_to_str(code, proto_vals, "Unknown"), code); - proto_tree_add_text(fh_tree, 1+offset, 1, "Identifier: 0x%02x", + proto_tree_add_text(fh_tree, NullTVB, 1+offset, 1, "Identifier: 0x%02x", id); - proto_tree_add_text(fh_tree, 2+offset, 2, "Length: %u", + proto_tree_add_text(fh_tree, NullTVB, 2+offset, 2, "Length: %u", length); } offset += 4; @@ -886,7 +886,7 @@ dissect_cp( const u_char *pd, int offset, const char *proto_short_name, case CONFREJ: if(tree) { if (length > 0) { - tf = proto_tree_add_text(fh_tree, offset, length, + tf = proto_tree_add_text(fh_tree, NullTVB, offset, length, "Options: (%d byte%s)", length, plurality(length, "", "s")); field_tree = proto_item_add_subtree(tf, options_subtree_index); dissect_ip_tcp_options(&pd[offset], offset, length, opts, nopts, @@ -900,28 +900,28 @@ dissect_cp( const u_char *pd, int offset, const char *proto_short_name, case DISCREQ: case IDENT: if(tree) { - proto_tree_add_text(fh_tree, offset, 4, "Magic number: 0x%08x", + proto_tree_add_text(fh_tree, NullTVB, offset, 4, "Magic number: 0x%08x", pntohl(&pd[offset])); offset += 4; length -= 4; if (length > 0) - proto_tree_add_text(fh_tree, offset, length, "Message (%d byte%s)", + proto_tree_add_text(fh_tree, NullTVB, offset, length, "Message (%d byte%s)", length, plurality(length, "", "s")); } break; case TIMEREMAIN: if(tree) { - proto_tree_add_text(fh_tree, offset, 4, "Magic number: 0x%08x", + proto_tree_add_text(fh_tree, NullTVB, offset, 4, "Magic number: 0x%08x", pntohl(&pd[offset])); offset += 4; length -= 4; - proto_tree_add_text(fh_tree, offset, 4, "Seconds remaining: %u", + proto_tree_add_text(fh_tree, NullTVB, offset, 4, "Seconds remaining: %u", pntohl(&pd[offset])); offset += 4; length -= 4; if (length > 0) - proto_tree_add_text(fh_tree, offset, length, "Message (%d byte%s)", + proto_tree_add_text(fh_tree, NullTVB, offset, length, "Message (%d byte%s)", length, plurality(length, "", "s")); } break; @@ -929,12 +929,12 @@ dissect_cp( const u_char *pd, int offset, const char *proto_short_name, case PROTREJ: if(tree) { protocol = pntohs(&pd[offset]); - proto_tree_add_text(fh_tree, offset, 2, "Rejected protocol: %s (0x%04x)", + proto_tree_add_text(fh_tree, NullTVB, offset, 2, "Rejected protocol: %s (0x%04x)", val_to_str(protocol, ppp_vals, "Unknown"), protocol); offset += 2; length -= 2; if (length > 0) - proto_tree_add_text(fh_tree, offset, length, "Rejected packet (%d byte%s)", + proto_tree_add_text(fh_tree, NullTVB, offset, length, "Rejected packet (%d byte%s)", length, plurality(length, "", "s")); /* XXX - should be dissected as a PPP packet */ } @@ -943,20 +943,20 @@ dissect_cp( const u_char *pd, int offset, const char *proto_short_name, case CODEREJ: /* decode the rejected LCP packet here. */ if (length > 0) - proto_tree_add_text(fh_tree, offset, length, "Rejected packet (%d byte%s)", + proto_tree_add_text(fh_tree, NullTVB, offset, length, "Rejected packet (%d byte%s)", length, plurality(length, "", "s")); break; case TERMREQ: case TERMACK: if (length > 0) - proto_tree_add_text(fh_tree, offset, length, "Data (%d byte%s)", + proto_tree_add_text(fh_tree, NullTVB, offset, length, "Data (%d byte%s)", length, plurality(length, "", "s")); break; default: if (length > 0) - proto_tree_add_text(fh_tree, offset, length, "Stuff (%d byte%s)", + proto_tree_add_text(fh_tree, NullTVB, offset, length, "Stuff (%d byte%s)", length, plurality(length, "", "s")); break; } @@ -980,7 +980,7 @@ dissect_ppp_stuff( const u_char *pd, int offset, frame_data *fd, } if (tree) { - proto_tree_add_text(fh_tree, offset, proto_len, "Protocol: %s (0x%04x)", + proto_tree_add_text(fh_tree, NullTVB, offset, proto_len, "Protocol: %s (0x%04x)", val_to_str(ppp_prot, ppp_vals, "Unknown"), ppp_prot); } offset += proto_len; @@ -1059,28 +1059,28 @@ dissect_mp(const u_char *pd, int offset, frame_data *fd, strcpy(flag_str, "Unknown"); break; } - ti = proto_tree_add_item(tree, proto_mp, offset, 4, NULL); + ti = proto_tree_add_item(tree, proto_mp, NullTVB, offset, 4, NULL); mp_tree = proto_item_add_subtree(ti, ett_mp); - ti = proto_tree_add_text(mp_tree, offset, 1, "Fragment: 0x%2X (%s)", + ti = proto_tree_add_text(mp_tree, NullTVB, offset, 1, "Fragment: 0x%2X (%s)", flags, flag_str); hdr_tree = proto_item_add_subtree(ti, ett_mp_flags); - proto_tree_add_boolean_format(hdr_tree, hf_mp_frag_first, offset, 1, first, + proto_tree_add_boolean_format(hdr_tree, hf_mp_frag_first, NullTVB, offset, 1, first, "%s", decode_boolean_bitfield(flags, MP_FRAG_FIRST, sizeof(flags) * 8, "first", "not first")); - proto_tree_add_boolean_format(hdr_tree, hf_mp_frag_last, offset, 1, last, + proto_tree_add_boolean_format(hdr_tree, hf_mp_frag_last, NullTVB, offset, 1, last, "%s", decode_boolean_bitfield(flags, MP_FRAG_LAST, sizeof(flags) * 8, "last", "not last")); - proto_tree_add_text(hdr_tree, offset, 1, "%s", + proto_tree_add_text(hdr_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, MP_FRAG_RESERVED, sizeof(flags) * 8, "reserved", "reserved")); - proto_tree_add_item(mp_tree, hf_mp_sequence_num, offset + 1, 3, seq); + proto_tree_add_item(mp_tree, hf_mp_sequence_num, NullTVB, offset + 1, 3, seq); } offset += 4; if (IS_DATA_IN_FRAME(offset)) { if (tree) { - ti = proto_tree_add_item(tree, proto_ppp, offset, 1, NULL); + ti = proto_tree_add_item(tree, proto_ppp, NullTVB, offset, 1, NULL); fh_tree = proto_item_add_subtree(ti, ett_ppp); } dissect_ppp_stuff(pd, offset, fd, tree, fh_tree); @@ -1095,7 +1095,7 @@ dissect_payload_ppp( const u_char *pd, int offset, frame_data *fd, proto_tree *t /* populate a tree in the second pane with the status of the link layer (ie none) */ if(tree) { - ti = proto_tree_add_item(tree, proto_ppp, 0+offset, 2, NULL); + ti = proto_tree_add_item(tree, proto_ppp, NullTVB, 0+offset, 2, NULL); fh_tree = proto_item_add_subtree(ti, ett_ppp); } @@ -1134,11 +1134,11 @@ dissect_ppp( const u_char *pd, int offset, frame_data *fd, proto_tree *tree ) { /* populate a tree in the second pane with the status of the link layer (ie none) */ if(tree) { - ti = proto_tree_add_item(tree, proto_ppp, 0, 4, NULL); + ti = proto_tree_add_item(tree, proto_ppp, NullTVB, 0, 4, NULL); fh_tree = proto_item_add_subtree(ti, ett_ppp); if (pd[offset] == 0xff) { - proto_tree_add_text(fh_tree, 0, 1, "Address: %02x", ph.ppp_addr); - proto_tree_add_text(fh_tree, 1, 1, "Control: %02x", ph.ppp_ctl); + proto_tree_add_text(fh_tree, NullTVB, 0, 1, "Address: %02x", ph.ppp_addr); + proto_tree_add_text(fh_tree, NullTVB, 1, 1, "Control: %02x", ph.ppp_ctl); } } diff --git a/packet-pppoe.c b/packet-pppoe.c index f63ca80ae0..1d0695e548 100644 --- a/packet-pppoe.c +++ b/packet-pppoe.c @@ -1,7 +1,7 @@ /* packet-arp.c * Routines for ARP packet disassembly * - * $Id: packet-pppoe.c,v 1.7 2000/04/16 22:59:37 guy Exp $ + * $Id: packet-pppoe.c,v 1.8 2000/05/11 08:15:35 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -105,7 +105,7 @@ dissect_pppoe_tags(const u_char *pd, int offset, frame_data *fd, proto_tree *tre /* Start Decoding Here. */ if (tree) { - ti = proto_tree_add_text(tree,offset,payload_length,"PPPoE Tags"); + ti = proto_tree_add_text(tree, NullTVB,offset,payload_length,"PPPoE Tags"); pppoe_tree = proto_item_add_subtree(ti, ett_pppoed_tags); tagstart = offset; @@ -114,7 +114,7 @@ dissect_pppoe_tags(const u_char *pd, int offset, frame_data *fd, proto_tree *tre poe_tag = pntohs(&pd[tagstart]); poe_tag_length = pntohs(&pd[tagstart + 2]); - proto_tree_add_text(pppoe_tree,tagstart,4, + proto_tree_add_text(pppoe_tree, NullTVB,tagstart,4, "Tag: %s", pppoetag_to_str(poe_tag,"Unknown (0x%02x)")); switch(poe_tag) { @@ -126,13 +126,13 @@ dissect_pppoe_tags(const u_char *pd, int offset, frame_data *fd, proto_tree *tre /* tag value should be interpreted as a utf-8 unterminated string.*/ if(poe_tag_length > 0 ) { /* really should do some limit checking here. :( */ - proto_tree_add_text(pppoe_tree,tagstart+4,poe_tag_length, + proto_tree_add_text(pppoe_tree, NullTVB,tagstart+4,poe_tag_length, " String Data: %s", format_text(&pd[tagstart+4],poe_tag_length )); } break; default: if(poe_tag_length > 0 ) { - proto_tree_add_text(pppoe_tree,tagstart+4,poe_tag_length, + proto_tree_add_text(pppoe_tree, NullTVB,tagstart+4,poe_tag_length, " Binary Data: (%d bytes)", poe_tag_length ); } } @@ -171,17 +171,17 @@ dissect_pppoed(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_text(tree,offset,pppoe_length+6,"PPPoE Discovery"); + ti = proto_tree_add_text(tree, NullTVB,offset,pppoe_length+6,"PPPoE Discovery"); pppoe_tree = proto_item_add_subtree(ti, ett_pppoed); - proto_tree_add_text(pppoe_tree,offset,1, + proto_tree_add_text(pppoe_tree, NullTVB,offset,1, "Version: %d", pppoe_ver); - proto_tree_add_text(pppoe_tree,offset,1, + proto_tree_add_text(pppoe_tree, NullTVB,offset,1, "Type: %d", pppoe_type); - proto_tree_add_text(pppoe_tree,offset+1,1, + proto_tree_add_text(pppoe_tree, NullTVB,offset+1,1, "Code: %s", pppoecode_to_str(pppoe_code,"Unknown (0x%02x)")); - proto_tree_add_text(pppoe_tree,offset+2,2, + proto_tree_add_text(pppoe_tree, NullTVB,offset+2,2, "Session ID: %04x", pppoe_session_id); - proto_tree_add_text(pppoe_tree,offset+4,2, + proto_tree_add_text(pppoe_tree, NullTVB,offset+4,2, "Payload Length: %d", pppoe_length); } dissect_pppoe_tags(pd,offset+6,fd,tree,offset+6+pppoe_length); @@ -215,17 +215,17 @@ dissect_pppoes(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_text(tree,offset,pppoe_length+6,"PPPoE Session"); + ti = proto_tree_add_text(tree, NullTVB,offset,pppoe_length+6,"PPPoE Session"); pppoe_tree = proto_item_add_subtree(ti, ett_pppoed); - proto_tree_add_text(pppoe_tree,offset,1, + proto_tree_add_text(pppoe_tree, NullTVB,offset,1, "Version: %d", pppoe_ver); - proto_tree_add_text(pppoe_tree,offset,1, + proto_tree_add_text(pppoe_tree, NullTVB,offset,1, "Type: %d", pppoe_type); - proto_tree_add_text(pppoe_tree,offset+1,1, + proto_tree_add_text(pppoe_tree, NullTVB,offset+1,1, "Code: %s", pppoecode_to_str(pppoe_code,"Unknown (0x%02x)")); - proto_tree_add_text(pppoe_tree,offset+2,2, + proto_tree_add_text(pppoe_tree, NullTVB,offset+2,2, "Session ID: %04x", pppoe_session_id); - proto_tree_add_text(pppoe_tree,offset+4,2, + proto_tree_add_text(pppoe_tree, NullTVB,offset+4,2, "Payload Length: %d", pppoe_length); } /* dissect_ppp is apparently done as a 'top level' dissector, diff --git a/packet-pptp.c b/packet-pptp.c index b6b9319b2d..243fe4164f 100644 --- a/packet-pptp.c +++ b/packet-pptp.c @@ -2,7 +2,7 @@ * Routines for the Point-to-Point Tunnelling Protocol (PPTP) (RFC 2637) * Brad Robel-Forrest * - * $Id: packet-pptp.c,v 1.9 2000/04/08 07:07:33 guy Exp $ + * $Id: packet-pptp.c,v 1.10 2000/05/11 08:15:35 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -399,27 +399,27 @@ dissect_pptp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { proto_item * ti; proto_tree * pptp_tree; - ti = proto_tree_add_text(tree, offset, len, "PPTP Control Channel"); + ti = proto_tree_add_text(tree, NullTVB, offset, len, "PPTP Control Channel"); pptp_tree = proto_item_add_subtree(ti, ett_pptp); - proto_tree_add_text(pptp_tree, offset, sizeof(hdr->len), + proto_tree_add_text(pptp_tree, NullTVB, offset, sizeof(hdr->len), "Length: %u", len); offset += sizeof(hdr->len); msg_type = pntohs(&hdr->type); - proto_tree_add_text(pptp_tree, offset, sizeof(hdr->type), + proto_tree_add_text(pptp_tree, NullTVB, offset, sizeof(hdr->type), "Message type: %s (%u)", msgtype2str(msg_type), msg_type); offset += sizeof(hdr->type); - proto_tree_add_text(pptp_tree, offset, sizeof(hdr->cookie), + proto_tree_add_text(pptp_tree, NullTVB, offset, sizeof(hdr->cookie), "Cookie: %#08x", pntohl(&hdr->cookie)); offset += sizeof(hdr->cookie); - proto_tree_add_text(pptp_tree, offset, sizeof(hdr->cntrl_type), + proto_tree_add_text(pptp_tree, NullTVB, offset, sizeof(hdr->cntrl_type), "Control type: %s (%u)", cntrltype2str(cntrl_type), cntrl_type); offset += sizeof(hdr->cntrl_type); - proto_tree_add_text(pptp_tree, offset, sizeof(hdr->resv), + proto_tree_add_text(pptp_tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); @@ -442,37 +442,37 @@ dissect_cntrl_req(const u_char *pd, int offset, frame_data *fd, proto_tree *tree guint32 frame; guint32 bearer; - proto_tree_add_text(tree, offset, sizeof(hdr->major_ver) + sizeof(hdr->minor_ver), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->major_ver) + sizeof(hdr->minor_ver), "Protocol version: %u.%u", hdr->major_ver, hdr->minor_ver ); offset += sizeof(hdr->major_ver) + sizeof(hdr->minor_ver); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); frame = pntohl(&hdr->frame); - proto_tree_add_text(tree, offset, sizeof(hdr->frame), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->frame), "Framing capabilities: %s (%u)", frametype2str(frame), frame); offset += sizeof(hdr->frame); bearer = pntohl(&hdr->bearer); - proto_tree_add_text(tree, offset, sizeof(hdr->bearer), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->bearer), "Bearer capabilities: %s (%u)", bearertype2str(bearer), bearer); offset += sizeof(hdr->bearer); - proto_tree_add_text(tree, offset, sizeof(hdr->max_chan), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->max_chan), "Maximum channels: %u", pntohs(&hdr->max_chan)); offset += sizeof(hdr->max_chan); - proto_tree_add_text(tree, offset, sizeof(hdr->firm_rev), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->firm_rev), "Firmware revision: %u", pntohs(&hdr->firm_rev)); offset += sizeof(hdr->firm_rev); - proto_tree_add_text(tree, offset, sizeof(hdr->host), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->host), "Hostname: %s", hdr->host); offset += sizeof(hdr->host); - proto_tree_add_text(tree, offset, sizeof(hdr->vendor), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->vendor), "Vendor: %s", hdr->vendor); } @@ -482,41 +482,41 @@ dissect_cntrl_reply(const u_char *pd, int offset, frame_data *fd, proto_tree *tr guint32 frame; guint32 bearer; - proto_tree_add_text(tree, offset, sizeof(hdr->major_ver) + sizeof(hdr->minor_ver), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->major_ver) + sizeof(hdr->minor_ver), "Protocol version: %u.%u", hdr->major_ver, hdr->minor_ver ); offset += sizeof(hdr->major_ver) + sizeof(hdr->minor_ver); - proto_tree_add_text(tree, offset, sizeof(hdr->result), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->result), "Result: %s (%u)", cntrlresulttype2str(hdr->result), hdr->result); offset += sizeof(hdr->result); - proto_tree_add_text(tree, offset, sizeof(hdr->error), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->error), "Error: %s (%u)", errortype2str(hdr->error), hdr->error); offset += sizeof(hdr->error); frame = pntohl(&hdr->frame); - proto_tree_add_text(tree, offset, sizeof(hdr->frame), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->frame), "Framing capabilities: %s (%u)", frametype2str(frame), frame); offset += sizeof(hdr->frame); bearer = pntohl(&hdr->bearer); - proto_tree_add_text(tree, offset, sizeof(hdr->bearer), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->bearer), "Bearer capabilities: %s (%u)", bearertype2str(bearer), bearer); offset += sizeof(hdr->bearer); - proto_tree_add_text(tree, offset, sizeof(hdr->max_chan), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->max_chan), "Maximum channels: %u", pntohs(&hdr->max_chan)); offset += sizeof(hdr->max_chan); - proto_tree_add_text(tree, offset, sizeof(hdr->firm_rev), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->firm_rev), "Firmware revision: %u", pntohs(&hdr->firm_rev)); offset += sizeof(hdr->firm_rev); - proto_tree_add_text(tree, offset, sizeof(hdr->host), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->host), "Hostname: %s", hdr->host); offset += sizeof(hdr->host); - proto_tree_add_text(tree, offset, sizeof(hdr->vendor), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->vendor), "Vendor: %s", hdr->vendor); } @@ -524,15 +524,15 @@ static void dissect_stop_req(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct stop_req * hdr = (struct stop_req *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->reason), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->reason), "Reason: %s (%u)", reasontype2str(hdr->reason), hdr->reason); offset += sizeof(hdr->reason); - proto_tree_add_text(tree, offset, sizeof(hdr->resv0), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv0), "Reserved: %u", hdr->resv0); offset += sizeof(hdr->resv0); - proto_tree_add_text(tree, offset, sizeof(hdr->resv1), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv1), "Reserved: %u", pntohs(&hdr->resv1)); offset += sizeof(hdr->resv1); } @@ -541,15 +541,15 @@ static void dissect_stop_reply(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct stop_reply * hdr = (struct stop_reply *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->result), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->result), "Result: %s (%u)", stopresulttype2str(hdr->result), hdr->result); offset += sizeof(hdr->result); - proto_tree_add_text(tree, offset, sizeof(hdr->error), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->error), "Error: %s (%u)", errortype2str(hdr->error), hdr->error); offset += sizeof(hdr->error); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); } @@ -558,7 +558,7 @@ static void dissect_echo_req(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct echo_req * hdr = (struct echo_req *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->ident), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->ident), "Identifier: %u", pntohl(&hdr->ident)); offset += sizeof(hdr->ident); } @@ -567,19 +567,19 @@ static void dissect_echo_reply(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct echo_reply * hdr = (struct echo_reply *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->ident), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->ident), "Identifier: %u", pntohl(&hdr->ident)); offset += sizeof(hdr->ident); - proto_tree_add_text(tree, offset, sizeof(hdr->result), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->result), "Result: %s (%u)", echoresulttype2str(hdr->result), hdr->result); offset += sizeof(hdr->result); - proto_tree_add_text(tree, offset, sizeof(hdr->error), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->error), "Error: %s (%u)", errortype2str(hdr->error), hdr->error); offset += sizeof(hdr->error); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); } @@ -590,53 +590,53 @@ dissect_out_req(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) guint32 bearer; guint32 frame; - proto_tree_add_text(tree, offset, sizeof(hdr->call_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_id), "Call ID: %u", pntohs(&hdr->call_id)); offset += sizeof(hdr->call_id); - proto_tree_add_text(tree, offset, sizeof(hdr->call_serial), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_serial), "Call Serial Number: %u", pntohs(&hdr->call_serial)); offset += sizeof(hdr->call_serial); - proto_tree_add_text(tree, offset, sizeof(hdr->min_bps), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->min_bps), "Minimum BPS: %u", pntohl(&hdr->min_bps)); offset += sizeof(hdr->min_bps); - proto_tree_add_text(tree, offset, sizeof(hdr->max_bps), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->max_bps), "Maximum BPS: %u", pntohl(&hdr->max_bps)); offset += sizeof(hdr->max_bps); bearer = pntohl(&hdr->bearer); - proto_tree_add_text(tree, offset, sizeof(hdr->bearer), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->bearer), "Bearer capabilities: %s (%u)", bearertype2str(bearer), bearer); offset += sizeof(hdr->bearer); frame = pntohl(&hdr->frame); - proto_tree_add_text(tree, offset, sizeof(hdr->frame), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->frame), "Framing capabilities: %s (%u)", frametype2str(frame), frame); offset += sizeof(hdr->frame); - proto_tree_add_text(tree, offset, sizeof(hdr->win_size), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->win_size), "Receive window size: %u", pntohs(&hdr->win_size)); offset += sizeof(hdr->win_size); - proto_tree_add_text(tree, offset, sizeof(hdr->delay), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->delay), "Processing delay: %u", pntohs(&hdr->delay)); offset += sizeof(hdr->delay); - proto_tree_add_text(tree, offset, sizeof(hdr->phone_len), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->phone_len), "Phone number length: %u", pntohs(&hdr->phone_len)); offset += sizeof(hdr->phone_len); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); - proto_tree_add_text(tree, offset, sizeof(hdr->phone), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->phone), "Phone number: %s", hdr->phone); offset += sizeof(hdr->phone); - proto_tree_add_text(tree, offset, sizeof(hdr->subaddr), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->subaddr), "Subaddress: %s", hdr->subaddr); offset += sizeof(hdr->subaddr); } @@ -645,39 +645,39 @@ static void dissect_out_reply(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct out_reply * hdr = (struct out_reply *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->call_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_id), "Call ID: %u", pntohs(&hdr->call_id)); offset += sizeof(hdr->call_id); - proto_tree_add_text(tree, offset, sizeof(hdr->peer_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->peer_id), "Peer's call ID: %u", pntohs(&hdr->peer_id)); offset += sizeof(hdr->peer_id); - proto_tree_add_text(tree, offset, sizeof(hdr->result), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->result), "Result: %s (%u)", outresulttype2str(hdr->result), hdr->result); offset += sizeof(hdr->result); - proto_tree_add_text(tree, offset, sizeof(hdr->error), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->error), "Error: %s (%u)", errortype2str(hdr->error), hdr->error); offset += sizeof(hdr->error); - proto_tree_add_text(tree, offset, sizeof(hdr->cause), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->cause), "Cause code: %u", pntohs(&hdr->cause)); offset += sizeof(hdr->cause); - proto_tree_add_text(tree, offset, sizeof(hdr->speed), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->speed), "Connect speed: %u", pntohl(&hdr->speed)); offset += sizeof(hdr->speed); - proto_tree_add_text(tree, offset, sizeof(hdr->win_size), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->win_size), "Receive window size: %u", pntohs(&hdr->win_size)); offset += sizeof(hdr->win_size); - proto_tree_add_text(tree, offset, sizeof(hdr->delay), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->delay), "Processing delay: %u", pntohs(&hdr->delay)); offset += sizeof(hdr->delay); - proto_tree_add_text(tree, offset, sizeof(hdr->channel_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->channel_id), "Physical channel ID: %u", pntohl(&hdr->channel_id)); offset += sizeof(hdr->channel_id); } @@ -688,40 +688,40 @@ dissect_in_req(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct in_req * hdr = (struct in_req *)(pd + offset); guint32 bearer; - proto_tree_add_text(tree, offset, sizeof(hdr->call_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_id), "Call ID: %u", pntohs(&hdr->call_id)); offset += sizeof(hdr->call_id); - proto_tree_add_text(tree, offset, sizeof(hdr->call_serial), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_serial), "Call serial number: %u", pntohs(&hdr->call_serial)); offset += sizeof(hdr->call_serial); bearer = pntohl(&hdr->bearer); - proto_tree_add_text(tree, offset, sizeof(hdr->bearer), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->bearer), "Bearer capabilities: %s (%u)", bearertype2str(bearer), bearer); offset += sizeof(hdr->bearer); - proto_tree_add_text(tree, offset, sizeof(hdr->channel_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->channel_id), "Physical channel ID: %u", pntohl(&hdr->channel_id)); offset += sizeof(hdr->channel_id); - proto_tree_add_text(tree, offset, sizeof(hdr->dialed_len), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->dialed_len), "Dialed number length: %u", pntohs(&hdr->dialed_len)); offset += sizeof(hdr->dialed_len); - proto_tree_add_text(tree, offset, sizeof(hdr->dialing_len), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->dialing_len), "Dialing number length: %u", pntohs(&hdr->dialing_len)); offset += sizeof(hdr->dialing_len); - proto_tree_add_text(tree, offset, sizeof(hdr->dialed), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->dialed), "Dialed number: %s", hdr->dialed); offset += sizeof(hdr->dialed); - proto_tree_add_text(tree, offset, sizeof(hdr->dialing), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->dialing), "Dialing number: %s", hdr->dialing); offset += sizeof(hdr->dialing); - proto_tree_add_text(tree, offset, sizeof(hdr->subaddr), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->subaddr), "Subaddress: %s", hdr->subaddr); offset += sizeof(hdr->subaddr); } @@ -730,31 +730,31 @@ static void dissect_in_reply(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct in_reply * hdr = (struct in_reply *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->call_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_id), "Call ID: %u", pntohs(&hdr->call_id)); offset += sizeof(hdr->call_id); - proto_tree_add_text(tree, offset, sizeof(hdr->peer_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->peer_id), "Peer's call ID: %u", pntohs(&hdr->peer_id)); offset += sizeof(hdr->peer_id); - proto_tree_add_text(tree, offset, sizeof(hdr->result), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->result), "Result: %s (%u)", inresulttype2str(hdr->result), hdr->result); offset += sizeof(hdr->result); - proto_tree_add_text(tree, offset, sizeof(hdr->error), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->error), "Error: %s (%u)", errortype2str(hdr->error), hdr->error); offset += sizeof(hdr->error); - proto_tree_add_text(tree, offset, sizeof(hdr->win_size), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->win_size), "Receive window size: %u", pntohs(&hdr->win_size)); offset += sizeof(hdr->win_size); - proto_tree_add_text(tree, offset, sizeof(hdr->delay), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->delay), "Processing delay: %u", pntohs(&hdr->delay)); offset += sizeof(hdr->delay); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", hdr->resv); offset += sizeof(hdr->resv); } @@ -764,28 +764,28 @@ dissect_in_connected(const u_char *pd, int offset, frame_data *fd, proto_tree *t struct in_connected * hdr = (struct in_connected *)(pd + offset); guint32 frame; - proto_tree_add_text(tree, offset, sizeof(hdr->peer_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->peer_id), "Peer's call ID: %u", pntohs(&hdr->peer_id)); offset += sizeof(hdr->peer_id); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); - proto_tree_add_text(tree, offset, sizeof(hdr->speed), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->speed), "Connect speed: %u", pntohl(&hdr->speed)); offset += sizeof(hdr->speed); - proto_tree_add_text(tree, offset, sizeof(hdr->win_size), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->win_size), "Receive window size: %u", pntohs(&hdr->win_size)); offset += sizeof(hdr->win_size); - proto_tree_add_text(tree, offset, sizeof(hdr->delay), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->delay), "Processing delay: %u", pntohs(&hdr->delay)); offset += sizeof(hdr->delay); frame = pntohl(&hdr->frame); - proto_tree_add_text(tree, offset, sizeof(hdr->frame), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->frame), "Framing capabilities: %s (%u)", frametype2str(frame), frame); offset += sizeof(hdr->frame); } @@ -794,11 +794,11 @@ static void dissect_clear_req(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct clear_req * hdr = (struct clear_req *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->call_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_id), "Call ID: %u", pntohs(&hdr->call_id)); offset += sizeof(hdr->call_id); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); } @@ -807,27 +807,27 @@ static void dissect_disc_notify(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct disc_notify * hdr = (struct disc_notify *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->call_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->call_id), "Call ID: %u", pntohs(&hdr->call_id)); offset += sizeof(hdr->call_id); - proto_tree_add_text(tree, offset, sizeof(hdr->result), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->result), "Result: %s (%u)", discresulttype2str(hdr->result), hdr->result); offset += sizeof(hdr->result); - proto_tree_add_text(tree, offset, sizeof(hdr->error), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->error), "Error: %s (%u)", errortype2str(hdr->error), hdr->error); offset += sizeof(hdr->error); - proto_tree_add_text(tree, offset, sizeof(hdr->cause), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->cause), "Cause code: %u", pntohs(&hdr->cause)); offset += sizeof(hdr->cause); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); - proto_tree_add_text(tree, offset, sizeof(hdr->stats), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->stats), "Call statistics: %s", hdr->stats); offset += sizeof(hdr->stats); } @@ -836,35 +836,35 @@ static void dissect_error_notify(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct error_notify * hdr = (struct error_notify *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->peer_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->peer_id), "Peer's call ID: %u", pntohs(&hdr->peer_id)); offset += sizeof(hdr->peer_id); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); - proto_tree_add_text(tree, offset, sizeof(hdr->crc), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->crc), "CRC errors: %u", pntohl(&hdr->crc)); offset += sizeof(hdr->crc); - proto_tree_add_text(tree, offset, sizeof(hdr->frame), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->frame), "Framing errors: %u", pntohl(&hdr->frame)); offset += sizeof(hdr->frame); - proto_tree_add_text(tree, offset, sizeof(hdr->hardware), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->hardware), "Hardware overruns: %u", pntohl(&hdr->hardware)); offset += sizeof(hdr->hardware); - proto_tree_add_text(tree, offset, sizeof(hdr->buffer), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->buffer), "Buffer overruns: %u", pntohl(&hdr->buffer)); offset += sizeof(hdr->buffer); - proto_tree_add_text(tree, offset, sizeof(hdr->timeout), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->timeout), "Time-out errors: %u", pntohl(&hdr->timeout)); offset += sizeof(hdr->timeout); - proto_tree_add_text(tree, offset, sizeof(hdr->alignment), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->alignment), "Alignment errors: %u", pntohl(&hdr->alignment)); offset += sizeof(hdr->alignment); } @@ -873,19 +873,19 @@ static void dissect_set_link(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { struct set_link * hdr = (struct set_link *)(pd + offset); - proto_tree_add_text(tree, offset, sizeof(hdr->peer_id), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->peer_id), "Peer's call ID: %u", pntohs(&hdr->peer_id)); offset += sizeof(hdr->peer_id); - proto_tree_add_text(tree, offset, sizeof(hdr->resv), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->resv), "Reserved: %u", pntohs(&hdr->resv)); offset += sizeof(hdr->resv); - proto_tree_add_text(tree, offset, sizeof(hdr->send_acm), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->send_acm), "Send ACCM: %#08x", pntohl(&hdr->send_acm)); offset += sizeof(hdr->send_acm); - proto_tree_add_text(tree, offset, sizeof(hdr->recv_acm), + proto_tree_add_text(tree, NullTVB, offset, sizeof(hdr->recv_acm), "Recv ACCM: %#08x", pntohl(&hdr->recv_acm)); offset += sizeof(hdr->recv_acm); } diff --git a/packet-q2931.c b/packet-q2931.c index 206b575488..92361aa137 100644 --- a/packet-q2931.c +++ b/packet-q2931.c @@ -2,7 +2,7 @@ * Routines for Q.2931 frame disassembly * Guy Harris * - * $Id: packet-q2931.c,v 1.7 2000/01/13 05:41:22 guy Exp $ + * $Id: packet-q2931.c,v 1.8 2000/05/11 08:15:36 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -259,7 +259,7 @@ dissect_q2931_shift_ie(const u_char *pd, int offset, int len, non_locking_shift = (info_element == Q2931_IE_BBAND_NLOCKING_SHIFT); codeset = pd[offset] & 0x07; - proto_tree_add_text(tree, offset, 1, "%s shift to codeset %u: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "%s shift to codeset %u: %s", (non_locking_shift ? "Non-locking" : "Locking"), codeset, val_to_str(codeset, q2931_codeset_vals, "Unknown (0x%02X)")); @@ -347,7 +347,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len == 0) return; aal_type = pd[offset]; - proto_tree_add_text(tree, offset, 1, "AAL type: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AAL type: %s", val_to_str(aal_type, q9231_aal_type_vals, "Unknown (0x%02X)")); offset += 1; len -= 1; @@ -361,7 +361,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, */ if (len > 4) len = 4; - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "User defined AAL information: %s", bytes_to_str(&pd[offset], len)); return; @@ -375,7 +375,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Subtype: %s", val_to_str(value, q9231_aal1_subtype_vals, "Unknown (0x%02X)")); @@ -387,7 +387,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "CBR rate: %s", val_to_str(value, q9231_aal1_cbr_rate_vals, "Unknown (0x%02X)")); @@ -399,7 +399,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Multiplier: %u", value); offset += 3; len -= 3; @@ -409,7 +409,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Source clock frequency recovery method: %s", val_to_str(value, q2931_aal1_src_clk_rec_meth_vals, "Unknown (0x%02X)")); @@ -421,7 +421,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Error correction method: %s", val_to_str(value, q2931_aal1_err_correction_method_vals, "Unknown (0x%02X)")); @@ -433,7 +433,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Structured data transfer block size: %u", value); offset += 3; len -= 3; @@ -443,7 +443,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Partially filled cells method: %u octets", value); offset += 2; len -= 2; @@ -453,7 +453,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Forward maximum CPCS-SDU size: %u", value); offset += 3; len -= 3; @@ -463,7 +463,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 3) return; value = pntohs(&pd[offset + 1]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Backward maximum CPCS-SDU size: %u", value); offset += 3; len -= 3; @@ -474,7 +474,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, return; low_mid = pntohs(&pd[offset + 1]); high_mid = pntohs(&pd[offset + 3]); - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "MID range: %u - %u", low_mid, high_mid); offset += 5; len -= 5; @@ -484,7 +484,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "SSCS type: %s", val_to_str(value, q2931_sscs_type_vals, "Unknown (0x%02X)")); @@ -493,7 +493,7 @@ dissect_q2931_aal_parameters_ie(const u_char *pd, int offset, int len, break; default: /* unknown AAL parameter */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown AAL parameter (0x%02X)", identifier); return; /* give up */ @@ -565,7 +565,7 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, value = (pd[offset + 1] << 16) | (pd[offset + 2] << 8) | (pd[offset + 3] << 0); - proto_tree_add_text(tree, offset, 4, + proto_tree_add_text(tree, NullTVB, offset, 4, "%s: %u cell%s/s", val_to_str(identifier, q2931_atm_td_subfield_vals, NULL), @@ -576,7 +576,7 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, case Q2931_ATM_CR_BEST_EFFORT_IND: /* Yes, its value *IS* 0xBE.... */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s", val_to_str(identifier, q2931_atm_td_subfield_vals, NULL)); @@ -588,20 +588,20 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pd[offset + 1]; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "%s", val_to_str(identifier, q2931_atm_td_subfield_vals, NULL)); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "%s allowed in forward direction", (value & 0x80) ? "Frame discard" : "No frame discard"); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "%s allowed in backward direction", (value & 0x40) ? "Frame discard" : "No frame discard"); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "Tagging %srequested in backward direction", (value & 0x02) ? "" : "not "); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "Tagging %srequested in forward direction", (value & 0x01) ? "" : "not "); offset += 2; @@ -609,7 +609,7 @@ dissect_q2931_atm_cell_rate_ie(const u_char *pd, int offset, int len, break; default: /* unknown ATM traffic descriptor element */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown ATM traffic descriptor element (0x%02X)", identifier); return; /* give up */ @@ -665,7 +665,7 @@ dissect_q2931_bband_bearer_cap_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Bearer class: %s", val_to_str(octet & 0x1F, q2931_bearer_class_vals, "Unknown (0x%02X)")); @@ -676,7 +676,7 @@ dissect_q2931_bband_bearer_cap_ie(const u_char *pd, int offset, int len, return; if (!(octet & Q2931_IE_EXTENSION)) { octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "ATM Transfer Capability: %s", val_to_str(octet & 0x1F, q2931_transfer_capability_vals, "Unknown (0x%02X)")); @@ -687,11 +687,11 @@ dissect_q2931_bband_bearer_cap_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Susceptibility to clipping: %s", val_to_str(octet & 0x60, q2931_susc_clip_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User-plane connection configuration: %s", val_to_str(octet & 0x03, q2931_up_conn_config_vals, "Unknown (0x%02X)")); @@ -717,7 +717,7 @@ dissect_q2931_bband_hi_layer_info_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "High layer information type: %s", val_to_str(octet & 0x7F, q2931_hi_layer_info_type_vals, "Unknown (0x%02X)")); @@ -800,7 +800,7 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, /* * Layer 1 information. */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 1 protocol: 0x%02X", octet & 0x1F); offset += 1; @@ -815,7 +815,7 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, * Layer 2 information. */ uil2_protocol = octet & 0x1F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 2 protocol: %s", val_to_str(uil2_protocol, q2931_uil2_vals, "Unknown (0x%02X)")); @@ -828,11 +828,11 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; if (uil2_protocol == Q2931_UIL2_USER_SPEC) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User-specified layer 2 protocol information: 0x%02X", octet & 0x7F); } else { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Mode: %s", val_to_str(octet & 0x60, q2931_mode_vals, "Unknown (0x%02X)")); @@ -845,7 +845,7 @@ dissect_q2931_bband_low_layer_info_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Window size: %u k", octet & 0x7F); offset += 1; len -= 1; @@ -861,7 +861,7 @@ l2_done: * Layer 3 information. */ uil3_protocol = octet & 0x1F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 3 protocol: %s", val_to_str(uil3_protocol, q2931_uil3_vals, "Unknown (0x%02X)")); @@ -882,7 +882,7 @@ l2_done: case Q2931_UIL3_X25_PL: case Q2931_UIL3_ISO_8208: case Q2931_UIL3_X223: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Mode: %s", val_to_str(octet & 0x60, q2931_mode_vals, "Unknown (0x%02X)")); @@ -894,7 +894,7 @@ l2_done: if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Default packet size: %u", octet & 0x0F); offset += 1; len -= 1; @@ -904,14 +904,14 @@ l2_done: if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Packet window size: %u", octet & 0x7F); offset += 1; len -= 1; break; case Q2931_UIL3_USER_SPEC: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Default packet size: %u octets", 1 << (octet & 0x0F)); offset += 1; @@ -925,7 +925,7 @@ l2_done: if (len < 2) return; add_l3_info |= (pd[offset + 1] & 0x40) >> 6; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Additional layer 3 protocol information: %s", val_to_str(add_l3_info, nlpid_vals, "Unknown (0x%02X)")); @@ -938,7 +938,7 @@ l2_done: len -= 1; organization_code = pd[offset] << 16 | pd[offset+1] << 8 | pd[offset+2]; - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Organization Code: 0x%06X (%s)", organization_code, val_to_str(organization_code, oui_vals, @@ -952,21 +952,21 @@ l2_done: switch (organization_code) { case OUI_ENCAP_ETHER: - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Ethernet type: %s", val_to_str(pid, etype_vals, "Unknown (0x%04X)")); break; case OUI_ATM_FORUM: - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "LANE Protocol ID: %s", val_to_str(pid, lane_pid_vals, "Unknown (0x%04X)")); break; default: - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Protocol ID: 0x%04X", pid); break; } @@ -1098,7 +1098,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Location: %s", val_to_str(octet & 0x0F, q2931_cause_location_vals, "Unknown (0x%X)")); @@ -1109,7 +1109,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; cause_value = octet & 0x7F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Cause value: %s", val_to_str(cause_value, q2931_cause_code_vals, "Unknown (0x%X)")); @@ -1124,13 +1124,13 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_NO_ROUTE_TO_DEST: case Q2931_CAUSE_QOS_UNAVAILABLE: octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Network service: %s", (octet & 0x80) ? "User" : "Provider"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s", (octet & 0x40) ? "Abnormal" : "Normal"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Condition: %s", val_to_str(octet & 0x03, q2931_cause_condition_vals, "Unknown (0x%X)")); @@ -1138,11 +1138,11 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_CALL_REJECTED: rejection_reason = octet & 0x7C; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Rejection reason: %s", val_to_str(octet & 0x7C, q2931_cause_condition_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Condition: %s", val_to_str(octet & 0x03, q2931_cause_condition_vals, "Unknown (0x%X)")); @@ -1154,27 +1154,27 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, switch (rejection_reason) { case Q2931_REJ_USER_SPECIFIC: - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "User specific diagnostic: %s", bytes_to_str(&pd[offset], len)); break; case Q2931_REJ_IE_MISSING: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Missing information element: %s", val_to_str(pd[offset], q2931_info_element_vals, "Unknown (0x%02X)")); break; case Q2931_REJ_IE_INSUFFICIENT: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Insufficient information element: %s", val_to_str(pd[offset], q2931_info_element_vals, "Unknown (0x%02X)")); break; default: - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Diagnostic: %s", bytes_to_str(&pd[offset], len)); break; @@ -1206,7 +1206,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_IE_NONEX_OR_UNIMPL: case Q2931_CAUSE_INVALID_IE_CONTENTS: do { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Information element: %s", val_to_str(pd[offset], q2931_info_element_vals, "Unknown (0x%02X)")); @@ -1217,7 +1217,7 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_CELL_RATE_UNAVAIL: do { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Cell rate subfield identifier: %s", val_to_str(pd[offset], q2931_atm_td_subfield_vals, "Unknown (0x%02X)")); @@ -1229,20 +1229,20 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_CHAN_NONEXISTENT: if (len < 2) return; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "VPCI: %u", pntohs(&pd[offset])); offset += 2; len -= 2; if (len < 2) return; - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "VCI: %u", pntohs(&pd[offset])); break; case Q2931_CAUSE_MT_NONEX_OR_UNIMPL: case Q2931_CAUSE_MSG_INCOMPAT_W_CS: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Message type: %s", val_to_str(pd[offset], q2931_message_type_vals, "Unknown (0x%02X)")); @@ -1251,12 +1251,12 @@ dissect_q2931_cause_ie(const u_char *pd, int offset, int len, case Q2931_CAUSE_REC_TIMER_EXP: if (len < 3) return; - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Timer: %.3s", &pd[offset]); break; default: - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Diagnostics: %s", bytes_to_str(&pd[offset], len)); } @@ -1296,7 +1296,7 @@ dissect_q2931_call_state_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Call state: %s", val_to_str(octet & 0x3F, q2931_call_state_vals, "Unknown (0x%02X)")); @@ -1353,12 +1353,12 @@ dissect_q2931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of number: %s", val_to_str(octet & 0x70, q2931_number_type_vals, "Unknown (0x%02X)")); numbering_plan = octet & 0x0F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Numbering plan: %s", val_to_str(numbering_plan, q2931_numbering_plan_vals, "Unknown (0x%02X)")); @@ -1369,11 +1369,11 @@ dissect_q2931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Presentation indicator: %s", val_to_str(octet & 0x60, q2931_presentation_indicator_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Screening indicator: %s", val_to_str(octet & 0x03, q2931_screening_indicator_vals, "Unknown (0x%X)")); @@ -1386,24 +1386,24 @@ dissect_q2931_number_ie(const u_char *pd, int offset, int len, switch (numbering_plan) { case Q2931_ISDN_NUMBERING: - proto_tree_add_text(tree, offset, len, "Number: %.*s", + proto_tree_add_text(tree, NullTVB, offset, len, "Number: %.*s", len, &pd[offset]); break; case Q2931_NSAP_ADDRESSING: if (len < 20) { - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Number (too short): %s", bytes_to_str(&pd[offset], len)); return; } - ti = proto_tree_add_text(tree, offset, len, "Number"); + ti = proto_tree_add_text(tree, NullTVB, offset, len, "Number"); nsap_tree = proto_item_add_subtree(ti, ett_q2931_nsap); dissect_atm_nsap(pd, offset, len, nsap_tree); break; default: - proto_tree_add_text(tree, offset, len, "Number: %s", + proto_tree_add_text(tree, NullTVB, offset, len, "Number: %s", bytes_to_str(&pd[offset], len)); break; } @@ -1434,11 +1434,11 @@ dissect_q2931_party_subaddr_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of subaddress: %s", val_to_str(octet & 0x70, q2931_subaddress_type_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Odd/even indicator: %s", val_to_str(octet & 0x10, q2931_odd_even_indicator_vals, NULL)); @@ -1447,7 +1447,7 @@ dissect_q2931_party_subaddr_ie(const u_char *pd, int offset, int len, if (len == 0) return; - proto_tree_add_text(tree, offset, len, "Subaddress: %s", + proto_tree_add_text(tree, NullTVB, offset, len, "Subaddress: %s", bytes_to_str(&pd[offset], len)); } @@ -1476,11 +1476,11 @@ dissect_q2931_connection_identifier_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "VP-associated signalling: %s", val_to_str(octet & 0x18, q2931_vp_associated_signalling_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Preferred/exclusive: %s", val_to_str(octet & 0x07, q2931_preferred_exclusive_vals, "Unknown (0x%02X)")); @@ -1489,14 +1489,14 @@ dissect_q2931_connection_identifier_ie(const u_char *pd, int offset, int len, if (len < 2) return; - proto_tree_add_text(tree, offset, 2, "VPCI: %u", + proto_tree_add_text(tree, NullTVB, offset, 2, "VPCI: %u", pntohs(&pd[offset])); offset += 2; len -= 2; if (len < 2) return; - proto_tree_add_text(tree, offset, 2, "VCI: %u", + proto_tree_add_text(tree, NullTVB, offset, 2, "VCI: %u", pntohs(&pd[offset])); } @@ -1516,23 +1516,23 @@ dissect_q2931_e2e_transit_delay_ie(const u_char *pd, int offset, int len, switch (identifier) { case 0x01: /* Cumulative transit delay identifier */ - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Cumulative transit delay: %u ms", value); break; case 0x03: /* Maximum transit delay identifier */ if (value == 0xFFFF) { - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Any end-to-end transit delay value acceptable"); } else { - proto_tree_add_text(tree, offset, 3, + proto_tree_add_text(tree, NullTVB, offset, 3, "Maximum end-to-end transit delay: %u ms", value); } break; default: /* Unknown transit delay identifier */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown transit delay identifier (0x%02X)", identifier); return; /* give up */ @@ -1557,7 +1557,7 @@ dissect_q2931_qos_parameter_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "QOS class forward: %s", val_to_str(octet, q2931_qos_parameter_vals, "Unknown (0x%02X)")); @@ -1567,7 +1567,7 @@ dissect_q2931_qos_parameter_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "QOS class backward: %s", val_to_str(octet, q2931_qos_parameter_vals, "Unknown (0x%02X)")); @@ -1590,7 +1590,7 @@ dissect_q2931_bband_rpt_indicator(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Broadband repeat indicator: %s", val_to_str(octet & 0x0F, q2931_bband_rpt_indicator_vals, "Unknown (0x%02X)")); @@ -1615,7 +1615,7 @@ dissect_q2931_restart_indicator(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Restart indicator: %s", val_to_str(octet & 0x07, q2931_class_vals, "Unknown (0x%02X)")); @@ -1635,14 +1635,14 @@ dissect_q2931_bband_sending_compl_ie(const u_char *pd, int offset, int len, switch (identifier) { case 0xA1: /* Sending complete indication */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Broadband sending complete indication"); offset += 1; len -= 1; break; default: /* unknown broadband sending complete element */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Unknown broadband sending complete element (0x%02X)", identifier); return; /* give up */ @@ -1676,11 +1676,11 @@ dissect_q2931_transit_network_sel_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of network identification: %s", val_to_str(octet & 0x70, q2931_netid_type_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Network identification plan: %s", val_to_str(octet & 0x0F, q2931_netid_plan_vals, "Unknown (0x%02X)")); @@ -1689,7 +1689,7 @@ dissect_q2931_transit_network_sel_ie(const u_char *pd, int offset, int len, if (len == 0) return; - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Network identification: %.*s", len, &pd[offset]); } @@ -1731,14 +1731,14 @@ dissect_q2931_oam_traffic_descriptor_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Shaping indicator: %s", val_to_str(octet & 0x60, q2931_shaping_indicator_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Use of end-to-end OAM F5 flow is %s", (octet & 0x10) ? "mandatory" : "optional"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User-Network fault management indicator: %s", val_to_str(octet & 0x07, q2931_user_net_fault_mgmt_vals, "Unknown (0x%02X)")); @@ -1748,11 +1748,11 @@ dissect_q2931_oam_traffic_descriptor_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Forward end-to-end OAM F5 flow indicator: %s", val_to_str(octet & 0x70, q2931_fwd_e2e_oam_f5_flow_indicator_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Backward end-to-end OAM F5 flow indicator: %s", val_to_str(octet & 0x07, q2931_bwd_e2e_oam_f5_flow_indicator_vals, "Unknown (0x%02X)")); @@ -1776,7 +1776,7 @@ dissect_q2931_endpoint_reference_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Endpoint reference type: %s", val_to_str(octet, q2931_endpoint_reference_type_vals, "Unknown (0x%02X)")); @@ -1786,11 +1786,11 @@ dissect_q2931_endpoint_reference_ie(const u_char *pd, int offset, int len, if (len < 2) return; value = pntohs(&pd[offset]); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Endpoint reference flag: %s", (value & 0x8000) ? "Message sent to side that originates the endpoint reference" : "Message sent from side that originates the endpoint reference"); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Endpoint reference identifier value: %u", value & 0x7FFF); } @@ -1817,7 +1817,7 @@ dissect_q2931_endpoint_state_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Endpoint reference party-state: %s", val_to_str(octet & 0x3F, q2931_endpoint_reference_party_state_vals, "Unknown (0x%02X)")); @@ -1935,34 +1935,34 @@ dissect_q2931_ie(const u_char *pd, int offset, int len, proto_tree *tree, proto_tree *ie_tree; proto_tree *ie_ext_tree; - ti = proto_tree_add_text(tree, offset, 1+1+2+len, "%s", + ti = proto_tree_add_text(tree, NullTVB, offset, 1+1+2+len, "%s", val_to_str(info_element, q2931_info_element_vals, "Unknown information element (0x%02X)")); ie_tree = proto_item_add_subtree(ti, ett_q2931_ie); - proto_tree_add_text(ie_tree, offset, 1, "Information element: %s", + proto_tree_add_text(ie_tree, NullTVB, offset, 1, "Information element: %s", val_to_str(info_element, q2931_info_element_vals, "Unknown (0x%02X)")); - ti = proto_tree_add_text(ie_tree, offset + 1, 1, + ti = proto_tree_add_text(ie_tree, NullTVB, offset + 1, 1, "Information element extension: 0x%02x", info_element_ext); ie_ext_tree = proto_item_add_subtree(ti, ett_q2931_ie_ext); - proto_tree_add_text(ie_ext_tree, offset + 1, 1, + proto_tree_add_text(ie_ext_tree, NullTVB, offset + 1, 1, decode_enumerated_bitfield(info_element_ext, Q2931_IE_COMPAT_CODING_STD, 8, coding_std_vals, "Coding standard: %s")); - proto_tree_add_text(ie_ext_tree, offset + 1, 1, + proto_tree_add_text(ie_ext_tree, NullTVB, offset + 1, 1, decode_boolean_bitfield(info_element_ext, Q2931_IE_COMPAT_FOLLOW_INST, 8, "Follow explicit error handling instructions", "Regular error handling procedures apply")); if (info_element_ext & Q2931_IE_COMPAT_FOLLOW_INST) { - proto_tree_add_text(ie_ext_tree, offset + 1, 1, + proto_tree_add_text(ie_ext_tree, NullTVB, offset + 1, 1, decode_enumerated_bitfield(info_element_ext, Q2931_IE_COMPAT_ACTION_IND, 8, ie_action_ind_vals, "Action indicator: %s")); } - proto_tree_add_text(ie_tree, offset + 2, 2, "Length: %u", len); + proto_tree_add_text(ie_tree, NullTVB, offset + 2, 2, "Length: %u", len); if ((info_element_ext & Q2931_IE_COMPAT_CODING_STD) == Q2931_ITU_STANDARDIZED_CODING) { @@ -1973,7 +1973,7 @@ dissect_q2931_ie(const u_char *pd, int offset, int len, proto_tree *tree, * We don't know how it's encoded, so just * dump it as data and be done with it. */ - proto_tree_add_text(ie_tree, offset + 4, len, + proto_tree_add_text(ie_tree, NullTVB, offset + 4, len, "Data: %s", bytes_to_str(&pd[offset + 4], len)); } } @@ -1999,22 +1999,22 @@ dissect_q2931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_PROTOCOL, "Q.2931"); if (tree) { - ti = proto_tree_add_item(tree, proto_q2931, offset, + ti = proto_tree_add_item(tree, proto_q2931, NullTVB, offset, END_OF_FRAME, NULL); q2931_tree = proto_item_add_subtree(ti, ett_q2931); - proto_tree_add_item(q2931_tree, hf_q2931_discriminator, offset, 1, pd[offset]); + proto_tree_add_item(q2931_tree, hf_q2931_discriminator, NullTVB, offset, 1, pd[offset]); } offset += 1; call_ref_len = pd[offset] & 0xF; /* XXX - do as a bit field? */ if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_call_ref_len, offset, 1, call_ref_len); + proto_tree_add_item(q2931_tree, hf_q2931_call_ref_len, NullTVB, offset, 1, call_ref_len); offset += 1; if (call_ref_len != 0) { /* XXX - split this into flag and value */ memcpy(call_ref, &pd[offset], call_ref_len); if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_call_ref, offset, call_ref_len, call_ref); + proto_tree_add_item(q2931_tree, hf_q2931_call_ref, NullTVB, offset, call_ref_len, call_ref); offset += call_ref_len; } message_type = pd[offset]; @@ -2024,18 +2024,18 @@ dissect_q2931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) "Unknown message type (0x%02X)")); } if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_message_type, offset, 1, message_type); + proto_tree_add_item(q2931_tree, hf_q2931_message_type, NullTVB, offset, 1, message_type); offset += 1; message_type_ext = pd[offset]; if (q2931_tree != NULL) { - ti = proto_tree_add_item(q2931_tree, hf_q2931_message_type_ext, + ti = proto_tree_add_item(q2931_tree, hf_q2931_message_type_ext, NullTVB, offset, 1, message_type_ext); ext_tree = proto_item_add_subtree(ti, ett_q2931_ext); - proto_tree_add_item(ext_tree, hf_q2931_message_flag, + proto_tree_add_item(ext_tree, hf_q2931_message_flag, NullTVB, offset, 1, message_type_ext); if (message_type_ext & Q2931_MSG_TYPE_EXT_FOLLOW_INST) { - proto_tree_add_item(ext_tree, hf_q2931_message_action_indicator, + proto_tree_add_item(ext_tree, hf_q2931_message_action_indicator, NullTVB, offset, 1, message_type_ext); } } @@ -2043,7 +2043,7 @@ dissect_q2931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) message_len = pntohs(&pd[offset]); if (q2931_tree != NULL) - proto_tree_add_item(q2931_tree, hf_q2931_message_len, offset, 2, message_len); + proto_tree_add_item(q2931_tree, hf_q2931_message_len, NullTVB, offset, 2, message_len); offset += 2; /* diff --git a/packet-q931.c b/packet-q931.c index bb568c236f..001f33afb2 100644 --- a/packet-q931.c +++ b/packet-q931.c @@ -2,7 +2,7 @@ * Routines for Q.931 frame disassembly * Guy Harris * - * $Id: packet-q931.c,v 1.13 2000/01/13 05:41:21 guy Exp $ + * $Id: packet-q931.c,v 1.14 2000/05/11 08:15:39 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -314,20 +314,20 @@ dissect_q931_segmented_message_ie(const u_char *pd, int offset, int len, proto_tree *tree) { if (len != 2) { - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Segmented message: length is %d, should be 2\n", len); return; } if (pd[offset] & 0x80) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "First segment: %u segments remaining", pd[offset] & 0x7F); } else { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Not first segment: %u segments remaining", pd[offset] & 0x7F); } - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "Segmented message type: %u\n", pd[offset + 1]); } @@ -522,7 +522,7 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; coding_standard = octet & 0x60; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Coding standard: %s", val_to_str(coding_standard, q931_bc_coding_standard_vals, NULL)); if (coding_standard != Q931_ITU_STANDARDIZED_CODING) { @@ -530,11 +530,11 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, * We don't know how the bearer capability is encoded, * so just dump it as data and be done with it. */ - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Data: %s", bytes_to_str(&pd[offset], len)); return; } - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Information transfer capability: %s", val_to_str(octet & 0x1F, q931_information_transfer_capability_vals, "Unknown (0x%02X)")); @@ -548,7 +548,7 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Out-band negotiation %spossible", (octet & 0x40) ? "" : "not "); offset += 1; @@ -558,12 +558,12 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Transfer mode: %s", val_to_str(octet & 0x60, q931_transfer_mode_vals, "Unknown (0x%02X)")); it_rate = octet & 0x1F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Information transfer rate: %s", val_to_str(it_rate, q931_information_transfer_rate_vals, "Unknown (0x%02X)")); @@ -573,7 +573,7 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (it_rate == Q931_IT_RATE_MULTIRATE) { if (len == 0) return; - proto_tree_add_text(tree, offset, 1, "Rate multiplier: %u", pd[offset]); + proto_tree_add_text(tree, NullTVB, offset, 1, "Rate multiplier: %u", pd[offset]); offset += 1; len -= 1; } @@ -585,7 +585,7 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, /* * Layer 1 information. */ - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 1 protocol: %s", val_to_str(octet & 0x1F, q931_uil1_vals, "Unknown (0x%02X)")); @@ -597,13 +597,13 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Layer 1 is %s", (octet & 0x40) ? "Asynchronous" : "Synchronous"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Layer 1 in-band negotiation is %spossible", (octet & 0x20) ? "" : "not "); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User rate: %s", val_to_str(octet & 0x1F, q931_l1_user_rate_vals, "Unknown (0x%02X)")); @@ -615,20 +615,20 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Intermediate rate: %s", val_to_str(octet & 0x60, q931_l1_intermediate_rate_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s to send data with network independent clock", (octet & 0x10) ? "Required" : "Not required"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s accept data with network independent clock", (octet & 0x08) ? "Can" : "Cannot"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s to send data with flow control mechanism", (octet & 0x04) ? "Required" : "Not required"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s accept data with flow control mechanism", (octet & 0x02) ? "Can" : "Cannot"); offset += 1; @@ -639,22 +639,22 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Rate adaption header %sincluded", (octet & 0x40) ? "" : "not "); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Multiple frame establishment %ssupported", (octet & 0x20) ? "" : "not "); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s mode of operation", (octet & 0x10) ? "Protocol sensitive" : "Bit transparent"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, (octet & 0x08) ? "Full protocol negotiation" : "LLI = 256 only"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Message originator is %s", (octet & 0x04) ? "Assignor only" : "Default assignee"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Negotiation is done %s", (octet & 0x02) ? "in-band" : "out-of-band"); offset += 1; @@ -665,15 +665,15 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Stop bits: %s", val_to_str(octet & 0x60, q931_l1_stop_bits_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Data bits: %s", val_to_str(octet & 0x18, q931_l1_data_bits_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Parity: %s", val_to_str(octet & 0x08, q931_l1_parity_vals, "Unknown (0x%X)")); @@ -683,19 +683,19 @@ dissect_q931_bearer_capability_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s duplex", (octet & 0x40) ? "Full" : "Half"); modem_type = octet & 0x3F; if (modem_type <= 0x5 || (modem_type >= 0x20 && modem_type <= 0x2F)) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Modem type: National use 0x%02X", modem_type); } else if (modem_type >= 0x30) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Modem type: User specified 0x%02X", modem_type); } else { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Modem type: %s", val_to_str(modem_type, q931_l1_modem_type_vals, NULL)); @@ -714,7 +714,7 @@ l1_done: * Layer 2 information. */ uil2_protocol = octet & 0x1F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 2 protocol: %s", val_to_str(uil2_protocol, q931_uil2_vals, "Unknown (0x%02X)")); @@ -730,11 +730,11 @@ l1_done: return; octet = pd[offset]; if (uil2_protocol == Q931_UIL2_USER_SPEC) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User-specified layer 2 protocol information: 0x%02X", octet & 0x7F); } else { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Mode: %s", val_to_str(octet & 0x60, q931_mode_vals, "Unknown (0x%02X)")); @@ -747,7 +747,7 @@ l1_done: if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Window size: %u k", octet & 0x7F); offset += 1; len -= 1; @@ -763,7 +763,7 @@ l2_done: * Layer 3 information. */ uil3_protocol = octet & 0x1F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "User information layer 3 protocol: %s", val_to_str(uil3_protocol, q931_uil3_vals, "Unknown (0x%02X)")); @@ -784,7 +784,7 @@ l2_done: case Q931_UIL3_X25_PL: case Q931_UIL3_ISO_8208: case Q931_UIL3_X223: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Mode: %s", val_to_str(octet & 0x60, q931_mode_vals, "Unknown (0x%02X)")); @@ -796,7 +796,7 @@ l2_done: if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Default packet size: %u", octet & 0x0F); offset += 1; len -= 1; @@ -806,14 +806,14 @@ l2_done: if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Packet window size: %u", octet & 0x7F); offset += 1; len -= 1; break; case Q931_UIL3_USER_SPEC: - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Default packet size: %u octets", 1 << (octet & 0x0F)); offset += 1; @@ -828,7 +828,7 @@ l2_done: return; octet = pd[offset + 1]; add_l3_info |= (octet & 0x0F); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Additional layer 3 protocol information: %s", val_to_str(add_l3_info, nlpid_vals, "Unknown (0x%02X)")); @@ -976,7 +976,7 @@ dissect_q931_cause_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; coding_standard = octet & 0x60; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Coding standard: %s", val_to_str(coding_standard, q931_cause_coding_standard_vals, NULL)); if (coding_standard != Q931_ITU_STANDARDIZED_CODING) { @@ -984,11 +984,11 @@ dissect_q931_cause_ie(const u_char *pd, int offset, int len, * We don't know how the cause is encoded, * so just dump it as data and be done with it. */ - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Data: %s", bytes_to_str(&pd[offset], len)); return; } - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Location: %s", val_to_str(octet & 0x0F, q931_cause_location_vals, "Unknown (0x%X)")); @@ -999,7 +999,7 @@ dissect_q931_cause_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Recommendation: %s", val_to_str(octet & 0x7F, q931_cause_recommendation_vals, "Unknown (0x%X)")); @@ -1010,7 +1010,7 @@ dissect_q931_cause_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Cause value: %s", val_to_str(octet & 0x7F, q931_cause_code_vals, "Unknown (0x%X)")); @@ -1019,7 +1019,7 @@ dissect_q931_cause_ie(const u_char *pd, int offset, int len, if (len == 0) return; - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Diagnostics: %s", bytes_to_str(&pd[offset], len)); } @@ -1068,7 +1068,7 @@ dissect_q931_call_state_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; coding_standard = octet & 0x60; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Coding standard: %s", val_to_str(coding_standard, q931_coding_standard_vals, NULL)); if (coding_standard != Q931_ITU_STANDARDIZED_CODING) { @@ -1076,11 +1076,11 @@ dissect_q931_call_state_ie(const u_char *pd, int offset, int len, * We don't know how the call state is encoded, * so just dump it as data and be done with it. */ - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Data: %s", bytes_to_str(&pd[offset], len)); return; } - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Call state: %s", val_to_str(octet & 0x3F, q931_call_state_vals, "Unknown (0x%02X)")); @@ -1129,25 +1129,25 @@ dissect_q931_channel_identification_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Interface %s identified", (octet & Q931_INTERFACE_IDENTIFIED) ? "explicitly" : "implicitly"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s interface", (octet & Q931_NOT_BASIC_CHANNEL) ? "Not basic" : "Basic"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Indicated channel is %s", (octet & 0x08) ? "required" : "preferred"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Indicated channel is %sthe D-channel", (octet & 0x04) ? "" : "not "); if (octet & Q931_NOT_BASIC_CHANNEL) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Channel selection: %s", val_to_str(octet & 0x03, q931_not_basic_channel_selection_vals, NULL)); } else { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Channel selection: %s", val_to_str(octet & 0x03, q931_basic_channel_selection_vals, NULL)); @@ -1172,7 +1172,7 @@ dissect_q931_channel_identification_ie(const u_char *pd, int offset, int len, * last octet of the interface identifier? */ if (identifier_len != 0) { - proto_tree_add_text(tree, identifier_offset, + proto_tree_add_text(tree, NullTVB, identifier_offset, identifier_len, "Interface identifier: %s", bytes_to_str(&pd[identifier_offset], identifier_len)); @@ -1184,7 +1184,7 @@ dissect_q931_channel_identification_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; coding_standard = octet & 0x60; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Coding standard: %s", val_to_str(coding_standard, q931_coding_standard_vals, NULL)); @@ -1194,14 +1194,14 @@ dissect_q931_channel_identification_ie(const u_char *pd, int offset, int len, * encoded, so just dump it as data and be done * with it. */ - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Data: %s", bytes_to_str(&pd[offset], len)); return; } - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Channel is indicated by %s", (octet & Q931_IS_SLOT_MAP) ? "slot map" : "number"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s type: %s", (octet & Q931_IS_SLOT_MAP) ? "Map element" : "Channel", val_to_str(octet & 0x0F, q931_element_type_vals, @@ -1237,7 +1237,7 @@ dissect_q931_progress_indicator_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; coding_standard = octet & 0x60; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Coding standard: %s", val_to_str(coding_standard, q931_cause_coding_standard_vals, NULL)); if (coding_standard != Q931_ITU_STANDARDIZED_CODING) { @@ -1245,11 +1245,11 @@ dissect_q931_progress_indicator_ie(const u_char *pd, int offset, int len, * We don't know how the progress indicator is encoded, * so just dump it as data and be done with it. */ - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Data: %s", bytes_to_str(&pd[offset], len)); return; } - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Location: %s", val_to_str(octet & 0x0F, q931_cause_location_vals, "Unknown (0x%X)")); @@ -1259,7 +1259,7 @@ dissect_q931_progress_indicator_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Progress description: %s", val_to_str(octet & 0x7F, q931_progress_description_vals, "Unknown (0x%02X)")); @@ -1294,7 +1294,7 @@ dissect_q931_ns_facilities_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; netid_len = octet & 0x7F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Network identification length: %u", netid_len); offset += 1; @@ -1303,11 +1303,11 @@ dissect_q931_ns_facilities_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of network identification: %s", val_to_str(octet & 0x70, q931_netid_type_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Network identification plan: %s", val_to_str(octet & 0x0F, q931_netid_plan_vals, "Unknown (0x%02X)")); @@ -1320,7 +1320,7 @@ dissect_q931_ns_facilities_ie(const u_char *pd, int offset, int len, if (netid_len > len) netid_len = len; if (netid_len != 0) { - proto_tree_add_text(tree, offset, netid_len, + proto_tree_add_text(tree, NullTVB, offset, netid_len, "Network identification: %.*s", netid_len, &pd[offset]); offset += netid_len; @@ -1334,7 +1334,7 @@ dissect_q931_ns_facilities_ie(const u_char *pd, int offset, int len, */ if (len == 0) return; - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Network-specific facility specification: %s", bytes_to_str(&pd[offset], len)); } @@ -1358,7 +1358,7 @@ dissect_q931_notification_indicator_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Notification description: %s", val_to_str(octet & 0x7F, q931_notification_description_vals, "Unknown (0x%02X)")); @@ -1372,7 +1372,7 @@ dissect_q931_date_time_ie(const u_char *pd, int offset, int len, proto_tree *tree) { if (len != 6) { - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Date/time: length is %d, should be 6\n", len); return; } @@ -1380,7 +1380,7 @@ dissect_q931_date_time_ie(const u_char *pd, int offset, int len, * XXX - what is "year" relative to? Is "month" 0-origin or * 1-origin? Q.931 doesn't say.... */ - proto_tree_add_text(tree, offset, 6, + proto_tree_add_text(tree, NullTVB, offset, 6, "Date/time: %02u-%02u-%02u %02u:%02u:%02u", pd[offset + 0], pd[offset + 1], pd[offset + 2], pd[offset + 3], pd[offset + 4], pd[offset + 5]); @@ -1418,11 +1418,11 @@ dissect_q931_signal_ie(const u_char *pd, int offset, int len, proto_tree *tree) { if (len != 1) { - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Signal: length is %d, should be 1\n", len); return; } - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Signal: %s", val_to_str(pd[offset], q931_signal_vals, "Unknown (0x%02X)")); } @@ -1450,23 +1450,23 @@ dissect_q931_information_rate_ie(const u_char *pd, int offset, int len, proto_tree *tree) { if (len != 4) { - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Information rate: length is %d, should be 4\n", len); return; } - proto_tree_add_text(tree, offset + 0, 1, + proto_tree_add_text(tree, NullTVB, offset + 0, 1, "Incoming information rate: %s", val_to_str(pd[offset + 0] & 0x1F, q931_throughput_class_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset + 1, 1, + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "Outgoing information rate: %s", val_to_str(pd[offset + 1] & 0x1F, q931_throughput_class_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset + 2, 1, + proto_tree_add_text(tree, NullTVB, offset + 2, 1, "Minimum incoming information rate: %s", val_to_str(pd[offset + 2] & 0x1F, q931_throughput_class_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset + 3, 1, + proto_tree_add_text(tree, NullTVB, offset + 3, 1, "Minimum outgoing information rate: %s", val_to_str(pd[offset + 3] & 0x1F, q931_throughput_class_vals, "Unknown (0x%02X)")); @@ -1530,17 +1530,17 @@ dissect_q931_guint16_value(const u_char *pd, int offset, int len, len -= 1; value_len++; - proto_tree_add_text(tree, offset, value_len, "%s: %u ms", label, + proto_tree_add_text(tree, NullTVB, offset, value_len, "%s: %u ms", label, value); return value_len; past_end: - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "%s goes past end of information element", label); return -1; bad_length: - proto_tree_add_text(tree, offset, len, "%s isn't 3 octets long", + proto_tree_add_text(tree, NullTVB, offset, len, "%s isn't 3 octets long", label); return -1; } @@ -1611,18 +1611,18 @@ dissect_q931_pl_binary_parameters_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Fast select: %s", val_to_str(octet & 0x18, q931_fast_selected_vals, NULL)); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s", (octet & 0x04) ? "No request/request denied" : "Request indicated/request accepted"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "%s confirmation", (octet & 0x02) ? "Link-by-link" : "End-to-end"); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Modulus %u sequencing", (octet & 0x01) ? 8 : 128); } @@ -1636,14 +1636,14 @@ dissect_q931_pl_window_size_ie(const u_char *pd, int offset, int len, { if (len == 0) return; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Forward value: %u", pd[offset] & 0x7F); offset += 1; len -= 1; if (len == 0) return; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Backward value: %u", pd[offset] & 0x7F); } @@ -1656,14 +1656,14 @@ dissect_q931_packet_size_ie(const u_char *pd, int offset, int len, { if (len == 0) return; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Forward value: %u", pd[offset] & 0x7F); offset += 1; len -= 1; if (len == 0) return; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Backward value: %u", pd[offset] & 0x7F); } @@ -1681,7 +1681,7 @@ dissect_q931_cug_ie(const u_char *pd, int offset, int len, proto_tree *tree) { if (len == 0) return; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "CUG indication: %s", val_to_str(pd[offset] & 0x07, q931_cug_indication_vals, "Unknown (0x%02X)")); @@ -1690,7 +1690,7 @@ dissect_q931_cug_ie(const u_char *pd, int offset, int len, proto_tree *tree) if (len == 0) return; - proto_tree_add_text(tree, offset, len, "CUG index code: %.*s", len, + proto_tree_add_text(tree, NullTVB, offset, len, "CUG index code: %.*s", len, &pd[offset]); } @@ -1708,7 +1708,7 @@ dissect_q931_reverse_charge_ind_ie(const u_char *pd, int offset, int len, { if (len == 0) return; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Reverse charging indication: %s", val_to_str(pd[offset] & 0x07, q931_reverse_charging_indication_vals, "Unknown (0x%02X)")); @@ -1772,11 +1772,11 @@ dissect_q931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of number: %s", val_to_str(octet & 0x70, q931_number_type_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Numbering plan: %s", val_to_str(octet & 0x0F, q931_numbering_plan_vals, "Unknown (0x%02X)")); @@ -1787,11 +1787,11 @@ dissect_q931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Presentation indicator: %s", val_to_str(octet & 0x60, q931_presentation_indicator_vals, "Unknown (0x%X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Screening indicator: %s", val_to_str(octet & 0x03, q931_screening_indicator_vals, "Unknown (0x%X)")); @@ -1806,7 +1806,7 @@ dissect_q931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Reason for redirection: %s", val_to_str(octet & 0x0F, q931_redirection_reason_vals, "Unknown (0x%X)")); @@ -1816,7 +1816,7 @@ dissect_q931_number_ie(const u_char *pd, int offset, int len, if (len == 0) return; - proto_tree_add_text(tree, offset, len, "Number: %.*s", + proto_tree_add_text(tree, NullTVB, offset, len, "Number: %.*s", len, &pd[offset]); } @@ -1844,11 +1844,11 @@ dissect_q931_party_subaddr_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Type of subaddress: %s", val_to_str(octet & 0x70, q931_subaddress_type_vals, "Unknown (0x%02X)")); - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Odd/even indicator: %s", val_to_str(octet & 0x10, q931_odd_even_indicator_vals, NULL)); @@ -1857,7 +1857,7 @@ dissect_q931_party_subaddr_ie(const u_char *pd, int offset, int len, if (len == 0) return; - proto_tree_add_text(tree, offset, len, "Subaddress: %s", + proto_tree_add_text(tree, NullTVB, offset, len, "Subaddress: %s", bytes_to_str(&pd[offset], len)); } @@ -1876,11 +1876,11 @@ dissect_q931_restart_indicator_ie(const u_char *pd, int offset, int len, proto_tree *tree) { if (len != 1) { - proto_tree_add_text(tree, offset, len, + proto_tree_add_text(tree, NullTVB, offset, len, "Restart indicator: length is %d, should be 1\n", len); return; } - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Restart indicator: %s", val_to_str(pd[offset] & 0x07, q931_restart_indicator_class_vals, "Unknown (0x%02X)")); @@ -1930,7 +1930,7 @@ dissect_q931_high_layer_compat_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; coding_standard = octet & 0x60; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Coding standard: %s", val_to_str(coding_standard, q931_coding_standard_vals, NULL)); if (coding_standard != Q931_ITU_STANDARDIZED_CODING) { @@ -1938,7 +1938,7 @@ dissect_q931_high_layer_compat_ie(const u_char *pd, int offset, int len, * We don't know how the call state is encoded, * so just dump it as data and be done with it. */ - proto_tree_add_text(tree, offset, + proto_tree_add_text(tree, NullTVB, offset, len, "Data: %s", bytes_to_str(&pd[offset], len)); return; } @@ -1947,7 +1947,7 @@ dissect_q931_high_layer_compat_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; characteristics = octet & 0x7F; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "High layer characteristics identification: %s", val_to_str(characteristics, q931_high_layer_characteristics_vals, NULL)); @@ -1959,12 +1959,12 @@ dissect_q931_high_layer_compat_ie(const u_char *pd, int offset, int len, return; octet = pd[offset]; if (characteristics == Q931_AUDIOVISUAL) { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Extended audiovisual characteristics identification: %s", val_to_str(octet & 0x7F, q931_audiovisual_characteristics_vals, NULL)); } else { - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Extended high layer characteristics identification: %s", val_to_str(octet & 0x7F, q931_high_layer_characteristics_vals, NULL)); @@ -1998,7 +1998,7 @@ dissect_q931_user_user_ie(const u_char *pd, int offset, int len, if (len == 0) return; octet = pd[offset]; - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, "Protocol discriminator: %s", val_to_str(octet, q931_protocol_discriminator_vals, "Unknown (0x%02x)")); @@ -2010,12 +2010,12 @@ dissect_q931_user_user_ie(const u_char *pd, int offset, int len, switch (octet) { case Q931_PROTOCOL_DISCRIMINATOR_IA5: - proto_tree_add_text(tree, offset, len, "User information: %.*s", + proto_tree_add_text(tree, NullTVB, offset, len, "User information: %.*s", len, &pd[offset]); break; default: - proto_tree_add_text(tree, offset, len, "User information: %s", + proto_tree_add_text(tree, NullTVB, offset, len, "User information: %s", bytes_to_str(&pd[offset], len)); break; } @@ -2029,7 +2029,7 @@ dissect_q931_ia5_ie(const u_char *pd, int offset, int len, proto_tree *tree, char *label) { if (len != 0) { - proto_tree_add_text(tree, offset, len, "%s: %.*s", label, len, + proto_tree_add_text(tree, NullTVB, offset, len, "%s: %.*s", label, len, &pd[offset]); } } @@ -2061,22 +2061,22 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_PROTOCOL, "Q.931"); if (tree) { - ti = proto_tree_add_item(tree, proto_q931, offset, + ti = proto_tree_add_item(tree, proto_q931, NullTVB, offset, END_OF_FRAME, NULL); q931_tree = proto_item_add_subtree(ti, ett_q931); - proto_tree_add_item(q931_tree, hf_q931_discriminator, offset, 1, pd[offset]); + proto_tree_add_item(q931_tree, hf_q931_discriminator, NullTVB, offset, 1, pd[offset]); } offset += 1; call_ref_len = pd[offset] & 0xF; /* XXX - do as a bit field? */ if (q931_tree != NULL) - proto_tree_add_item(q931_tree, hf_q931_call_ref_len, offset, 1, call_ref_len); + proto_tree_add_item(q931_tree, hf_q931_call_ref_len, NullTVB, offset, 1, call_ref_len); offset += 1; if (call_ref_len != 0) { /* XXX - split this into flag and value */ memcpy(call_ref, &pd[offset], call_ref_len); if (q931_tree != NULL) - proto_tree_add_item(q931_tree, hf_q931_call_ref, offset, call_ref_len, call_ref); + proto_tree_add_item(q931_tree, hf_q931_call_ref, NullTVB, offset, call_ref_len, call_ref); offset += call_ref_len; } message_type = pd[offset]; @@ -2086,7 +2086,7 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) "Unknown message type (0x%02X)")); } if (q931_tree != NULL) - proto_tree_add_item(q931_tree, hf_q931_message_type, offset, 1, message_type); + proto_tree_add_item(q931_tree, hf_q931_message_type, NullTVB, offset, 1, message_type); offset += 1; /* @@ -2107,7 +2107,7 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) !(info_element & Q931_IE_SHIFT_LOCKING); codeset = info_element & Q931_IE_SHIFT_CODESET; if (q931_tree != NULL) { - proto_tree_add_text(q931_tree, offset, 1, + proto_tree_add_text(q931_tree, NullTVB, offset, 1, "%s shift to codeset %u: %s", (non_locking_shift ? "Non-locking" : "Locking"), codeset, @@ -2122,21 +2122,21 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case Q931_IE_MORE_DATA: if (q931_tree != NULL) { - proto_tree_add_text(q931_tree, offset, 1, + proto_tree_add_text(q931_tree, NullTVB, offset, 1, "More data"); } break; case Q931_IE_SENDING_COMPLETE: if (q931_tree != NULL) { - proto_tree_add_text(q931_tree, offset, 1, + proto_tree_add_text(q931_tree, NullTVB, offset, 1, "Sending complete"); } break; default: if (q931_tree != NULL) { - proto_tree_add_text(q931_tree, offset, 1, + proto_tree_add_text(q931_tree, NullTVB, offset, 1, "Unknown information element (0x%02X", info_element); } @@ -2149,7 +2149,7 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case Q931_IE_CONGESTION_LEVEL: if (q931_tree != NULL) { - proto_tree_add_text(q931_tree, offset, 1, + proto_tree_add_text(q931_tree, NullTVB, offset, 1, "Congestion level: %s", val_to_str(info_element & Q931_IE_SO_IE_MASK, q931_congestion_level_vals, @@ -2162,7 +2162,7 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case Q931_IE_REPEAT_INDICATOR: if (q931_tree != NULL) { - proto_tree_add_text(q931_tree, offset, 1, + proto_tree_add_text(q931_tree, NullTVB, offset, 1, "Repeat indicator: %s", val_to_str(info_element & Q931_IE_SO_IE_MASK, q931_repeat_indication_vals, @@ -2186,16 +2186,16 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (!BYTES_ARE_IN_FRAME(offset + 2, info_element_len)) break; /* ran past end of frame */ if (q931_tree != NULL) { - ti = proto_tree_add_text(q931_tree, offset, + ti = proto_tree_add_text(q931_tree, NullTVB, offset, 1+1+info_element_len, "%s", val_to_str(info_element, q931_info_element_vals, "Unknown information element (0x%02X)")); ie_tree = proto_item_add_subtree(ti, ett_q931_ie); - proto_tree_add_text(ie_tree, offset, 1, + proto_tree_add_text(ie_tree, NullTVB, offset, 1, "Information element: %s", val_to_str(info_element, q931_info_element_vals, "Unknown (0x%02X)")); - proto_tree_add_text(ie_tree, offset + 1, 1, + proto_tree_add_text(ie_tree, NullTVB, offset + 1, 1, "Length: %u", info_element_len); switch (info_element) { @@ -2333,7 +2333,7 @@ dissect_q931(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) break; default: - proto_tree_add_text(ie_tree, offset + 2, + proto_tree_add_text(ie_tree, NullTVB, offset + 2, info_element_len, "Data: %s", bytes_to_str(&pd[offset + 2], info_element_len)); diff --git a/packet-radius.c b/packet-radius.c index ef5b0a7bea..6a497f4fc9 100644 --- a/packet-radius.c +++ b/packet-radius.c @@ -1,7 +1,7 @@ /* packet-radius.c * Routines for RADIUS packet disassembly * - * $Id: packet-radius.c,v 1.11 2000/04/08 07:07:34 guy Exp $ + * $Id: packet-radius.c,v 1.12 2000/05/11 08:15:40 gram Exp $ * * Ethereal - Network traffic analyzer * By Johan Feyaerts @@ -641,7 +641,7 @@ void dissect_attribute_value_pairs(const u_char *pd, int offset, frame_data gchar *valstr; if (avplength==0) { - proto_tree_add_text(tree,offset,0,"No Attribute Value Pairs Found"); + proto_tree_add_text(tree, NullTVB,offset,0,"No Attribute Value Pairs Found"); return; } @@ -656,7 +656,7 @@ void dissect_attribute_value_pairs(const u_char *pd, int offset, frame_data if (!BYTES_ARE_IN_FRAME(offset, avph.avp_length)) { break; } - proto_tree_add_text(tree,offset,avph.avp_length, + proto_tree_add_text(tree, NullTVB,offset,avph.avp_length, "t:%s(%d) l:%d, %s", avptpstrval,avph.avp_type,avph.avp_length,valstr); offset=offset+avph.avp_length; @@ -703,22 +703,22 @@ proto_tree if (tree) { - ti = proto_tree_add_item(tree,proto_radius, offset, rhlength, + ti = proto_tree_add_item(tree,proto_radius, NullTVB, offset, rhlength, NULL); radius_tree = proto_item_add_subtree(ti, ett_radius); - proto_tree_add_uint_format(radius_tree,hf_radius_code, offset, 1, + proto_tree_add_uint_format(radius_tree,hf_radius_code, NullTVB, offset, 1, rh.rh_code, "Packet code:0x%01x (%s)",rhcode, codestrval); - proto_tree_add_uint_format(radius_tree,hf_radius_id, offset+1, 1, + proto_tree_add_uint_format(radius_tree,hf_radius_id, NullTVB, offset+1, 1, rh.rh_ident, "Packet identifier: 0x%01x (%d)", rhident,rhident); - proto_tree_add_uint_format(radius_tree, hf_radius_length, + proto_tree_add_uint_format(radius_tree, hf_radius_length, NullTVB, offset+2, 2, (guint16)rhlength, "Packet length: 0x%02x(%d)",rhlength,rhlength); - proto_tree_add_text(radius_tree, offset+4, + proto_tree_add_text(radius_tree, NullTVB, offset+4, AUTHENTICATOR_LENGTH, "Authenticator"); @@ -730,8 +730,8 @@ proto_tree /* list the attribute value pairs */ - avptf = proto_tree_add_text(radius_tree - ,offset+hdrlength,avplength, + avptf = proto_tree_add_text(radius_tree, + NullTVB,offset+hdrlength,avplength, "Attribute value pairs"); avptree = proto_item_add_subtree(avptf, ett_radius_avp); diff --git a/packet-raw.c b/packet-raw.c index 398748992f..b9a4005674 100644 --- a/packet-raw.c +++ b/packet-raw.c @@ -1,7 +1,7 @@ /* packet-raw.c * Routines for raw packet disassembly * - * $Id: packet-raw.c,v 1.13 2000/02/15 21:02:57 gram Exp $ + * $Id: packet-raw.c,v 1.14 2000/05/11 08:15:40 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -74,9 +74,9 @@ dissect_raw( const u_char *pd, frame_data *fd, proto_tree *tree ) { /* populate a tree in the second pane with the status of the link layer (ie none) */ if(tree) { - ti = proto_tree_add_text(tree, 0, 0, "Raw packet data" ); + ti = proto_tree_add_text(tree, NullTVB, 0, 0, "Raw packet data" ); fh_tree = proto_item_add_subtree(ti, ett_raw); - proto_tree_add_text(fh_tree, 0, 0, "No link information available"); + proto_tree_add_text(fh_tree, NullTVB, 0, 0, "No link information available"); } /* So far, the only time we get raw connection types are with Linux and diff --git a/packet-rip.c b/packet-rip.c index e03546c1ff..a6970b78bb 100644 --- a/packet-rip.c +++ b/packet-rip.c @@ -2,7 +2,7 @@ * Routines for RIPv1 and RIPv2 packet disassembly * (c) Copyright Hannes R. Boehm * - * $Id: packet-rip.c,v 1.14 2000/04/14 06:17:23 guy Exp $ + * $Id: packet-rip.c,v 1.15 2000/05/11 08:15:40 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -97,13 +97,13 @@ dissect_rip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { col_add_str(fd, COL_INFO, packet_type[rip_header.command]); if (tree) { - ti = proto_tree_add_item(tree, proto_rip, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_rip, NullTVB, offset, END_OF_FRAME, NULL); rip_tree = proto_item_add_subtree(ti, ett_rip); - proto_tree_add_text(rip_tree, offset, 1, "Command: %d (%s)", rip_header.command, packet_type[rip_header.command]); - proto_tree_add_text(rip_tree, offset + 1, 1, "Version: %d", rip_header.version); + proto_tree_add_text(rip_tree, NullTVB, offset, 1, "Command: %d (%s)", rip_header.command, packet_type[rip_header.command]); + proto_tree_add_text(rip_tree, NullTVB, offset + 1, 1, "Version: %d", rip_header.version); if(rip_header.version == RIPv2) - proto_tree_add_text(rip_tree, offset + 2 , 2, "Routing Domain: %d", ntohs(rip_header.domain)); + proto_tree_add_text(rip_tree, NullTVB, offset + 2 , 2, "Routing Domain: %d", ntohs(rip_header.domain)); /* skip header */ offset += RIP_HEADER_LENGTH; @@ -115,7 +115,7 @@ dissect_rip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { family = ntohs(rip_entry.vektor.family); switch (family) { case 2: /* IP */ - ti = proto_tree_add_text(rip_tree, offset, + ti = proto_tree_add_text(rip_tree, NullTVB, offset, RIP_ENTRY_LENGTH, "IP Address: %s, Metric: %ld", ip_to_str((guint8 *) &(rip_entry.vektor.ip)), (long)ntohl(rip_entry.vektor.metric)); @@ -123,13 +123,13 @@ dissect_rip(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { offset, ti); break; case 0xFFFF: - proto_tree_add_text(rip_tree, offset, + proto_tree_add_text(rip_tree, NullTVB, offset, RIP_ENTRY_LENGTH, "Authentication"); dissect_rip_authentication(&rip_entry.authentication, offset, ti); break; default: - proto_tree_add_text(rip_tree, offset, + proto_tree_add_text(rip_tree, NullTVB, offset, RIP_ENTRY_LENGTH, "Unknown address family %u", family); break; @@ -148,19 +148,19 @@ dissect_ip_rip_vektor(guint8 version, const e_rip_vektor *rip_vektor, rip_vektor_tree = proto_item_add_subtree(tree, ett_rip_vec); - proto_tree_add_text(rip_vektor_tree, offset, 2, "Address Family ID: IP"); + proto_tree_add_text(rip_vektor_tree, NullTVB, offset, 2, "Address Family ID: IP"); if(version == RIPv2) - proto_tree_add_text(rip_vektor_tree, offset + 2 , 2, "Route Tag: %d", + proto_tree_add_text(rip_vektor_tree, NullTVB, offset + 2 , 2, "Route Tag: %d", ntohs(rip_vektor->tag)); - proto_tree_add_text(rip_vektor_tree, offset + 4, 4, "IP Address: %s", + proto_tree_add_text(rip_vektor_tree, NullTVB, offset + 4, 4, "IP Address: %s", ip_to_str((guint8 *) &(rip_vektor->ip))); if(version == RIPv2) { - proto_tree_add_text(rip_vektor_tree, offset + 8 , 4, "Netmask: %s", + proto_tree_add_text(rip_vektor_tree, NullTVB, offset + 8 , 4, "Netmask: %s", ip_to_str((guint8 *) &(rip_vektor->mask))); - proto_tree_add_text(rip_vektor_tree, offset + 12, 4, "Next Hop: %s", + proto_tree_add_text(rip_vektor_tree, NullTVB, offset + 12, 4, "Next Hop: %s", ip_to_str((guint8 *) &(rip_vektor->next_hop))); } - proto_tree_add_text(rip_vektor_tree, offset + 16, 4, "Metric: %ld", + proto_tree_add_text(rip_vektor_tree, NullTVB, offset + 16, 4, "Metric: %ld", (long)ntohl(rip_vektor->metric)); } @@ -174,10 +174,10 @@ dissect_rip_authentication(const e_rip_authentication *rip_authentication, rip_authentication_tree = proto_item_add_subtree(tree, ett_rip_vec); authtype = ntohs(rip_authentication->authtype); - proto_tree_add_text(rip_authentication_tree, offset + 2, 2, + proto_tree_add_text(rip_authentication_tree, NullTVB, offset + 2, 2, "Authentication type: %u", authtype); if (authtype == 2) - proto_tree_add_text(rip_authentication_tree, offset + 4 , 16, + proto_tree_add_text(rip_authentication_tree, NullTVB, offset + 4 , 16, "Password: %.16s", rip_authentication->authentication); } diff --git a/packet-ripng.c b/packet-ripng.c index 8ea96c4c14..5c3b37f21c 100644 --- a/packet-ripng.c +++ b/packet-ripng.c @@ -3,7 +3,7 @@ * (c) Copyright Jun-ichiro itojun Hagino * derived from packet-rip.c * - * $Id: packet-ripng.c,v 1.9 2000/04/08 07:07:35 guy Exp $ + * $Id: packet-ripng.c,v 1.10 2000/05/11 08:15:41 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -78,46 +78,46 @@ dissect_ripng(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { col_add_fstr(fd, COL_INFO, "%s", cmd); if (tree) { - ti = proto_tree_add_item(tree, proto_ripng, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_ripng, NullTVB, offset, END_OF_FRAME, NULL); ripng_tree = proto_item_add_subtree(ti, ett_ripng); - proto_tree_add_uint_format(ripng_tree, hf_ripng_cmd, offset, 1, + proto_tree_add_uint_format(ripng_tree, hf_ripng_cmd, NullTVB, offset, 1, rip6.rip6_cmd, "Command: %s (%u)", cmd, rip6.rip6_cmd); - proto_tree_add_item(ripng_tree, hf_ripng_version, offset + 1, 1, + proto_tree_add_item(ripng_tree, hf_ripng_version, NullTVB, offset + 1, 1, rip6.rip6_vers); offset += 4; while ((pi.captured_len - offset) >= sizeof(struct netinfo6)){ memcpy(&ni6, &pd[offset], sizeof(ni6)); if (ni6.rip6_tag) { - ti = proto_tree_add_text(ripng_tree, offset, + ti = proto_tree_add_text(ripng_tree, NullTVB, offset, sizeof(ni6), "IP Address: %s/%u, Metric: %u, tag: 0x%04x", ip6_to_str(&ni6.rip6_dest), ni6.rip6_plen, ni6.rip6_metric, ntohs(ni6.rip6_tag)); } else { - ti = proto_tree_add_text(ripng_tree, offset, + ti = proto_tree_add_text(ripng_tree, NullTVB, offset, sizeof(ni6), "IP Address: %s/%u, Metric: %u", ip6_to_str(&ni6.rip6_dest), ni6.rip6_plen, ni6.rip6_metric); } subtree = proto_item_add_subtree(ti, ett_ripng_addr); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + offsetof(struct netinfo6, rip6_dest), sizeof(ni6.rip6_dest), "IP Address: %s", ip6_to_str(&ni6.rip6_dest)); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + offsetof(struct netinfo6, rip6_tag), sizeof(ni6.rip6_tag), "Tag: 0x%04x", ntohs(ni6.rip6_tag)); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + offsetof(struct netinfo6, rip6_plen), sizeof(ni6.rip6_plen), "Prefix length: %u", ni6.rip6_plen); - proto_tree_add_text(subtree, + proto_tree_add_text(subtree, NullTVB, offset + offsetof(struct netinfo6, rip6_metric), sizeof(ni6.rip6_metric), "Metric: %u", ni6.rip6_metric); diff --git a/packet-rlogin.c b/packet-rlogin.c index d07393c441..9b564d0b3d 100644 --- a/packet-rlogin.c +++ b/packet-rlogin.c @@ -2,7 +2,7 @@ * Routines for unix rlogin packet dissection * Copyright 2000, Jeffrey C. Foster * - * $Id: packet-rlogin.c,v 1.1 2000/04/08 03:32:09 guy Exp $ + * $Id: packet-rlogin.c,v 1.2 2000/05/11 08:15:41 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -66,7 +66,7 @@ #endif #define CHECK_PACKET_LENGTH(X) if ((offset+X) > fd->cap_len){ \ - proto_tree_add_text(tree, offset, 0, "*** FRAME TOO SHORT ***"); \ + proto_tree_add_text(tree, NullTVB, offset, 0, "*** FRAME TOO SHORT ***"); \ return; } @@ -210,7 +210,7 @@ static void rlogin_display( rlogin_hash_entry_t *hash_info, const u_char *pd, const char *str; proto_item *user_info_item, *window_info_item; - ti = proto_tree_add_item( tree, proto_rlogin, offset, + ti = proto_tree_add_item( tree, proto_rlogin, NullTVB, offset, END_OF_FRAME, NULL, "Rlogin:" ); rlogin_tree = proto_item_add_subtree(ti, ett_rlogin); @@ -225,10 +225,10 @@ static void rlogin_display( rlogin_hash_entry_t *hash_info, const u_char *pd, guint16 Temp = GBYTE( pd, i); if ( i < offset) /* check for data in front */ - proto_tree_add_text( rlogin_tree, offset, i - offset, + proto_tree_add_text( rlogin_tree, NullTVB, offset, i - offset, "Data"); - proto_tree_add_text( rlogin_tree, i, 1, "Control byte: %u (%s)", + proto_tree_add_text( rlogin_tree, NullTVB, i, 1, "Control byte: %u (%s)", Temp, (Temp == 2) ? "Clear buffer" : (Temp == 0x10) ? "Raw mode" : @@ -240,18 +240,18 @@ static void rlogin_display( rlogin_hash_entry_t *hash_info, const u_char *pd, else if ( !GBYTE( pd, offset)){ /* startup */ if ( pi.srcport== RLOGIN_PORT) /* from server */ - proto_tree_add_text(rlogin_tree, offset, 1, + proto_tree_add_text(rlogin_tree, NullTVB, offset, 1, "Startup info received flag (0x00)"); else - proto_tree_add_text(rlogin_tree, offset, 1, + proto_tree_add_text(rlogin_tree, NullTVB, offset, 1, "Client Startup Flag (0x00)"); ++offset; } if ( compare_packet_ptr( hash_info->info_row)){ /* user info ?*/ - user_info_item = proto_tree_add_item( rlogin_tree, hf_user_info, + user_info_item = proto_tree_add_item( rlogin_tree, hf_user_info, NullTVB, offset, END_OF_FRAME, NULL ); str = &pd[ offset]; /* do server user name */ @@ -261,20 +261,20 @@ static void rlogin_display( rlogin_hash_entry_t *hash_info, const u_char *pd, user_info_tree = proto_item_add_subtree( user_info_item, ett_rlogin_user_info); - proto_tree_add_text( user_info_tree, offset, strlen( str) + 1, + proto_tree_add_text( user_info_tree, NullTVB, offset, strlen( str) + 1, "Server User Name: %s", str); offset += strlen( str) + 1; str = &pd[ offset]; /* do client user name */ CHECK_PACKET_LENGTH( strlen( str)); - proto_tree_add_text( user_info_tree, offset, strlen( str) + 1, + proto_tree_add_text( user_info_tree, NullTVB, offset, strlen( str) + 1, "Client User Name: %s", str); offset += strlen( str) + 1; str = &pd[ offset]; /* do terminal type/speed */ CHECK_PACKET_LENGTH( strlen( str)); - proto_tree_add_text( user_info_tree, offset, strlen( str) + 1, + proto_tree_add_text( user_info_tree, NullTVB, offset, strlen( str) + 1, "Terminal Type/Speed: %s", str); offset += strlen( str) + 1; @@ -290,51 +290,51 @@ static void rlogin_display( rlogin_hash_entry_t *hash_info, const u_char *pd, int ti_offset = Ptr - pd; /* get offset */ if ( ti_offset < offset){ /*if data before terminal info*/ - proto_tree_add_text( rlogin_tree, offset, + proto_tree_add_text( rlogin_tree, NullTVB, offset, (ti_offset - offset), "Data"); offset = ti_offset; } CHECK_PACKET_LENGTH( 12); window_info_item = proto_tree_add_item( rlogin_tree, - hf_window_info, offset, 12, NULL ); + hf_window_info, NullTVB, offset, 12, NULL ); window_tree = proto_item_add_subtree( window_info_item, ett_rlogin_window); CHECK_PACKET_LENGTH( 2); - proto_tree_add_text( window_tree, offset, 2, + proto_tree_add_text( window_tree, NullTVB, offset, 2, "Magic Cookie: (0xff, 0xff)"); offset += 2; CHECK_PACKET_LENGTH( 2); - proto_tree_add_text( window_tree, offset, 2, + proto_tree_add_text( window_tree, NullTVB, offset, 2, "Window size marker: 'ss'"); offset += 2; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( window_tree, hf_window_info_rows, offset, + proto_tree_add_item( window_tree, hf_window_info_rows, NullTVB, offset, 2, pntohs( &pd[offset])); offset += 2; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( window_tree, hf_window_info_cols, offset, + proto_tree_add_item( window_tree, hf_window_info_cols, NullTVB, offset, 2, pntohs( &pd[offset]) ); offset += 2; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( window_tree, hf_window_info_x_pixels, + proto_tree_add_item( window_tree, hf_window_info_x_pixels, NullTVB, offset, 2, pntohs( &pd[offset])); offset += 2; CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( window_tree, hf_window_info_y_pixels, + proto_tree_add_item( window_tree, hf_window_info_y_pixels, NullTVB, offset, 2, pntohs( &pd[offset]) ); offset += 2; } if ( END_OF_FRAME != 0) /* if more data */ - proto_tree_add_text(rlogin_tree, offset, END_OF_FRAME, "Data"); + proto_tree_add_text(rlogin_tree, NullTVB, offset, END_OF_FRAME, "Data"); } diff --git a/packet-rpc.c b/packet-rpc.c index 2541825e8c..50f6c5a8dc 100644 --- a/packet-rpc.c +++ b/packet-rpc.c @@ -2,7 +2,7 @@ * Routines for rpc dissection * Copyright 1999, Uwe Girlich * - * $Id: packet-rpc.c,v 1.29 2000/04/04 06:46:27 guy Exp $ + * $Id: packet-rpc.c,v 1.30 2000/05/11 08:15:41 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -338,7 +338,7 @@ int hfindex) if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; value = EXTRACT_UINT(pd, offset+0); if (tree) - proto_tree_add_item(tree, hfindex, offset, 4, value); + proto_tree_add_item(tree, hfindex, NullTVB, offset, 4, value); offset += 4; return offset; @@ -355,7 +355,7 @@ char* name, char* type) value = EXTRACT_UINT(pd, offset+0); if (tree) { - proto_tree_add_text(tree, offset, 4, + proto_tree_add_text(tree, NullTVB, offset, 4, "%s: %u", name, value); } @@ -377,10 +377,10 @@ char* name, char* type) if (tree) { if (value_high) - proto_tree_add_text(tree, offset, 8, + proto_tree_add_text(tree, NullTVB, offset, 8, "%s: 0x%x%08x", name, value_high, value_low); else - proto_tree_add_text(tree, offset, 8, + proto_tree_add_text(tree, NullTVB, offset, 8, "%s: %u", name, value_low); } @@ -496,10 +496,10 @@ dissect_rpc_opaque_data(const u_char *pd, int offset, frame_data *fd, } if (tree) { - string_item = proto_tree_add_text(tree,offset+0, END_OF_FRAME, + string_item = proto_tree_add_text(tree, NullTVB,offset+0, END_OF_FRAME, "%s: %s", proto_registrar_get_name(hfindex), string_buffer_print); if (string_data) { - proto_tree_add_item_hidden(tree, hfindex, offset+4, + proto_tree_add_item_hidden(tree, hfindex, NullTVB, offset+4, string_length_copy, string_buffer); } if (string_item) { @@ -508,29 +508,29 @@ dissect_rpc_opaque_data(const u_char *pd, int offset, frame_data *fd, } if (length_truncated) { if (string_tree) - proto_tree_add_text(string_tree, + proto_tree_add_text(string_tree, NullTVB, offset,pi.captured_len-offset, "length: "); offset = pi.captured_len; } else { if (string_tree) - proto_tree_add_text(string_tree,offset+0,4, + proto_tree_add_text(string_tree, NullTVB,offset+0,4, "length: %u", string_length); offset += 4; if (string_tree) - proto_tree_add_text(string_tree,offset,string_length_copy, + proto_tree_add_text(string_tree, NullTVB,offset,string_length_copy, "contents: %s", string_buffer_print); offset += string_length_copy; if (fill_length) { if (string_tree) { if (fill_truncated) { - proto_tree_add_text(string_tree, + proto_tree_add_text(string_tree, NullTVB, offset,fill_length_copy, "fill bytes: opaque data"); } else { - proto_tree_add_text(string_tree, + proto_tree_add_text(string_tree, NullTVB, offset,fill_length_copy, "fill bytes: opaque data"); } @@ -585,7 +585,7 @@ dissect_rpc_list(const u_char *pd, int offset, frame_data *fd, while (1) { if (!BYTES_ARE_IN_FRAME(offset,4)) break; value_follows = EXTRACT_UINT(pd, offset+0); - proto_tree_add_item(tree,hf_rpc_value_follows, + proto_tree_add_item(tree,hf_rpc_value_follows, NullTVB, offset+0, 4, value_follows); offset += 4; if (value_follows == 1) { @@ -615,9 +615,9 @@ dissect_rpc_auth( const u_char *pd, int offset, frame_data *fd, proto_tree *tree /* if (!BYTES_ARE_IN_FRAME(offset+8,full_length)) return; */ if (tree) { - proto_tree_add_item(tree, hf_rpc_auth_flavor, offset+0, 4, + proto_tree_add_item(tree, hf_rpc_auth_flavor, NullTVB, offset+0, 4, flavor); - proto_tree_add_item(tree, hf_rpc_auth_length, offset+4, 4, + proto_tree_add_item(tree, hf_rpc_auth_length, NullTVB, offset+4, 4, length); } @@ -637,7 +637,7 @@ dissect_rpc_auth( const u_char *pd, int offset, frame_data *fd, proto_tree *tree if (!BYTES_ARE_IN_FRAME(offset,4)) return; stamp = EXTRACT_UINT(pd,offset+0); if (tree) - proto_tree_add_item(tree, hf_rpc_auth_stamp, + proto_tree_add_item(tree, hf_rpc_auth_stamp, NullTVB, offset+0, 4, stamp); offset += 4; @@ -647,21 +647,21 @@ dissect_rpc_auth( const u_char *pd, int offset, frame_data *fd, proto_tree *tree if (!BYTES_ARE_IN_FRAME(offset,4)) return; uid = EXTRACT_UINT(pd,offset+0); if (tree) - proto_tree_add_item(tree, hf_rpc_auth_uid, + proto_tree_add_item(tree, hf_rpc_auth_uid, NullTVB, offset+0, 4, uid); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return; gid = EXTRACT_UINT(pd,offset+0); if (tree) - proto_tree_add_item(tree, hf_rpc_auth_gid, + proto_tree_add_item(tree, hf_rpc_auth_gid, NullTVB, offset+0, 4, gid); offset += 4; if (!BYTES_ARE_IN_FRAME(offset,4)) return; gids_count = EXTRACT_UINT(pd,offset+0); if (tree) { - gitem = proto_tree_add_text(tree, offset, 4+gids_count*4, + gitem = proto_tree_add_text(tree, NullTVB, offset, 4+gids_count*4, "Auxiliary GIDs"); gtree = proto_item_add_subtree(gitem, ett_rpc_gids); } @@ -670,7 +670,7 @@ dissect_rpc_auth( const u_char *pd, int offset, frame_data *fd, proto_tree *tree for (gids_i = 0 ; gids_i < gids_count ; gids_i++) { gids_entry = EXTRACT_UINT(pd,offset+0); if (gtree) - proto_tree_add_item(gtree, hf_rpc_auth_gid, + proto_tree_add_item(gtree, hf_rpc_auth_gid, NullTVB, offset, 4, gids_entry); offset+=4; } @@ -693,7 +693,7 @@ dissect_rpc_auth( const u_char *pd, int offset, frame_data *fd, proto_tree *tree default: if (length_full) { if (tree) - proto_tree_add_text(tree,offset, + proto_tree_add_text(tree, NullTVB,offset, length_full, "opaque data"); } } @@ -713,7 +713,7 @@ dissect_rpc_cred( const u_char *pd, int offset, frame_data *fd, proto_tree *tree if (!BYTES_ARE_IN_FRAME(offset+8,length_full)) return offset; if (tree) { - citem = proto_tree_add_text(tree, offset, 8+length_full, + citem = proto_tree_add_text(tree, NullTVB, offset, 8+length_full, "Credentials"); ctree = proto_item_add_subtree(citem, ett_rpc_cred); dissect_rpc_auth(pd, offset, fd, ctree); @@ -738,7 +738,7 @@ dissect_rpc_verf( const u_char *pd, int offset, frame_data *fd, proto_tree *tree if (!BYTES_ARE_IN_FRAME(offset+8,length_full)) return offset; if (tree) { - vitem = proto_tree_add_text(tree, offset, 8+length_full, + vitem = proto_tree_add_text(tree, NullTVB, offset, 8+length_full, "Verifier"); vtree = proto_item_add_subtree(vitem, ett_rpc_verf); dissect_rpc_auth(pd, offset, fd, vtree); @@ -882,28 +882,28 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_PROTOCOL, "RPC"); if (tree) { - rpc_item = proto_tree_add_item(tree, proto_rpc, offset, END_OF_FRAME, NULL); + rpc_item = proto_tree_add_item(tree, proto_rpc, NullTVB, offset, END_OF_FRAME, NULL); if (rpc_item) { rpc_tree = proto_item_add_subtree(rpc_item, ett_rpc); } } if (use_rm && rpc_tree) { - proto_tree_add_item(rpc_tree,hf_rpc_lastfrag, + proto_tree_add_item(rpc_tree,hf_rpc_lastfrag, NullTVB, offset-4, 4, (rpc_rm >> 31) & 0x1); - proto_tree_add_item(rpc_tree,hf_rpc_fraglen, + proto_tree_add_item(rpc_tree,hf_rpc_fraglen, NullTVB, offset-4, 4, rpc_rm & RPC_RM_FRAGLEN); } xid = EXTRACT_UINT(pd,offset+0); if (rpc_tree) { - proto_tree_add_uint_format(rpc_tree,hf_rpc_xid, + proto_tree_add_uint_format(rpc_tree,hf_rpc_xid, NullTVB, offset+0, 4, xid, "XID: 0x%x (%u)", xid, xid); } msg_type_name = val_to_str(msg_type,rpc_msg_type,"%u"); if (rpc_tree) { - proto_tree_add_item(rpc_tree, hf_rpc_msgtype, + proto_tree_add_item(rpc_tree, hf_rpc_msgtype, NullTVB, offset+4, 4, msg_type); } @@ -919,14 +919,14 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) rpcvers = EXTRACT_UINT(pd,offset+0); if (rpc_tree) { proto_tree_add_item(rpc_tree, - hf_rpc_version, offset+0, 4, rpcvers); + hf_rpc_version, NullTVB, offset+0, 4, rpcvers); } prog = EXTRACT_UINT(pd,offset+4); if (rpc_tree) { proto_tree_add_uint_format(rpc_tree, - hf_rpc_program, offset+4, 4, prog, + hf_rpc_program, NullTVB, offset+4, 4, prog, "Program: %s (%u)", progname, prog); } @@ -941,7 +941,7 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) vers = EXTRACT_UINT(pd,offset+8); if (rpc_tree) { proto_tree_add_item(rpc_tree, - hf_rpc_programversion, offset+8, 4, vers); + hf_rpc_programversion, NullTVB, offset+8, 4, vers); } if (!BYTES_ARE_IN_FRAME(offset+12,4)) @@ -966,7 +966,7 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (rpc_tree) { proto_tree_add_uint_format(rpc_tree, - hf_rpc_procedure, offset+12, 4, proc, + hf_rpc_procedure, NullTVB, offset+12, 4, proc, "Procedure: %s (%u)", procname, proc); } @@ -1004,9 +1004,9 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_append_fstr(fd, COL_INFO, " dup XID 0x%x", xid); if (rpc_tree) { proto_tree_add_item_hidden(rpc_tree, - hf_rpc_dup, 0,0, xid); + hf_rpc_dup, NullTVB, 0,0, xid); proto_tree_add_item_hidden(rpc_tree, - hf_rpc_call_dup, 0,0, xid); + hf_rpc_call_dup, NullTVB, 0,0, xid); } } } @@ -1083,12 +1083,12 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (rpc_tree) { proto_tree_add_uint_format(rpc_tree, - hf_rpc_program, 0, 0, prog, + hf_rpc_program, NullTVB, 0, 0, prog, "Program: %s (%u)", progname, prog); proto_tree_add_item(rpc_tree, - hf_rpc_programversion, 0, 0, vers); + hf_rpc_programversion, NullTVB, 0, 0, vers); proto_tree_add_uint_format(rpc_tree, - hf_rpc_procedure, 0, 0, proc, + hf_rpc_procedure, NullTVB, 0, 0, proc, "Procedure: %s (%u)", procname, proc); } @@ -1097,9 +1097,9 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_append_fstr(fd, COL_INFO, " dup XID 0x%x", xid); if (rpc_tree) { proto_tree_add_item_hidden(rpc_tree, - hf_rpc_dup, 0,0, xid); + hf_rpc_dup, NullTVB, 0,0, xid); proto_tree_add_item_hidden(rpc_tree, - hf_rpc_reply_dup, 0,0, xid); + hf_rpc_reply_dup, NullTVB, 0,0, xid); } } } @@ -1108,7 +1108,7 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) return TRUE; reply_state = EXTRACT_UINT(pd,offset+0); if (rpc_tree) { - proto_tree_add_item(rpc_tree, hf_rpc_state_reply, + proto_tree_add_item(rpc_tree, hf_rpc_state_reply, NullTVB, offset+0, 4, reply_state); } offset += 4; @@ -1119,7 +1119,7 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) return TRUE; accept_state = EXTRACT_UINT(pd,offset+0); if (rpc_tree) { - proto_tree_add_item(rpc_tree, hf_rpc_state_accept, + proto_tree_add_item(rpc_tree, hf_rpc_state_accept, NullTVB, offset+0, 4, accept_state); } offset += 4; @@ -1136,10 +1136,10 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (rpc_tree) { proto_tree_add_item(rpc_tree, hf_rpc_programversion_min, - offset+0, 4, vers_low); + NullTVB, offset+0, 4, vers_low); proto_tree_add_item(rpc_tree, hf_rpc_programversion_max, - offset+4, 4, vers_high); + NullTVB, offset+4, 4, vers_high); } offset += 8; break; @@ -1153,7 +1153,7 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) reject_state = EXTRACT_UINT(pd,offset+0); if (rpc_tree) { proto_tree_add_item(rpc_tree, - hf_rpc_state_reject, offset+0, 4, + hf_rpc_state_reject, NullTVB, offset+0, 4, reject_state); } offset += 4; @@ -1166,10 +1166,10 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (rpc_tree) { proto_tree_add_item(rpc_tree, hf_rpc_version_min, - offset+0, 4, vers_low); + NullTVB, offset+0, 4, vers_low); proto_tree_add_item(rpc_tree, hf_rpc_version_max, - offset+4, 4, vers_high); + NullTVB, offset+4, 4, vers_high); } offset += 8; } else if (reject_state==AUTH_ERROR) { @@ -1178,7 +1178,7 @@ dissect_rpc( const u_char *pd, int offset, frame_data *fd, proto_tree *tree) auth_state = EXTRACT_UINT(pd,offset+0); if (rpc_tree) { proto_tree_add_item(rpc_tree, - hf_rpc_state_auth, offset+0, 4, + hf_rpc_state_auth, NullTVB, offset+0, 4, auth_state); } offset += 4; @@ -1196,16 +1196,16 @@ dissect_rpc_prog: /* create here the program specific sub-tree */ if (tree) { - pitem = proto_tree_add_item(tree, proto, offset, END_OF_FRAME); + pitem = proto_tree_add_item(tree, proto, NullTVB, offset, END_OF_FRAME); if (pitem) { ptree = proto_item_add_subtree(pitem, ett); } if (ptree) { proto_tree_add_item(ptree, - hf_rpc_programversion, 0, 0, vers); + hf_rpc_programversion, NullTVB, 0, 0, vers); proto_tree_add_uint_format(ptree, - hf_rpc_procedure, 0, 0, proc, + hf_rpc_procedure, NullTVB, 0, 0, proc, "Procedure: %s (%u)", procname, proc); } } diff --git a/packet-rsvp.c b/packet-rsvp.c index 41dab852d4..a0a13db5be 100644 --- a/packet-rsvp.c +++ b/packet-rsvp.c @@ -3,7 +3,7 @@ * * (c) Copyright Ashok Narayanan * - * $Id: packet-rsvp.c,v 1.20 2000/04/16 22:46:22 guy Exp $ + * $Id: packet-rsvp.c,v 1.21 2000/05/11 08:15:41 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -857,30 +857,30 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { msg_length = pntohs(pd+offset+6); - ti = proto_tree_add_item(tree, proto_rsvp, offset, msg_length, NULL); + ti = proto_tree_add_item(tree, proto_rsvp, NullTVB, offset, msg_length, NULL); rsvp_tree = proto_item_add_subtree(ti, ett_rsvp); - ti = proto_tree_add_text(rsvp_tree, offset, + ti = proto_tree_add_text(rsvp_tree, NullTVB, offset, sizeof(rsvp_header), "RSVP Header"); rsvp_header_tree = proto_item_add_subtree(ti, ett_rsvp_hdr); - proto_tree_add_text(rsvp_header_tree, offset, 1, "RSVP Version: %u", + proto_tree_add_text(rsvp_header_tree, NullTVB, offset, 1, "RSVP Version: %u", (hdr->ver_flags & 0xf0)>>4); - proto_tree_add_text(rsvp_header_tree, offset, 1, "Flags: %02X", + proto_tree_add_text(rsvp_header_tree, NullTVB, offset, 1, "Flags: %02X", hdr->ver_flags & 0xf); - proto_tree_add_item(rsvp_header_tree, rsvp_filter[RSVPF_MSG], + proto_tree_add_item(rsvp_header_tree, rsvp_filter[RSVPF_MSG], NullTVB, offset+1, 1, hdr->message_type); if (hdr->message_type >= RSVPF_MAX) { - proto_tree_add_text(rsvp_header_tree, offset+1, 1, "Message Type: %u - Unknown", + proto_tree_add_text(rsvp_header_tree, NullTVB, offset+1, 1, "Message Type: %u - Unknown", hdr->message_type); return; } - proto_tree_add_item_hidden(rsvp_header_tree, rsvp_filter[RSVPF_MSG + hdr->message_type], + proto_tree_add_item_hidden(rsvp_header_tree, rsvp_filter[RSVPF_MSG + hdr->message_type], NullTVB, offset+1, 1, 1); - proto_tree_add_text(rsvp_header_tree, offset + 2 , 2, "Message Checksum"); - proto_tree_add_text(rsvp_header_tree, offset + 4 , 1, "Sending TTL: %u", + proto_tree_add_text(rsvp_header_tree, NullTVB, offset + 2 , 2, "Message Checksum"); + proto_tree_add_text(rsvp_header_tree, NullTVB, offset + 4 , 1, "Sending TTL: %u", hdr->sending_ttl); - proto_tree_add_text(rsvp_header_tree, offset + 6 , 2, "Message length: %d", + proto_tree_add_text(rsvp_header_tree, NullTVB, offset + 6 , 2, "Message length: %d", msg_length); offset += sizeof(rsvp_header); @@ -889,16 +889,16 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) obj = (rsvp_object *)&pd[offset]; obj_length = pntohs(pd+offset); if (!BYTES_ARE_IN_FRAME(offset, obj_length)) { - proto_tree_add_text(rsvp_tree, offset, 1, + proto_tree_add_text(rsvp_tree, NullTVB, offset, 1, "Further data not captured"); break; } object_type = match_strval(obj->class, rsvp_class_vals); if (!object_type) object_type = "Unknown"; - ti = proto_tree_add_item_hidden(rsvp_tree, rsvp_filter[RSVPF_OBJECT], + ti = proto_tree_add_item_hidden(rsvp_tree, rsvp_filter[RSVPF_OBJECT], NullTVB, offset, obj_length, obj->class); - ti = proto_tree_add_item(rsvp_tree, rsvp_filter[rsvp_class_to_filter_num(obj->class)], + ti = proto_tree_add_item(rsvp_tree, rsvp_filter[rsvp_class_to_filter_num(obj->class)], NullTVB, offset, obj_length, obj->class); offset2 = offset + sizeof(rsvp_object); @@ -907,71 +907,71 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_SESSION : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_session); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); switch(obj->type) { case 1: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1 - IPv4"); memcpy(&ip_addr, pd+offset2, 4); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_IP], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_IP], NullTVB, offset2, 4, ip_addr); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_PROTO], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_PROTO], NullTVB, offset2+4, 1, *(pd+offset2+4)); - proto_tree_add_text(rsvp_object_tree, offset2+5, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+5, 1, "Flags: %x", pntohs(pd+offset2+5)); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_PORT], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_PORT], NullTVB, offset2+6, 2, pntohs(pd+offset2+6)); break; } case 2: { rsvp_session_ipv6 *sess = (rsvp_session_ipv6 *)obj; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 2 - IPv6"); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "Destination address: %s", ip6_to_str(&(sess->destination))); - proto_tree_add_text(rsvp_object_tree, offset2+16, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+16, 1, "Protocol: %u", sess->protocol); - proto_tree_add_text(rsvp_object_tree, offset2+17, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+17, 1, "Flags: %x", sess->flags); - proto_tree_add_text(rsvp_object_tree, offset2+18, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+18, 2, "Destination port: %u", pntohs(pd+offset2+18)); break; } case 7: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 7 - IPv4 LSP"); memcpy(&ip_addr, pd+offset2, 4); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_IP], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_IP], NullTVB, offset2, 4, ip_addr); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_TUNNEL_ID], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_TUNNEL_ID], NullTVB, offset2+6, 2, pntohs(pd+offset2+6)); memcpy(&ip_addr, pd+offset2+8, 4); - proto_tree_add_text(rsvp_object_tree, offset2+8, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+8, 4, "Extended Tunnel ID: %lu (%s)", (unsigned long)ntohl(ip_addr), ip_to_str(pd+offset2+8)); - proto_tree_add_item_hidden(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_EXT_TUNNEL_ID], + proto_tree_add_item_hidden(rsvp_object_tree, rsvp_filter[RSVPF_SESSION_EXT_TUNNEL_ID], NullTVB, offset2+8, 4, ip_addr); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); } } @@ -979,20 +979,20 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_HOP : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_hop); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); switch(obj->type) { case 1: { rsvp_hop_ipv4 *hop = (rsvp_hop_ipv4 *)obj; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1 - IPv4"); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "Neighbor address: %s", ip_to_str((guint8 *) &(hop->neighbor))); - proto_tree_add_text(rsvp_object_tree, offset2+4, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+4, 4, "Logical interface: %0x", pntohl(pd+offset2+4)); break; @@ -1000,23 +1000,23 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case 2: { rsvp_hop_ipv6 *hop = (rsvp_hop_ipv6 *)obj; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 2 - IPv6"); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "Neighbor address: %s", ip6_to_str(&(hop->neighbor))); - proto_tree_add_text(rsvp_object_tree, offset2+16, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+16, 4, "Logical interface: %0x", pntohl(pd+offset2+16)); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); } } @@ -1024,16 +1024,16 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_TIME_VALUES : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_time_values); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); switch(obj->type) { case 1: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1"); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "Refresh interval: %u ms (%u seconds)", pntohl(pd+offset2), pntohl(pd+offset2)/1000); @@ -1041,11 +1041,11 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; } @@ -1054,9 +1054,9 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_ERROR : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_error); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); switch(obj->type) { @@ -1065,17 +1065,17 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) char *err_str = match_strval(err->error_code, rsvp_error_vals); if (!err_str) err_str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1 - IPv4"); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "Error node: %s", ip_to_str((guint8 *) &(err->error_node))); - proto_tree_add_text(rsvp_object_tree, offset2+4, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+4, 1, "Flags: %02x", err->flags); - proto_tree_add_text(rsvp_object_tree, offset2+5, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+5, 1, "Error code: %u - %s", err->error_code, err_str); - proto_tree_add_text(rsvp_object_tree, offset2+6, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+6, 2, "Error value: %u", pntohs(pd+offset2+6)); break; @@ -1085,28 +1085,28 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) rsvp_error_ipv6 *err = (rsvp_error_ipv6 *)obj; char *err_str = match_strval(err->error_code, rsvp_error_vals); if (!err_str) err_str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 2 - IPv6"); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "Error node: %s", ip6_to_str(&(err->error_node))); - proto_tree_add_text(rsvp_object_tree, offset2+16, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+16, 1, "Flags: %02x", err->flags); - proto_tree_add_text(rsvp_object_tree, offset2+17, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+17, 1, "Error code: %u - %s", err->error_code, err_str); - proto_tree_add_text(rsvp_object_tree, offset2+18, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+18, 2, "Error value: %u", pntohs(pd+offset2+18)); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); } } @@ -1116,19 +1116,19 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_SCOPE : mylen = obj_length; rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_scope); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); switch(obj->type) { case 1: { unsigned long ip; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1 - IPv4"); while (mylen > sizeof(rsvp_object)) { ip = pntohl(pd+offset2); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "IPv4 Address: %s", ip_to_str((guint8 *) &ip)); offset2 += 4; @@ -1138,11 +1138,11 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } case 2: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 2 - IPv6"); while (mylen>sizeof(rsvp_object)) { ip6a = (struct e_in6_addr *)pd+offset2; - proto_tree_add_text(rsvp_object_tree, offset2, 16, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 16, "IPv6 Address: %s", ip6_to_str(ip6a)); offset2 += 16; @@ -1152,11 +1152,11 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); } } @@ -1164,9 +1164,9 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_STYLE : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_style); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); switch(obj->type) { @@ -1174,19 +1174,19 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) unsigned long ip = pntohl(pd+offset2); char *style_str = match_strval(ip, style_vals); if (!style_str) style_str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1"); - proto_tree_add_text(rsvp_object_tree, offset2+5, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+5, 1, "Style: %lu - %s", ip, style_str); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; } @@ -1195,17 +1195,17 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_CONFIRM : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_confirm); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); switch(obj->type) { case 1: { rsvp_confirm_ipv4 *confirm = (rsvp_confirm_ipv4 *)obj; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1 - IPv4"); - proto_tree_add_text(rsvp_object_tree, offset2, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 4, "Receiver address: %s", ip_to_str((guint8 *) &(confirm->receiver))); break; @@ -1213,20 +1213,20 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case 2: { rsvp_confirm_ipv6 *confirm = (rsvp_confirm_ipv6 *)obj; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 2 - IPv6"); - proto_tree_add_text(rsvp_object_tree, offset2, 16, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 16, "Receiver address: %s", ip6_to_str(&(confirm->receiver))); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); } } @@ -1234,63 +1234,63 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_SENDER_TEMPLATE : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_sender_template); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); goto common_template; case RSVP_CLASS_FILTER_SPEC : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_filter_spec); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); common_template: switch(obj->type) { case 1: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1 - IPv4"); memcpy(&ip_addr, pd+offset2, 4); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_IP], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_IP], NullTVB, offset2, 4, ip_addr); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_PORT], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_PORT], NullTVB, offset2+6, 2, pntohs(pd+offset2+6)); break; } case 2: { rsvp_template_ipv6 *tem = (rsvp_template_ipv6 *)obj; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 2 - IPv6"); - proto_tree_add_text(rsvp_object_tree, offset2, 16, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 16, "Source address: %s", ip6_to_str(&(tem->source))); - proto_tree_add_text(rsvp_object_tree, offset2+18, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+18, 2, "Source port: %u", pntohs(pd+offset2+18)); break; } case 7: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 7 - IPv4 LSP"); memcpy(&ip_addr, pd+offset2, 4); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_IP], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_IP], NullTVB, offset2, 4, ip_addr); - proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_LSP_ID], + proto_tree_add_item(rsvp_object_tree, rsvp_filter[RSVPF_SENDER_LSP_ID], NullTVB, offset2+6, 2, pntohs(pd+offset2+6)); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%u)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); } } @@ -1305,16 +1305,16 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) mylen = obj_length; rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_sender_tspec); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Message format version: %u", tspec->version>>4); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Data length: %u words, not including header", pntohs(pd+offset2+2)); @@ -1325,10 +1325,10 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) str = match_strval(sh->service_num, qos_vals); if (!str) str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Service header: %u - %s", sh->service_num, str); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Length of service %u data: %u words, " "not including header", sh->service_num, @@ -1344,31 +1344,31 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Token bucket TSPEC */ str = match_strval(ist->param_id, svc_vals); if (!str) str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Parameter %u - %s", ist->param_id, str); - proto_tree_add_text(rsvp_object_tree, offset2+1, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+1, 1, "Parameter %u flags: %x", ist->param_id, ist->flags_tspec); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Parameter %u data length: %u words, " "not including header", ist->param_id, /* pntohs(pd+offset2+10)); */ ntohs(ist->parameter_length)); - proto_tree_add_text(rsvp_object_tree, offset2+4, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+4, 4, "Token bucket rate: %ld", pieee_to_long(pd+offset2+4)); - proto_tree_add_text(rsvp_object_tree, offset2+8, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+8, 4, "Token bucket size: %ld", pieee_to_long(pd+offset2+8)); - proto_tree_add_text(rsvp_object_tree, offset2+12, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+12, 4, "Peak data rate: %ld", pieee_to_long(pd+offset2+12)); - proto_tree_add_text(rsvp_object_tree, offset2+16, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+16, 4, "Minimum policed unit: %u", pntohl(pd+offset2+16)); - proto_tree_add_text(rsvp_object_tree, offset2+20, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+20, 4, "Maximum policed unit: %u", pntohl(pd+offset2+20)); @@ -1380,19 +1380,19 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Token bucket TSPEC */ str = match_strval(qt->param_id, svc_vals); if (!str) str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Parameter %u - %s", qt->param_id, str); - proto_tree_add_text(rsvp_object_tree, offset2+1, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+1, 1, "Parameter %u flags: %x", qt->param_id, qt->flags_tspec); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Parameter %u data length: %u words, " "not including header", qt->param_id, /* pntohs(pd+offset2+10)); */ ntohs(qt->parameter_length)); - proto_tree_add_text(rsvp_object_tree, offset2+4, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+4, 4, "Maximum policed unit: %u", pntohl(pd+offset2+4)); @@ -1417,16 +1417,16 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) mylen = obj_length; rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_flowspec); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Message format version: %u", flowspec->version>>4); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Data length: %u words, not including header", pntohs(pd+offset2+2)); @@ -1437,10 +1437,10 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) str = match_strval(sh->service_num, intsrv_services_str); if (!str) str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Service header: %u - %s", sh->service_num, str); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Length of service %u data: %u words, " "not including header", sh->service_num, @@ -1457,30 +1457,30 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) str = match_strval(isf->tspec.param_id, svc_vals); if (!str) str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Parameter %u - %s", isf->tspec.param_id, str); - proto_tree_add_text(rsvp_object_tree, offset2+1, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+1, 1, "Parameter %u flags: %x", isf->tspec.param_id, isf->tspec.flags_tspec); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Parameter %u data length: %u words, " "not including header", isf->tspec.param_id, ntohs(isf->tspec.parameter_length)); - proto_tree_add_text(rsvp_object_tree, offset2+4, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+4, 4, "Token bucket rate: %ld", pieee_to_long(pd+offset2+4)); - proto_tree_add_text(rsvp_object_tree, offset2+8, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+8, 4, "Token bucket size: %ld", pieee_to_long(pd+offset2+8)); - proto_tree_add_text(rsvp_object_tree, offset2+12, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+12, 4, "Peak data rate: %ld", pieee_to_long(pd+offset2+12)); - proto_tree_add_text(rsvp_object_tree, offset2+16, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+16, 4, "Minimum policed unit: %u", pntohl(pd+offset2+16)); - proto_tree_add_text(rsvp_object_tree, offset2+20, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+20, 4, "Maximum policed unit: %u", pntohl(pd+offset2+20)); if (sh->service_num!=QOS_GUARANTEED) @@ -1489,22 +1489,22 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Guaranteed-rate RSpec */ str = match_strval(isf->rspec.param_id, svc_vals); if (!str) str="Unknown"; - proto_tree_add_text(rsvp_object_tree, offset2+24, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+24, 1, "Parameter %u - %s", isf->rspec.param_id, str); - proto_tree_add_text(rsvp_object_tree, offset2+25, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+25, 1, "Parameter %u flags: %x", isf->rspec.param_id, isf->rspec.flags_rspec); - proto_tree_add_text(rsvp_object_tree, offset2+26, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+26, 2, "Parameter %u data length: %u words, " "not including header", isf->rspec.param_id, ntohs(isf->rspec.param2_length)); - proto_tree_add_text(rsvp_object_tree, offset2+28, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+28, 4, "Rate: %ld", pieee_to_long(pd+offset2+28)); - proto_tree_add_text(rsvp_object_tree, offset2+32, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+32, 4, "Slack term: %u", pntohl(pd+offset2+32)); break; @@ -1514,18 +1514,18 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) str = match_strval(qf->param_id, svc_vals); if (!str) str = "Unknown"; - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Parameter %u - %s", qf->param_id, str); - proto_tree_add_text(rsvp_object_tree, offset2+1, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+1, 1, "Parameter %u flags: %x", qf->param_id, qf->flags_tspec); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Parameter %u data length: %u words, " "not including header", qf->param_id, ntohs(qf->parameter_length)); - proto_tree_add_text(rsvp_object_tree, offset2+4, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+4, 4, "Maximum policed unit: %u", pntohl(pd+offset2+4)); @@ -1547,16 +1547,16 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) mylen = obj_length; rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_adspec); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Message format version: %u", (*((unsigned char *)pd+offset2))>>4); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "Data length: %u words, not including header", pntohs(pd+offset2+2)); offset2+=4; @@ -1565,18 +1565,18 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) shdr = (service_hdr *)(pd + offset2); str = match_strval(shdr->service_num, intsrv_services_str); - ti = proto_tree_add_text(rsvp_object_tree, offset2, + ti = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, (pntohs(&shdr->length)+1)<<2, str?str:"Unknown"); adspec_tree = proto_item_add_subtree(ti, ett_rsvp_adspec_subtree); - proto_tree_add_text(adspec_tree, offset2, 1, + proto_tree_add_text(adspec_tree, NullTVB, offset2, 1, "Service header %u - %s", shdr->service_num, str); - proto_tree_add_text(adspec_tree, offset2+1, 1, + proto_tree_add_text(adspec_tree, NullTVB, offset2+1, 1, (shdr->break_bit&0x80)? "Break bit set":"Break bit not set"); - proto_tree_add_text(adspec_tree, offset2+2, 2, + proto_tree_add_text(adspec_tree, NullTVB, offset2+2, 2, "Data length: %u words, not including header", pntohs(&shdr->length)); offset2+=4; i=(pntohs(&shdr->length)+1)<<2; mylen-=4; @@ -1593,7 +1593,7 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case 135: case 136: /* 32-bit unsigned integer */ - proto_tree_add_text(adspec_tree, offset2, + proto_tree_add_text(adspec_tree, NullTVB, offset2, (pntohs(&phdr->length)+1)<<2, "%s - %lu (type %u, length %u)", str, @@ -1603,7 +1603,7 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case 6: /* IEEE float */ - proto_tree_add_text(adspec_tree, offset2, + proto_tree_add_text(adspec_tree, NullTVB, offset2, (pntohs(&phdr->length)+1)<<2, "%s - %lu (type %u, length %u)", str, @@ -1611,14 +1611,14 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) phdr->id, pntohs(&phdr->length)); break; default: - proto_tree_add_text(adspec_tree, offset2, + proto_tree_add_text(adspec_tree, NullTVB, offset2, (pntohs(&phdr->length)+1)<<2, "%s (type %u, length %u)", str, phdr->id, pntohs(&phdr->length)); } } else { - proto_tree_add_text(adspec_tree, offset2, + proto_tree_add_text(adspec_tree, NullTVB, offset2, (pntohs(&phdr->length)+1)<<2, "Unknown (type %u, length %u)", phdr->id, pntohs(&phdr->length)); @@ -1633,45 +1633,45 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_INTEGRITY : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_integrity); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); goto default_class; case RSVP_CLASS_POLICY : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_policy); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); goto default_class; case RSVP_CLASS_LABEL_REQUEST : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_label_request); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %d - %s", obj->class, object_type); switch(obj->type) { case 1: { unsigned short l3pid = pntohs(pd+offset2+2); - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1"); - proto_tree_add_text(rsvp_object_tree, offset2+2, 2, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 2, "L3PID: 0x%04x", l3pid); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%d)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; } @@ -1680,17 +1680,17 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_LABEL : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_label); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %d - %s", obj->class, object_type); switch(obj->type) { case 1: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1"); for (i=1, l = 0; l < obj_length - 4; l+=4, i++) - proto_tree_add_text(rsvp_object_tree, offset2+l, 4, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, 4, "Label %d: %d %s", i, pntohl(pd+offset2+l), l == obj_length - 8 ? @@ -1699,11 +1699,11 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%d)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; } @@ -1712,54 +1712,54 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_SESSION_ATTRIBUTE : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_session_attribute); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %d - %s", obj->class, object_type); switch(obj->type) { case 7: { char s_name[64]; session_attribute *s_attr = (session_attribute *)&pd[offset]; - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 7 - IPv4 LSP"); - proto_tree_add_text(rsvp_object_tree, offset2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, 1, "Setup priority: %d", s_attr->setup_prio); - proto_tree_add_text(rsvp_object_tree, offset2+1, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+1, 1, "Hold priority: %d", s_attr->hold_prio); - ti2 = proto_tree_add_text(rsvp_object_tree, offset2+2, 1, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+2, 1, "Flags: %0x", s_attr->flags); rsvp_sa_flags_tree = proto_item_add_subtree(ti2, ett_rsvp_session_attribute_flags); - proto_tree_add_text(rsvp_sa_flags_tree, offset2+2, 1, + proto_tree_add_text(rsvp_sa_flags_tree, NullTVB, offset2+2, 1, ".......%d: Local protection: %s", s_attr->flags & 0x1 ? 1 : 0, s_attr->flags & 0x1 ? "Set" : "Not set"); - proto_tree_add_text(rsvp_sa_flags_tree, offset2+2, 1, + proto_tree_add_text(rsvp_sa_flags_tree, NullTVB, offset2+2, 1, "......%d.: Merging permitted: %s", s_attr->flags & 0x2 ? 1 : 0, s_attr->flags & 0x2 ? "Set" : "Not set"); - proto_tree_add_text(rsvp_sa_flags_tree, offset2+2, 1, + proto_tree_add_text(rsvp_sa_flags_tree, NullTVB, offset2+2, 1, ".....%d..: Ingress note may reroute: %s", s_attr->flags & 0x4 ? 1 : 0, s_attr->flags & 0x4 ? "Set" : "Not set"); - proto_tree_add_text(rsvp_object_tree, offset2+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+3, 1, "Name length: %d", s_attr->name_len); memset(s_name, 0, 64); strncpy(s_name, &pd[offset2+4], 60); if (s_attr->name_len>60) sprintf(&(s_name[60]), "..."); - proto_tree_add_text(rsvp_object_tree, offset2+4, s_attr->name_len, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+4, s_attr->name_len, "Name: %s", s_name); break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%d)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; } @@ -1768,103 +1768,103 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_EXPLICIT_ROUTE : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_explicit_route); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %d - %s", obj->class, object_type); switch(obj->type) { case 1: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1"); for (i=1, l = 0; l < obj_length - 4; i++) { j = ((unsigned char)pd[offset2+l]) & 0x7f; switch(j) { case 1: /* IPv4 */ k = ((unsigned char)pd[offset2+l]) & 0x80; - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, 8, "IPv4 Subobject - %s, %s", ip_to_str(&pd[offset2+l+2]), k ? "Loose" : "Strict"); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_explicit_route_subobj); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, k ? "Loose Hop " : "Strict Hop"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: 1 (IPv4)"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+2, 4, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+2, 4, "IPv4 hop: %s", ip_to_str(&pd[offset2+l+2])); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+6, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+6, 1, "Prefix length: %d", pd[offset2+l+6]); break; case 2: /* IPv6 */ - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, 20, "IPv6 Subobject"); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_explicit_route_subobj); k = ((unsigned char)pd[offset2+l]) & 0x80; - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, k ? "Loose Hop " : "Strict Hop"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: 2 (IPv6)"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); ip6a = (struct e_in6_addr *)pd+offset2+l+2; - proto_tree_add_text(rsvp_ero_subtree, offset2+l+2, 16, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+2, 16, "IPv6 hop: %s", ip6_to_str(ip6a)); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+18, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+18, 1, "Prefix length: %d", pd[offset2+l+6]); break; case 32: /* AS */ k = pntohs(offset2+l+2); - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, 4, "Autonomous System %d", k); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_explicit_route_subobj); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, k ? "Loose Hop " : "Strict Hop"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: 32 (Autonomous System Number)"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+2, 2, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+2, 2, "Autonomous System %d", k); break; case 64: /* Path Term */ k = ((unsigned char)pd[offset2+l]) & 0x80; - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, 4, "LSP Path Termination"); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_explicit_route_subobj); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, k ? "Loose Hop " : "Strict Hop"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: 64 (MPLS LSP Path Termination)"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); break; default: /* Unknown subobject */ k = ((unsigned char)pd[offset2+l]) & 0x80; - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, pd[offset2+l+1], "Unknown subobject: %d", j); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_explicit_route_subobj); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, k ? "Loose Hop " : "Strict Hop"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: %d (Unknown)", j); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); } @@ -1874,11 +1874,11 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) break; } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%d)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; } @@ -1888,64 +1888,64 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case RSVP_CLASS_RECORD_ROUTE : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_record_route); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %d - %s", obj->class, object_type); switch(obj->type) { case 1: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: 1"); for (i=1, l = 0; l < obj_length - 4; i++) { j = (unsigned char)pd[offset2+l]; switch(j) { case 1: /* IPv4 */ - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, 8, "IPv4 Subobject - %s", ip_to_str(&pd[offset2+l+2])); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_record_route_subobj); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: 1 (IPv4)"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+2, 4, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+2, 4, "IPv4 hop: %s", ip_to_str(&pd[offset2+l+2])); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+6, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+6, 1, "Prefix length: %d", pd[offset2+l+6]); break; case 2: /* IPv6 */ - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, 20, "IPv6 Subobject"); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_record_route_subobj); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: 2 (IPv6)"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); ip6a = (struct e_in6_addr *)pd+offset2+l+2; - proto_tree_add_text(rsvp_ero_subtree, offset2+l+2, 16, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+2, 16, "IPv6 hop: %s", ip6_to_str(ip6a)); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+18, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+18, 1, "Prefix length: %d", pd[offset2+l+6]); break; default: /* Unknown subobject */ k = ((unsigned char)pd[offset2+l]) & 0x80; - ti2 = proto_tree_add_text(rsvp_object_tree, + ti2 = proto_tree_add_text(rsvp_object_tree, NullTVB, offset2+l, pd[offset2+l+1], "Unknown subobject: %d", j); rsvp_ero_subtree = proto_item_add_subtree(ti2, ett_rsvp_record_route_subobj); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, k ? "Loose Hop " : "Strict Hop"); - proto_tree_add_text(rsvp_ero_subtree, offset2+l, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l, 1, "Type: %d (Unknown)", j); - proto_tree_add_text(rsvp_ero_subtree, offset2+l+1, 1, + proto_tree_add_text(rsvp_ero_subtree, NullTVB, offset2+l+1, 1, "Length: %d", pd[offset2+l+1]); } @@ -1956,11 +1956,11 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } default: { - proto_tree_add_text(rsvp_object_tree, offset+3, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+3, 1, "C-type: Unknown (%d)", obj->type); i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; } @@ -1969,14 +1969,14 @@ dissect_rsvp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) default : rsvp_object_tree = proto_item_add_subtree(ti, ett_rsvp_unknown_class); - proto_tree_add_text(rsvp_object_tree, offset, 2, "Length: %d", + proto_tree_add_text(rsvp_object_tree, NullTVB, offset, 2, "Length: %d", obj_length); - proto_tree_add_text(rsvp_object_tree, offset+2, 1, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset+2, 1, "Class number: %u - %s", obj->class, object_type); default_class: i = obj_length - sizeof(rsvp_object); - proto_tree_add_text(rsvp_object_tree, offset2, i, + proto_tree_add_text(rsvp_object_tree, NullTVB, offset2, i, "Data (%d bytes)", i); break; diff --git a/packet-rtcp.c b/packet-rtcp.c index aaff7c7b64..517b1f0f7c 100644 --- a/packet-rtcp.c +++ b/packet-rtcp.c @@ -3,7 +3,7 @@ * * Jason Lango * - * $Id: packet-rtcp.c,v 1.1 2000/04/21 01:45:56 guy Exp $ + * $Id: packet-rtcp.c,v 1.2 2000/05/11 08:15:42 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -98,40 +98,40 @@ dissect_rtcp_report(rtcp_hdr_t *hdr, int sn, const u_char *pd, int offset, rep.rtcp_rr_dlsr = ntohl(rep.rtcp_rr_dlsr); if ((offset + sizeof(rtcp_report_t)) > end_offset) { - proto_tree_add_text(rtcp_tree, offset, 0, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 0, "Warning: Bad packet length -- " "data might be incorrect"); } - proto_tree_add_text(rtcp_tree, offset, 4, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Source %d SSRC: %u", sn + 1, rep.rtcp_rr_ssrc); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 1, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 1, "Fraction lost: %u / 256", (unsigned) rep.rtcp_rr_flt); offset += 1; - proto_tree_add_text(rtcp_tree, offset, 3, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 3, "Cumulative Packets Lost: %lu", (((unsigned long) rep.rtcp_rr_cplthi) << 16) + (unsigned long) rep.rtcp_rr_cplt); offset += 3; - proto_tree_add_text(rtcp_tree, offset, 4, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Extended Highest Seq #: %lu", (unsigned long) rep.rtcp_rr_xhiseq); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Jitter: %lu", (unsigned long) rep.rtcp_rr_jitter); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Last SR timestamp (middle): %lu", (unsigned long) rep.rtcp_rr_lsr); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Delay Since Last SR: %lu", (unsigned long) rep.rtcp_rr_dlsr); offset += 4; @@ -157,7 +157,7 @@ dissect_rtcp_rr(rtcp_hdr_t *hdr, const u_char *pd, int offset, if ((offset + sizeof(rtcp_rr_t)) >= end_offset) return -1; - proto_tree_add_text(rtcp_tree, offset, 4, "Sender SSRC: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Sender SSRC: %u", rr.rtcp_rr_ssrc); offset += 4; @@ -196,27 +196,27 @@ dissect_rtcp_sr(rtcp_hdr_t *hdr, const u_char *pd, int offset, sr.rtcp_sr_nbytes = ntohl(sr.rtcp_sr_nbytes); if ((offset + sizeof(rtcp_sr_t)) > end_offset) { - proto_tree_add_text(rtcp_tree, offset, 0, + proto_tree_add_text(rtcp_tree, NullTVB, offset, 0, "Warning: Bad packet length -- " "data might be incorrect"); } - proto_tree_add_text(rtcp_tree, offset, 4, "Sender's SSRC: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Sender's SSRC: %u", sr.rtcp_sr_ssrc); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, "NTP timestamp, MSW: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "NTP timestamp, MSW: %u", sr.rtcp_sr_ntp_hi); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, "NTP timestamp, LSW: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "NTP timestamp, LSW: %u", sr.rtcp_sr_ntp_lo); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, "RTP timestamp: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "RTP timestamp: %u", sr.rtcp_sr_rtp_time); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, "Sender's packet count: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Sender's packet count: %u", sr.rtcp_sr_npackets); offset += 4; - proto_tree_add_text(rtcp_tree, offset, 4, "Sender's octet count: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Sender's octet count: %u", sr.rtcp_sr_nbytes); offset += 4; @@ -265,7 +265,7 @@ dissect_rtcp_sdes_chunk(rtcp_hdr_t *hdr, int cn, const u_char *pd, int offset, if ((offset + 4) > end_packet) return -1; - proto_tree_add_text(rtcp_tree, offset, 4, "Chunk %d SSRC: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 4, "Chunk %d SSRC: %u", cn + 1, pntohl(&pd[offset])); offset += 4; @@ -281,7 +281,7 @@ dissect_rtcp_sdes_chunk(rtcp_hdr_t *hdr, int cn, const u_char *pd, int offset, if ((offset - start_packet) & 3) { offset += 4 - ((offset - start_packet) & 3); } - proto_tree_add_text(rtcp_tree, pad_start, + proto_tree_add_text(rtcp_tree, NullTVB, pad_start, offset - pad_start, "(end of chunk and alignment padding)"); break; @@ -289,7 +289,7 @@ dissect_rtcp_sdes_chunk(rtcp_hdr_t *hdr, int cn, const u_char *pd, int offset, ctype = rtcp_find_chunk_type(type); - proto_tree_add_text(rtcp_tree, offset, 1, "Chunk type: %s", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 1, "Chunk type: %s", ctype->name); offset++; @@ -297,14 +297,14 @@ dissect_rtcp_sdes_chunk(rtcp_hdr_t *hdr, int cn, const u_char *pd, int offset, return -1; len = pd[offset]; - proto_tree_add_text(rtcp_tree, offset, 1, "Chunk length: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 1, "Chunk length: %u", (unsigned) len); offset++; if ((offset + len) > end_packet) return -1; - proto_tree_add_text(rtcp_tree, offset, len, "Chunk string: %s", + proto_tree_add_text(rtcp_tree, NullTVB, offset, len, "Chunk string: %s", format_text(&pd[offset], len)); offset += len; } @@ -342,7 +342,7 @@ dissect_one_rtcp(const u_char *pd, int offset, frame_data *fd, start_packet = offset; end_offset = offset + END_OF_FRAME; - ti = proto_tree_add_item(tree, proto_rtcp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_rtcp, NullTVB, offset, END_OF_FRAME, NULL); rtcp_tree = proto_item_add_subtree(ti, ett_rtcp); memcpy(&hdr, data, END_OF_FRAME < sizeof(rtcp_hdr_t) ? @@ -351,15 +351,15 @@ dissect_one_rtcp(const u_char *pd, int offset, frame_data *fd, if (offset >= end_offset) return -1; - proto_tree_add_text(rtcp_tree, offset, 1, "Version: %u (%s)", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 1, "Version: %u (%s)", RTCP_VERSION(&hdr), RTCP_VERSION(&hdr) == 3 ? "New Unknown Version" : RTCP_VERSION(&hdr) == 2 ? "RFC 1889 Version" : RTCP_VERSION(&hdr) == 1 ? "First Draft Version" : "Old Vat Version"); - proto_tree_add_text(rtcp_tree, offset, 1, "Padding: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 1, "Padding: %u", RTCP_PADDING(&hdr)); - proto_tree_add_text(rtcp_tree, offset, 1, "Count: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 1, "Count: %u", RTCP_COUNT(&hdr)); offset++; @@ -373,13 +373,13 @@ dissect_one_rtcp(const u_char *pd, int offset, frame_data *fd, case RTCP_TYPE_APP: ptype = "APP: Application-defined"; break; default: ptype = "Unknown"; break; } - proto_tree_add_text(rtcp_tree, offset, 1, "Type: %u (%s)", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 1, "Type: %u (%s)", (u_int) hdr.rtcp_type, ptype); offset++; if (offset >= end_offset) return -1; - proto_tree_add_text(rtcp_tree, offset, 2, "Length / 4 - 1: %u", + proto_tree_add_text(rtcp_tree, NullTVB, offset, 2, "Length / 4 - 1: %u", (unsigned) hdr.rtcp_length); offset += 2; @@ -402,14 +402,14 @@ dissect_one_rtcp(const u_char *pd, int offset, frame_data *fd, end_packet, rtcp_tree); break; default: - proto_tree_add_text(rtcp_tree, offset, END_OF_FRAME, + proto_tree_add_text(rtcp_tree, NullTVB, offset, END_OF_FRAME, "TYPE NOT HANDLED YET"); offset = end_packet; break; } if (offset > 0 && offset < end_packet) { - proto_tree_add_text(rtcp_tree, offset, end_packet - offset, + proto_tree_add_text(rtcp_tree, NullTVB, offset, end_packet - offset, "Extra data (%d bytes)", end_packet - offset); } if (offset < 0) @@ -433,7 +433,7 @@ dissect_rtcp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) offset = dissect_one_rtcp(pd, offset, fd, tree); } if (offset < 0) { - proto_tree_add_text(tree, end_offset, 0, + proto_tree_add_text(tree, NullTVB, end_offset, 0, "Unexpected end of packet"); } } diff --git a/packet-rtp.c b/packet-rtp.c index 1590148bc2..f9d1dfd2b2 100644 --- a/packet-rtp.c +++ b/packet-rtp.c @@ -3,7 +3,7 @@ * * Jason Lango * - * $Id: packet-rtp.c,v 1.2 2000/05/09 06:28:05 guy Exp $ + * $Id: packet-rtp.c,v 1.3 2000/05/11 08:15:43 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -107,7 +107,7 @@ dissect_rtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) rtp_tree = NULL; if (tree) { - ti = proto_tree_add_item(tree, proto_rtp, offset, END_OF_FRAME, + ti = proto_tree_add_item(tree, proto_rtp, NullTVB, offset, END_OF_FRAME, NULL); rtp_tree = proto_item_add_subtree(ti, ett_rtp); } @@ -117,43 +117,43 @@ dissect_rtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (offset >= end_offset) goto bad_len; - proto_tree_add_text(rtp_tree, offset, 1, "Version: %u (%s)", + proto_tree_add_text(rtp_tree, NullTVB, offset, 1, "Version: %u (%s)", RTP_VERSION(&hdr), RTP_VERSION(&hdr) == 3 ? "New Unknown Version" : RTP_VERSION(&hdr) == 2 ? "RFC 1889 Version" : RTP_VERSION(&hdr) == 1 ? "First Draft Version" : "Old Vat Version"); - proto_tree_add_text(rtp_tree, offset, 1, "Padding: %u", + proto_tree_add_text(rtp_tree, NullTVB, offset, 1, "Padding: %u", RTP_PADDING(&hdr)); - proto_tree_add_text(rtp_tree, offset, 1, "Extension: %u", + proto_tree_add_text(rtp_tree, NullTVB, offset, 1, "Extension: %u", RTP_EXTENSION(&hdr)); - proto_tree_add_text(rtp_tree, offset, 1, "CSRC Count: %u", + proto_tree_add_text(rtp_tree, NullTVB, offset, 1, "CSRC Count: %u", RTP_CSRC_COUNT(&hdr)); offset++; if (offset >= end_offset) goto bad_len; - proto_tree_add_text(rtp_tree, offset, 1, "Marker: %u", + proto_tree_add_text(rtp_tree, NullTVB, offset, 1, "Marker: %u", RTP_MARKER(&hdr)); - proto_tree_add_text(rtp_tree, offset, 1, "Payload Type: %u", + proto_tree_add_text(rtp_tree, NullTVB, offset, 1, "Payload Type: %u", RTP_PAYLOAD_TYPE(&hdr)); offset++; if (offset >= end_offset) goto bad_len; - proto_tree_add_text(rtp_tree, offset, 2, "Seq: %u", + proto_tree_add_text(rtp_tree, NullTVB, offset, 2, "Seq: %u", (u_int) hdr.rtp_seq); offset += 2; if (offset >= end_offset) goto bad_len; - proto_tree_add_text(rtp_tree, offset, 4, "Timestamp: %lu", + proto_tree_add_text(rtp_tree, NullTVB, offset, 4, "Timestamp: %lu", (u_long) hdr.rtp_timestamp); offset += 4; if (offset >= end_offset) goto bad_len; - proto_tree_add_text(rtp_tree, offset, 4, "SSRC: %lu", + proto_tree_add_text(rtp_tree, NullTVB, offset, 4, "SSRC: %lu", (u_long) hdr.rtp_ssrc); offset += 4; @@ -163,7 +163,7 @@ dissect_rtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (offset >= end_offset) goto bad_len; csrc = pntohl(csrc_ptr); - proto_tree_add_text(rtp_tree, offset, 4, "CSRC %d: %lu", + proto_tree_add_text(rtp_tree, NullTVB, offset, 4, "CSRC %d: %lu", ii + 1, (u_long) csrc); offset += 4; csrc_ptr++; @@ -176,25 +176,25 @@ dissect_rtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) ext.rtp_ext_app = ntohs(ext.rtp_ext_app); ext.rtp_ext_length = ntohs(ext.rtp_ext_length); - proto_tree_add_text(rtp_tree, offset, 2, + proto_tree_add_text(rtp_tree, NullTVB, offset, 2, "Extension-defined: %x", (u_int) ext.rtp_ext_app); offset += 2; - proto_tree_add_text(rtp_tree, offset, 2, + proto_tree_add_text(rtp_tree, NullTVB, offset, 2, "Extension length: %u", (u_int) ext.rtp_ext_length); offset += 2; - proto_tree_add_text(rtp_tree, offset, 4 * ext.rtp_ext_length, + proto_tree_add_text(rtp_tree, NullTVB, offset, 4 * ext.rtp_ext_length, "Extension Data (%d bytes)", (int) 4 * ext.rtp_ext_length); offset += 4 * ext.rtp_ext_length; } - proto_tree_add_text(rtp_tree, offset, END_OF_FRAME, + proto_tree_add_text(rtp_tree, NullTVB, offset, END_OF_FRAME, "Data (%d bytes)", END_OF_FRAME); return; bad_len: - proto_tree_add_text(rtp_tree, end_offset, 0, + proto_tree_add_text(rtp_tree, NullTVB, end_offset, 0, "Unexpected end of packet"); } diff --git a/packet-rtsp.c b/packet-rtsp.c index 4acf052101..1c929c32e4 100644 --- a/packet-rtsp.c +++ b/packet-rtsp.c @@ -4,7 +4,7 @@ * Jason Lango * Liberally copied from packet-http.c, by Guy Harris * - * $Id: packet-rtsp.c,v 1.12 2000/04/21 07:43:53 guy Exp $ + * $Id: packet-rtsp.c,v 1.13 2000/05/11 08:15:43 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -153,7 +153,7 @@ static void dissect_rtsp(const u_char *pd, int offset, frame_data *fd, rtsp_tree = NULL; if (tree) { - ti = proto_tree_add_item(tree, proto_rtsp, offset, + ti = proto_tree_add_item(tree, proto_rtsp, NullTVB, offset, END_OF_FRAME, NULL); rtsp_tree = proto_item_add_subtree(ti, ett_rtsp); } @@ -263,7 +263,7 @@ static void dissect_rtsp(const u_char *pd, int offset, frame_data *fd, * Put this line. */ if (rtsp_tree) { - proto_tree_add_text(rtsp_tree, offset, linelen, "%s", + proto_tree_add_text(rtsp_tree, NullTVB, offset, linelen, "%s", format_text(data, linelen)); } if (linelen > strlen(rtsp_transport) && @@ -280,13 +280,13 @@ static void dissect_rtsp(const u_char *pd, int offset, frame_data *fd, col_add_str(fd, COL_PROTOCOL, "RTSP/SDP"); } else if (data < dataend) { - proto_tree_add_text(rtsp_tree, offset, END_OF_FRAME, + proto_tree_add_text(rtsp_tree, NullTVB, offset, END_OF_FRAME, "Data (%d bytes)", END_OF_FRAME); } return; bad_len: - proto_tree_add_text(rtsp_tree, end_offset, 0, + proto_tree_add_text(rtsp_tree, NullTVB, end_offset, 0, "Unexpected end of packet"); } @@ -318,7 +318,7 @@ process_rtsp_request_or_reply(const u_char *data, int offset, int linelen, status_start = status; while (status < lineend && isdigit(*status)) status_i = status_i * 10 + *status++ - '0'; - proto_tree_add_item_hidden(tree, hf_rtsp_status, + proto_tree_add_item_hidden(tree, hf_rtsp_status, NullTVB, offset + (status_start - data), status - status_start, status_i); } @@ -340,7 +340,7 @@ process_rtsp_request_or_reply(const u_char *data, int offset, int linelen, u_char *tmp_url; /* method name */ - proto_tree_add_item_hidden(tree, hf_rtsp_method, offset, + proto_tree_add_item_hidden(tree, hf_rtsp_method, NullTVB, offset, strlen(rtsp_methods[ii]), rtsp_methods[ii]); /* URL */ @@ -355,7 +355,7 @@ process_rtsp_request_or_reply(const u_char *data, int offset, int linelen, tmp_url = g_malloc(url - url_start + 1); memcpy(tmp_url, url_start, url - url_start); tmp_url[url - url_start] = 0; - proto_tree_add_item_hidden(tree, hf_rtsp_url, + proto_tree_add_item_hidden(tree, hf_rtsp_url, NullTVB, offset + (url_start - data), url - url_start, tmp_url); g_free(tmp_url); } diff --git a/packet-rx.c b/packet-rx.c index 28bdf78ba8..7889c2456f 100644 --- a/packet-rx.c +++ b/packet-rx.c @@ -4,7 +4,7 @@ * Based on routines from tcpdump patches by * Ken Hornstein * - * $Id: packet-rx.c,v 1.10 2000/04/14 06:42:51 guy Exp $ + * $Id: packet-rx.c,v 1.11 2000/05/11 08:15:43 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -114,46 +114,46 @@ dissect_rx(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_rx, offset, + ti = proto_tree_add_protocol_format(tree, proto_rx, NullTVB, offset, sizeof(struct rx_header), "RX Protocol (%s)", val_to_str(rxh->type,rx_types,"unknown (%d)")); rx_tree = proto_item_add_subtree(ti, ett_rx); - proto_tree_add_item(rx_tree, hf_rx_epoch, + proto_tree_add_item(rx_tree, hf_rx_epoch, NullTVB, offset, 4, pntohl(&rxh->epoch)); - proto_tree_add_item(rx_tree, hf_rx_cid, + proto_tree_add_item(rx_tree, hf_rx_cid, NullTVB, offset+4, 4, pntohl(&rxh->cid)); - proto_tree_add_item(rx_tree, hf_rx_callnumber, + proto_tree_add_item(rx_tree, hf_rx_callnumber, NullTVB, offset+8, 4, pntohl(&rxh->callNumber)); - proto_tree_add_item(rx_tree, hf_rx_seq, + proto_tree_add_item(rx_tree, hf_rx_seq, NullTVB, offset+12, 4, pntohl(&rxh->seq)); - proto_tree_add_item(rx_tree, hf_rx_serial, + proto_tree_add_item(rx_tree, hf_rx_serial, NullTVB, offset+16, 4, pntohl(&rxh->serial)); - proto_tree_add_item(rx_tree, hf_rx_type, + proto_tree_add_item(rx_tree, hf_rx_type, NullTVB, offset+20, 1, rxh->type); - rx_flags = proto_tree_add_item(rx_tree, hf_rx_flags, + rx_flags = proto_tree_add_item(rx_tree, hf_rx_flags, NullTVB, offset+21, 1, rxh->flags); rx_tree_flags = proto_item_add_subtree(rx_flags, ett_rx_flags); - proto_tree_add_item(rx_tree_flags, hf_rx_flags_free_packet, + proto_tree_add_item(rx_tree_flags, hf_rx_flags_free_packet, NullTVB, offset+21, 1, rxh->flags); - proto_tree_add_item(rx_tree_flags, hf_rx_flags_more_packets, + proto_tree_add_item(rx_tree_flags, hf_rx_flags_more_packets, NullTVB, offset+21, 1, rxh->flags); - proto_tree_add_item(rx_tree_flags, hf_rx_flags_last_packet, + proto_tree_add_item(rx_tree_flags, hf_rx_flags_last_packet, NullTVB, offset+21, 1, rxh->flags); - proto_tree_add_item(rx_tree_flags, hf_rx_flags_request_ack, + proto_tree_add_item(rx_tree_flags, hf_rx_flags_request_ack, NullTVB, offset+21, 1, rxh->flags); - proto_tree_add_item(rx_tree_flags, hf_rx_flags_clientinit, + proto_tree_add_item(rx_tree_flags, hf_rx_flags_clientinit, NullTVB, offset+21, 1, rxh->flags); - proto_tree_add_item(rx_tree, hf_rx_userstatus, + proto_tree_add_item(rx_tree, hf_rx_userstatus, NullTVB, offset+22, 1, rxh->userStatus); - proto_tree_add_item(rx_tree, hf_rx_securityindex, + proto_tree_add_item(rx_tree, hf_rx_securityindex, NullTVB, offset+23, 1, rxh->securityIndex); - proto_tree_add_item(rx_tree, hf_rx_spare, + proto_tree_add_item(rx_tree, hf_rx_spare, NullTVB, offset+24, 2, pntohs(&rxh->spare)); - proto_tree_add_item(rx_tree, hf_rx_serviceid, + proto_tree_add_item(rx_tree, hf_rx_serviceid, NullTVB, offset+26, 2, pntohs(&rxh->serviceId)); } diff --git a/packet-sap.c b/packet-sap.c index adfd4c163f..99d9bea9fa 100644 --- a/packet-sap.c +++ b/packet-sap.c @@ -4,7 +4,7 @@ * * Heikki Vatiainen * - * $Id: packet-sap.c,v 1.6 2000/04/08 07:07:35 guy Exp $ + * $Id: packet-sap.c,v 1.7 2000/05/11 08:15:43 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -154,28 +154,28 @@ dissect_sap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { - si = proto_tree_add_item(tree, proto_sap, offset, END_OF_FRAME, NULL); + si = proto_tree_add_item(tree, proto_sap, NullTVB, offset, END_OF_FRAME, NULL); sap_tree = proto_item_add_subtree(si, ett_sap); - sif = proto_tree_add_item(sap_tree, hf_sap_flags, offset, 1, pd[offset]); + sif = proto_tree_add_item(sap_tree, hf_sap_flags, NullTVB, offset, 1, pd[offset]); sap_flags_tree = proto_item_add_subtree(sif, ett_sap_flags); - proto_tree_add_item(sap_flags_tree, hf_sap_flags_v, offset, 1, pd[offset]); - proto_tree_add_item(sap_flags_tree, hf_sap_flags_a, offset, 1, pd[offset]); - proto_tree_add_item(sap_flags_tree, hf_sap_flags_r, offset, 1, pd[offset]); - proto_tree_add_item(sap_flags_tree, hf_sap_flags_t, offset, 1, pd[offset]); - proto_tree_add_item(sap_flags_tree, hf_sap_flags_e, offset, 1, pd[offset]); - proto_tree_add_item(sap_flags_tree, hf_sap_flags_c, offset, 1, pd[offset]); + proto_tree_add_item(sap_flags_tree, hf_sap_flags_v, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(sap_flags_tree, hf_sap_flags_a, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(sap_flags_tree, hf_sap_flags_r, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(sap_flags_tree, hf_sap_flags_t, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(sap_flags_tree, hf_sap_flags_e, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(sap_flags_tree, hf_sap_flags_c, NullTVB, offset, 1, pd[offset]); offset++; - proto_tree_add_text(sap_tree, offset, 1, "Authentication Length: %u", pd[offset]); + proto_tree_add_text(sap_tree, NullTVB, offset, 1, "Authentication Length: %u", pd[offset]); auth_len = pd[offset]; offset++; tmp1 = pntohs(pd+offset); - proto_tree_add_text(sap_tree, offset, 2, "Message Identifier Hash: 0x%x", tmp1); + proto_tree_add_text(sap_tree, NullTVB, offset, 2, "Message Identifier Hash: 0x%x", tmp1); offset +=2; - proto_tree_add_text(sap_tree, offset, addr_len, "Originating Source: %s", + proto_tree_add_text(sap_tree, NullTVB, offset, addr_len, "Originating Source: %s", (is_ipv6) ? ip6_to_str((struct e_in6_addr*)(pd+offset)) : ip_to_str(pd+offset)); offset += addr_len; @@ -189,26 +189,26 @@ dissect_sap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) auth_data_len = auth_len * sizeof(guint32); - sdi = proto_tree_add_item(sap_tree, hf_auth_data, offset, auth_data_len, pd[offset]); + sdi = proto_tree_add_item(sap_tree, hf_auth_data, NullTVB, offset, auth_data_len, pd[offset]); sa_tree = proto_item_add_subtree(sdi, ett_sap_auth); - sai = proto_tree_add_item(sa_tree, hf_auth_flags, offset, 1, pd[offset]); + sai = proto_tree_add_item(sa_tree, hf_auth_flags, NullTVB, offset, 1, pd[offset]); saf_tree = proto_item_add_subtree(sai, ett_sap_authf); - proto_tree_add_item(saf_tree, hf_auth_flags_v, offset, 1, pd[offset]); - proto_tree_add_item(saf_tree, hf_auth_flags_p, offset, 1, pd[offset]); - proto_tree_add_item(saf_tree, hf_auth_flags_t, offset, 1, pd[offset]); + proto_tree_add_item(saf_tree, hf_auth_flags_v, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(saf_tree, hf_auth_flags_p, NullTVB, offset, 1, pd[offset]); + proto_tree_add_item(saf_tree, hf_auth_flags_t, NullTVB, offset, 1, pd[offset]); has_pad = pd[offset]&MCAST_SAP_AUTH_BIT_P; if (has_pad) pad_len = *(pd+offset+auth_data_len-1); - proto_tree_add_text(sa_tree, offset+1, auth_data_len-pad_len-1, + proto_tree_add_text(sa_tree, NullTVB, offset+1, auth_data_len-pad_len-1, "Authentication subheader: (%u byte%s)", auth_data_len-1, plurality(auth_data_len-1, "", "s")); if (has_pad) { - proto_tree_add_text(sa_tree, offset+auth_data_len-pad_len, pad_len, + proto_tree_add_text(sa_tree, NullTVB, offset+auth_data_len-pad_len, pad_len, "Authentication data padding: (%u byte%s)", pad_len, plurality(pad_len, "", "s")); - proto_tree_add_text(sa_tree, offset+auth_data_len-1, 1, + proto_tree_add_text(sa_tree, NullTVB, offset+auth_data_len-1, 1, "Authentication data pad count: %u byte%s", pad_len, plurality(pad_len, "", "s")); } @@ -218,12 +218,12 @@ dissect_sap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (is_enc) { /* Encrypted payload implies valid timeout in the SAP header */ tmp2 = pntohl(pd+offset); - proto_tree_add_text(sap_tree, offset, 4, "Timeout: %u", tmp2); + proto_tree_add_text(sap_tree, NullTVB, offset, 4, "Timeout: %u", tmp2); offset += sizeof(guint32); } if (is_enc || is_comp) { - proto_tree_add_text(sap_tree, offset, END_OF_FRAME, + proto_tree_add_text(sap_tree, NullTVB, offset, END_OF_FRAME, "Rest of the packet is encrypted or compressed"); return; } @@ -231,7 +231,7 @@ dissect_sap(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* Do we have the optional payload type aka. MIME content specifier */ if (strncasecmp(pd+offset, "v=", strlen("v="))) { guint32 pt_len = strlen(pd+offset); /* BUG: should use strnlen */ - proto_tree_add_text(sap_tree, offset, pt_len, "Payload type: %s", pd+offset); + proto_tree_add_text(sap_tree, NullTVB, offset, pt_len, "Payload type: %s", pd+offset); offset += pt_len; if (pd[offset] == '\0') offset++; /* Skip possible '\0' */ diff --git a/packet-sdp.c b/packet-sdp.c index 14298510bd..9b84e83cce 100644 --- a/packet-sdp.c +++ b/packet-sdp.c @@ -4,7 +4,7 @@ * Jason Lango * Liberally copied from packet-http.c, by Guy Harris * - * $Id: packet-sdp.c,v 1.6 2000/01/22 06:22:17 guy Exp $ + * $Id: packet-sdp.c,v 1.7 2000/05/11 08:15:43 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -72,7 +72,7 @@ void dissect_sdp(const u_char *pd, int offset, frame_data *fd, if (!tree) return; - ti = proto_tree_add_item(tree, proto_sdp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_sdp, NullTVB, offset, END_OF_FRAME, NULL); sdp_tree = proto_item_add_subtree(ti, ett_sdp); section = 0; @@ -91,7 +91,7 @@ void dissect_sdp(const u_char *pd, int offset, frame_data *fd, type = data[0]; if (data[1] != '=') { - proto_tree_add_text(sdp_tree, offset, linelen, + proto_tree_add_text(sdp_tree, NullTVB, offset, linelen, "Invalid line: %s", format_text(data, linelen)); continue; @@ -166,13 +166,13 @@ void dissect_sdp(const u_char *pd, int offset, frame_data *fd, break; } - proto_tree_add_text(sdp_tree, offset, linelen, + proto_tree_add_text(sdp_tree, NullTVB, offset, linelen, "%s (%c): %s", typename, type, format_text(value, valuelen)); } if (data < dataend) { - proto_tree_add_text(sdp_tree, offset, END_OF_FRAME, + proto_tree_add_text(sdp_tree, NullTVB, offset, END_OF_FRAME, "Data (%d bytes)", END_OF_FRAME); } } diff --git a/packet-smb-browse.c b/packet-smb-browse.c index 611cb4c11a..a217b7597e 100644 --- a/packet-smb-browse.c +++ b/packet-smb-browse.c @@ -2,7 +2,7 @@ * Routines for smb packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-smb-browse.c,v 1.2 2000/04/08 01:28:13 sharpe Exp $ + * $Id: packet-smb-browse.c,v 1.3 2000/05/11 08:15:44 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -167,10 +167,10 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { /* Add the browse tree */ - ti = proto_tree_add_item(parent, proto_smb_browse, DataOffset, DataCount, NULL); + ti = proto_tree_add_item(parent, proto_smb_browse, NullTVB, DataOffset, DataCount, NULL); browse_tree = proto_item_add_subtree(ti, ett_browse); - proto_tree_add_text(browse_tree, loc_offset, 1, "OpCode: %s", (OpCode > (sizeof(browse_commands)/sizeof(char *))) ? "Error, No Such Command" : browse_commands[OpCode]); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "OpCode: %s", (OpCode > (sizeof(browse_commands)/sizeof(char *))) ? "Error, No Such Command" : browse_commands[OpCode]); } @@ -186,7 +186,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 1, "Update Count: %u", UpdateCount); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "Update Count: %u", UpdateCount); } @@ -196,7 +196,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 4, "Update Periodicity: %u Sec", Periodicity/1000 ); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 4, "Update Periodicity: %u Sec", Periodicity/1000 ); } @@ -212,7 +212,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 16, (OpCode == DOMAINANNOUNCEMENT) ? "Domain/WorkGroup: %s": "Host Name: %s", ServerName); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 16, (OpCode == DOMAINANNOUNCEMENT) ? "Domain/WorkGroup: %s": "Host Name: %s", ServerName); } @@ -222,7 +222,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 1, "Major Version: %u", VersionMajor); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "Major Version: %u", VersionMajor); } @@ -232,7 +232,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 1, "Minor Version: %u", VersionMinor); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "Minor Version: %u", VersionMinor); } @@ -255,55 +255,55 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - ti = proto_tree_add_text(browse_tree, loc_offset, 4, "Server Type: 0x%04x", ServerType); + ti = proto_tree_add_text(browse_tree, NullTVB, loc_offset, 4, "Server Type: 0x%04x", ServerType); flags_tree = proto_item_add_subtree(ti, ett_browse_flags); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0001, 32, "Workstation", "Not Workstation")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0002, 32, "Server", "Not Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0004, 32, "SQL Server", "Not SQL Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0008, 32, "Domain Controller", "Not Domain Controller")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0010, 32, "Backup Controller", "Not Backup Controller")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0020, 32, "Time Source", "Not Time Source")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0040, 32, "Apple Server", "Not Apple Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0080, 32, "Novell Server", "Not Novell Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0100, 32, "Domain Member Server", "Not Domain Member Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0200, 32, "Print Queue Server", "Not Print Queue Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0400, 32, "Dialin Server", "Not Dialin Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x0800, 32, "Xenix Server", "Not Xenix Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x1000, 32, "NT Workstation", "Not NT Workstation")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x2000, 32, "Windows for Workgroups", "Not Windows for Workgroups")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x8000, 32, "NT Server", "Not NT Server")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x10000, 32, "Potential Browser", "Not Potential Browser")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x20000, 32, "Backup Browser", "Not Backup Browser")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x40000, 32, "Master Browser", "Not Master Browser")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x80000, 32, "Domain Master Browser", "Not Domain Master Browser")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x100000, 32, "OSF", "Not OSF")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x200000, 32, "VMS", "Not VMS")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x400000, 32, "Windows 95 or above", "Not Windows 95 or above")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x40000000, 32, "Local List Only", "Not Local List Only")); - proto_tree_add_text(flags_tree, loc_offset, 4, "%s", + proto_tree_add_text(flags_tree, NullTVB, loc_offset, 4, "%s", decode_boolean_bitfield(ServerType, 0x80000000, 32, "Domain Enum", "Not Domain Enum")); } loc_offset += 4; @@ -312,7 +312,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 2, "Election Version: %u", ElectionVersion); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 2, "Election Version: %u", ElectionVersion); } @@ -322,7 +322,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 2, "Signature: %u (0x%04X)", SigConstant, SigConstant); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 2, "Signature: %u (0x%04X)", SigConstant, SigConstant); } @@ -332,7 +332,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, strlen(ServerComment) + 1, "Host Comment: %s", ServerComment); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, strlen(ServerComment) + 1, "Host Comment: %s", ServerComment); } @@ -344,7 +344,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 1, "Unused Flags: %u", Flags); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "Unused Flags: %u", Flags); } @@ -354,7 +354,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, strlen(ServerName) + 1, "Send List To: %s", ServerName); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, strlen(ServerName) + 1, "Send List To: %s", ServerName); } @@ -366,7 +366,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 1, "Election Version = %u", ElectionVersion); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "Election Version = %u", ElectionVersion); } @@ -379,66 +379,66 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - ti = proto_tree_add_text(browse_tree, loc_offset, 4, "Election Criteria = %u (0x%08X)", ElectionCriteria, ElectionCriteria); + ti = proto_tree_add_text(browse_tree, NullTVB, loc_offset, 4, "Election Criteria = %u (0x%08X)", ElectionCriteria, ElectionCriteria); ec = proto_item_add_subtree(ti, ett_browse_election_criteria); - ti = proto_tree_add_text(ec, loc_offset + 3, 1, "Election OS Summary: %u (0x%02X)", ElectionOS, ElectionOS); + ti = proto_tree_add_text(ec, NullTVB, loc_offset + 3, 1, "Election OS Summary: %u (0x%02X)", ElectionOS, ElectionOS); OSflags = proto_item_add_subtree(ti, ett_browse_election_os); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x01, 8, "Windows for Workgroups", "Not Windows for Workgroups")); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x02, 8, "Unknown", "Not used")); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x04, 8, "Unknown", "Not used")); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x08, 8, "Unknown", "Not used")); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x10, 8, "Windows NT Workstation", "Not Windows NT Workstation")); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x20, 8, "Windows NT Server", "Not Windows NT Server")); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x40, 8, "Unknown", "Not used")); - proto_tree_add_text(OSflags, loc_offset + 3, 1, "%s", + proto_tree_add_text(OSflags, NullTVB, loc_offset + 3, 1, "%s", decode_boolean_bitfield(ElectionOS, 0x80, 8, "Unknown", "Not used")); - proto_tree_add_text(ec, loc_offset + 1, 2, "Election Revision: %u (0x%04X)", ElectionRevision, ElectionRevision); + proto_tree_add_text(ec, NullTVB, loc_offset + 1, 2, "Election Revision: %u (0x%04X)", ElectionRevision, ElectionRevision); - ti = proto_tree_add_text(ec, loc_offset, 1, "Election Desire Summary: %u (0x%02X)", ElectionDesire, ElectionDesire); + ti = proto_tree_add_text(ec, NullTVB, loc_offset, 1, "Election Desire Summary: %u (0x%02X)", ElectionDesire, ElectionDesire); DesireFlags = proto_item_add_subtree(ti, ett_browse_election_desire); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x01, 8, "Backup Browse Server", "Not Backup Browse Server")); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x02, 8, "Standby Browse Server", "Not Standby Browse Server")); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x04, 8, "Master Browser", "Not Master Browser")); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x08, 8, "Domain Master Browse Server", "Not Domain Master Browse Server")); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x10, 8, "Unknown", "Not used")); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x20, 8, "WINS Client", "Not WINS Client")); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x40, 8, "Unknown", "Not used")); - proto_tree_add_text(DesireFlags, loc_offset, 1, "%s", + proto_tree_add_text(DesireFlags, NullTVB, loc_offset, 1, "%s", decode_boolean_bitfield(ElectionDesire, 0x80, 8, "Windows NT Advanced Server", "Not Windows NT Advanced Server")); } @@ -449,7 +449,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 4, "Server Up Time: %u Sec (%ums)", ServerUpTime/1000, ServerUpTime); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 4, "Server Up Time: %u Sec (%ums)", ServerUpTime/1000, ServerUpTime); } @@ -463,7 +463,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, strlen(ServerName) + 1, "Election Server Name: %s", ServerName); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, strlen(ServerName) + 1, "Election Server Name: %s", ServerName); } @@ -475,7 +475,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 1, "Backup List Requested Count: %u", BackupServerCount); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "Backup List Requested Count: %u", BackupServerCount); } @@ -485,7 +485,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 4, "Backup Request Token: %u", Token); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 4, "Backup Request Token: %u", Token); } @@ -497,7 +497,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 1, "Backup Server Count: %u", BackupServerCount); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 1, "Backup Server Count: %u", BackupServerCount); } @@ -507,7 +507,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, 4, "Backup Response Token: %u", Token); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, 4, "Backup Response Token: %u", Token); } @@ -519,7 +519,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, strlen(ServerName) + 1, "Backup Server: %s", ServerName); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, strlen(ServerName) + 1, "Backup Server: %s", ServerName); } @@ -537,7 +537,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, strlen(ServerName) + 1, "Browser to Promote: %s", ServerName); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, strlen(ServerName) + 1, "Browser to Promote: %s", ServerName); } @@ -549,7 +549,7 @@ dissect_mailslot_browse(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(browse_tree, loc_offset, strlen(ServerName) + 1, "Server Name: %s", ServerName); + proto_tree_add_text(browse_tree, NullTVB, loc_offset, strlen(ServerName) + 1, "Server Name: %s", ServerName); } diff --git a/packet-smb-common.c b/packet-smb-common.c index 067f401ead..ea07153527 100644 --- a/packet-smb-common.c +++ b/packet-smb-common.c @@ -2,7 +2,7 @@ * Common routines for smb packet dissection * Copyright 2000, Jeffrey C. Foster * - * $Id: packet-smb-common.c,v 1.3 2000/02/14 04:22:22 guy Exp $ + * $Id: packet-smb-common.c,v 1.4 2000/05/11 08:15:44 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -49,7 +49,7 @@ int display_ms_value( char *Name, int len, const u_char *pd, int offset, else return 0; - proto_tree_add_text( tree, offset, len, "%s: %u", Name, Temp32); + proto_tree_add_text( tree, NullTVB, offset, len, "%s: %u", Name, Temp32); return len; } @@ -59,7 +59,7 @@ int display_ms_string( char *Name, const u_char *pd, int offset, {/* display a string from the tree and return the amount to move offset */ - proto_tree_add_text( tree, offset, strlen( &pd[offset]) + 1, "%s: %s ", + proto_tree_add_text( tree, NullTVB, offset, strlen( &pd[offset]) + 1, "%s: %s ", Name, &pd[offset]); return strlen( &pd[offset]) + 1; @@ -83,7 +83,7 @@ int display_unicode_string( char *Name, const u_char *pd, int offset, } *OutPtr = 0; /* terminate out string */ - proto_tree_add_text( tree, offset, strlen( Temp) * 2 + 2, "%s: %s ", + proto_tree_add_text( tree, NullTVB, offset, strlen( Temp) * 2 + 2, "%s: %s ", Name, Temp); return strlen( Temp) * 2 + 2; @@ -96,7 +96,7 @@ dissect_smb_unknown( const u_char *pd, int offset, frame_data *fd, /* display data as unknown */ - proto_tree_add_text(tree, offset, END_OF_FRAME, "Data (%u bytes)", + proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Data (%u bytes)", END_OF_FRAME); } @@ -142,7 +142,7 @@ display_flags( struct flag_array_type *flag_array, int length, } while( array_ptr->mask) { - proto_tree_add_text( tree, offset, 2, "%s%s%s%s", + proto_tree_add_text( tree, NullTVB, offset, 2, "%s%s%s%s", decode_boolean_bitfield( flags, array_ptr->mask, length * 8, "",""), array_ptr->pre_string, diff --git a/packet-smb-common.h b/packet-smb-common.h index 4b1b0ab59f..95fb04961c 100644 --- a/packet-smb-common.h +++ b/packet-smb-common.h @@ -2,7 +2,7 @@ * Routines for smb packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-smb-common.h,v 1.1 2000/02/14 04:02:06 guy Exp $ + * $Id: packet-smb-common.h,v 1.2 2000/05/11 08:15:45 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -53,13 +53,13 @@ -#define ShortPacketError proto_tree_add_text(tree, offset, 0, "****FRAME TOO SHORT***"); return; +#define ShortPacketError proto_tree_add_text(tree, NullTVB, offset, 0, "****FRAME TOO SHORT***"); return; #define IncAndCheckOffset if ( ++offset > fd->cap_len) {ShortPacketError;} #define CheckPacketLength(X) if ((offset+X) > fd->cap_len) {ShortPacketError;} #define MoveAndCheckOffset(X) {int tmp = X; if (( offset + tmp) > fd->cap_len){ ShortPacketError;} else offset += tmp;} -#define UnknowData if (tree) proto_tree_add_text(tree, offset, END_OF_FRAME, "Data (%u bytes)",END_OF_FRAME); +#define UnknowData if (tree) proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Data (%u bytes)",END_OF_FRAME); struct flag_array_type { diff --git a/packet-smb-logon.c b/packet-smb-logon.c index 749566de15..82fdea6aaf 100644 --- a/packet-smb-logon.c +++ b/packet-smb-logon.c @@ -2,7 +2,7 @@ * Routines for smb net logon packet dissection * Copyright 2000, Jeffrey C. Foster * - * $Id: packet-smb-logon.c,v 1.3 2000/02/21 23:50:15 sharpe Exp $ + * $Id: packet-smb-logon.c,v 1.4 2000/05/11 08:15:45 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -59,7 +59,7 @@ dissect_account_control( const u_char *pd, int offset, frame_data *fd, }; - ti = proto_tree_add_text( tree, offset, 4, + ti = proto_tree_add_text( tree, NullTVB, offset, 4, "Account control = 0x%04x", flags); flags_tree = proto_item_add_subtree( ti, ett_smb_account_flags); @@ -78,14 +78,14 @@ display_LM_token( const u_char *pd, int *offset, frame_data *fd, guint16 Token = GSHORT( pd, *offset); if ( Token && 0x01) - proto_tree_add_text( tree, *offset, 2, + proto_tree_add_text( tree, NullTVB, *offset, 2, "LM20 Token: 0x%x (LanMan 2.0 or higher)", Token); else - proto_tree_add_text( tree, *offset, 2, + proto_tree_add_text( tree, NullTVB, *offset, 2, "LM10 Token: 0x%x (WFW Networking)", Token); if (( *offset + 2) > fd->cap_len) - proto_tree_add_text(tree, *offset, 0,"****FRAME TOO SHORT***"); + proto_tree_add_text(tree, NullTVB, *offset, 0,"****FRAME TOO SHORT***"); else *offset += 2; @@ -104,11 +104,11 @@ display_NT_version( const u_char *pd, int *offset, frame_data *fd, else Version = GWORD( pd, *offset); - proto_tree_add_text( tree, *offset, length, "NT Version: 0x%x ", + proto_tree_add_text( tree, NullTVB, *offset, length, "NT Version: 0x%x ", Version); if (( *offset + length) > fd->cap_len) - proto_tree_add_text(tree, *offset, 0, "****FRAME TOO SHORT***"); + proto_tree_add_text(tree, NullTVB, *offset, 0, "****FRAME TOO SHORT***"); else *offset += length; @@ -207,7 +207,7 @@ dissect_smb_pdc_query(const u_char *pd, int offset, frame_data *fd, display_NT_version( pd, &offset, fd, tree, 4); - proto_tree_add_text( tree, offset, 2, "LMNT Token: 0x%x", + proto_tree_add_text( tree, NullTVB, offset, 2, "LMNT Token: 0x%x", GWORD(pd, offset)); MoveAndCheckOffset( 2); @@ -309,7 +309,7 @@ dissect_smb_sam_logon_req(const u_char *pd, int offset, frame_data *fd, /*** Netlogon command 0x12 - decode the SAM logon request from client ***/ - proto_tree_add_text( tree, offset, 2, "Request Count = %x", + proto_tree_add_text( tree, NullTVB, offset, 2, "Request Count = %x", GSHORT(pd, offset)); MoveAndCheckOffset( 2); @@ -325,7 +325,7 @@ dissect_smb_sam_logon_req(const u_char *pd, int offset, frame_data *fd, dissect_account_control( pd, offset, fd, tree); - proto_tree_add_text( tree, offset, 2, "Domain SID Size = %x", + proto_tree_add_text( tree, NullTVB, offset, 2, "Domain SID Size = %x", GWORD(pd, offset)); } @@ -377,7 +377,7 @@ dissect_smb_acc_update( const u_char *pd, int offset, frame_data *fd, Temp2 = GWORD( pd, offset + 4); - proto_tree_add_text( tree, offset, 2, "Signature: 0x%04x%04x", + proto_tree_add_text( tree, NullTVB, offset, 2, "Signature: 0x%04x%04x", Temp1, Temp2); MoveAndCheckOffset( 8); @@ -440,7 +440,7 @@ void dissect_smb_sam_logon_resp(const u_char *pd, int offset, frame_data *fd, display_NT_version( pd, &offset, fd, tree, 4); - proto_tree_add_text( tree, offset, 2, "LMNT Token: 0x%x", + proto_tree_add_text( tree, NullTVB, offset, 2, "LMNT Token: 0x%x", GSHORT(pd, offset)); MoveAndCheckOffset( 2); @@ -530,11 +530,11 @@ static void (*dissect_smb_logon_cmds[])(const u_char *, int, frame_data *, col_add_fstr(fd, COL_INFO, "%s", CommandName[ cmd]); if (tree) { - ti = proto_tree_add_item( parent, proto_smb_logon, offset, + ti = proto_tree_add_item( parent, proto_smb_logon, NullTVB, offset, END_OF_FRAME, NULL); smb_logon_tree = proto_item_add_subtree(ti, ett_smb_logon); - proto_tree_add_text(smb_logon_tree, offset, 1, + proto_tree_add_text(smb_logon_tree, NullTVB, offset, 1, "Command: %u (%s)", cmd, CommandName[ cmd]); offset += 2; /* skip to name field */ diff --git a/packet-smb-mailslot.c b/packet-smb-mailslot.c index 9d37b6b2dd..5e8e5fdfc4 100644 --- a/packet-smb-mailslot.c +++ b/packet-smb-mailslot.c @@ -2,7 +2,7 @@ * Routines for smb mailslot packet dissection * Copyright 2000, Jeffrey C. Foster * - * $Id: packet-smb-mailslot.c,v 1.3 2000/02/14 04:21:04 guy Exp $ + * $Id: packet-smb-mailslot.c,v 1.4 2000/05/11 08:15:45 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -91,18 +91,18 @@ dissect_mailslot_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item( parent, proto_smb_msp, offset, + ti = proto_tree_add_item( parent, proto_smb_msp, NullTVB, offset, END_OF_FRAME, NULL); smb_msp_tree = proto_item_add_subtree(ti, ett_smb_msp); - proto_tree_add_text(smb_msp_tree, offset, 2, "Op code: %u (%s)", + proto_tree_add_text(smb_msp_tree, NullTVB, offset, 2, "Op code: %u (%s)", Temp16, ( Temp16 == 1 ? "Write Mail slot" : "Unknown")); offset += 2; /* do the Priority field */ Temp16 = GSHORT(pd, offset); - proto_tree_add_text(smb_msp_tree, offset, 2, + proto_tree_add_text(smb_msp_tree, NullTVB, offset, 2, "Priority of transaction: %u", Temp16); offset += 2; @@ -110,7 +110,7 @@ dissect_mailslot_smb(const u_char *pd, int offset, frame_data *fd, /* do the Class field */ Temp16 = GSHORT(pd, offset); - proto_tree_add_text(smb_msp_tree, offset, 2, "Class: %u (%s)", + proto_tree_add_text(smb_msp_tree, NullTVB, offset, 2, "Class: %u (%s)", Temp16, ( Temp16 == 1) ? "Reliable" : (( Temp16 == 2) ? "Unreliable & Broadcast" : "Unknown")); @@ -118,7 +118,7 @@ dissect_mailslot_smb(const u_char *pd, int offset, frame_data *fd, /* do the data size field */ Temp16 = GSHORT(pd, offset); - proto_tree_add_text(smb_msp_tree, offset, 2, + proto_tree_add_text(smb_msp_tree, NullTVB, offset, 2, "Total size of mail data: %u", Temp16); offset += 2; @@ -131,7 +131,7 @@ dissect_mailslot_smb(const u_char *pd, int offset, frame_data *fd, StrPtr = &pd[offset]; /* load pointer to name */ if (smb_msp_tree) { - proto_tree_add_text(smb_msp_tree, offset, strlen( StrPtr) + 1, + proto_tree_add_text(smb_msp_tree, NullTVB, offset, strlen( StrPtr) + 1, "Mailslot Name: %s", StrPtr); } diff --git a/packet-smb-pipe.c b/packet-smb-pipe.c index fe9370d7a6..1a7713aa1a 100644 --- a/packet-smb-pipe.c +++ b/packet-smb-pipe.c @@ -2,7 +2,7 @@ * Routines for smb packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-smb-pipe.c,v 1.4 2000/03/06 20:03:07 guy Exp $ + * $Id: packet-smb-pipe.c,v 1.5 2000/05/11 08:15:45 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -151,53 +151,53 @@ find_lanman(int lanman_num) void dissect_server_flags(proto_tree *tree, int offset, int length, int flags) { - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0001, length*8, "Workstation", "Not Workstation")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0002, length*8, "Server", "Not Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0004, length*8, "SQL Server", "Not SQL Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0008, length*8, "Domain Controller", "Not Domain Controller")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0010, length*8, "Backup Controller", "Not Backup Controller")); - proto_tree_add_text(tree, offset, 4, "%s", + proto_tree_add_text(tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(flags, 0x0020, length*8, "Time Source", "Not Time Source")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0040, length*8, "Apple Server", "Not Apple Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0080, length*8, "Novell Server", "Not Novell Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0100, length*8, "Domain Member Server", "Not Domain Member Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0200, length*8, "Print Queue Server", "Not Print Queue Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0400, length*8, "Dialin Server", "Not Dialin Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x0800, length*8, "Xenix Server", "Not Xenix Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x1000, length*8, "NT Workstation", "Not NT Workstation")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x2000, length*8, "Windows for Workgroups", "Not Windows for Workgroups")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x8000, length*8, "NT Server", "Not NT Server")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x10000, length*8, "Potential Browser", "Not Potential Browser")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x20000, length*8, "Backup Browser", "Not Backup Browser")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x40000, length*8, "Master Browser", "Not Master Browser")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x80000, length*8, "Domain Master Browser", "Not Domain Master Browser")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x100000, length*8, "OSF", "Not OSF")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x200000, length*8, "VMS", "Not VMS")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x400000, length*8, "Windows 95 or above", "Not Windows 95 or above")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x40000000, length*8, "Local List Only", "Not Local List Only")); - proto_tree_add_text(tree, offset, length, "%s", + proto_tree_add_text(tree, NullTVB, offset, length, "%s", decode_boolean_bitfield(flags, 0x80000000, length*8, "Domain Enum", "Not Domain Enum")); } @@ -310,7 +310,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr WParam = GSHORT(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 2, "%s: %u (%04X)", (Name) ? Name : "Returned Word", WParam, WParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 2, "%s: %u (%04X)", (Name) ? Name : "Returned Word", WParam, WParam); pd_p_current += 2; @@ -328,7 +328,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr WParam = GSHORT(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 2, "%s: (%04X)", (Name) ? Name : "Entry Count", WParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 2, "%s: (%04X)", (Name) ? Name : "Entry Count", WParam); pd_p_current += 2; @@ -348,7 +348,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr WParam = GSHORT(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 2, "%s: %u (%04X)", (Name) ? Name : "Word Param", WParam, WParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 2, "%s: %u (%04X)", (Name) ? Name : "Word Param", WParam, WParam); pd_p_current += 2; @@ -364,7 +364,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr LParam = GWORD(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 4, "%s: %u (0x%08X)", (Name) ? Name : "Returned Long Word", LParam, LParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 4, "%s: %u (0x%08X)", (Name) ? Name : "Returned Long Word", LParam, LParam); pd_p_current += 2; @@ -380,7 +380,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr LParam = GWORD(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 4, "%s: %u (0x%08X)", (Name) ? Name : "DWord Param", LParam, LParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 4, "%s: %u (0x%08X)", (Name) ? Name : "DWord Param", LParam, LParam); pd_p_current += 4; @@ -396,7 +396,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr bc = get_byte_count(p_desc + p_offset); - proto_tree_add_text(tree, pd_p_current, bc, "%s%u: %s", (Name) ? Name : "B", (bc) ? bc : 1, format_text( pd + pd_p_current, (bc) ? bc : 1)); + proto_tree_add_text(tree, NullTVB, pd_p_current, bc, "%s%u: %s", (Name) ? Name : "B", (bc) ? bc : 1, format_text( pd + pd_p_current, (bc) ? bc : 1)); pd_p_current += (bc) ? bc : 1; @@ -414,7 +414,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr /*Bytes = g_malloc(bc + 1); / * Is this needed ? */ - proto_tree_add_text(tree, pd_p_current, bc, "%s%u: %s", (Name) ? Name : "B", (bc) ? bc : 1, format_text(pd + pd_p_current, (bc) ? bc : 1)); + proto_tree_add_text(tree, NullTVB, pd_p_current, bc, "%s%u: %s", (Name) ? Name : "B", (bc) ? bc : 1, format_text(pd + pd_p_current, (bc) ? bc : 1)); pd_p_current += (bc) ? bc : 1; @@ -428,7 +428,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr if (dirn == 1) { - proto_tree_add_text(tree, pd_p_current, 0, "%s: Null Pointer", (Name) ? Name : "Unknown"); + proto_tree_add_text(tree, NullTVB, pd_p_current, 0, "%s: Null Pointer", (Name) ? Name : "Unknown"); return 1; /* That's it here */ @@ -442,7 +442,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr AsciiZ = pd + pd_p_current; - proto_tree_add_text(tree, pd_p_current, strlen(AsciiZ) + 1, "%s: %s", (Name) ? Name : "AsciiZ", AsciiZ); + proto_tree_add_text(tree, NullTVB, pd_p_current, strlen(AsciiZ) + 1, "%s: %s", (Name) ? Name : "AsciiZ", AsciiZ); pd_p_current += strlen(AsciiZ) + 1; @@ -458,7 +458,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr bc = get_byte_count(pd); - proto_tree_add_text(tree, pd_p_current, bc, "%s%u: %s", (Name) ? Name : "Pad", bc, format_text(pd + pd_p_current, bc)); + proto_tree_add_text(tree, NullTVB, pd_p_current, bc, "%s%u: %s", (Name) ? Name : "Pad", bc, format_text(pd + pd_p_current, bc)); pd_p_current += bc; @@ -474,7 +474,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr WParam = GSHORT(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 2, "%s: %u (0x%04X)", (Name) ? Name : "Receive Buffer Len", WParam, WParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 2, "%s: %u (0x%04X)", (Name) ? Name : "Receive Buffer Len", WParam, WParam); pd_p_current += 2; @@ -492,7 +492,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr LParam = GWORD(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 4, "%s: %u", (Name) ? Name : "Send Buffer Ptr", LParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 4, "%s: %u", (Name) ? Name : "Send Buffer Ptr", LParam); pd_p_current += 4; @@ -508,7 +508,7 @@ int dissect_transact_next(const u_char *pd, char *Name, int dirn, proto_tree *tr WParam = GSHORT(pd, pd_p_current); - proto_tree_add_text(tree, pd_p_current, 2, "%s: %u", (Name) ? Name : "Send Buffer Len", WParam); + proto_tree_add_text(tree, NullTVB, pd_p_current, 2, "%s: %u", (Name) ? Name : "Send Buffer Len", WParam); pd_p_current += 2; @@ -580,10 +580,10 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(parent, proto_smb_lanman, SMB_offset + ParameterOffset, ParameterCount, NULL); + ti = proto_tree_add_item(parent, proto_smb_lanman, NullTVB, SMB_offset + ParameterOffset, ParameterCount, NULL); lanman_tree = proto_item_add_subtree(ti, ett_lanman); - proto_tree_add_text(lanman_tree, loc_offset, 2, "Function Code: NetShareEnum"); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Function Code: NetShareEnum"); } @@ -600,7 +600,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, strlen(ParameterDescriptor) + 1, "Parameter Descriptor: %s", ParameterDescriptor); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, strlen(ParameterDescriptor) + 1, "Parameter Descriptor: %s", ParameterDescriptor); } @@ -615,7 +615,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, strlen(ReturnDescriptor) + 1, "Return Descriptor: %s", ReturnDescriptor); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, strlen(ReturnDescriptor) + 1, "Return Descriptor: %s", ReturnDescriptor); } @@ -625,7 +625,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Detail Level: %u", Level); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Detail Level: %u", Level); } @@ -635,7 +635,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Receive Buffer Length: %u", RecvBufLen); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Receive Buffer Length: %u", RecvBufLen); } @@ -653,10 +653,10 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(parent, proto_smb_lanman, SMB_offset + ParameterOffset, ParameterCount, NULL); + ti = proto_tree_add_item(parent, proto_smb_lanman, NullTVB, SMB_offset + ParameterOffset, ParameterCount, NULL); lanman_tree = proto_item_add_subtree(ti, ett_lanman); - proto_tree_add_text(lanman_tree, loc_offset, 2, "Function Code: NetServerEnum2"); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Function Code: NetServerEnum2"); } @@ -675,7 +675,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, strlen(ParameterDescriptor) + 1, "Parameter Descriptor: %s", ParameterDescriptor); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, strlen(ParameterDescriptor) + 1, "Parameter Descriptor: %s", ParameterDescriptor); } @@ -691,7 +691,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, strlen(ReturnDescriptor) + 1, "Return Descriptor: %s", ReturnDescriptor); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, strlen(ReturnDescriptor) + 1, "Return Descriptor: %s", ReturnDescriptor); } @@ -702,7 +702,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Info Detail Level: %u", Level); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Info Detail Level: %u", Level); } @@ -712,7 +712,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Receive Buffer Length: %u", RecvBufLen); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Receive Buffer Length: %u", RecvBufLen); } @@ -722,7 +722,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_text(lanman_tree, loc_offset, 4, "Server Types Required: 0x%08X", Flags); + ti = proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 4, "Server Types Required: 0x%08X", Flags); flags_tree = proto_item_add_subtree(ti, ett_lanman_flags); dissect_server_flags(flags_tree, loc_offset, 4, Flags); @@ -749,14 +749,14 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(parent, proto_smb_lanman, SMB_offset + ParameterOffset, ParameterCount, NULL); + ti = proto_tree_add_item(parent, proto_smb_lanman, NullTVB, SMB_offset + ParameterOffset, ParameterCount, NULL); lanman_tree = proto_item_add_subtree(ti, ett_lanman); if (lanman) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "%s Request", lanman -> lanman_name); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "%s Request", lanman -> lanman_name); } else { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Function Code: Unknown LANMAN Request: %u", FunctionCode); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Function Code: Unknown LANMAN Request: %u", FunctionCode); } } @@ -774,7 +774,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, strlen(ParameterDescriptor) + 1, "Parameter Descriptor: %s", ParameterDescriptor); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, strlen(ParameterDescriptor) + 1, "Parameter Descriptor: %s", ParameterDescriptor); } @@ -789,7 +789,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, strlen(ReturnDescriptor) + 1, "Return Descriptor: %s", ReturnDescriptor); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, strlen(ReturnDescriptor) + 1, "Return Descriptor: %s", ReturnDescriptor); } @@ -838,11 +838,11 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(parent, proto_smb_lanman, SMB_offset + DataOffset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(parent, proto_smb_lanman, NullTVB, SMB_offset + DataOffset, END_OF_FRAME, NULL); lanman_tree = proto_item_add_subtree(ti, ett_lanman); - proto_tree_add_text(lanman_tree, loc_offset, END_OF_FRAME, "Payload: %s", format_text(pd + SMB_offset + DataOffset, END_OF_FRAME)); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, END_OF_FRAME, "Payload: %s", format_text(pd + SMB_offset + DataOffset, END_OF_FRAME)); } @@ -865,10 +865,10 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(parent, proto_smb_lanman, SMB_offset + ParameterOffset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(parent, proto_smb_lanman, NullTVB, SMB_offset + ParameterOffset, END_OF_FRAME, NULL); lanman_tree = proto_item_add_subtree(ti, ett_lanman); - proto_tree_add_text(lanman_tree, loc_offset, 0, "Function Code: NetShareEnum"); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 0, "Function Code: NetShareEnum"); } @@ -880,7 +880,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Status: %u", Status); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Status: %u", Status); } @@ -890,7 +890,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Convert: %u", Convert); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Convert: %u", Convert); } @@ -900,7 +900,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Entry Count: %u", EntCount); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Entry Count: %u", EntCount); } @@ -910,7 +910,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Available Entries: %u", AvailCount); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Available Entries: %u", AvailCount); } @@ -918,7 +918,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_text(lanman_tree, loc_offset, AvailCount * 20, "Available Shares"); + ti = proto_tree_add_text(lanman_tree, NullTVB, loc_offset, AvailCount * 20, "Available Shares"); share_tree = proto_item_add_subtree(ti, ett_lanman_shares); @@ -933,7 +933,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_text(share_tree, loc_offset, 20, "Share %s", Share); + ti = proto_tree_add_text(share_tree, NullTVB, loc_offset, 20, "Share %s", Share); share = proto_item_add_subtree(ti, ett_lanman_share); @@ -941,7 +941,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(share, loc_offset, 13, "Share Name: %s", Share); + proto_tree_add_text(share, NullTVB, loc_offset, 13, "Share Name: %s", Share); } @@ -954,7 +954,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(share, loc_offset, 2, "Share Type: %u", Flags); + proto_tree_add_text(share, NullTVB, loc_offset, 2, "Share Type: %u", Flags); } @@ -964,7 +964,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(share, loc_offset, 4, "Share Comment: %s", Comment); + proto_tree_add_text(share, NullTVB, loc_offset, 4, "Share Comment: %s", Comment); } @@ -984,10 +984,10 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(parent, proto_smb_lanman, SMB_offset + ParameterOffset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(parent, proto_smb_lanman, NullTVB, SMB_offset + ParameterOffset, END_OF_FRAME, NULL); lanman_tree = proto_item_add_subtree(ti, ett_lanman); - proto_tree_add_text(lanman_tree, loc_offset, 2, "Function Code: NetServerEnum2"); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Function Code: NetServerEnum2"); } @@ -996,7 +996,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Status: %u", Status); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Status: %u", Status); } @@ -1006,7 +1006,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Convert: %u", Convert); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Convert: %u", Convert); } @@ -1016,7 +1016,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Entry Count: %u", EntCount); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Entry Count: %u", EntCount); } @@ -1026,7 +1026,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Available Entries: %u", AvailCount); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Available Entries: %u", AvailCount); } @@ -1034,7 +1034,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_text(lanman_tree, loc_offset, 26 * AvailCount, "Servers"); + ti = proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 26 * AvailCount, "Servers"); if (ti == NULL) { printf("Null value returned from proto_tree_add_text\n"); @@ -1059,7 +1059,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_text(server_tree, loc_offset, + ti = proto_tree_add_text(server_tree, NullTVB, loc_offset, (si.request_val -> last_level) ? 26 : 16, "Server %s", Server); server = proto_item_add_subtree(ti, ett_lanman_server); @@ -1069,7 +1069,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(server, loc_offset, 16, "Server Name: %s", Server); + proto_tree_add_text(server, NullTVB, loc_offset, 16, "Server Name: %s", Server); } @@ -1081,7 +1081,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(server, loc_offset, 1, "Major Version: %u", ServerMajor); + proto_tree_add_text(server, NullTVB, loc_offset, 1, "Major Version: %u", ServerMajor); } @@ -1091,7 +1091,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(server, loc_offset, 1, "Minor Version: %u", ServerMinor); + proto_tree_add_text(server, NullTVB, loc_offset, 1, "Minor Version: %u", ServerMinor); } @@ -1101,7 +1101,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_text(server, loc_offset, 4, "Server Type: 0x%08X", ServerFlags); + ti = proto_tree_add_text(server, NullTVB, loc_offset, 4, "Server Type: 0x%08X", ServerFlags); flags_tree = proto_item_add_subtree(ti, ett_lanman_flags); dissect_server_flags(flags_tree, loc_offset, 4, ServerFlags); @@ -1113,7 +1113,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(server, loc_offset, 4, "Server Comment: %s", Comment); + proto_tree_add_text(server, NullTVB, loc_offset, 4, "Server Comment: %s", Comment); } @@ -1141,13 +1141,13 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - ti = proto_tree_add_item(parent, proto_smb_lanman, SMB_offset + ParameterOffset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(parent, proto_smb_lanman, NullTVB, SMB_offset + ParameterOffset, END_OF_FRAME, NULL); lanman_tree = proto_item_add_subtree(ti, ett_lanman); if (lanman) { - proto_tree_add_text(lanman_tree, 0, 0, "%s Response", lanman -> lanman_name); + proto_tree_add_text(lanman_tree, NullTVB, 0, 0, "%s Response", lanman -> lanman_name); } else { - proto_tree_add_text(lanman_tree, loc_offset, 0, "Function Code: Unknown LANMAN Response: %u", FunctionCode); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 0, "Function Code: Unknown LANMAN Response: %u", FunctionCode); } } @@ -1157,7 +1157,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Status: %u", Status); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Status: %u", Status); } @@ -1167,7 +1167,7 @@ dissect_pipe_lanman(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(lanman_tree, loc_offset, 2, "Convert: %u", Convert); + proto_tree_add_text(lanman_tree, NullTVB, loc_offset, 2, "Convert: %u", Convert); } diff --git a/packet-smb.c b/packet-smb.c index 5b50bf2ca0..32040ad564 100644 --- a/packet-smb.c +++ b/packet-smb.c @@ -2,7 +2,7 @@ * Routines for smb packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-smb.c,v 1.64 2000/03/21 10:15:50 guy Exp $ + * $Id: packet-smb.c,v 1.65 2000/05/11 08:15:46 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -426,7 +426,7 @@ dissect_unknown_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, END_OF_FRAME, "Data (%u bytes)", + proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Data (%u bytes)", END_OF_FRAME); } @@ -563,7 +563,7 @@ dissect_flush_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -575,7 +575,7 @@ dissect_flush_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -587,7 +587,7 @@ dissect_flush_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -603,7 +603,7 @@ dissect_flush_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -615,7 +615,7 @@ dissect_flush_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -645,7 +645,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -657,7 +657,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -673,7 +673,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -687,7 +687,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Units: %u", TotalUnits); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Units: %u", TotalUnits); } @@ -699,7 +699,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Blocks Per Unit: %u", BlocksPerUnit); + proto_tree_add_text(tree, NullTVB, offset, 2, "Blocks Per Unit: %u", BlocksPerUnit); } @@ -711,7 +711,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Block Size: %u", BlockSize); + proto_tree_add_text(tree, NullTVB, offset, 2, "Block Size: %u", BlockSize); } @@ -723,7 +723,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Free Units: %u", FreeUnits); + proto_tree_add_text(tree, NullTVB, offset, 2, "Free Units: %u", FreeUnits); } @@ -735,7 +735,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u", Reserved); } @@ -749,7 +749,7 @@ dissect_get_disk_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -786,7 +786,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -800,19 +800,19 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Attributes: 0x%02x", Attributes); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Attributes: 0x%02x", Attributes); Attributes_tree = proto_item_add_subtree(ti, ett_smb_fileattributes); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x01, 16, "Read-only file", "Not a read-only file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x02, 16, "Hidden file", "Not a hidden file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x04, 16, "System file", "Not a system file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x08, 16, " Volume", "Not a volume")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x10, 16, " Directory", "Not a directory")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x20, 16, " Archived", "Not archived")); } @@ -825,7 +825,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); } @@ -837,7 +837,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); } @@ -849,7 +849,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 1: %u", Reserved1); } @@ -861,7 +861,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 2: %u", Reserved2); } @@ -873,7 +873,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 3: %u", Reserved3); } @@ -885,7 +885,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 4: %u", Reserved4); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 4: %u", Reserved4); } @@ -897,7 +897,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 5: %u", Reserved5); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 5: %u", Reserved5); } @@ -911,7 +911,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -923,7 +923,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -935,7 +935,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, strlen(FileName) + 1, "File Name: %s", FileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(FileName) + 1, "File Name: %s", FileName); } @@ -951,7 +951,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -963,7 +963,7 @@ dissect_set_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Byte Count (BCC): %u", ByteCount); } @@ -994,7 +994,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1006,7 +1006,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -1018,7 +1018,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -1030,7 +1030,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -1042,7 +1042,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Remaining: %u", Remaining); + proto_tree_add_text(tree, NullTVB, offset, 2, "Remaining: %u", Remaining); } @@ -1054,7 +1054,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1066,7 +1066,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -1078,7 +1078,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -1094,7 +1094,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1106,7 +1106,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -1118,7 +1118,7 @@ dissect_write_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1155,7 +1155,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1167,7 +1167,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -1179,7 +1179,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -1191,7 +1191,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Count: %u", MaxCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Count: %u", MaxCount); } @@ -1203,7 +1203,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Min Count: %u", MinCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Min Count: %u", MinCount); } @@ -1215,7 +1215,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 4, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 4, "Reserved 1: %u", Reserved1); } @@ -1227,7 +1227,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 2: %u", Reserved2); } @@ -1239,7 +1239,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1255,7 +1255,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count: %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count: %u", WordCount); } @@ -1269,7 +1269,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -1281,7 +1281,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -1293,7 +1293,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u", Reserved); } @@ -1305,7 +1305,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Compaction Mode: %u", DataCompactionMode); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Compaction Mode: %u", DataCompactionMode); } @@ -1317,7 +1317,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u", Reserved); } @@ -1329,7 +1329,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -1341,7 +1341,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -1355,7 +1355,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1367,7 +1367,7 @@ dissect_read_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *a if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad: %u", Pad); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad: %u", Pad); } @@ -1394,7 +1394,7 @@ dissect_delete_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1406,7 +1406,7 @@ dissect_delete_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1418,7 +1418,7 @@ dissect_delete_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -1430,7 +1430,7 @@ dissect_delete_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(FileName) + 1, "File Name: %s", FileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(FileName) + 1, "File Name: %s", FileName); } @@ -1446,7 +1446,7 @@ dissect_delete_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1458,7 +1458,7 @@ dissect_delete_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1495,7 +1495,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1507,7 +1507,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -1519,7 +1519,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -1535,7 +1535,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1549,7 +1549,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Date: %s", dissect_dos_date(CreationDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Date: %s", dissect_dos_date(CreationDate)); } @@ -1561,7 +1561,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); } @@ -1573,7 +1573,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Access Date: %s", dissect_dos_date(LastAccessDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Access Date: %s", dissect_dos_date(LastAccessDate)); } @@ -1585,7 +1585,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Access Time: %s", dissect_dos_time(LastAccessTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Access Time: %s", dissect_dos_time(LastAccessTime)); } @@ -1597,7 +1597,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); } @@ -1609,7 +1609,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); } @@ -1621,7 +1621,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "File Data Size: %u", FileDataSize); + proto_tree_add_text(tree, NullTVB, offset, 4, "File Data Size: %u", FileDataSize); } @@ -1633,7 +1633,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "File Allocation Size: %u", FileAllocationSize); + proto_tree_add_text(tree, NullTVB, offset, 4, "File Allocation Size: %u", FileAllocationSize); } @@ -1645,19 +1645,19 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Attributes: 0x%02x", Attributes); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Attributes: 0x%02x", Attributes); Attributes_tree = proto_item_add_subtree(ti, ett_smb_fileattributes); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x01, 16, "Read-only file", "Not a read-only file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x02, 16, "Hidden file", "Not a hidden file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x04, 16, "System file", "Not a system file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x08, 16, " Volume", "Not a volume")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x10, 16, " Directory", "Not a directory")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x20, 16, " Archived", "Not archived")); } @@ -1672,7 +1672,7 @@ dissect_query_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -1705,7 +1705,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1717,7 +1717,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1729,7 +1729,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 1, "BufferFormat1: %u", BufferFormat1); + proto_tree_add_text(tree, NullTVB, offset, 1, "BufferFormat1: %u", BufferFormat1); } @@ -1741,7 +1741,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, strlen(SharePath) + 1, "Share Path: %s", SharePath); + proto_tree_add_text(tree, NullTVB, offset, strlen(SharePath) + 1, "Share Path: %s", SharePath); } @@ -1753,7 +1753,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 1, "BufferFormat2: %u", BufferFormat2); + proto_tree_add_text(tree, NullTVB, offset, 1, "BufferFormat2: %u", BufferFormat2); } @@ -1765,7 +1765,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, strlen(Password) + 1, "Password: %s", Password); + proto_tree_add_text(tree, NullTVB, offset, strlen(Password) + 1, "Password: %s", Password); } @@ -1777,7 +1777,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 1, "BufferFormat3: %u", BufferFormat3); + proto_tree_add_text(tree, NullTVB, offset, 1, "BufferFormat3: %u", BufferFormat3); } @@ -1789,7 +1789,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, strlen(Service) + 1, "Service: %s", Service); + proto_tree_add_text(tree, NullTVB, offset, strlen(Service) + 1, "Service: %s", Service); } @@ -1805,7 +1805,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1819,7 +1819,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Buffer Size: %u", MaxBufferSize); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Buffer Size: %u", MaxBufferSize); } @@ -1831,7 +1831,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "TID: %u", TID); + proto_tree_add_text(tree, NullTVB, offset, 2, "TID: %u", TID); } @@ -1843,7 +1843,7 @@ dissect_treecon_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -1898,7 +1898,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -1910,7 +1910,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %s", (AndXCommand == 0xFF ? "No further commands" : decode_smb_name(AndXCommand))); } @@ -1923,7 +1923,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -1935,7 +1935,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -1947,7 +1947,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "MaxBufferSize: %u", MaxBufferSize); + proto_tree_add_text(tree, NullTVB, offset, 2, "MaxBufferSize: %u", MaxBufferSize); } @@ -1959,7 +1959,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "MaxMpxCount: %u", MaxMpxCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "MaxMpxCount: %u", MaxMpxCount); } @@ -1971,7 +1971,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "VcNumber: %u", VcNumber); + proto_tree_add_text(tree, NullTVB, offset, 2, "VcNumber: %u", VcNumber); } @@ -1983,7 +1983,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "SessionKey: %u", SessionKey); + proto_tree_add_text(tree, NullTVB, offset, 4, "SessionKey: %u", SessionKey); } @@ -1995,7 +1995,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "PasswordLen: %u", PasswordLen); + proto_tree_add_text(tree, NullTVB, offset, 2, "PasswordLen: %u", PasswordLen); } @@ -2007,7 +2007,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 4, "Reserved: %u", Reserved); } @@ -2019,7 +2019,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -2033,7 +2033,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(Password) + 1, "Password: %s", Password); + proto_tree_add_text(tree, NullTVB, offset, strlen(Password) + 1, "Password: %s", Password); } @@ -2045,7 +2045,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(AccountName) + 1, "AccountName: %s", AccountName); + proto_tree_add_text(tree, NullTVB, offset, strlen(AccountName) + 1, "AccountName: %s", AccountName); } @@ -2057,7 +2057,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(PrimaryDomain) + 1, "PrimaryDomain: %s", PrimaryDomain); + proto_tree_add_text(tree, NullTVB, offset, strlen(PrimaryDomain) + 1, "PrimaryDomain: %s", PrimaryDomain); } @@ -2069,7 +2069,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(NativeOS) + 1, "Native OS: %s", NativeOS); + proto_tree_add_text(tree, NullTVB, offset, strlen(NativeOS) + 1, "Native OS: %s", NativeOS); } @@ -2081,7 +2081,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(NativeLanMan) + 1, "Native Lan Manager: %s", NativeLanMan); + proto_tree_add_text(tree, NullTVB, offset, strlen(NativeLanMan) + 1, "Native Lan Manager: %s", NativeLanMan); } @@ -2099,7 +2099,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -2111,7 +2111,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %s", (AndXCommand == 0xFF ? "No further commands" : decode_smb_name(AndXCommand))); } @@ -2124,7 +2124,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -2136,7 +2136,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -2148,7 +2148,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "MaxBufferSize: %u", MaxBufferSize); + proto_tree_add_text(tree, NullTVB, offset, 2, "MaxBufferSize: %u", MaxBufferSize); } @@ -2160,7 +2160,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "MaxMpxCount: %u", MaxMpxCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "MaxMpxCount: %u", MaxMpxCount); } @@ -2172,7 +2172,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "VcNumber: %u", VcNumber); + proto_tree_add_text(tree, NullTVB, offset, 2, "VcNumber: %u", VcNumber); } @@ -2184,7 +2184,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "SessionKey: %u", SessionKey); + proto_tree_add_text(tree, NullTVB, offset, 4, "SessionKey: %u", SessionKey); } @@ -2196,7 +2196,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "ANSI Account Password Length: %u", ANSIAccountPasswordLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "ANSI Account Password Length: %u", ANSIAccountPasswordLength); } @@ -2208,7 +2208,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "UNICODE Account Password Length: %u", UNICODEAccountPasswordLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "UNICODE Account Password Length: %u", UNICODEAccountPasswordLength); } @@ -2220,7 +2220,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 4, "Reserved: %u", Reserved); } @@ -2232,35 +2232,35 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - ti = proto_tree_add_text(tree, offset, 4, "Capabilities: 0x%04x", Capabilities); + ti = proto_tree_add_text(tree, NullTVB, offset, 4, "Capabilities: 0x%04x", Capabilities); Capabilities_tree = proto_item_add_subtree(ti, ett_smb_capabilities); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0001, 32, " Raw Mode supported", " Raw Mode not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0002, 32, " Raw Mode supported", " MPX Mode not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0004, 32," Unicode supported", " Unicode not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0008, 32, " Large Files supported", " Large Files not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0010, 32, " NT LM 0.12 SMBs supported", " NT LM 0.12 SMBs not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0020, 32, " RPC Remote APIs supported", " RPC Remote APIs not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0040, 32, " NT Status Codes supported", " NT Status Codes not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0080, 32, " Level 2 OpLocks supported", " Level 2 OpLocks not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0100, 32, " Lock&Read supported", " Lock&Read not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x0200, 32, " NT Find supported", " NT Find not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x1000, 32, " DFS supported", " DFS not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x4000, 32, " Large READX supported", " Large READX not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x8000, 32, " Large WRITEX supported", " Large WRITEX not supported")); - proto_tree_add_text(Capabilities_tree, offset, 4, "%s", + proto_tree_add_text(Capabilities_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(Capabilities, 0x80000000, 32, " Extended Security Exchanges supported", " Extended Security Exchanges not supported")); } @@ -2273,7 +2273,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -2287,7 +2287,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, ANSIAccountPasswordLength, "ANSI Password: %s", format_text(ANSIPassword, ANSIAccountPasswordLength)); + proto_tree_add_text(tree, NullTVB, offset, ANSIAccountPasswordLength, "ANSI Password: %s", format_text(ANSIPassword, ANSIAccountPasswordLength)); } @@ -2302,7 +2302,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, UNICODEAccountPasswordLength, "UNICODE Password: %s", format_text(UNICODEPassword, UNICODEAccountPasswordLength)); + proto_tree_add_text(tree, NullTVB, offset, UNICODEAccountPasswordLength, "UNICODE Password: %s", format_text(UNICODEPassword, UNICODEAccountPasswordLength)); } @@ -2316,7 +2316,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(AccountName) + 1, "Account Name: %s", AccountName); + proto_tree_add_text(tree, NullTVB, offset, strlen(AccountName) + 1, "Account Name: %s", AccountName); } @@ -2328,7 +2328,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(PrimaryDomain) + 1, "Primary Domain: %s", PrimaryDomain); + proto_tree_add_text(tree, NullTVB, offset, strlen(PrimaryDomain) + 1, "Primary Domain: %s", PrimaryDomain); } @@ -2340,7 +2340,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(NativeOS) + 1, "Native OS: %s", NativeOS); + proto_tree_add_text(tree, NullTVB, offset, strlen(NativeOS) + 1, "Native OS: %s", NativeOS); } @@ -2352,7 +2352,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(NativeLanManType) + 1, "Native LanMan Type: %s", NativeLanManType); + proto_tree_add_text(tree, NullTVB, offset, strlen(NativeLanManType) + 1, "Native LanMan Type: %s", NativeLanManType); } @@ -2381,7 +2381,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -2395,7 +2395,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %s", (AndXCommand == 0xFF ? "No futher commands" : decode_smb_name(AndXCommand))); } @@ -2408,7 +2408,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -2420,7 +2420,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -2433,7 +2433,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Action: %u", Action); + proto_tree_add_text(tree, NullTVB, offset, 2, "Action: %u", Action); } @@ -2447,7 +2447,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -2463,7 +2463,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(NativeOS) + 1, "NativeOS: %s", NativeOS); + proto_tree_add_text(tree, NullTVB, offset, strlen(NativeOS) + 1, "NativeOS: %s", NativeOS); } @@ -2475,7 +2475,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(NativeLanMan) + 1, "NativeLanMan: %s", NativeLanMan); + proto_tree_add_text(tree, NullTVB, offset, strlen(NativeLanMan) + 1, "NativeLanMan: %s", NativeLanMan); } @@ -2487,7 +2487,7 @@ dissect_ssetup_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(PrimaryDomain) + 1, "PrimaryDomain: %s", PrimaryDomain); + proto_tree_add_text(tree, NullTVB, offset, strlen(PrimaryDomain) + 1, "PrimaryDomain: %s", PrimaryDomain); } @@ -2526,9 +2526,9 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Invalid TCON_ANDX format. WCT should be 0, 2, 3, or 4 ..., not %u", wct); + proto_tree_add_text(tree, NullTVB, offset, 1, "Invalid TCON_ANDX format. WCT should be 0, 2, 3, or 4 ..., not %u", wct); - proto_tree_add_text(tree, offset, END_OF_FRAME, "Data"); + proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Data"); return; @@ -2538,7 +2538,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", wct); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", wct); } @@ -2550,11 +2550,11 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Next Command: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "Next Command: %s", (andxcmd == 0xFF) ? "No further commands": decode_smb_name(andxcmd)); - proto_tree_add_text(tree, offset + 1, 1, "Reserved (MBZ): %u", pd[offset+1]); + proto_tree_add_text(tree, NullTVB, offset + 1, 1, "Reserved (MBZ): %u", pd[offset+1]); } @@ -2564,7 +2564,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Offset to next command: %u", andxoffs); + proto_tree_add_text(tree, NullTVB, offset, 2, "Offset to next command: %u", andxoffs); } @@ -2580,7 +2580,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", bcc); } @@ -2592,9 +2592,9 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Additional Flags: 0x%02x", flags); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Additional Flags: 0x%02x", flags); flags_tree = proto_item_add_subtree(ti, ett_smb_aflags); - proto_tree_add_text(flags_tree, offset, 2, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(flags, 0x01, 16, "Disconnect TID", "Don't disconnect TID")); @@ -2607,7 +2607,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Password Length: %u", passwdlen); + proto_tree_add_text(tree, NullTVB, offset, 2, "Password Length: %u", passwdlen); } @@ -2617,7 +2617,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", bcc); } @@ -2627,7 +2627,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(str) + 1, "Password: %s", format_text(str, passwdlen)); + proto_tree_add_text(tree, NullTVB, offset, strlen(str) + 1, "Password: %s", format_text(str, passwdlen)); } @@ -2637,7 +2637,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(str) + 1, "Path: %s", str); + proto_tree_add_text(tree, NullTVB, offset, strlen(str) + 1, "Path: %s", str); } @@ -2647,7 +2647,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(str) + 1, "Service: %s", str); + proto_tree_add_text(tree, NullTVB, offset, strlen(str) + 1, "Service: %s", str); } @@ -2659,7 +2659,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", bcc); } @@ -2669,7 +2669,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(str) + 1, "Service Type: %s", + proto_tree_add_text(tree, NullTVB, offset, strlen(str) + 1, "Service Type: %s", str); } @@ -2684,7 +2684,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { /* Should break out the bits */ - proto_tree_add_text(tree, offset, 2, "Optional Support: 0x%04x", + proto_tree_add_text(tree, NullTVB, offset, 2, "Optional Support: 0x%04x", optionsup); } @@ -2695,7 +2695,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", bcc); } @@ -2705,7 +2705,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(str) + 1, "Service: %s", str); + proto_tree_add_text(tree, NullTVB, offset, strlen(str) + 1, "Service: %s", str); } @@ -2715,7 +2715,7 @@ dissect_tcon_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(str) + 1, "Native File System: %s", str); + proto_tree_add_text(tree, NullTVB, offset, strlen(str) + 1, "Native File System: %s", str); } @@ -2753,9 +2753,9 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa !((wct == 13) && (dirn == 0)) && !((wct == 17) && (dirn == 0))) { if (tree) { - proto_tree_add_text(tree, offset, 1, "Invalid Negotiate Protocol format. WCT should be zero or 1 or 13 or 17 ..., not %u", wct); + proto_tree_add_text(tree, NullTVB, offset, 1, "Invalid Negotiate Protocol format. WCT should be zero or 1 or 13 or 17 ..., not %u", wct); - proto_tree_add_text(tree, offset, END_OF_FRAME, "Data"); + proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Data"); return; } @@ -2763,7 +2763,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %d", wct); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %d", wct); } @@ -2781,7 +2781,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", bcc); } @@ -2789,7 +2789,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - ti = proto_tree_add_text(tree, offset, END_OF_FRAME, "Dialects"); + ti = proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, "Dialects"); dialects = proto_item_add_subtree(ti, ett_smb_dialects); } @@ -2799,7 +2799,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(dialects, offset, 1, "Dialect Marker: %d", pd[offset]); + proto_tree_add_text(dialects, NullTVB, offset, 1, "Dialect Marker: %d", pd[offset]); } @@ -2809,7 +2809,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(dialects, offset, strlen(str)+1, "Dialect: %s", str); + proto_tree_add_text(dialects, NullTVB, offset, strlen(str)+1, "Dialect: %s", str); } @@ -2826,12 +2826,12 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (dialect == 0xFFFF) { /* Server didn't like them dialects */ - proto_tree_add_text(tree, offset, 2, "Supplied dialects not recognized"); + proto_tree_add_text(tree, NullTVB, offset, 2, "Supplied dialects not recognized"); } else { - proto_tree_add_text(tree, offset, 2, "Dialect Index: %u, PC NETWORK PROTGRAM 1.0", dialect); + proto_tree_add_text(tree, NullTVB, offset, 2, "Dialect Index: %u, PC NETWORK PROTGRAM 1.0", dialect); } @@ -2843,7 +2843,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", bcc); } @@ -2853,7 +2853,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Dialect Index: %u, Greater than CORE PROTOCOL and up to LANMAN2.1", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Dialect Index: %u, Greater than CORE PROTOCOL and up to LANMAN2.1", GSHORT(pd, offset)); } @@ -2865,13 +2865,13 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Security Mode: 0x%04x", mode); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Security Mode: 0x%04x", mode); mode_tree = proto_item_add_subtree(ti, ett_smb_mode); - proto_tree_add_text(mode_tree, offset, 2, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(mode, 0x0001, 16, "Security = User", "Security = Share")); - proto_tree_add_text(mode_tree, offset, 2, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(mode, 0x0002, 16, "Passwords = Encrypted", "Passwords = Plaintext")); @@ -2882,7 +2882,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Max buffer size: %u", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max buffer size: %u", GSHORT(pd, offset)); } @@ -2890,7 +2890,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Max multiplex count: %u", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max multiplex count: %u", GSHORT(pd, offset)); } @@ -2898,7 +2898,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Max vcs: %u", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max vcs: %u", GSHORT(pd, offset)); } @@ -2908,13 +2908,13 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Raw Mode: 0x%04x", rawmode); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Raw Mode: 0x%04x", rawmode); rawmode_tree = proto_item_add_subtree(ti, ett_smb_rawmode); - proto_tree_add_text(rawmode_tree, offset, 2, "%s", + proto_tree_add_text(rawmode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(rawmode, 0x01, 16, "Read Raw supported", "Read Raw not supported")); - proto_tree_add_text(rawmode_tree, offset, 2, "%s", + proto_tree_add_text(rawmode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(rawmode, 0x02, 16, "Write Raw supported", "Write Raw not supported")); @@ -2925,7 +2925,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 4, "Session key: %08x", GWORD(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 4, "Session key: %08x", GWORD(pd, offset)); } @@ -2935,9 +2935,9 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Server Time: %s", + proto_tree_add_text(tree, NullTVB, offset, 2, "Server Time: %s", dissect_dos_time(GSHORT(pd, offset))); - proto_tree_add_text(tree, offset + 2, 2, "Server Date: %s", + proto_tree_add_text(tree, NullTVB, offset + 2, 2, "Server Date: %s", dissect_dos_date(GSHORT(pd, offset + 2))); } @@ -2948,7 +2948,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Server time zone: %i min from UTC", + proto_tree_add_text(tree, NullTVB, offset, 2, "Server time zone: %i min from UTC", (signed)GSSHORT(pd, offset)); } @@ -2961,7 +2961,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Challenge Length: %u", enckeylen); + proto_tree_add_text(tree, NullTVB, offset, 2, "Challenge Length: %u", enckeylen); } @@ -2969,7 +2969,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u (MBZ)", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u (MBZ)", GSHORT(pd, offset)); } @@ -2979,7 +2979,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", bcc); } @@ -2991,7 +2991,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, enckeylen, "Challenge: %s", + proto_tree_add_text(tree, NullTVB, offset, enckeylen, "Challenge: %s", bytes_to_str(str, enckeylen)); } @@ -3005,7 +3005,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, strlen(str)+1, "Primary Domain: %s", str); + proto_tree_add_text(tree, NullTVB, offset, strlen(str)+1, "Primary Domain: %s", str); } @@ -3015,7 +3015,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Dialect Index: %u, Greater than LANMAN2.1", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Dialect Index: %u, Greater than LANMAN2.1", GSHORT(pd, offset)); } @@ -3025,21 +3025,21 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - ti = proto_tree_add_text(tree, offset, 1, "Security Mode: 0x%02x", mode); + ti = proto_tree_add_text(tree, NullTVB, offset, 1, "Security Mode: 0x%02x", mode); mode_tree = proto_item_add_subtree(ti, ett_smb_mode); - proto_tree_add_text(mode_tree, offset, 1, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(mode, 0x01, 8, "Security = User", "Security = Share")); - proto_tree_add_text(mode_tree, offset, 1, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(mode, 0x02, 8, "Passwords = Encrypted", "Passwords = Plaintext")); - proto_tree_add_text(mode_tree, offset, 1, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(mode, 0x04, 8, "Security signatures enabled", "Security signatures not enabled")); - proto_tree_add_text(mode_tree, offset, 1, "%s", + proto_tree_add_text(mode_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(mode, 0x08, 8, "Security signatures required", "Security signatures not required")); @@ -3050,7 +3050,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Max multiplex count: %u", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max multiplex count: %u", GSHORT(pd, offset)); } @@ -3058,7 +3058,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Max vcs: %u", GSHORT(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max vcs: %u", GSHORT(pd, offset)); } @@ -3066,7 +3066,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Max buffer size: %u", GWORD(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max buffer size: %u", GWORD(pd, offset)); } @@ -3074,7 +3074,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 4, "Max raw size: %u", GWORD(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 4, "Max raw size: %u", GWORD(pd, offset)); } @@ -3082,7 +3082,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 4, "Session key: %08x", GWORD(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset, 4, "Session key: %08x", GWORD(pd, offset)); } @@ -3092,61 +3092,61 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - ti = proto_tree_add_text(tree, offset, 4, "Capabilities: 0x%04x", caps); + ti = proto_tree_add_text(tree, NullTVB, offset, 4, "Capabilities: 0x%04x", caps); caps_tree = proto_item_add_subtree(ti, ett_smb_capabilities); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0001, 32, "Raw Mode supported", "Raw Mode not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0002, 32, "MPX Mode supported", "MPX Mode not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0004, 32, "Unicode supported", "Unicode not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0008, 32, "Large files supported", "Large files not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0010, 32, "NT LM 0.12 SMBs supported", "NT LM 0.12 SMBs not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0020, 32, "RPC remote APIs supported", "RPC remote APIs not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0040, 32, "NT status codes supported", "NT status codes not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0080, 32, "Level 2 OpLocks supported", "Level 2 OpLocks not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0100, 32, "Lock&Read supported", "Lock&Read not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x0200, 32, "NT Find supported", "NT Find not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x1000, 32, "DFS supported", "DFS not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x4000, 32, "Large READX supported", "Large READX not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x8000, 32, "Large WRITEX supported", "Large WRITEX not supported")); - proto_tree_add_text(caps_tree, offset, 4, "%s", + proto_tree_add_text(caps_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(caps, 0x80000000, 32, "Extended security exchanges supported", "Extended security exchanges not supported")); @@ -3158,8 +3158,8 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 4, "System Time Low: 0x%08x", GWORD(pd, offset)); - proto_tree_add_text(tree, offset + 4, 4, "System Time High: 0x%08x", GWORD(pd, offset + 4)); + proto_tree_add_text(tree, NullTVB, offset, 4, "System Time Low: 0x%08x", GWORD(pd, offset)); + proto_tree_add_text(tree, NullTVB, offset + 4, 4, "System Time High: 0x%08x", GWORD(pd, offset + 4)); } @@ -3169,7 +3169,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Server time zone: %i min from UTC", + proto_tree_add_text(tree, NullTVB, offset, 2, "Server time zone: %i min from UTC", (signed)GSSHORT(pd, offset)); } @@ -3182,7 +3182,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 1, "Encryption key len: %u", enckeylen); + proto_tree_add_text(tree, NullTVB, offset, 1, "Encryption key len: %u", enckeylen); } @@ -3192,7 +3192,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte count (BCC): %u", bcc); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte count (BCC): %u", bcc); } @@ -3206,7 +3206,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (tree) { - proto_tree_add_text(tree, offset, enckeylen, "Challenge encryption key: %s", + proto_tree_add_text(tree, NullTVB, offset, enckeylen, "Challenge encryption key: %s", bytes_to_str(str, enckeylen)); } @@ -3225,9 +3225,9 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa if (caps & 0x0004) { ustr = unicode_to_str(str, &ustr_len); - proto_tree_add_text(tree, offset, ustr_len+2, "OEM domain name: %s", ustr); + proto_tree_add_text(tree, NullTVB, offset, ustr_len+2, "OEM domain name: %s", ustr); } else { - proto_tree_add_text(tree, offset, strlen(str)+1, "OEM domain name: %s", str); + proto_tree_add_text(tree, NullTVB, offset, strlen(str)+1, "OEM domain name: %s", str); } } @@ -3237,7 +3237,7 @@ dissect_negprot_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pa default: /* Baddd */ if (tree) - proto_tree_add_text(tree, offset, 1, "Bad format, should never get here"); + proto_tree_add_text(tree, NullTVB, offset, 1, "Bad format, should never get here"); return; } @@ -3261,7 +3261,7 @@ dissect_deletedir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3273,7 +3273,7 @@ dissect_deletedir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -3285,7 +3285,7 @@ dissect_deletedir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -3297,7 +3297,7 @@ dissect_deletedir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); + proto_tree_add_text(tree, NullTVB, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); } @@ -3313,7 +3313,7 @@ dissect_deletedir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3325,7 +3325,7 @@ dissect_deletedir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -3352,7 +3352,7 @@ dissect_createdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3364,7 +3364,7 @@ dissect_createdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -3376,7 +3376,7 @@ dissect_createdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -3388,7 +3388,7 @@ dissect_createdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); + proto_tree_add_text(tree, NullTVB, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); } @@ -3404,7 +3404,7 @@ dissect_createdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3416,7 +3416,7 @@ dissect_createdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -3443,7 +3443,7 @@ dissect_checkdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3455,7 +3455,7 @@ dissect_checkdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -3467,7 +3467,7 @@ dissect_checkdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -3479,7 +3479,7 @@ dissect_checkdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); + proto_tree_add_text(tree, NullTVB, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); } @@ -3495,7 +3495,7 @@ dissect_checkdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3507,7 +3507,7 @@ dissect_checkdir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -3628,7 +3628,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3640,7 +3640,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %s", (AndXCommand == 0xFF ? "No further commands" : decode_smb_name(AndXCommand))); } @@ -3653,7 +3653,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -3665,7 +3665,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -3677,13 +3677,13 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Flags: 0x%02x", Flags); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Flags: 0x%02x", Flags); Flags_tree = proto_item_add_subtree(ti, ett_smb_flags); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Flags, 0x01, 16, "Dont Return Additional Info", "Return Additional Info")); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Flags, 0x02, 16, "Exclusive OpLock not Requested", "Exclusive OpLock Requested")); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Flags, 0x04, 16, "Batch OpLock not Requested", "Batch OpLock Requested")); } @@ -3696,17 +3696,17 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Desired Access: 0x%02x", DesiredAccess); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Desired Access: 0x%02x", DesiredAccess); DesiredAccess_tree = proto_item_add_subtree(ti, ett_smb_desiredaccess); - proto_tree_add_text(DesiredAccess_tree, offset, 2, "%s", + proto_tree_add_text(DesiredAccess_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(DesiredAccess, 0x07, 16, DesiredAccess_0x07, "%s")); - proto_tree_add_text(DesiredAccess_tree, offset, 2, "%s", + proto_tree_add_text(DesiredAccess_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(DesiredAccess, 0x70, 16, DesiredAccess_0x70, "%s")); - proto_tree_add_text(DesiredAccess_tree, offset, 2, "%s", + proto_tree_add_text(DesiredAccess_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(DesiredAccess, 0x700, 16, DesiredAccess_0x700, "%s")); - proto_tree_add_text(DesiredAccess_tree, offset, 2, "%s", + proto_tree_add_text(DesiredAccess_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(DesiredAccess, 0x1000, 16, DesiredAccess_0x1000, "%s")); - proto_tree_add_text(DesiredAccess_tree, offset, 2, "%s", + proto_tree_add_text(DesiredAccess_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(DesiredAccess, 0x4000, 16, DesiredAccess_0x4000, "%s")); } @@ -3719,19 +3719,19 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Search: 0x%02x", Search); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Search: 0x%02x", Search); Search_tree = proto_item_add_subtree(ti, ett_smb_search); - proto_tree_add_text(Search_tree, offset, 2, "%s", + proto_tree_add_text(Search_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Search, 0x01, 16, "Read only file", "Not a read only file")); - proto_tree_add_text(Search_tree, offset, 2, "%s", + proto_tree_add_text(Search_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Search, 0x02, 16, "Hidden file", "Not a hidden file")); - proto_tree_add_text(Search_tree, offset, 2, "%s", + proto_tree_add_text(Search_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Search, 0x04, 16, "System file", "Not a system file")); - proto_tree_add_text(Search_tree, offset, 2, "%s", + proto_tree_add_text(Search_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Search, 0x08, 16, " Volume", "Not a volume")); - proto_tree_add_text(Search_tree, offset, 2, "%s", + proto_tree_add_text(Search_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Search, 0x10, 16, " Directory", "Not a directory")); - proto_tree_add_text(Search_tree, offset, 2, "%s", + proto_tree_add_text(Search_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Search, 0x20, 16, "Archive file", "Do not archive file")); } @@ -3744,19 +3744,19 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "File: 0x%02x", File); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "File: 0x%02x", File); File_tree = proto_item_add_subtree(ti, ett_smb_file); - proto_tree_add_text(File_tree, offset, 2, "%s", + proto_tree_add_text(File_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(File, 0x01, 16, "Read only file", "Not a read only file")); - proto_tree_add_text(File_tree, offset, 2, "%s", + proto_tree_add_text(File_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(File, 0x02, 16, "Hidden file", "Not a hidden file")); - proto_tree_add_text(File_tree, offset, 2, "%s", + proto_tree_add_text(File_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(File, 0x04, 16, "System file", "Not a system file")); - proto_tree_add_text(File_tree, offset, 2, "%s", + proto_tree_add_text(File_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(File, 0x08, 16, " Volume", "Not a volume")); - proto_tree_add_text(File_tree, offset, 2, "%s", + proto_tree_add_text(File_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(File, 0x10, 16, " Directory", "Not a directory")); - proto_tree_add_text(File_tree, offset, 2, "%s", + proto_tree_add_text(File_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(File, 0x20, 16, "Archive file", "Do not archive file")); } @@ -3780,8 +3780,8 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Date: %s", dissect_smbu_date(CreationDate, CreationTime)); - proto_tree_add_text(tree, offset, 2, "Creation Time: %s", dissect_smbu_time(CreationDate, CreationTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Date: %s", dissect_smbu_date(CreationDate, CreationTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Time: %s", dissect_smbu_time(CreationDate, CreationTime)); } @@ -3793,11 +3793,11 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Open Function: 0x%02x", OpenFunction); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Open Function: 0x%02x", OpenFunction); OpenFunction_tree = proto_item_add_subtree(ti, ett_smb_openfunction); - proto_tree_add_text(OpenFunction_tree, offset, 2, "%s", + proto_tree_add_text(OpenFunction_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(OpenFunction, 0x10, 16, OpenFunction_0x10, "%s")); - proto_tree_add_text(OpenFunction_tree, offset, 2, "%s", + proto_tree_add_text(OpenFunction_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(OpenFunction, 0x03, 16, OpenFunction_0x03, "%s")); } @@ -3810,7 +3810,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Allocated Size: %u", AllocatedSize); + proto_tree_add_text(tree, NullTVB, offset, 4, "Allocated Size: %u", AllocatedSize); } @@ -3822,7 +3822,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Reserved1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 4, "Reserved1: %u", Reserved1); } @@ -3834,7 +3834,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Reserved2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 4, "Reserved2: %u", Reserved2); } @@ -3846,7 +3846,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -3858,7 +3858,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, strlen(FileName) + 1, "File Name: %s", FileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(FileName) + 1, "File Name: %s", FileName); } @@ -3881,7 +3881,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -3895,7 +3895,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %s", (AndXCommand == 0xFF ? "No further commands" : decode_smb_name(AndXCommand))); } @@ -3908,7 +3908,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -3920,7 +3920,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -3932,7 +3932,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -3944,19 +3944,19 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "FileAttributes: 0x%02x", FileAttributes); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "FileAttributes: 0x%02x", FileAttributes); FileAttributes_tree = proto_item_add_subtree(ti, ett_smb_fileattributes); - proto_tree_add_text(FileAttributes_tree, offset, 2, "%s", + proto_tree_add_text(FileAttributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(FileAttributes, 0x01, 16, "Read only file", "Not a read only file")); - proto_tree_add_text(FileAttributes_tree, offset, 2, "%s", + proto_tree_add_text(FileAttributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(FileAttributes, 0x02, 16, "Hidden file", "Not a hidden file")); - proto_tree_add_text(FileAttributes_tree, offset, 2, "%s", + proto_tree_add_text(FileAttributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(FileAttributes, 0x04, 16, "System file", "Not a system file")); - proto_tree_add_text(FileAttributes_tree, offset, 2, "%s", + proto_tree_add_text(FileAttributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(FileAttributes, 0x08, 16, " Volume", "Not a volume")); - proto_tree_add_text(FileAttributes_tree, offset, 2, "%s", + proto_tree_add_text(FileAttributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(FileAttributes, 0x10, 16, " Directory", "Not a directory")); - proto_tree_add_text(FileAttributes_tree, offset, 2, "%s", + proto_tree_add_text(FileAttributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(FileAttributes, 0x20, 16, "Archive file", "Do not archive file")); } @@ -3979,8 +3979,8 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Date: %s", dissect_smbu_date(LastWriteDate, LastWriteTime)); - proto_tree_add_text(tree, offset, 2, "Last Write Time: %s", dissect_smbu_time(LastWriteDate, LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Date: %s", dissect_smbu_date(LastWriteDate, LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Time: %s", dissect_smbu_time(LastWriteDate, LastWriteTime)); } @@ -3993,7 +3993,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Data Size: %u", DataSize); + proto_tree_add_text(tree, NullTVB, offset, 4, "Data Size: %u", DataSize); } @@ -4005,7 +4005,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Granted Access: %u", GrantedAccess); + proto_tree_add_text(tree, NullTVB, offset, 2, "Granted Access: %u", GrantedAccess); } @@ -4017,9 +4017,9 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "File Type: 0x%02x", FileType); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "File Type: 0x%02x", FileType); FileType_tree = proto_item_add_subtree(ti, ett_smb_filetype); - proto_tree_add_text(FileType_tree, offset, 2, "%s", + proto_tree_add_text(FileType_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(FileType, 0xFFFF, 16, FileType_0xFFFF, "%s")); } @@ -4032,7 +4032,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Device State: %u", DeviceState); + proto_tree_add_text(tree, NullTVB, offset, 2, "Device State: %u", DeviceState); } @@ -4044,11 +4044,11 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Action: 0x%02x", Action); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Action: 0x%02x", Action); Action_tree = proto_item_add_subtree(ti, ett_smb_action); - proto_tree_add_text(Action_tree, offset, 2, "%s", + proto_tree_add_text(Action_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(Action, 0x8000, 16, Action_0x8000, "%s")); - proto_tree_add_text(Action_tree, offset, 2, "%s", + proto_tree_add_text(Action_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(Action, 0x0003, 16, Action_0x0003, "%s")); } @@ -4061,7 +4061,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Server FID: %u", ServerFID); + proto_tree_add_text(tree, NullTVB, offset, 4, "Server FID: %u", ServerFID); } @@ -4073,7 +4073,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u", Reserved); } @@ -4087,7 +4087,7 @@ dissect_open_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -4138,7 +4138,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4150,7 +4150,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -4162,7 +4162,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -4174,7 +4174,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 1: %u", Reserved1); } @@ -4186,7 +4186,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -4198,7 +4198,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -4210,11 +4210,11 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "WriteMode: 0x%02x", WriteMode); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "WriteMode: 0x%02x", WriteMode); WriteMode_tree = proto_item_add_subtree(ti, ett_smb_writemode); - proto_tree_add_text(WriteMode_tree, offset, 2, "%s", + proto_tree_add_text(WriteMode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(WriteMode, 0x01, 16, "Write through requested", "Write through not requested")); - proto_tree_add_text(WriteMode_tree, offset, 2, "%s", + proto_tree_add_text(WriteMode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(WriteMode, 0x02, 16, "Return Remaining (pipe/dev)", "Dont return Remaining (pipe/dev)")); } @@ -4227,7 +4227,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Reserved 2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 4, "Reserved 2: %u", Reserved2); } @@ -4239,7 +4239,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -4251,7 +4251,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -4263,7 +4263,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -4275,7 +4275,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad: %u", Pad); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad: %u", Pad); } @@ -4291,7 +4291,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4303,7 +4303,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -4315,7 +4315,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -4327,7 +4327,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 1: %u", Reserved1); } @@ -4339,7 +4339,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -4351,11 +4351,11 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "WriteMode: 0x%02x", WriteMode); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "WriteMode: 0x%02x", WriteMode); WriteMode_tree = proto_item_add_subtree(ti, ett_smb_writemode); - proto_tree_add_text(WriteMode_tree, offset, 2, "%s", + proto_tree_add_text(WriteMode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(WriteMode, 0x01, 16, "Write through requested", "Write through not requested")); - proto_tree_add_text(WriteMode_tree, offset, 2, "%s", + proto_tree_add_text(WriteMode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(WriteMode, 0x02, 16, "Return Remaining (pipe/dev)", "Dont return Remaining (pipe/dev)")); } @@ -4368,7 +4368,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Reserved 2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 4, "Reserved 2: %u", Reserved2); } @@ -4380,7 +4380,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -4392,7 +4392,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -4404,7 +4404,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -4416,7 +4416,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad: %u", Pad); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad: %u", Pad); } @@ -4436,7 +4436,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4450,7 +4450,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Remaining: %u", Remaining); + proto_tree_add_text(tree, NullTVB, offset, 2, "Remaining: %u", Remaining); } @@ -4464,7 +4464,7 @@ dissect_write_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -4489,7 +4489,7 @@ dissect_tdis_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4501,7 +4501,7 @@ dissect_tdis_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -4517,7 +4517,7 @@ dissect_tdis_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4529,7 +4529,7 @@ dissect_tdis_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -4570,7 +4570,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4582,7 +4582,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 2, "TID2: %u", TID2); + proto_tree_add_text(tree, NullTVB, offset, 2, "TID2: %u", TID2); } @@ -4594,7 +4594,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 2, "Open Function: %u", OpenFunction); + proto_tree_add_text(tree, NullTVB, offset, 2, "Open Function: %u", OpenFunction); } @@ -4606,9 +4606,9 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Flags: 0x%02x", Flags); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Flags: 0x%02x", Flags); Flags_tree = proto_item_add_subtree(ti, ett_smb_flags); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(Flags, 0x03, 16, Flags_0x03, "%s")); } @@ -4625,7 +4625,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4639,7 +4639,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -4653,7 +4653,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -4665,7 +4665,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, 1, "Error File Format: %u", ErrorFileFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Error File Format: %u", ErrorFileFormat); } @@ -4677,7 +4677,7 @@ dissect_move_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *paren if (tree) { - proto_tree_add_text(tree, offset, strlen(ErrorFileName) + 1, "Error File Name: %s", ErrorFileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(ErrorFileName) + 1, "Error File Name: %s", ErrorFileName); } @@ -4707,7 +4707,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4719,7 +4719,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Search Attributes: %u", SearchAttributes); + proto_tree_add_text(tree, NullTVB, offset, 2, "Search Attributes: %u", SearchAttributes); } @@ -4731,7 +4731,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -4743,7 +4743,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format 1: %u", BufferFormat1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format 1: %u", BufferFormat1); } @@ -4755,7 +4755,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(OldFileName) + 1, "Old File Name: %s", OldFileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(OldFileName) + 1, "Old File Name: %s", OldFileName); } @@ -4767,7 +4767,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format 2: %u", BufferFormat2); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format 2: %u", BufferFormat2); } @@ -4779,7 +4779,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(NewFileName) + 1, "New File Name: %s", NewFileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(NewFileName) + 1, "New File Name: %s", NewFileName); } @@ -4795,7 +4795,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4807,7 +4807,7 @@ dissect_rename_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -4844,7 +4844,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4856,7 +4856,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Setup Length: %u", SetupLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Setup Length: %u", SetupLength); } @@ -4868,9 +4868,9 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Mode: 0x%02x", Mode); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Mode: 0x%02x", Mode); Mode_tree = proto_item_add_subtree(ti, ett_smb_mode); - proto_tree_add_text(Mode_tree, offset, 2, "%s", + proto_tree_add_text(Mode_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(Mode, 0x03, 16, Mode_0x03, "%s")); } @@ -4883,7 +4883,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -4895,7 +4895,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -4907,7 +4907,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, strlen(IdentifierString) + 1, "Identifier String: %s", IdentifierString); + proto_tree_add_text(tree, NullTVB, offset, strlen(IdentifierString) + 1, "Identifier String: %s", IdentifierString); } @@ -4923,7 +4923,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4935,7 +4935,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -4947,7 +4947,7 @@ dissect_open_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -4973,7 +4973,7 @@ dissect_close_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -4985,7 +4985,7 @@ dissect_close_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -4997,7 +4997,7 @@ dissect_close_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5013,7 +5013,7 @@ dissect_close_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count: %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count: %u", WordCount); } @@ -5025,7 +5025,7 @@ dissect_close_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5063,7 +5063,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5075,7 +5075,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -5087,7 +5087,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -5099,7 +5099,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Count: %u", MaxCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Count: %u", MaxCount); } @@ -5111,7 +5111,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Min Count: %u", MinCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Min Count: %u", MinCount); } @@ -5123,7 +5123,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -5135,7 +5135,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u", Reserved); } @@ -5147,7 +5147,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5163,7 +5163,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5175,7 +5175,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -5187,7 +5187,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -5199,7 +5199,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Count: %u", MaxCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Count: %u", MaxCount); } @@ -5211,7 +5211,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Min Count: %u", MinCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Min Count: %u", MinCount); } @@ -5223,7 +5223,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -5235,7 +5235,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u", Reserved); } @@ -5247,7 +5247,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset High: %u", OffsetHigh); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset High: %u", OffsetHigh); } @@ -5259,7 +5259,7 @@ dissect_read_raw_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5295,7 +5295,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5307,7 +5307,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %u", AndXCommand); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %u", AndXCommand); } @@ -5319,7 +5319,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -5331,7 +5331,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -5343,7 +5343,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5366,7 +5366,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5378,7 +5378,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %u", AndXCommand); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %u", AndXCommand); } @@ -5390,7 +5390,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -5402,7 +5402,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -5414,7 +5414,7 @@ dissect_logoff_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5457,7 +5457,7 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5469,7 +5469,7 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -5481,9 +5481,9 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Mode: 0x%02x", Mode); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Mode: 0x%02x", Mode); Mode_tree = proto_item_add_subtree(ti, ett_smb_mode); - proto_tree_add_text(Mode_tree, offset, 2, "%s", + proto_tree_add_text(Mode_tree, NullTVB, offset, 2, "%s", decode_enumerated_bitfield(Mode, 0x03, 16, Mode_0x03, "%s")); } @@ -5496,7 +5496,7 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -5508,7 +5508,7 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5524,7 +5524,7 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5536,7 +5536,7 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -5548,7 +5548,7 @@ dissect_seek_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5579,7 +5579,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5591,7 +5591,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -5603,7 +5603,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -5615,7 +5615,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -5627,7 +5627,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Remaining: %u", Remaining); + proto_tree_add_text(tree, NullTVB, offset, 2, "Remaining: %u", Remaining); } @@ -5639,7 +5639,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5651,7 +5651,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -5663,7 +5663,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -5679,7 +5679,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5691,7 +5691,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -5703,7 +5703,7 @@ dissect_write_and_unlock_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5735,7 +5735,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count: %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count: %u", WordCount); } @@ -5747,7 +5747,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -5759,7 +5759,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Date: %s", dissect_dos_date(CreationDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Date: %s", dissect_dos_date(CreationDate)); } @@ -5771,7 +5771,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); } @@ -5783,7 +5783,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Access Date: %s", dissect_dos_date(LastAccessDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Access Date: %s", dissect_dos_date(LastAccessDate)); } @@ -5795,7 +5795,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Access Time: %s", dissect_dos_time(LastAccessTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Access Time: %s", dissect_dos_time(LastAccessTime)); } @@ -5807,7 +5807,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); } @@ -5819,7 +5819,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); } @@ -5831,7 +5831,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5847,7 +5847,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCC): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCC): %u", WordCount); } @@ -5859,7 +5859,7 @@ dissect_set_info2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5887,7 +5887,7 @@ dissect_lock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5899,7 +5899,7 @@ dissect_lock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -5911,7 +5911,7 @@ dissect_lock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 4, "Count: %u", Count); } @@ -5923,7 +5923,7 @@ dissect_lock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -5935,7 +5935,7 @@ dissect_lock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5951,7 +5951,7 @@ dissect_lock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -5963,7 +5963,7 @@ dissect_lock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -5994,7 +5994,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count: %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count: %u", WordCount); } @@ -6006,7 +6006,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Count: %u", MaxCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Count: %u", MaxCount); } @@ -6018,7 +6018,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Start Index: %u", StartIndex); + proto_tree_add_text(tree, NullTVB, offset, 2, "Start Index: %u", StartIndex); } @@ -6030,7 +6030,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6046,7 +6046,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6060,7 +6060,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -6072,7 +6072,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Restart Index: %u", RestartIndex); + proto_tree_add_text(tree, NullTVB, offset, 2, "Restart Index: %u", RestartIndex); } @@ -6086,7 +6086,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6098,7 +6098,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -6110,7 +6110,7 @@ dissect_get_print_queue_smb(const u_char *pd, int offset, frame_data *fd, proto_ if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -6147,7 +6147,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6159,7 +6159,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %u", AndXCommand); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %u", AndXCommand); } @@ -6171,7 +6171,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -6183,7 +6183,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXOffset: %u", AndXOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXOffset: %u", AndXOffset); } @@ -6195,7 +6195,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -6207,17 +6207,17 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - ti = proto_tree_add_text(tree, offset, 1, "Lock Type: 0x%01x", LockType); + ti = proto_tree_add_text(tree, NullTVB, offset, 1, "Lock Type: 0x%01x", LockType); LockType_tree = proto_item_add_subtree(ti, ett_smb_lock_type); - proto_tree_add_text(LockType_tree, offset, 1, "%s", + proto_tree_add_text(LockType_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(LockType, 0x01, 16, "Read-only lock", "Not a Read-only lock")); - proto_tree_add_text(LockType_tree, offset, 1, "%s", + proto_tree_add_text(LockType_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(LockType, 0x02, 16, "Oplock break notification", "Not an Oplock break notification")); - proto_tree_add_text(LockType_tree, offset, 1, "%s", + proto_tree_add_text(LockType_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(LockType, 0x04, 16, "Change lock type", "Not a lock type change")); - proto_tree_add_text(LockType_tree, offset, 1, "%s", + proto_tree_add_text(LockType_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(LockType, 0x08, 16, "Cancel outstanding request", "Dont cancel outstanding request")); - proto_tree_add_text(LockType_tree, offset, 1, "%s", + proto_tree_add_text(LockType_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(LockType, 0x10, 16, "Large file locking format", "Not a large file locking format")); } @@ -6230,7 +6230,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "OplockLevel: %u", OplockLevel); + proto_tree_add_text(tree, NullTVB, offset, 1, "OplockLevel: %u", OplockLevel); } @@ -6242,7 +6242,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -6254,7 +6254,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Number Of Unlocks: %u", NumberOfUnlocks); + proto_tree_add_text(tree, NullTVB, offset, 2, "Number Of Unlocks: %u", NumberOfUnlocks); } @@ -6266,7 +6266,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Number of Locks: %u", NumberofLocks); + proto_tree_add_text(tree, NullTVB, offset, 2, "Number of Locks: %u", NumberofLocks); } @@ -6278,7 +6278,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6301,7 +6301,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6315,7 +6315,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXCommand: %s", + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXCommand: %s", (AndXCommand == 0xFF ? "No further commands" : decode_smb_name(AndXCommand))); } @@ -6328,7 +6328,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "AndXReserved: %u", AndXReserved); + proto_tree_add_text(tree, NullTVB, offset, 1, "AndXReserved: %u", AndXReserved); } @@ -6340,7 +6340,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "AndXoffset: %u", AndXoffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "AndXoffset: %u", AndXoffset); } @@ -6354,7 +6354,7 @@ dissect_locking_andx_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count: %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count: %u", ByteCount); } @@ -6389,7 +6389,7 @@ dissect_unlock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6401,7 +6401,7 @@ dissect_unlock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -6413,7 +6413,7 @@ dissect_unlock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 4, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 4, "Count: %u", Count); } @@ -6425,7 +6425,7 @@ dissect_unlock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -6437,7 +6437,7 @@ dissect_unlock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6453,7 +6453,7 @@ dissect_unlock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6465,7 +6465,7 @@ dissect_unlock_bytes_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6497,7 +6497,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6509,19 +6509,19 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Attributes: 0x%02x", Attributes); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Attributes: 0x%02x", Attributes); Attributes_tree = proto_item_add_subtree(ti, ett_smb_fileattributes); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x01, 16, "Read-only file", "Not a read-only file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x02, 16, "Hidden file", "Not a hidden file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x04, 16, "System file", "Not a system file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x08, 16, " Volume", "Not a volume")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x10, 16, " Directory", "Not a directory")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x20, 16, " Archived", "Not archived")); } @@ -6534,7 +6534,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); } @@ -6546,7 +6546,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6558,7 +6558,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -6570,7 +6570,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(FileName) + 1, "File Name: %s", FileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(FileName) + 1, "File Name: %s", FileName); } @@ -6586,7 +6586,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6600,7 +6600,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -6614,7 +6614,7 @@ dissect_create_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6648,7 +6648,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6660,7 +6660,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Count: %u", MaxCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Count: %u", MaxCount); } @@ -6672,7 +6672,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Search Attributes: %u", SearchAttributes); + proto_tree_add_text(tree, NullTVB, offset, 2, "Search Attributes: %u", SearchAttributes); } @@ -6684,7 +6684,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6696,7 +6696,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format 1: %u", BufferFormat1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format 1: %u", BufferFormat1); } @@ -6708,7 +6708,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, strlen(FileName) + 1, "File Name: %s", FileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(FileName) + 1, "File Name: %s", FileName); } @@ -6720,7 +6720,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format 2: %u", BufferFormat2); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format 2: %u", BufferFormat2); } @@ -6732,7 +6732,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Resume Key Length: %u", ResumeKeyLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Resume Key Length: %u", ResumeKeyLength); } @@ -6748,7 +6748,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6762,7 +6762,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -6776,7 +6776,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6788,7 +6788,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -6800,7 +6800,7 @@ dissect_search_dir_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -6832,7 +6832,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6844,7 +6844,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved: %u", Reserved); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved: %u", Reserved); } @@ -6856,7 +6856,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Time: %s", dissect_dos_time(CreationTime)); } @@ -6868,7 +6868,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 2, "Creation Date: %s", dissect_dos_date(CreationDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Creation Date: %s", dissect_dos_date(CreationDate)); } @@ -6880,7 +6880,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6892,7 +6892,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -6904,7 +6904,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); + proto_tree_add_text(tree, NullTVB, offset, strlen(DirectoryName) + 1, "Directory Name: %s", DirectoryName); } @@ -6920,7 +6920,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -6934,7 +6934,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -6948,7 +6948,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -6960,7 +6960,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -6972,7 +6972,7 @@ dissect_create_temporary_file_smb(const u_char *pd, int offset, frame_data *fd, if (tree) { - proto_tree_add_text(tree, offset, strlen(FileName) + 1, "File Name: %s", FileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(FileName) + 1, "File Name: %s", FileName); } @@ -7000,7 +7000,7 @@ dissect_close_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pare if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7012,7 +7012,7 @@ dissect_close_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pare if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -7024,7 +7024,7 @@ dissect_close_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pare if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Time: %s", dissect_dos_time(LastWriteTime)); } @@ -7036,7 +7036,7 @@ dissect_close_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pare if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Date: %s", dissect_dos_date(LastWriteDate)); } @@ -7048,7 +7048,7 @@ dissect_close_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pare if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7064,7 +7064,7 @@ dissect_close_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pare if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7076,7 +7076,7 @@ dissect_close_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *pare if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7104,7 +7104,7 @@ dissect_write_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7116,7 +7116,7 @@ dissect_write_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -7128,7 +7128,7 @@ dissect_write_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7140,7 +7140,7 @@ dissect_write_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -7152,7 +7152,7 @@ dissect_write_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -7168,7 +7168,7 @@ dissect_write_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7180,7 +7180,7 @@ dissect_write_print_file_smb(const u_char *pd, int offset, frame_data *fd, proto if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7215,7 +7215,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7227,7 +7227,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -7239,7 +7239,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -7251,7 +7251,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -7263,7 +7263,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Remaining: %u", Remaining); + proto_tree_add_text(tree, NullTVB, offset, 2, "Remaining: %u", Remaining); } @@ -7275,7 +7275,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7291,7 +7291,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7305,7 +7305,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -7317,7 +7317,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 1: %u", Reserved1); } @@ -7329,7 +7329,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 2: %u", Reserved2); } @@ -7341,7 +7341,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 3: %u", Reserved3); } @@ -7353,7 +7353,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 4: %u", Reserved4); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 4: %u", Reserved4); } @@ -7365,7 +7365,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7379,7 +7379,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -7391,7 +7391,7 @@ dissect_lock_and_read_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -7416,7 +7416,7 @@ dissect_process_exit_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7428,7 +7428,7 @@ dissect_process_exit_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7444,7 +7444,7 @@ dissect_process_exit_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7456,7 +7456,7 @@ dissect_process_exit_smb(const u_char *pd, int offset, frame_data *fd, proto_tre if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7494,7 +7494,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7506,7 +7506,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7518,7 +7518,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 1, "Buffer Format: %u", BufferFormat); } @@ -7530,7 +7530,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, strlen(FileName) + 1, "File Name: %s", FileName); + proto_tree_add_text(tree, NullTVB, offset, strlen(FileName) + 1, "File Name: %s", FileName); } @@ -7546,7 +7546,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7560,19 +7560,19 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Attributes: 0x%02x", Attributes); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Attributes: 0x%02x", Attributes); Attributes_tree = proto_item_add_subtree(ti, ett_smb_fileattributes); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x01, 16, "Read-only file", "Not a read-only file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x02, 16, "Hidden file", "Not a hidden file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x04, 16, "System file", "Not a system file")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x08, 16, " Volume", "Not a volume")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x10, 16, " Directory", "Not a directory")); - proto_tree_add_text(Attributes_tree, offset, 2, "%s", + proto_tree_add_text(Attributes_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Attributes, 0x20, 16, " Archived", "Not archived")); } @@ -7595,9 +7595,9 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Last Write Date: %s", dissect_smbu_date(LastWriteDate, LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Date: %s", dissect_smbu_date(LastWriteDate, LastWriteTime)); - proto_tree_add_text(tree, offset, 2, "Last Write Time: %s", dissect_smbu_time(LastWriteDate, LastWriteTime)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Last Write Time: %s", dissect_smbu_time(LastWriteDate, LastWriteTime)); } @@ -7609,7 +7609,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 4, "File Size: %u", FileSize); + proto_tree_add_text(tree, NullTVB, offset, 4, "File Size: %u", FileSize); } @@ -7621,7 +7621,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 1: %u", Reserved1); } @@ -7633,7 +7633,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 2: %u", Reserved2); } @@ -7645,7 +7645,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 3: %u", Reserved3); } @@ -7657,7 +7657,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 4: %u", Reserved4); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 4: %u", Reserved4); } @@ -7669,7 +7669,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 5: %u", Reserved5); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 5: %u", Reserved5); } @@ -7683,7 +7683,7 @@ dissect_get_file_attr_smb(const u_char *pd, int offset, frame_data *fd, proto_tr if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7718,7 +7718,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7730,7 +7730,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -7742,7 +7742,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -7754,7 +7754,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Offset: %u", Offset); + proto_tree_add_text(tree, NullTVB, offset, 4, "Offset: %u", Offset); } @@ -7766,7 +7766,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Remaining: %u", Remaining); + proto_tree_add_text(tree, NullTVB, offset, 2, "Remaining: %u", Remaining); } @@ -7778,7 +7778,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7794,7 +7794,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7808,7 +7808,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -7820,7 +7820,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 1: %u", Reserved1); } @@ -7832,7 +7832,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 2: %u", Reserved2); } @@ -7844,7 +7844,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 3: %u", Reserved3); } @@ -7856,7 +7856,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 4: %u", Reserved4); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 4: %u", Reserved4); } @@ -7870,7 +7870,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -7882,7 +7882,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Buffer Format: %u", BufferFormat); + proto_tree_add_text(tree, NullTVB, offset, 2, "Buffer Format: %u", BufferFormat); } @@ -7894,7 +7894,7 @@ dissect_read_file_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -7931,7 +7931,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -7943,7 +7943,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -7955,7 +7955,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Count: %u", Count); + proto_tree_add_text(tree, NullTVB, offset, 2, "Count: %u", Count); } @@ -7967,7 +7967,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved 1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved 1: %u", Reserved1); } @@ -7979,7 +7979,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -7991,13 +7991,13 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "WriteMode: 0x%02x", WriteMode); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "WriteMode: 0x%02x", WriteMode); WriteMode_tree = proto_item_add_subtree(ti, ett_smb_writemode); - proto_tree_add_text(WriteMode_tree, offset, 2, "%s", + proto_tree_add_text(WriteMode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(WriteMode, 0x01, 16, "Write through requested", "Write through not requested")); - proto_tree_add_text(WriteMode_tree, offset, 2, "%s", + proto_tree_add_text(WriteMode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(WriteMode, 0x02, 16, "Return Remaining", "Dont return Remaining")); - proto_tree_add_text(WriteMode_tree, offset, 2, "%s", + proto_tree_add_text(WriteMode_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(WriteMode, 0x40, 16, "Connectionless mode requested", "Connectionless mode not requested")); } @@ -8010,7 +8010,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Request Mask: %u", RequestMask); + proto_tree_add_text(tree, NullTVB, offset, 4, "Request Mask: %u", RequestMask); } @@ -8022,7 +8022,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Length: %u", DataLength); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Length: %u", DataLength); } @@ -8034,7 +8034,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -8046,7 +8046,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -8058,7 +8058,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad: %u", Pad); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad: %u", Pad); } @@ -8074,7 +8074,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -8088,7 +8088,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Response Mask: %u", ResponseMask); + proto_tree_add_text(tree, NullTVB, offset, 4, "Response Mask: %u", ResponseMask); } @@ -8100,7 +8100,7 @@ dissect_write_mpx_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -8128,7 +8128,7 @@ dissect_find_close2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WTC): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WTC): %u", WordCount); } @@ -8140,7 +8140,7 @@ dissect_find_close2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "FID: %u", FID); + proto_tree_add_text(tree, NullTVB, offset, 2, "FID: %u", FID); } @@ -8152,7 +8152,7 @@ dissect_find_close2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -8168,7 +8168,7 @@ dissect_find_close2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -8180,7 +8180,7 @@ dissect_find_close2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Byte Count (BCC): %u", ByteCount); } @@ -8317,7 +8317,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -8329,7 +8329,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Parameter Count: %u", TotalParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Parameter Count: %u", TotalParameterCount); } @@ -8341,7 +8341,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Data Count: %u", TotalDataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Data Count: %u", TotalDataCount); } @@ -8353,7 +8353,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Parameter Count: %u", MaxParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Parameter Count: %u", MaxParameterCount); } @@ -8365,7 +8365,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Data Count: %u", MaxDataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Data Count: %u", MaxDataCount); } @@ -8377,7 +8377,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Max Setup Count: %u", MaxSetupCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Max Setup Count: %u", MaxSetupCount); } @@ -8389,7 +8389,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Reserved1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Reserved1: %u", Reserved1); } @@ -8401,11 +8401,11 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Flags: 0x%02x", Flags); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Flags: 0x%02x", Flags); Flags_tree = proto_item_add_subtree(ti, ett_smb_flags); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Flags, 0x01, 16, "Also disconnect TID", "Dont disconnect TID")); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Flags, 0x02, 16, "One way transaction", "Two way transaction")); } @@ -8418,7 +8418,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -8430,7 +8430,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved2: %u", Reserved2); } @@ -8442,7 +8442,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Count: %u", ParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Count: %u", ParameterCount); } @@ -8454,7 +8454,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Offset: %u", ParameterOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Offset: %u", ParameterOffset); } @@ -8466,7 +8466,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Count: %u", DataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Count: %u", DataCount); } @@ -8478,7 +8478,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -8490,7 +8490,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Setup Count: %u", SetupCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Setup Count: %u", SetupCount); } @@ -8502,7 +8502,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Reserved3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 1, "Reserved3: %u", Reserved3); } @@ -8531,7 +8531,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Setup%i: %u", i, Setup1); + proto_tree_add_text(tree, NullTVB, offset, 2, "Setup%i: %u", i, Setup1); } @@ -8547,7 +8547,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -8557,7 +8557,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Transact Name: %s", decode_trans2_name(Setup)); + proto_tree_add_text(tree, NullTVB, offset, 2, "Transact Name: %s", decode_trans2_name(Setup)); } @@ -8569,7 +8569,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad1: %u", Pad1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad1: %u", Pad1); } @@ -8583,7 +8583,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, SMB_offset + ParameterOffset, ParameterCount, "Parameters: %s", format_text(pd + SMB_offset + ParameterOffset, ParameterCount)); + proto_tree_add_text(tree, NullTVB, SMB_offset + ParameterOffset, ParameterCount, "Parameters: %s", format_text(pd + SMB_offset + ParameterOffset, ParameterCount)); } @@ -8599,7 +8599,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad2: %u", Pad2); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad2: %u", Pad2); } @@ -8615,7 +8615,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, SMB_offset + DataOffset, DataCount, "Data: %s", format_text(&pd[offset], DataCount)); + proto_tree_add_text(tree, NullTVB, SMB_offset + DataOffset, DataCount, "Data: %s", format_text(&pd[offset], DataCount)); } @@ -8640,7 +8640,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -8652,7 +8652,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Parameter Count: %u", TotalParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Parameter Count: %u", TotalParameterCount); } @@ -8664,7 +8664,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Data Count: %u", TotalDataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Data Count: %u", TotalDataCount); } @@ -8676,7 +8676,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved2: %u", Reserved2); } @@ -8688,7 +8688,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Count: %u", ParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Count: %u", ParameterCount); } @@ -8700,7 +8700,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Offset: %u", ParameterOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Offset: %u", ParameterOffset); } @@ -8712,7 +8712,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Displacement: %u", ParameterDisplacement); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Displacement: %u", ParameterDisplacement); } @@ -8724,7 +8724,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Count: %u", DataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Count: %u", DataCount); } @@ -8736,7 +8736,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -8748,7 +8748,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Displacement: %u", DataDisplacement); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Displacement: %u", DataDisplacement); } @@ -8760,7 +8760,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Setup Count: %u", SetupCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Setup Count: %u", SetupCount); } @@ -8772,7 +8772,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Reserved3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 1, "Reserved3: %u", Reserved3); } @@ -8784,7 +8784,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Setup: %u", Setup); + proto_tree_add_text(tree, NullTVB, offset, 2, "Setup: %u", Setup); } @@ -8796,7 +8796,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -8808,7 +8808,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad1: %u", Pad1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad1: %u", Pad1); } @@ -8820,7 +8820,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, ParameterCount, "Parameter: %s", format_text(pd + SMB_offset + ParameterOffset, ParameterCount)); + proto_tree_add_text(tree, NullTVB, offset, ParameterCount, "Parameter: %s", format_text(pd + SMB_offset + ParameterOffset, ParameterCount)); } @@ -8834,7 +8834,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad2: %u", Pad2); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad2: %u", Pad2); } @@ -8846,7 +8846,7 @@ dissect_transact2_smb(const u_char *pd, int offset, frame_data *fd, proto_tree * if (tree) { - proto_tree_add_text(tree, offset, DataCount, "Data: %s", format_text(pd + SMB_offset + DataOffset, DataCount)); + proto_tree_add_text(tree, NullTVB, offset, DataCount, "Data: %s", format_text(pd + SMB_offset + DataOffset, DataCount)); } @@ -8901,7 +8901,7 @@ dissect_transact_params(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, SMB_offset + ParameterOffset, ParameterCount, "Parameters: %s", format_text(pd + SMB_offset + ParameterOffset, ParameterCount)); + proto_tree_add_text(tree, NullTVB, SMB_offset + ParameterOffset, ParameterCount, "Parameters: %s", format_text(pd + SMB_offset + ParameterOffset, ParameterCount)); } @@ -8917,7 +8917,7 @@ dissect_transact_params(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad2: %u: %u", Pad2, offset); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad2: %u: %u", Pad2, offset); } @@ -8933,7 +8933,7 @@ dissect_transact_params(const u_char *pd, int offset, frame_data *fd, proto_tree if (tree) { - proto_tree_add_text(tree, SMB_offset + DataOffset, DataCount, "Data: %s", format_text(pd + SMB_offset + DataOffset, DataCount)); + proto_tree_add_text(tree, NullTVB, SMB_offset + DataOffset, DataCount, "Data: %s", format_text(pd + SMB_offset + DataOffset, DataCount)); } @@ -9030,7 +9030,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -9042,7 +9042,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Parameter Count: %u", TotalParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Parameter Count: %u", TotalParameterCount); } @@ -9054,7 +9054,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Data Count: %u", TotalDataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Data Count: %u", TotalDataCount); } @@ -9066,7 +9066,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Parameter Count: %u", MaxParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Parameter Count: %u", MaxParameterCount); } @@ -9078,7 +9078,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Max Data Count: %u", MaxDataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Max Data Count: %u", MaxDataCount); } @@ -9090,7 +9090,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Max Setup Count: %u", MaxSetupCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Max Setup Count: %u", MaxSetupCount); } @@ -9102,7 +9102,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Reserved1: %u", Reserved1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Reserved1: %u", Reserved1); } @@ -9114,11 +9114,11 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Flags: 0x%02x", Flags); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Flags: 0x%02x", Flags); Flags_tree = proto_item_add_subtree(ti, ett_smb_flags); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Flags, 0x01, 16, "Also disconnect TID", "Dont disconnect TID")); - proto_tree_add_text(Flags_tree, offset, 2, "%s", + proto_tree_add_text(Flags_tree, NullTVB, offset, 2, "%s", decode_boolean_bitfield(Flags, 0x02, 16, "One way transaction", "Two way transaction")); } @@ -9131,7 +9131,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 4, "Timeout: %u", Timeout); + proto_tree_add_text(tree, NullTVB, offset, 4, "Timeout: %u", Timeout); } @@ -9143,7 +9143,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved2: %u", Reserved2); } @@ -9155,7 +9155,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Count: %u", ParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Count: %u", ParameterCount); } @@ -9167,7 +9167,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Offset: %u", ParameterOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Offset: %u", ParameterOffset); } @@ -9179,7 +9179,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Count: %u", DataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Count: %u", DataCount); } @@ -9191,7 +9191,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -9203,7 +9203,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Setup Count: %u", SetupCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Setup Count: %u", SetupCount); } @@ -9215,7 +9215,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Reserved3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 1, "Reserved3: %u", Reserved3); } offset += 1; /* Skip Reserved3 */ @@ -9236,7 +9236,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Setup%i: %u", i, Setup); + proto_tree_add_text(tree, NullTVB, offset, 2, "Setup%i: %u", i, Setup); } @@ -9252,7 +9252,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -9290,7 +9290,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, TNlen, "Transact Name: %s", TransactName); + proto_tree_add_text(tree, NullTVB, offset, TNlen, "Transact Name: %s", TransactName); } @@ -9305,7 +9305,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad1: %u", Pad1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad1: %u", Pad1); } @@ -9334,7 +9334,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Word Count (WCT): %u", WordCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Word Count (WCT): %u", WordCount); } @@ -9346,7 +9346,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Parameter Count: %u", TotalParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Parameter Count: %u", TotalParameterCount); } @@ -9358,7 +9358,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Total Data Count: %u", TotalDataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Total Data Count: %u", TotalDataCount); } @@ -9370,7 +9370,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Reserved2: %u", Reserved2); + proto_tree_add_text(tree, NullTVB, offset, 2, "Reserved2: %u", Reserved2); } @@ -9382,7 +9382,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Count: %u", ParameterCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Count: %u", ParameterCount); } @@ -9394,7 +9394,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Offset: %u", ParameterOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Offset: %u", ParameterOffset); } @@ -9406,7 +9406,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Parameter Displacement: %u", ParameterDisplacement); + proto_tree_add_text(tree, NullTVB, offset, 2, "Parameter Displacement: %u", ParameterDisplacement); } @@ -9418,7 +9418,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Count: %u", DataCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Count: %u", DataCount); } @@ -9430,7 +9430,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Offset: %u", DataOffset); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Offset: %u", DataOffset); } @@ -9442,7 +9442,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Data Displacement: %u", DataDisplacement); + proto_tree_add_text(tree, NullTVB, offset, 2, "Data Displacement: %u", DataDisplacement); } @@ -9454,7 +9454,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Setup Count: %u", SetupCount); + proto_tree_add_text(tree, NullTVB, offset, 1, "Setup Count: %u", SetupCount); } @@ -9467,7 +9467,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Reserved3: %u", Reserved3); + proto_tree_add_text(tree, NullTVB, offset, 1, "Reserved3: %u", Reserved3); } @@ -9486,7 +9486,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Setup: %u", Setup); + proto_tree_add_text(tree, NullTVB, offset, 2, "Setup: %u", Setup); } @@ -9500,7 +9500,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 2, "Byte Count (BCC): %u", ByteCount); + proto_tree_add_text(tree, NullTVB, offset, 2, "Byte Count (BCC): %u", ByteCount); } @@ -9514,7 +9514,7 @@ dissect_transact_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *p if (tree) { - proto_tree_add_text(tree, offset, 1, "Pad1: %u", Pad1); + proto_tree_add_text(tree, NullTVB, offset, 1, "Pad1: %u", Pad1); } @@ -9971,15 +9971,15 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - ti = proto_tree_add_item(tree, proto_smb, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_smb, NullTVB, offset, END_OF_FRAME, NULL); smb_tree = proto_item_add_subtree(ti, ett_smb); /* 0xFFSMB is actually a 1 byte msg type and 3 byte server * component ... SMB is only one used */ - proto_tree_add_text(smb_tree, offset, 1, "Message Type: 0xFF"); - proto_tree_add_text(smb_tree, offset+1, 3, "Server Component: SMB"); + proto_tree_add_text(smb_tree, NullTVB, offset, 1, "Message Type: 0xFF"); + proto_tree_add_text(smb_tree, NullTVB, offset+1, 3, "Server Component: SMB"); } @@ -9987,7 +9987,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 1, "Command: %s", decode_smb_name(cmd)); + proto_tree_add_text(smb_tree, NullTVB, offset, 1, "Command: %s", decode_smb_name(cmd)); } @@ -9999,7 +9999,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 1, "Error Class: %s", + proto_tree_add_text(smb_tree, NullTVB, offset, 1, "Error Class: %s", val_to_str((guint8)pd[offset], errcls_types, "Unknown Error Class (%x)")); } @@ -10011,7 +10011,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 1, "Reserved: %i", errcode1); + proto_tree_add_text(smb_tree, NullTVB, offset, 1, "Reserved: %i", errcode1); } @@ -10021,7 +10021,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 2, "Error Code: %s", + proto_tree_add_text(smb_tree, NullTVB, offset, 2, "Error Code: %s", decode_smb_error(errcls, errcode)); } @@ -10034,35 +10034,35 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - tf = proto_tree_add_text(smb_tree, offset, 1, "Flags: 0x%02x", flags); + tf = proto_tree_add_text(smb_tree, NullTVB, offset, 1, "Flags: 0x%02x", flags); flags_tree = proto_item_add_subtree(tf, ett_smb_flags); - proto_tree_add_text(flags_tree, offset, 1, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x01, 8, "Lock&Read, Write&Unlock supported", "Lock&Read, Write&Unlock not supported")); - proto_tree_add_text(flags_tree, offset, 1, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x02, 8, "Receive buffer posted", "Receive buffer not posted")); - proto_tree_add_text(flags_tree, offset, 1, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x08, 8, "Path names caseless", "Path names case sensitive")); - proto_tree_add_text(flags_tree, offset, 1, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x10, 8, "Pathnames canonicalized", "Pathnames not canonicalized")); - proto_tree_add_text(flags_tree, offset, 1, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x20, 8, "OpLocks requested/granted", "OpLocks not requested/granted")); - proto_tree_add_text(flags_tree, offset, 1, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, 0x40, 8, "Notify all", "Notify open only")); - proto_tree_add_text(flags_tree, offset, 1, "%s", + proto_tree_add_text(flags_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags, SMB_FLAGS_DIRN, 8, "Response to client/redirector", "Request to server")); @@ -10074,38 +10074,38 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - tf = proto_tree_add_text(smb_tree, offset, 1, "Flags2: 0x%04x", flags2); + tf = proto_tree_add_text(smb_tree, NullTVB, offset, 1, "Flags2: 0x%04x", flags2); flags2_tree = proto_item_add_subtree(tf, ett_smb_flags2); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x0001, 16, "Long file names supported", "Long file names not supported")); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x0002, 16, "Extended attributes supported", "Extended attributes not supported")); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x0004, 16, "Security signatures supported", "Security signatures not supported")); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x0800, 16, "Extended security negotiation supported", "Extended security negotiation not supported")); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x1000, 16, "Resolve pathnames with DFS", "Don't resolve pathnames with DFS")); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x2000, 16, "Permit reads if execute-only", "Don't permit reads if execute-only")); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x4000, 16, "Error codes are NT error codes", "Error codes are DOS error codes")); - proto_tree_add_text(flags2_tree, offset, 1, "%s", + proto_tree_add_text(flags2_tree, NullTVB, offset, 1, "%s", decode_boolean_bitfield(flags2, 0x8000, 16, "Strings are Unicode", "Strings are ASCII")); @@ -10118,7 +10118,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 12, "Reserved: 6 WORDS"); + proto_tree_add_text(smb_tree, NullTVB, offset, 12, "Reserved: 6 WORDS"); } @@ -10131,7 +10131,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 2, "Network Path/Tree ID (TID): %i (%04x)", tid, tid); + proto_tree_add_text(smb_tree, NullTVB, offset, 2, "Network Path/Tree ID (TID): %i (%04x)", tid, tid); } @@ -10144,7 +10144,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 2, "Process ID (PID): %i (%04x)", pid, pid); + proto_tree_add_text(smb_tree, NullTVB, offset, 2, "Process ID (PID): %i (%04x)", pid, pid); } @@ -10157,7 +10157,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 2, "User ID (UID): %i (%04x)", uid, uid); + proto_tree_add_text(smb_tree, NullTVB, offset, 2, "User ID (UID): %i (%04x)", uid, uid); } @@ -10170,7 +10170,7 @@ dissect_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *tree, int if (tree) { - proto_tree_add_text(smb_tree, offset, 2, "Multiplex ID (MID): %i (%04x)", mid, mid); + proto_tree_add_text(smb_tree, NullTVB, offset, 2, "Multiplex ID (MID): %i (%04x)", mid, mid); } diff --git a/packet-sna.c b/packet-sna.c index 9fb1f2976b..848b88e800 100644 --- a/packet-sna.c +++ b/packet-sna.c @@ -2,7 +2,7 @@ * Routines for SNA * Gilbert Ramirez * - * $Id: packet-sna.c,v 1.14 2000/04/17 00:32:42 guy Exp $ + * $Id: packet-sna.c,v 1.15 2000/05/11 08:15:48 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -332,13 +332,13 @@ dissect_sna(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* Don't bother setting length. We'll set it later after we find * the lengths of TH/RH/RU */ - sna_ti = proto_tree_add_item(tree, proto_sna, offset, 0, NULL); + sna_ti = proto_tree_add_item(tree, proto_sna, NullTVB, offset, 0, NULL); sna_tree = proto_item_add_subtree(sna_ti, ett_sna); /* --- TH --- */ /* Don't bother setting length. We'll set it later after we find * the length of TH */ - th_ti = proto_tree_add_item(sna_tree, hf_sna_th, offset, 0, NULL); + th_ti = proto_tree_add_item(sna_tree, hf_sna_th, NullTVB, offset, 0, NULL); th_tree = proto_item_add_subtree(th_ti, ett_sna_th); } @@ -375,7 +375,7 @@ dissect_sna(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* --- RH --- */ if (BYTES_ARE_IN_FRAME(offset, 3)) { - rh_ti = proto_tree_add_item(sna_tree, hf_sna_rh, offset, 3, NULL); + rh_ti = proto_tree_add_item(sna_tree, hf_sna_rh, NullTVB, offset, 3, NULL); rh_tree = proto_item_add_subtree(rh_ti, ett_sna_rh); dissect_rh(pd, offset, fd, rh_tree); sna_header_len += 3; @@ -432,18 +432,18 @@ dissect_fid0_1 (const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } /* Create the bitfield tree */ - bf_item = proto_tree_add_item(tree, hf_sna_th_0, offset, 1, th_0); + bf_item = proto_tree_add_item(tree, hf_sna_th_0, NullTVB, offset, 1, th_0); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); - proto_tree_add_item(bf_tree, hf_sna_th_fid, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_mpf, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_efi ,offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_fid, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_mpf, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_efi , NullTVB,offset, 1, th_0); - proto_tree_add_text(tree, offset+1, 1, "Reserved"); - proto_tree_add_item(tree, hf_sna_th_daf ,offset+2, 1, daf); - proto_tree_add_item(tree, hf_sna_th_oaf ,offset+4, 1, oaf); - proto_tree_add_item(tree, hf_sna_th_snf ,offset+6, 2, snf); - proto_tree_add_item(tree, hf_sna_th_dcf ,offset+8, 2, dcf); + proto_tree_add_text(tree, NullTVB, offset+1, 1, "Reserved"); + proto_tree_add_item(tree, hf_sna_th_daf , NullTVB,offset+2, 1, daf); + proto_tree_add_item(tree, hf_sna_th_oaf , NullTVB,offset+4, 1, oaf); + proto_tree_add_item(tree, hf_sna_th_snf , NullTVB,offset+6, 2, snf); + proto_tree_add_item(tree, hf_sna_th_dcf , NullTVB,offset+8, 2, dcf); return bytes_in_header; @@ -482,21 +482,21 @@ dissect_fid2 (const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { snf = pntohs(&pd[offset+4]); /* Create the bitfield tree */ - bf_item = proto_tree_add_item(tree, hf_sna_th_0, offset, 1, th_0); + bf_item = proto_tree_add_item(tree, hf_sna_th_0, NullTVB, offset, 1, th_0); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); - proto_tree_add_item(bf_tree, hf_sna_th_fid, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_mpf, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_odai ,offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_efi ,offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_fid, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_mpf, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_odai , NullTVB,offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_efi , NullTVB,offset, 1, th_0); /* Addresses in FID 2 are FT_UINT8 */ - proto_tree_add_text(tree, offset+1, 1, "Reserved"); - proto_tree_add_uint_format(tree, hf_sna_th_daf ,offset+2, 1, daf, + proto_tree_add_text(tree, NullTVB, offset+1, 1, "Reserved"); + proto_tree_add_uint_format(tree, hf_sna_th_daf , NullTVB,offset+2, 1, daf, "Destination Address Field: 0x%02x", daf); - proto_tree_add_uint_format(tree, hf_sna_th_oaf ,offset+3, 1, oaf, + proto_tree_add_uint_format(tree, hf_sna_th_oaf , NullTVB,offset+3, 1, oaf, "Origin Address Field: 0x%02x", oaf); - proto_tree_add_item(tree, hf_sna_th_snf ,offset+4, 2, snf); + proto_tree_add_item(tree, hf_sna_th_snf , NullTVB,offset+4, 2, snf); return bytes_in_header; } @@ -524,14 +524,14 @@ dissect_fid3 (const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { lsid = pd[offset+1]; /* Create the bitfield tree */ - bf_item = proto_tree_add_item(tree, hf_sna_th_0, offset, 1, th_0); + bf_item = proto_tree_add_item(tree, hf_sna_th_0, NullTVB, offset, 1, th_0); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); - proto_tree_add_item(bf_tree, hf_sna_th_fid, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_mpf, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_efi ,offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_fid, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_mpf, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_efi , NullTVB,offset, 1, th_0); - proto_tree_add_item(tree, hf_sna_th_lsid ,offset+1, 1, lsid); + proto_tree_add_item(tree, hf_sna_th_lsid , NullTVB,offset+1, 1, lsid); return bytes_in_header; } @@ -601,122 +601,122 @@ dissect_fid4 (const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { th_byte = pd[offset]; /* Create the bitfield tree */ - bf_item = proto_tree_add_item(tree, hf_sna_th_0, offset, 1, th_byte); + bf_item = proto_tree_add_item(tree, hf_sna_th_0, NullTVB, offset, 1, th_byte); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); /* Byte 0 */ - proto_tree_add_item(bf_tree, hf_sna_th_fid, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_tg_sweep, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_er_vr_supp_ind, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_vr_pac_cnt_ind, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_ntwk_prty, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_fid, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_tg_sweep, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_er_vr_supp_ind, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_vr_pac_cnt_ind, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_ntwk_prty, NullTVB, offset, 1, th_byte); offset += 1; th_byte = pd[offset]; /* Create the bitfield tree */ - bf_item = proto_tree_add_text(tree, offset, 1, "Transmision Header Byte 1"); + bf_item = proto_tree_add_text(tree, NullTVB, offset, 1, "Transmision Header Byte 1"); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); /* Byte 1 */ - proto_tree_add_item(bf_tree, hf_sna_th_tgsf, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_mft, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_piubf, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_tgsf, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_mft, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_piubf, NullTVB, offset, 1, th_byte); mft = th_byte & 0x04; offset += 1; th_byte = pd[offset]; /* Create the bitfield tree */ - bf_item = proto_tree_add_text(tree, offset, 1, "Transmision Header Byte 2"); + bf_item = proto_tree_add_text(tree, NullTVB, offset, 1, "Transmision Header Byte 2"); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); /* Byte 2 */ if (mft) { - proto_tree_add_item(bf_tree, hf_sna_th_nlpoi, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_nlp_cp, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_nlpoi, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_nlp_cp, NullTVB, offset, 1, th_byte); } else { - proto_tree_add_item(bf_tree, hf_sna_th_iern, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_iern, NullTVB, offset, 1, th_byte); } - proto_tree_add_item(bf_tree, hf_sna_th_ern, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_ern, NullTVB, offset, 1, th_byte); offset += 1; th_byte = pd[offset]; /* Create the bitfield tree */ - bf_item = proto_tree_add_text(tree, offset, 1, "Transmision Header Byte 3"); + bf_item = proto_tree_add_text(tree, NullTVB, offset, 1, "Transmision Header Byte 3"); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); /* Byte 3 */ - proto_tree_add_item(bf_tree, hf_sna_th_vrn, offset, 1, th_byte); - proto_tree_add_item(bf_tree, hf_sna_th_tpf, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_vrn, NullTVB, offset, 1, th_byte); + proto_tree_add_item(bf_tree, hf_sna_th_tpf, NullTVB, offset, 1, th_byte); offset += 1; th_word = pntohs(&pd[offset]); /* Create the bitfield tree */ - bf_item = proto_tree_add_text(tree, offset, 2, "Transmision Header Bytes 4-5"); + bf_item = proto_tree_add_text(tree, NullTVB, offset, 2, "Transmision Header Bytes 4-5"); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); /* Bytes 4-5 */ - proto_tree_add_item(bf_tree, hf_sna_th_vr_cwi, offset, 2, th_word); - proto_tree_add_item(bf_tree, hf_sna_th_tg_nonfifo_ind, offset, 2, th_word); - proto_tree_add_item(bf_tree, hf_sna_th_vr_sqti, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_vr_cwi, NullTVB, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_tg_nonfifo_ind, NullTVB, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_vr_sqti, NullTVB, offset, 2, th_word); /* I'm not sure about byte-order on this one... */ - proto_tree_add_item(bf_tree, hf_sna_th_tg_snf, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_tg_snf, NullTVB, offset, 2, th_word); offset += 2; th_word = pntohs(&pd[offset]); /* Create the bitfield tree */ - bf_item = proto_tree_add_text(tree, offset, 2, "Transmision Header Bytes 6-7"); + bf_item = proto_tree_add_text(tree, NullTVB, offset, 2, "Transmision Header Bytes 6-7"); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); /* Bytes 6-7 */ - proto_tree_add_item(bf_tree, hf_sna_th_vrprq, offset, 2, th_word); - proto_tree_add_item(bf_tree, hf_sna_th_vrprs, offset, 2, th_word); - proto_tree_add_item(bf_tree, hf_sna_th_vr_cwri, offset, 2, th_word); - proto_tree_add_item(bf_tree, hf_sna_th_vr_rwi, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_vrprq, NullTVB, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_vrprs, NullTVB, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_vr_cwri, NullTVB, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_vr_rwi, NullTVB, offset, 2, th_word); /* I'm not sure about byte-order on this one... */ - proto_tree_add_item(bf_tree, hf_sna_th_vr_snf_send, offset, 2, th_word); + proto_tree_add_item(bf_tree, hf_sna_th_vr_snf_send, NullTVB, offset, 2, th_word); offset += 2; /* Bytes 8-11 */ - proto_tree_add_item(tree, hf_sna_th_dsaf, offset, 4, dsaf); + proto_tree_add_item(tree, hf_sna_th_dsaf, NullTVB, offset, 4, dsaf); offset += 4; /* Bytes 12-15 */ - proto_tree_add_item(tree, hf_sna_th_osaf, offset, 4, osaf); + proto_tree_add_item(tree, hf_sna_th_osaf, NullTVB, offset, 4, osaf); offset += 4; th_byte = pd[offset]; /* Create the bitfield tree */ - bf_item = proto_tree_add_text(tree, offset, 2, "Transmision Header Byte 16"); + bf_item = proto_tree_add_text(tree, NullTVB, offset, 2, "Transmision Header Byte 16"); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); /* Byte 16 */ - proto_tree_add_item(tree, hf_sna_th_snai, offset, 1, th_byte); + proto_tree_add_item(tree, hf_sna_th_snai, NullTVB, offset, 1, th_byte); /* We luck out here because in their infinite wisdom the SNA * architects placed the MPF and EFI fields in the same bitfield * locations, even though for FID4 they're not in byte 0. * Thank you IBM! */ - proto_tree_add_item(tree, hf_sna_th_mpf, offset, 1, th_byte); - proto_tree_add_item(tree, hf_sna_th_efi, offset, 1, th_byte); + proto_tree_add_item(tree, hf_sna_th_mpf, NullTVB, offset, 1, th_byte); + proto_tree_add_item(tree, hf_sna_th_efi, NullTVB, offset, 1, th_byte); offset += 2; /* 1 for byte 16, 1 for byte 17 which is reserved */ /* Bytes 18-25 */ - proto_tree_add_item(tree, hf_sna_th_def, offset+0, 2, def); - proto_tree_add_item(tree, hf_sna_th_oef, offset+2, 2, oef); - proto_tree_add_item(tree, hf_sna_th_snf, offset+4, 2, snf); - proto_tree_add_item(tree, hf_sna_th_snf, offset+6, 2, dcf); + proto_tree_add_item(tree, hf_sna_th_def, NullTVB, offset+0, 2, def); + proto_tree_add_item(tree, hf_sna_th_oef, NullTVB, offset+2, 2, oef); + proto_tree_add_item(tree, hf_sna_th_snf, NullTVB, offset+4, 2, snf); + proto_tree_add_item(tree, hf_sna_th_snf, NullTVB, offset+6, 2, dcf); return bytes_in_header; } @@ -744,17 +744,17 @@ dissect_fid5 (const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } /* Create the bitfield tree */ - bf_item = proto_tree_add_item(tree, hf_sna_th_0, offset, 1, th_0); + bf_item = proto_tree_add_item(tree, hf_sna_th_0, NullTVB, offset, 1, th_0); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); - proto_tree_add_item(bf_tree, hf_sna_th_fid, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_mpf, offset, 1, th_0); - proto_tree_add_item(bf_tree, hf_sna_th_efi, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_fid, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_mpf, NullTVB, offset, 1, th_0); + proto_tree_add_item(bf_tree, hf_sna_th_efi, NullTVB, offset, 1, th_0); - proto_tree_add_text(tree, offset+1, 1, "Reserved"); - proto_tree_add_item(tree, hf_sna_th_snf, offset+2, 2, snf); + proto_tree_add_text(tree, NullTVB, offset+1, 1, "Reserved"); + proto_tree_add_item(tree, hf_sna_th_snf, NullTVB, offset+2, 2, snf); - proto_tree_add_item(tree, hf_sna_th_sa, offset+4, 8, &pd[offset+4]); + proto_tree_add_item(tree, hf_sna_th_sa, NullTVB, offset+4, 8, &pd[offset+4]); return bytes_in_header; @@ -788,19 +788,19 @@ dissect_fidf (const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } /* Create the bitfield tree */ - bf_item = proto_tree_add_item(tree, hf_sna_th_0, offset, 1, th_0); + bf_item = proto_tree_add_item(tree, hf_sna_th_0, NullTVB, offset, 1, th_0); bf_tree = proto_item_add_subtree(bf_item, ett_sna_th_fid); - proto_tree_add_item(bf_tree, hf_sna_th_fid, offset, 1, th_0); - proto_tree_add_text(tree, offset+1, 1, "Reserved"); + proto_tree_add_item(bf_tree, hf_sna_th_fid, NullTVB, offset, 1, th_0); + proto_tree_add_text(tree, NullTVB, offset+1, 1, "Reserved"); - proto_tree_add_item(tree, hf_sna_th_cmd_fmt, offset+2, 1, cmd_fmt); - proto_tree_add_item(tree, hf_sna_th_cmd_type, offset+3, 1, cmd_type); - proto_tree_add_item(tree, hf_sna_th_cmd_sn, offset+4, 2, cmd_sn); + proto_tree_add_item(tree, hf_sna_th_cmd_fmt, NullTVB, offset+2, 1, cmd_fmt); + proto_tree_add_item(tree, hf_sna_th_cmd_type, NullTVB, offset+3, 1, cmd_type); + proto_tree_add_item(tree, hf_sna_th_cmd_sn, NullTVB, offset+4, 2, cmd_sn); - proto_tree_add_text(tree, offset+6, 18, "Reserved"); + proto_tree_add_text(tree, NullTVB, offset+6, 18, "Reserved"); - proto_tree_add_item(tree, hf_sna_th_dcf, offset+24, 8, dcf); + proto_tree_add_item(tree, hf_sna_th_dcf, NullTVB, offset+24, 8, dcf); return bytes_in_header; } @@ -822,56 +822,56 @@ dissect_rh (const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { is_response = (rh_0 & 0x80); /* Create the bitfield tree for byte 0*/ - bf_item = proto_tree_add_item(tree, hf_sna_rh_0, offset, 1, rh_0); + bf_item = proto_tree_add_item(tree, hf_sna_rh_0, NullTVB, offset, 1, rh_0); bf_tree = proto_item_add_subtree(bf_item, ett_sna_rh_0); - proto_tree_add_item(bf_tree, hf_sna_rh_rri, offset, 1, rh_0); - proto_tree_add_item(bf_tree, hf_sna_rh_ru_category, offset, 1, rh_0); - proto_tree_add_item(bf_tree, hf_sna_rh_fi, offset, 1, rh_0); - proto_tree_add_item(bf_tree, hf_sna_rh_sdi, offset, 1, rh_0); - proto_tree_add_item(bf_tree, hf_sna_rh_bci, offset, 1, rh_0); - proto_tree_add_item(bf_tree, hf_sna_rh_eci, offset, 1, rh_0); + proto_tree_add_item(bf_tree, hf_sna_rh_rri, NullTVB, offset, 1, rh_0); + proto_tree_add_item(bf_tree, hf_sna_rh_ru_category, NullTVB, offset, 1, rh_0); + proto_tree_add_item(bf_tree, hf_sna_rh_fi, NullTVB, offset, 1, rh_0); + proto_tree_add_item(bf_tree, hf_sna_rh_sdi, NullTVB, offset, 1, rh_0); + proto_tree_add_item(bf_tree, hf_sna_rh_bci, NullTVB, offset, 1, rh_0); + proto_tree_add_item(bf_tree, hf_sna_rh_eci, NullTVB, offset, 1, rh_0); offset += 1; /* Create the bitfield tree for byte 1*/ - bf_item = proto_tree_add_item(tree, hf_sna_rh_1, offset, 1, rh_1); + bf_item = proto_tree_add_item(tree, hf_sna_rh_1, NullTVB, offset, 1, rh_1); bf_tree = proto_item_add_subtree(bf_item, ett_sna_rh_1); - proto_tree_add_item(bf_tree, hf_sna_rh_dr1, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_dr1, NullTVB, offset, 1, rh_1); if (!is_response) { - proto_tree_add_item(bf_tree, hf_sna_rh_lcci, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_lcci, NullTVB, offset, 1, rh_1); } - proto_tree_add_item(bf_tree, hf_sna_rh_dr2, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_dr2, NullTVB, offset, 1, rh_1); if (is_response) { - proto_tree_add_item(bf_tree, hf_sna_rh_rti, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_rti, NullTVB, offset, 1, rh_1); } else { - proto_tree_add_item(bf_tree, hf_sna_rh_eri, offset, 1, rh_1); - proto_tree_add_item(bf_tree, hf_sna_rh_rlwi, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_eri, NullTVB, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_rlwi, NullTVB, offset, 1, rh_1); } - proto_tree_add_item(bf_tree, hf_sna_rh_qri, offset, 1, rh_1); - proto_tree_add_item(bf_tree, hf_sna_rh_pi, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_qri, NullTVB, offset, 1, rh_1); + proto_tree_add_item(bf_tree, hf_sna_rh_pi, NullTVB, offset, 1, rh_1); offset += 1; /* Create the bitfield tree for byte 2*/ - bf_item = proto_tree_add_item(tree, hf_sna_rh_2, offset, 1, rh_2); + bf_item = proto_tree_add_item(tree, hf_sna_rh_2, NullTVB, offset, 1, rh_2); if (!is_response) { bf_tree = proto_item_add_subtree(bf_item, ett_sna_rh_2); - proto_tree_add_item(bf_tree, hf_sna_rh_bbi, offset, 1, rh_2); - proto_tree_add_item(bf_tree, hf_sna_rh_ebi, offset, 1, rh_2); - proto_tree_add_item(bf_tree, hf_sna_rh_cdi, offset, 1, rh_2); - proto_tree_add_item(bf_tree, hf_sna_rh_csi, offset, 1, rh_2); - proto_tree_add_item(bf_tree, hf_sna_rh_edi, offset, 1, rh_2); - proto_tree_add_item(bf_tree, hf_sna_rh_pdi, offset, 1, rh_2); - proto_tree_add_item(bf_tree, hf_sna_rh_cebi, offset, 1, rh_2); + proto_tree_add_item(bf_tree, hf_sna_rh_bbi, NullTVB, offset, 1, rh_2); + proto_tree_add_item(bf_tree, hf_sna_rh_ebi, NullTVB, offset, 1, rh_2); + proto_tree_add_item(bf_tree, hf_sna_rh_cdi, NullTVB, offset, 1, rh_2); + proto_tree_add_item(bf_tree, hf_sna_rh_csi, NullTVB, offset, 1, rh_2); + proto_tree_add_item(bf_tree, hf_sna_rh_edi, NullTVB, offset, 1, rh_2); + proto_tree_add_item(bf_tree, hf_sna_rh_pdi, NullTVB, offset, 1, rh_2); + proto_tree_add_item(bf_tree, hf_sna_rh_cebi, NullTVB, offset, 1, rh_2); } /* XXX - check for sdi. If TRUE, the next 4 bytes will be sense data */ diff --git a/packet-snmp.c b/packet-snmp.c index 75c1536988..2c181f61b5 100644 --- a/packet-snmp.c +++ b/packet-snmp.c @@ -2,7 +2,7 @@ * Routines for SNMP (simple network management protocol) * D.Jorand (c) 1998 * - * $Id: packet-snmp.c,v 1.29 2000/05/09 17:45:02 guy Exp $ + * $Id: packet-snmp.c,v 1.30 2000/05/11 08:15:49 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -600,10 +600,10 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, format_value(vb_display_string, &variable, variable_oid, variable_oid_length, vb_type, vb_length); - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s", vb_display_string); #else - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: %d (%#x)", vb_type_name, vb_integer_value, vb_integer_value); #endif @@ -629,10 +629,10 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, format_value(vb_display_string, &variable, variable_oid, variable_oid_length, vb_type, vb_length); - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s", vb_display_string); #else - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: %u (%#x)", vb_type_name, vb_uinteger_value, vb_uinteger_value); #endif @@ -656,7 +656,7 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, format_value(vb_display_string, &variable, variable_oid, variable_oid_length, vb_type, vb_length); - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s", vb_display_string); #else /* @@ -682,11 +682,11 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, vb_octet_string[i]); buf += len; } - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: %s", vb_type_name, vb_display_string); } else { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: %.*s", vb_type_name, (int)vb_length, vb_octet_string); } @@ -701,7 +701,7 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, return ret; length = asn1->pointer - start; if (snmp_tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s", vb_type_name); } break; @@ -718,11 +718,11 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, format_value(vb_display_string, &variable, variable_oid, variable_oid_length, vb_type, vb_length*sizeof (subid_t)); - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s", vb_display_string); #else format_oid(vb_display_string, vb_oid, vb_oid_length); - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: %s", vb_type_name, vb_display_string); #endif } @@ -732,7 +732,7 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, case SNMP_NOSUCHOBJECT: length = asn1->pointer - start; if (snmp_tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: no such object", vb_type_name); } break; @@ -740,7 +740,7 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, case SNMP_NOSUCHINSTANCE: length = asn1->pointer - start; if (snmp_tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: no such instance", vb_type_name); } break; @@ -748,7 +748,7 @@ snmp_variable_decode(proto_tree *snmp_tree, subid_t *variable_oid, case SNMP_ENDOFMIBVIEW: length = asn1->pointer - start; if (snmp_tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Value: %s: end of mib view", vb_type_name); } break; @@ -822,7 +822,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, col_add_str(fd, COL_PROTOCOL, proto_name); if (tree) { - item = proto_tree_add_item(tree, proto, offset, END_OF_FRAME, NULL); + item = proto_tree_add_item(tree, proto, NullTVB, offset, END_OF_FRAME, NULL); snmp_tree = proto_item_add_subtree(item, ett); } @@ -847,7 +847,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, return; } if (tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Version: %s", val_to_str(version, versions, "Unknown version %#x")); } @@ -861,7 +861,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, return; } if (tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Community: %.*s", community_length, community); } g_free(community); @@ -900,7 +900,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, col_add_str(fd, COL_INFO, pdu_type_string); length = asn1.pointer - start; if (tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "PDU type: %s", pdu_type_string); } offset += length; @@ -923,7 +923,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, return; } if (tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Request Id: %#x", request_id); } offset += length; @@ -939,10 +939,10 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, } if (tree) { if (pdu_type == SNMP_MSG_GETBULK) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Non-repeaters: %u", error_status); } else { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Error Status: %s", val_to_str(error_status, error_statuses, "Unknown (%d)")); @@ -961,10 +961,10 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, } if (tree) { if (pdu_type == SNMP_MSG_GETBULK) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Max repetitions: %u", error_index); } else { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Error Index: %u", error_index); } } @@ -982,7 +982,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, } if (tree) { format_oid(oid_string, enterprise, enterprise_length); - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Enterprise: %s", oid_string); } g_free(enterprise); @@ -1019,7 +1019,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, } length = asn1.pointer - start; if (tree) { - proto_tree_add_text(snmp_tree, offset, agent_address_length, + proto_tree_add_text(snmp_tree, NullTVB, offset, agent_address_length, "Agent address: %s", ip_to_str(agent_address)); } g_free(agent_address); @@ -1033,7 +1033,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, return; } if (tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Trap type: %s", val_to_str(trap_type, trap_types, "Unknown (%u)")); } @@ -1047,7 +1047,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, return; } if (tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Specific trap type: %u (%#x)", specific_type, specific_type); } @@ -1077,7 +1077,7 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, } length = asn1.pointer - start; if (tree) { - proto_tree_add_text(snmp_tree, offset, length, + proto_tree_add_text(snmp_tree, NullTVB, offset, length, "Timestamp: %u", timestamp); } offset += length; @@ -1126,12 +1126,12 @@ dissect_snmp_pdu(const u_char *pd, int offset, frame_data *fd, #if defined(HAVE_UCD_SNMP_SNMP_H) || defined(HAVE_SNMP_SNMP_H) sprint_objid(vb_oid_string, variable_oid, variable_oid_length); - proto_tree_add_text(snmp_tree, offset, sequence_length, + proto_tree_add_text(snmp_tree, NullTVB, offset, sequence_length, "Object identifier %d: %s (%s)", vb_index, oid_string, vb_oid_string); #else - proto_tree_add_text(snmp_tree, offset, sequence_length, + proto_tree_add_text(snmp_tree, NullTVB, offset, sequence_length, "Object identifier %d: %s", vb_index, oid_string); #endif diff --git a/packet-socks.c b/packet-socks.c index ac753b1e10..702b3acb48 100644 --- a/packet-socks.c +++ b/packet-socks.c @@ -2,7 +2,7 @@ * Routines for socks versions 4 &5 packet dissection * Copyright 2000, Jeffrey C. Foster * - * $Id: packet-socks.c,v 1.3 2000/04/13 20:39:15 gram Exp $ + * $Id: packet-socks.c,v 1.4 2000/05/11 08:15:49 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -84,7 +84,7 @@ #define CHECK_PACKET_LENGTH(X) if ((offset+X) > fd->cap_len){ \ - proto_tree_add_text(tree, offset, 0, "*** FRAME TOO SHORT ***"); \ + proto_tree_add_text(tree, NullTVB, offset, 0, "*** FRAME TOO SHORT ***"); \ return; } #define compare_packet(X) (X == (fd->num)) @@ -234,24 +234,24 @@ static int display_string( const u_char *pd, int offset, frame_data *fd, int length = GBYTE( pd, offset); if ((offset + 8) > fd->cap_len){ - proto_tree_add_text(tree, offset, 0, "*** FRAME TOO SHORT ***"); + proto_tree_add_text(tree, NullTVB, offset, 0, "*** FRAME TOO SHORT ***"); return 0; } strncpy( temp, &pd[ offset + 1], length); temp[ length ] = 0; - ti = proto_tree_add_text(tree, offset, length + 1, + ti = proto_tree_add_text(tree, NullTVB, offset, length + 1, "%s: %s" , label, temp); name_tree = proto_item_add_subtree(ti, ett_socks_name); - proto_tree_add_text( name_tree, offset, 1, "Length: %d", length); + proto_tree_add_text( name_tree, NullTVB, offset, 1, "Length: %d", length); ++offset; - proto_tree_add_text( name_tree, offset, length, "String: %s", temp); + proto_tree_add_text( name_tree, NullTVB, offset, length, "String: %s", temp); return length + 1; } @@ -297,7 +297,7 @@ static int display_address( const u_char *pd, int offset, int a_type = GBYTE( pd, offset); - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Address Type: %d (%s)", a_type, address_type_table[ MAX( 0, MIN( a_type, array_length( address_type_table)-1))]); @@ -306,9 +306,9 @@ static int display_address( const u_char *pd, int offset, if ( a_type == 1){ /* IPv4 address */ if ( (offset + 4) > fd->cap_len) - proto_tree_add_text(tree, offset, 0, "*** FRAME TOO SHORT ***"); + proto_tree_add_text(tree, NullTVB, offset, 0, "*** FRAME TOO SHORT ***"); - proto_tree_add_item( tree, hf_socks_ip_dst, offset, + proto_tree_add_item( tree, hf_socks_ip_dst, NullTVB, offset, 4, GWORD( pd, offset)); offset += 4; } @@ -319,9 +319,9 @@ static int display_address( const u_char *pd, int offset, } else if ( a_type == 4){ /* IPv6 address */ if ((offset + 16) > fd->cap_len) - proto_tree_add_text(tree, offset, 0, "*** FRAME TOO SHORT ***"); + proto_tree_add_text(tree, NullTVB, offset, 0, "*** FRAME TOO SHORT ***"); - proto_tree_add_item( tree, hf_socks_ip6_dst, offset, + proto_tree_add_item( tree, hf_socks_ip6_dst, NullTVB, offset, 4, GWORD( pd, offset)); offset += 16; } @@ -385,17 +385,17 @@ static void socks_udp_dissector( const u_char *pd, int offset, frame_data *fd, col_add_fstr(fd, COL_INFO, "Version: 5, UDP Associated packet"); if ( tree) { - ti = proto_tree_add_item( tree, proto_socks, offset, + ti = proto_tree_add_item( tree, proto_socks, NullTVB, offset, END_OF_FRAME, NULL, "Socks:" ); socks_tree = proto_item_add_subtree(ti, ett_socks); CHECK_PACKET_LENGTH( 3); - proto_tree_add_text( socks_tree, offset, 2, "Reserved"); + proto_tree_add_text( socks_tree, NullTVB, offset, 2, "Reserved"); offset += 2; - proto_tree_add_text( socks_tree, offset, 1, "Fragment Number: %d", GBYTE( pd,offset)); + proto_tree_add_text( socks_tree, NullTVB, offset, 1, "Fragment Number: %d", GBYTE( pd,offset)); ++offset; @@ -403,7 +403,7 @@ static void socks_udp_dissector( const u_char *pd, int offset, frame_data *fd, hash_info->udp_remote_port = pntohs( &pd[ offset]); CHECK_PACKET_LENGTH( 2); - proto_tree_add_item( socks_tree, hf_socks_dstport, + proto_tree_add_item( socks_tree, hf_socks_dstport, NullTVB, offset, 2, hash_info->udp_remote_port); offset += 2; @@ -464,30 +464,30 @@ void display_socks_v4( const u_char *pd, int offset, frame_data *fd, if (compare_packet( hash_info->connect_row)){ CHECK_PACKET_LENGTH( 8); - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Version: %u ", hash_info->version); ++offset; command = GBYTE( pd, offset); - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Command: %u (%s)", command, get_command_name( command)); ++offset; /* Do remote port */ - proto_tree_add_item( tree, hf_socks_dstport, offset, 2, + proto_tree_add_item( tree, hf_socks_dstport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2; /* Do destination address */ - proto_tree_add_item( tree, hf_socks_ip_dst, offset, + proto_tree_add_item( tree, hf_socks_ip_dst, NullTVB, offset, 4, GWORD( pd, offset)); offset += 4; /*$$ check this, needs to do length checking */ /* display user name */ - proto_tree_add_item( tree, hf_user_name, offset, + proto_tree_add_item( tree, hf_user_name, NullTVB, offset, strlen( &pd[offset]) + 1, &pd[offset]); @@ -497,28 +497,28 @@ void display_socks_v4( const u_char *pd, int offset, frame_data *fd, else if ( compare_packet( hash_info->cmd_reply_row)){ CHECK_PACKET_LENGTH( 8); - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Version: %u (should be 0) ", GBYTE( pd, offset)); ++offset; /* Do results code */ - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Result Code: %u (%s)", GBYTE( pd, offset) , reply_table_v4[ MAX(0, MIN( GBYTE( pd, offset) - 90, 4))]); ++offset; /* Do remote port */ - proto_tree_add_item( tree, hf_socks_dstport, offset, 2, + proto_tree_add_item( tree, hf_socks_dstport, NullTVB, offset, 2, pntohs( &pd[ offset])); offset += 2;; /* Do remote address */ - proto_tree_add_item( tree, hf_socks_ip_dst, offset, 4, + proto_tree_add_item( tree, hf_socks_ip_dst, NullTVB, offset, 4, GWORD( pd, offset)); } else if ( compare_packet( hash_info->v4_user_name_row)){ /*$$ check this, needs to do length checking */ - proto_tree_add_text( tree, offset, strlen( &pd[offset]), + proto_tree_add_text( tree, NullTVB, offset, strlen( &pd[offset]), "User Name: %s", &pd[offset]); } } @@ -546,18 +546,18 @@ void display_socks_v5( const u_char *pd, int offset, frame_data *fd, CHECK_PACKET_LENGTH( 2); /* Do version */ - proto_tree_add_item( tree, hf_socks_ver, offset, 1, + proto_tree_add_item( tree, hf_socks_ver, NullTVB, offset, 1, hash_info->version); ++offset; temp = GBYTE( pd, offset); /* Get Auth method count */ /* build auth tree */ - ti = proto_tree_add_text( tree, offset, 1, + ti = proto_tree_add_text( tree, NullTVB, offset, 1, "Client Authentication Methods"); AuthTree = proto_item_add_subtree(ti, ett_socks_auth); - proto_tree_add_text( AuthTree, offset, 1, + proto_tree_add_text( AuthTree, NullTVB, offset, 1, "Count: %u ", temp); ++offset; @@ -567,7 +567,7 @@ void display_socks_v5( const u_char *pd, int offset, frame_data *fd, AuthMethodStr = get_auth_method_name( GBYTE( pd, offset + i)); - proto_tree_add_text( AuthTree, offset + i, 1, + proto_tree_add_text( AuthTree, NullTVB, offset + i, 1, "Method[%d]: %u (%s)", i, GBYTE( pd, offset + i), AuthMethodStr); } @@ -578,7 +578,7 @@ void display_socks_v5( const u_char *pd, int offset, frame_data *fd, ++offset; CHECK_PACKET_LENGTH( 1); - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Accepted Auth Method: 0x%0x (%s)", GBYTE( pd, offset), get_auth_method_name( GBYTE( pd, offset))); @@ -586,7 +586,7 @@ void display_socks_v5( const u_char *pd, int offset, frame_data *fd, } /* handle user/password auth */ else if (compare_packet( hash_info->user_name_auth_row)) { - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Version: %u ", hash_info->version); ++offset; /* process user name */ @@ -602,7 +602,7 @@ void display_socks_v5( const u_char *pd, int offset, frame_data *fd, (compare_packet( hash_info->cmd_reply_row)) || (compare_packet( hash_info->bind_reply_row))){ - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Version: %u ", hash_info->version); CHECK_PACKET_LENGTH( 1); @@ -612,15 +612,15 @@ void display_socks_v5( const u_char *pd, int offset, frame_data *fd, command = GBYTE( pd, offset); if (compare_packet( hash_info->command_row)) - proto_tree_add_text( tree, offset, 1, "Command: %u (%s)", + proto_tree_add_text( tree, NullTVB, offset, 1, "Command: %u (%s)", command, get_command_name( command)); else - proto_tree_add_text( tree, offset, 1, "Status: %d (%s)", + proto_tree_add_text( tree, NullTVB, offset, 1, "Status: %d (%s)", GBYTE( pd, offset), reply_table_v5[ MAX( 0, MIN(GBYTE( pd, offset) - 90, 9))]); ++offset; - proto_tree_add_text( tree, offset, 1, + proto_tree_add_text( tree, NullTVB, offset, 1, "Reserved: 0x%0x (should = 0x00)", GBYTE( pd, offset)); ++offset; @@ -628,7 +628,7 @@ void display_socks_v5( const u_char *pd, int offset, frame_data *fd, CHECK_PACKET_LENGTH( 2); /* Do remote port */ - proto_tree_add_text( tree, offset, 2, + proto_tree_add_text( tree, NullTVB, offset, 2, "%sPort: %d", (compare_packet( hash_info->bind_reply_row) ? "Remote Host " : ""), @@ -882,7 +882,7 @@ static void display_ping_and_tracert( const u_char *pd, int offset, col_append_str(fd, COL_INFO, ", Terminate Request"); if ( tree) - proto_tree_add_text(tree, offset, 1, + proto_tree_add_text(tree, NullTVB, offset, 1, (hash_info->command == PING_COMMAND) ? "Ping: End command" : "Traceroute: End command"); @@ -892,7 +892,7 @@ static void display_ping_and_tracert( const u_char *pd, int offset, col_append_str(fd, COL_INFO, ", Results"); if ( tree){ - proto_tree_add_text(tree, offset, END_OF_FRAME, + proto_tree_add_text(tree, NullTVB, offset, END_OF_FRAME, (hash_info->command == PING_COMMAND) ? "Ping Results:" : "Traceroute Results"); @@ -905,7 +905,7 @@ static void display_ping_and_tracert( const u_char *pd, int offset, lineend = find_line_end(data, dataend, &eol); linelen = lineend - data; - proto_tree_add_text( tree, offset, linelen, + proto_tree_add_text( tree, NullTVB, offset, linelen, format_text(data, linelen)); offset += linelen; data = lineend; @@ -1024,7 +1024,7 @@ dissect_socks(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* if proto tree, decode and display */ if (tree) { - ti = proto_tree_add_item( tree, proto_socks, offset, + ti = proto_tree_add_item( tree, proto_socks, NullTVB, offset, END_OF_FRAME, NULL, "Socks:" ); socks_tree = proto_item_add_subtree(ti, ett_socks); @@ -1040,18 +1040,18 @@ dissect_socks(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* if past startup, add the faked stuff */ if ( fd->num > hash_info->start_done_row){ /* add info to tree */ - proto_tree_add_text( socks_tree, offset, 0, + proto_tree_add_text( socks_tree, NullTVB, offset, 0, "Command: %d (%s)", hash_info->command, get_command_name(hash_info->command)); - proto_tree_add_item( socks_tree, hf_socks_ip_dst, + proto_tree_add_item( socks_tree, hf_socks_ip_dst, NullTVB, offset, 0, hash_info->dst_addr); /* no fake address for ping & traceroute */ if (( hash_info->command != PING_COMMAND) && ( hash_info->command != TRACERT_COMMAND)){ - proto_tree_add_item( socks_tree, hf_socks_dstport, + proto_tree_add_item( socks_tree, hf_socks_dstport, NullTVB, offset, 0, hash_info->port); } } diff --git a/packet-srvloc.c b/packet-srvloc.c index dea077c72e..e3558787c3 100644 --- a/packet-srvloc.c +++ b/packet-srvloc.c @@ -6,7 +6,7 @@ * In particular I have not had an opportunity to see how it * responds to SRVLOC over TCP. * - * $Id: packet-srvloc.c,v 1.7 2000/04/08 07:07:37 guy Exp $ + * $Id: packet-srvloc.c,v 1.8 2000/05/11 08:15:52 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -158,18 +158,18 @@ dissect_authblk(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) seconds = pntohl(&pd[offset]) - 2208988800ul; stamp = gmtime(&seconds); floatsec = stamp->tm_sec + pntohl(&pd[offset + 4]) / 4294967296.0; - proto_tree_add_text(tree, offset, 8, + proto_tree_add_text(tree, NullTVB, offset, 8, "Timestamp: %04d-%02d-%02d %02d:%02d:%07.4f UTC", stamp->tm_year + 1900, stamp->tm_mon + 1, stamp->tm_mday, stamp->tm_hour, stamp->tm_min, floatsec); - proto_tree_add_text(tree, offset + 8, 2, "Block Structure Desciptor: %u", + proto_tree_add_text(tree, NullTVB, offset + 8, 2, "Block Structure Desciptor: %u", pntohs(&pd[offset + 8])); length = pntohs(&pd[offset + 10]); - proto_tree_add_text(tree, offset + 10, 2, "Authenticator length: %u", + proto_tree_add_text(tree, NullTVB, offset + 10, 2, "Authenticator length: %u", length); offset += 12; - proto_tree_add_text(tree, offset, length, "Authentication block: %s", + proto_tree_add_text(tree, NullTVB, offset, length, "Authentication block: %s", format_text(&pd[offset], length)); offset += length; }; @@ -192,7 +192,7 @@ dissect_srvloc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_INFO, val_to_str(pd[offset + 1], srvloc_functions, "Unknown Function (%d)")); if (tree) { - ti = proto_tree_add_item(tree, proto_srvloc, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_srvloc, NullTVB, offset, END_OF_FRAME, NULL); srvloc_tree = proto_item_add_subtree(ti, ett_srvloc); if ( END_OF_FRAME > sizeof(srvloc_hdr) ) { @@ -200,54 +200,54 @@ dissect_srvloc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) srvloc_hdr.length = pntohs(&srvloc_hdr.length); srvloc_hdr.encoding = pntohs(&srvloc_hdr.encoding); srvloc_hdr.xid = pntohs(&srvloc_hdr.xid); - proto_tree_add_item(srvloc_tree, hf_srvloc_version, offset, 1, srvloc_hdr.version); - proto_tree_add_item(srvloc_tree, hf_srvloc_function, offset + 1, 1, srvloc_hdr.function); - proto_tree_add_text(srvloc_tree, offset + 2, 2, "Length: %d",srvloc_hdr.length); - tf = proto_tree_add_item(srvloc_tree, hf_srvloc_flags, offset + 4, 1, srvloc_hdr.flags); + proto_tree_add_item(srvloc_tree, hf_srvloc_version, NullTVB, offset, 1, srvloc_hdr.version); + proto_tree_add_item(srvloc_tree, hf_srvloc_function, NullTVB, offset + 1, 1, srvloc_hdr.function); + proto_tree_add_text(srvloc_tree, NullTVB, offset + 2, 2, "Length: %d",srvloc_hdr.length); + tf = proto_tree_add_item(srvloc_tree, hf_srvloc_flags, NullTVB, offset + 4, 1, srvloc_hdr.flags); srvloc_flags = proto_item_add_subtree(tf, ett_srvloc_flags); - proto_tree_add_text(srvloc_flags, offset + 4, 0, "Overflow %d... .xxx", (srvloc_hdr.flags & FLAG_O) >> 7 ); - proto_tree_add_text(srvloc_flags, offset + 4, 0, "Monolingual .%d.. .xxx", (srvloc_hdr.flags & FLAG_M) >> 6 ); - proto_tree_add_text(srvloc_flags, offset + 4, 0, "URL Authentication Present ..%d. .xxx", (srvloc_hdr.flags & FLAG_U) >> 5 ); - proto_tree_add_text(srvloc_flags, offset + 4, 0, "Attribute Authentication Present ...%d .xxx", (srvloc_hdr.flags & FLAG_A) >> 4 ); - proto_tree_add_text(srvloc_flags, offset + 4, 0, "Fresh Service Entry .... %dxxx", (srvloc_hdr.flags & FLAG_F) >> 3 ); - proto_tree_add_text(srvloc_tree, offset + 5, 1, "Dialect: %d",srvloc_hdr.dialect); - proto_tree_add_text(srvloc_tree, offset + 6, 2, "Language: %s", format_text(srvloc_hdr.language,2)); - proto_tree_add_text(srvloc_tree, offset + 8, 2, "Encoding: %d", srvloc_hdr.encoding); - proto_tree_add_text(srvloc_tree, offset + 10, 2, "Transaction ID: %d", srvloc_hdr.xid); + proto_tree_add_text(srvloc_flags, NullTVB, offset + 4, 0, "Overflow %d... .xxx", (srvloc_hdr.flags & FLAG_O) >> 7 ); + proto_tree_add_text(srvloc_flags, NullTVB, offset + 4, 0, "Monolingual .%d.. .xxx", (srvloc_hdr.flags & FLAG_M) >> 6 ); + proto_tree_add_text(srvloc_flags, NullTVB, offset + 4, 0, "URL Authentication Present ..%d. .xxx", (srvloc_hdr.flags & FLAG_U) >> 5 ); + proto_tree_add_text(srvloc_flags, NullTVB, offset + 4, 0, "Attribute Authentication Present ...%d .xxx", (srvloc_hdr.flags & FLAG_A) >> 4 ); + proto_tree_add_text(srvloc_flags, NullTVB, offset + 4, 0, "Fresh Service Entry .... %dxxx", (srvloc_hdr.flags & FLAG_F) >> 3 ); + proto_tree_add_text(srvloc_tree, NullTVB, offset + 5, 1, "Dialect: %d",srvloc_hdr.dialect); + proto_tree_add_text(srvloc_tree, NullTVB, offset + 6, 2, "Language: %s", format_text(srvloc_hdr.language,2)); + proto_tree_add_text(srvloc_tree, NullTVB, offset + 8, 2, "Encoding: %d", srvloc_hdr.encoding); + proto_tree_add_text(srvloc_tree, NullTVB, offset + 10, 2, "Transaction ID: %d", srvloc_hdr.xid); offset += 12; } else { - proto_tree_add_text(srvloc_tree, offset, END_OF_FRAME, "Invalid Packet: Length less than header."); + proto_tree_add_text(srvloc_tree, NullTVB, offset, END_OF_FRAME, "Invalid Packet: Length less than header."); }; if (( srvloc_hdr.length - 12 ) == END_OF_FRAME ) { switch (srvloc_hdr.function) { case SRVREQ: - proto_tree_add_text(srvloc_tree, offset, 0, "Service Request"); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Service Request"); length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Previous Response List Length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Previous Response List Length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Previous Response List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Previous Response List: %s", format_text(&pd[offset], length)); offset += length; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Predicate length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Predicate length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Predicate: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Predicate: %s", format_text(&pd[offset], length)); offset += length; break; case SRVRPLY: - proto_tree_add_text(srvloc_tree, offset, 0, "Service Reply"); - proto_tree_add_item(srvloc_tree, hf_srvloc_error, offset, 2, pd[offset]);; + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Service Reply"); + proto_tree_add_item(srvloc_tree, hf_srvloc_error, NullTVB, offset, 2, pd[offset]);; offset += 2; - proto_tree_add_text(srvloc_tree, offset, 2, "URL Count: %d", pntohs(&pd[offset])); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL Count: %d", pntohs(&pd[offset])); offset += 2; for (count = pntohs(&pd[offset]) + 1; count > 0; count--, offset++) { - proto_tree_add_text(srvloc_tree, offset, 2, "URL lifetime: %d", pntohs(&pd[offset])); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL lifetime: %d", pntohs(&pd[offset])); offset += 2; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "URL length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Service URL: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Service URL: %s", format_text(&pd[offset], length)); offset += length; if ( (srvloc_hdr.flags & FLAG_U) == FLAG_U ) dissect_authblk(pd, offset, fd, srvloc_tree); @@ -255,140 +255,140 @@ dissect_srvloc(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) break; case SRVREG: - proto_tree_add_text(srvloc_tree, offset, 0, "Service Registration"); - proto_tree_add_text(srvloc_tree, offset, 2, "URL lifetime: %d", pntohs(&pd[offset])); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Service Registration"); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL lifetime: %d", pntohs(&pd[offset])); offset += 2; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "URL length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Service URL: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Service URL: %s", format_text(&pd[offset], length)); offset += length; if ( (srvloc_hdr.flags & FLAG_U) == FLAG_U ) dissect_authblk(pd, offset, fd, srvloc_tree); length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Attribute List length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Attribute List length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); offset += length; if ( (srvloc_hdr.flags & FLAG_A) == FLAG_A ) dissect_authblk(pd, offset, fd, srvloc_tree); break; case SRVDEREG: - proto_tree_add_text(srvloc_tree, offset, 0, "Service Deregister"); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Service Deregister"); length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "URL length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Service URL: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Service URL: %s", format_text(&pd[offset], length)); offset += length; if ( (srvloc_hdr.flags & FLAG_U) == FLAG_U ) dissect_authblk(pd, offset, fd, srvloc_tree); length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Attribute List length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Attribute List length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); offset += length; if ( (srvloc_hdr.flags & FLAG_A) == FLAG_A ) dissect_authblk(pd, offset, fd, srvloc_tree); break; case SRVACK: - proto_tree_add_text(srvloc_tree, offset, 0, "Service Acknowledge"); - proto_tree_add_item(srvloc_tree, hf_srvloc_error, offset, 2, pd[offset]);; + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Service Acknowledge"); + proto_tree_add_item(srvloc_tree, hf_srvloc_error, NullTVB, offset, 2, pd[offset]);; offset += 2; break; case ATTRRQST: - proto_tree_add_text(srvloc_tree, offset, 0, "Attribute Request"); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Attribute Request"); length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Previous Response List Length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Previous Response List Length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Previous Response List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Previous Response List: %s", format_text(&pd[offset], length)); offset += length; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "URL length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Service URL: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Service URL: %s", format_text(&pd[offset], length)); offset += length; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Scope List Length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Scope List Length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Scope Response List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Scope Response List: %s", format_text(&pd[offset], length)); offset += length; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Attribute List length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Attribute List length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); offset += length; break; case ATTRRPLY: - proto_tree_add_text(srvloc_tree, offset, 0, "Attribute Reply"); - proto_tree_add_item(srvloc_tree, hf_srvloc_error, offset, 2, pd[offset]);; + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Attribute Reply"); + proto_tree_add_item(srvloc_tree, hf_srvloc_error, NullTVB, offset, 2, pd[offset]);; offset += 2; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Attribute List length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Attribute List length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Attribute List: %s", format_text(&pd[offset], length)); offset += length; if ( (srvloc_hdr.flags & FLAG_A) == FLAG_A ) dissect_authblk(pd, offset, fd, srvloc_tree); break; case DAADVERT: - proto_tree_add_text(srvloc_tree, offset, 0, "DA Advertisement"); - proto_tree_add_item(srvloc_tree, hf_srvloc_error, offset, 2, pd[offset]);; + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "DA Advertisement"); + proto_tree_add_item(srvloc_tree, hf_srvloc_error, NullTVB, offset, 2, pd[offset]);; offset += 2; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "URL length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "URL length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Service URL: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Service URL: %s", format_text(&pd[offset], length)); offset += length; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Scope List Length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Scope List Length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Scope Response List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Scope Response List: %s", format_text(&pd[offset], length)); offset += length; break; case SRVTYPERQST: - proto_tree_add_text(srvloc_tree, offset, 0, "Service Type Request"); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Service Type Request"); length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Previous Response List Length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Previous Response List Length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Previous Response List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Previous Response List: %s", format_text(&pd[offset], length)); offset += length; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Naming Authority List length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Naming Authority List length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Naming Authority List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Naming Authority List: %s", format_text(&pd[offset], length)); offset += length; length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Scope List Length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Scope List Length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Scope Response List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Scope Response List: %s", format_text(&pd[offset], length)); offset += length; break; case SRVTYPERPLY: - proto_tree_add_text(srvloc_tree, offset, 0, "Service Type Reply"); - proto_tree_add_item(srvloc_tree, hf_srvloc_error, offset, 2, pd[offset]);; + proto_tree_add_text(srvloc_tree, NullTVB, offset, 0, "Service Type Reply"); + proto_tree_add_item(srvloc_tree, hf_srvloc_error, NullTVB, offset, 2, pd[offset]);; offset += 2; - proto_tree_add_text(srvloc_tree, offset, 2, "Service Type Count: %d", pntohs(&pd[offset])); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Service Type Count: %d", pntohs(&pd[offset])); offset += 2; for (count = pntohs(&pd[offset]) + 1; count > 0; count--, offset++) { length = pntohs(&pd[offset]); - proto_tree_add_text(srvloc_tree, offset, 2, "Service Type List length: %d", length); + proto_tree_add_text(srvloc_tree, NullTVB, offset, 2, "Service Type List length: %d", length); offset += 2; - proto_tree_add_text(srvloc_tree, offset, length, "Service Type List: %s", format_text(&pd[offset], length)); + proto_tree_add_text(srvloc_tree, NullTVB, offset, length, "Service Type List: %s", format_text(&pd[offset], length)); offset += length; }; break; default: - proto_tree_add_text(srvloc_tree, offset, END_OF_FRAME, "Unknown Function Type"); + proto_tree_add_text(srvloc_tree, NullTVB, offset, END_OF_FRAME, "Unknown Function Type"); }; - } else { proto_tree_add_text(srvloc_tree, offset, END_OF_FRAME,"Invalid packet: Bad length value"); + } else { proto_tree_add_text(srvloc_tree, NullTVB, offset, END_OF_FRAME,"Invalid packet: Bad length value"); }; }; }; diff --git a/packet-sscop.c b/packet-sscop.c index 85df8e37b6..58514c72e6 100644 --- a/packet-sscop.c +++ b/packet-sscop.c @@ -2,7 +2,7 @@ * Routines for SSCOP (Q.2110, Q.SAAL) frame disassembly * Guy Harris * - * $Id: packet-sscop.c,v 1.6 2000/03/12 04:47:50 gram Exp $ + * $Id: packet-sscop.c,v 1.7 2000/05/11 08:15:52 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -192,11 +192,11 @@ dissect_sscop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) break; } if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_sscop, pi.len - pdu_len, + ti = proto_tree_add_protocol_format(tree, proto_sscop, NullTVB, pi.len - pdu_len, pdu_len, "SSCOP"); sscop_tree = proto_item_add_subtree(ti, ett_sscop); - proto_tree_add_text(sscop_tree, SSCOP_PDU_TYPE, 1, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_PDU_TYPE, 1, "PDU Type: %s", val_to_str(pdu_type, sscop_type_vals, "Unknown (0x%02x)")); @@ -206,30 +206,30 @@ dissect_sscop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case SSCOP_BGN: case SSCOP_RS: case SSCOP_ER: - proto_tree_add_text(sscop_tree, SSCOP_N_SQ, 1, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_N_SQ, 1, "N(SQ): %u", pd[SSCOP_N_SQ]); - proto_tree_add_text(sscop_tree, SSCOP_N_MR + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_N_MR + 1, 3, "N(MR): %u", pntohl(&pd[SSCOP_N_MR]) & 0xFFFFFF); break; case SSCOP_END: - proto_tree_add_text(sscop_tree, SSCOP_PDU_TYPE, 1, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_PDU_TYPE, 1, "Source: %s", (pd[SSCOP_PDU_TYPE] & SSCOP_S) ? "SSCOP" : "User"); break; case SSCOP_BGAK: case SSCOP_RSAK: - proto_tree_add_text(sscop_tree, SSCOP_N_MR + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_N_MR + 1, 3, "N(MR): %u", pntohl(&pd[SSCOP_N_MR]) & 0xFFFFFF); break; case SSCOP_ERAK: - proto_tree_add_text(sscop_tree, SSCOP_N_MR + 3, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_N_MR + 3, 3, "N(MR): %u", pntohl(&pd[SSCOP_N_MR]) & 0xFFFFFF); break; case SSCOP_SD: - proto_tree_add_text(sscop_tree, SSCOP_N_S + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_N_S + 1, 3, "N(S): %u", pntohl(&pd[SSCOP_N_S]) & 0xFFFFFF); break; @@ -237,9 +237,9 @@ dissect_sscop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case SSCOP_SDP: #endif case SSCOP_POLL: - proto_tree_add_text(sscop_tree, SSCOP_N_PS + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_N_PS + 1, 3, "N(PS): %u", pntohl(&pd[SSCOP_N_PS]) & 0xFFFFFF); - proto_tree_add_text(sscop_tree, SSCOP_N_S + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_N_S + 1, 3, "N(S): %u", pntohl(&pd[SSCOP_N_S]) & 0xFFFFFF); break; @@ -247,11 +247,11 @@ dissect_sscop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* * XXX - dissect the list elements.... */ - proto_tree_add_text(sscop_tree, SSCOP_SS_N_PS + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_SS_N_PS + 1, 3, "N(PS): %u", pntohl(&pd[SSCOP_SS_N_PS]) & 0xFFFFFF); - proto_tree_add_text(sscop_tree, SSCOP_SS_N_MR + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_SS_N_MR + 1, 3, "N(MR): %u", pntohl(&pd[SSCOP_SS_N_MR]) & 0xFFFFFF); - proto_tree_add_text(sscop_tree, SSCOP_SS_N_R + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_SS_N_R + 1, 3, "N(R): %u", pntohl(&pd[SSCOP_SS_N_R]) & 0xFFFFFF); break; @@ -259,9 +259,9 @@ dissect_sscop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* * XXX - dissect the list elements.... */ - proto_tree_add_text(sscop_tree, SSCOP_SS_N_MR + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_SS_N_MR + 1, 3, "N(MR): %u", pntohl(&pd[SSCOP_SS_N_MR]) & 0xFFFFFF); - proto_tree_add_text(sscop_tree, SSCOP_SS_N_R + 1, 3, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_SS_N_R + 1, 3, "N(R): %u", pntohl(&pd[SSCOP_SS_N_R]) & 0xFFFFFF); break; } @@ -285,7 +285,7 @@ dissect_sscop(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case SSCOP_SDP: #endif if (tree) { - proto_tree_add_text(sscop_tree, SSCOP_PDU_TYPE, 1, + proto_tree_add_text(sscop_tree, NullTVB, SSCOP_PDU_TYPE, 1, "Pad length: %u", pad_len); } diff --git a/packet-tacacs.c b/packet-tacacs.c index ec5dad5527..d070d6984d 100644 --- a/packet-tacacs.c +++ b/packet-tacacs.c @@ -1,7 +1,7 @@ /* packet-tacacs.c * Routines for cisco tacacs/tacplus/AAA packet dissection * - * $Id: packet-tacacs.c,v 1.3 2000/04/08 07:07:39 guy Exp $ + * $Id: packet-tacacs.c,v 1.4 2000/05/11 08:15:52 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -68,23 +68,23 @@ dissect_tacacs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_tacacs, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, NULL); tacacs_tree = proto_item_add_subtree(ti, ett_tacacs); - proto_tree_add_item(tacacs_tree, hf_tacacs_version, 0, 0, "XTacacs"); + proto_tree_add_item(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "XTacacs"); if (pi.match_port == pi.destport) { - proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_request, + proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_request, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, offset, + proto_tree_add_text(tacacs_tree, NullTVB, offset, END_OF_FRAME, "Request: " ); } else { - proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_response, + proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_response, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, offset, + proto_tree_add_text(tacacs_tree, NullTVB, offset, END_OF_FRAME, "Response: "); } } @@ -106,23 +106,23 @@ dissect_tacplus(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_tacacs, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, NULL); tacacs_tree = proto_item_add_subtree(ti, ett_tacacs); - proto_tree_add_item(tacacs_tree, hf_tacacs_version, 0, 0, "Tacacs+"); + proto_tree_add_item(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "Tacacs+"); if (pi.match_port == pi.destport) { - proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_request, + proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_request, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, offset, + proto_tree_add_text(tacacs_tree, NullTVB, offset, END_OF_FRAME, "Request: " ); } else { - proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_response, + proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_response, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tacacs_tree, offset, + proto_tree_add_text(tacacs_tree, NullTVB, offset, END_OF_FRAME, "Response: "); } } diff --git a/packet-tcp.c b/packet-tcp.c index 29c0f7d7d5..afaa5f965d 100644 --- a/packet-tcp.c +++ b/packet-tcp.c @@ -1,7 +1,7 @@ /* packet-tcp.c * Routines for TCP packet disassembly * - * $Id: packet-tcp.c,v 1.73 2000/05/05 09:32:05 guy Exp $ + * $Id: packet-tcp.c,v 1.74 2000/05/11 08:15:52 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -161,7 +161,7 @@ static void dissect_tcpopt_maxseg(const ip_tcp_opt *optp, const u_char *opd, int offset, guint optlen, proto_tree *opt_tree) { - proto_tree_add_text(opt_tree, offset, optlen, + proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s: %u bytes", optp->name, pntohs(opd)); tcp_info_append_uint("MSS", pntohs(opd)); } @@ -170,7 +170,7 @@ static void dissect_tcpopt_wscale(const ip_tcp_opt *optp, const u_char *opd, int offset, guint optlen, proto_tree *opt_tree) { - proto_tree_add_text(opt_tree, offset, optlen, + proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s: %u bytes", optp->name, *opd); tcp_info_append_uint("WS", *opd); } @@ -183,7 +183,7 @@ dissect_tcpopt_sack(const ip_tcp_opt *optp, const u_char *opd, proto_item *tf; guint leftedge, rightedge; - tf = proto_tree_add_text(opt_tree, offset, optlen, "%s:", optp->name); + tf = proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s:", optp->name); offset += 2; /* skip past type and length */ optlen -= 2; /* subtract size of type and length */ while (optlen > 0) { @@ -192,7 +192,7 @@ dissect_tcpopt_sack(const ip_tcp_opt *optp, const u_char *opd, field_tree = proto_item_add_subtree(tf, *optp->subtree_index); } if (optlen < 4) { - proto_tree_add_text(field_tree, offset, optlen, + proto_tree_add_text(field_tree, NullTVB, offset, optlen, "(suboption would go past end of option)"); break; } @@ -201,7 +201,7 @@ dissect_tcpopt_sack(const ip_tcp_opt *optp, const u_char *opd, opd += 4; optlen -= 4; if (optlen < 4) { - proto_tree_add_text(field_tree, offset, optlen, + proto_tree_add_text(field_tree, NullTVB, offset, optlen, "(suboption would go past end of option)"); break; } @@ -209,7 +209,7 @@ dissect_tcpopt_sack(const ip_tcp_opt *optp, const u_char *opd, rightedge = pntohl(opd); opd += 4; optlen -= 4; - proto_tree_add_text(field_tree, offset, 8, + proto_tree_add_text(field_tree, NullTVB, offset, 8, "left edge = %u, right edge = %u", leftedge, rightedge); tcp_info_append_uint("SLE", leftedge); tcp_info_append_uint("SRE", rightedge); @@ -221,7 +221,7 @@ static void dissect_tcpopt_echo(const ip_tcp_opt *optp, const u_char *opd, int offset, guint optlen, proto_tree *opt_tree) { - proto_tree_add_text(opt_tree, offset, optlen, + proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s: %u", optp->name, pntohl(opd)); tcp_info_append_uint("ECHO", pntohl(opd)); } @@ -230,7 +230,7 @@ static void dissect_tcpopt_timestamp(const ip_tcp_opt *optp, const u_char *opd, int offset, guint optlen, proto_tree *opt_tree) { - proto_tree_add_text(opt_tree, offset, optlen, + proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s: tsval %u, tsecr %u", optp->name, pntohl(opd), pntohl(opd + 4)); tcp_info_append_uint("TSV", pntohl(opd)); tcp_info_append_uint("TSER", pntohl(opd + 4)); @@ -240,7 +240,7 @@ static void dissect_tcpopt_cc(const ip_tcp_opt *optp, const u_char *opd, int offset, guint optlen, proto_tree *opt_tree) { - proto_tree_add_text(opt_tree, offset, optlen, + proto_tree_add_text(opt_tree, NullTVB, offset, optlen, "%s: %u", optp->name, pntohl(opd)); tcp_info_append_uint("CC", pntohl(opd)); } @@ -474,32 +474,32 @@ dissect_tcp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_tcp, offset, hlen, "Transmission Control Protocol, Src Port: %s (%u), Dst Port: %s (%u), Seq: %u, Ack: %u", get_tcp_port(th.th_sport), th.th_sport, get_tcp_port(th.th_dport), th.th_dport, th.th_seq, th.th_ack); + ti = proto_tree_add_protocol_format(tree, proto_tcp, NullTVB, offset, hlen, "Transmission Control Protocol, Src Port: %s (%u), Dst Port: %s (%u), Seq: %u, Ack: %u", get_tcp_port(th.th_sport), th.th_sport, get_tcp_port(th.th_dport), th.th_dport, th.th_seq, th.th_ack); tcp_tree = proto_item_add_subtree(ti, ett_tcp); - proto_tree_add_uint_format(tcp_tree, hf_tcp_srcport, offset, 2, th.th_sport, + proto_tree_add_uint_format(tcp_tree, hf_tcp_srcport, NullTVB, offset, 2, th.th_sport, "Source port: %s (%u)", get_tcp_port(th.th_sport), th.th_sport); - proto_tree_add_uint_format(tcp_tree, hf_tcp_dstport, offset + 2, 2, th.th_dport, + proto_tree_add_uint_format(tcp_tree, hf_tcp_dstport, NullTVB, offset + 2, 2, th.th_dport, "Destination port: %s (%u)", get_tcp_port(th.th_dport), th.th_dport); - proto_tree_add_item_hidden(tcp_tree, hf_tcp_port, offset, 2, th.th_sport); - proto_tree_add_item_hidden(tcp_tree, hf_tcp_port, offset + 2, 2, th.th_dport); - proto_tree_add_item(tcp_tree, hf_tcp_seq, offset + 4, 4, th.th_seq); + proto_tree_add_item_hidden(tcp_tree, hf_tcp_port, NullTVB, offset, 2, th.th_sport); + proto_tree_add_item_hidden(tcp_tree, hf_tcp_port, NullTVB, offset + 2, 2, th.th_dport); + proto_tree_add_item(tcp_tree, hf_tcp_seq, NullTVB, offset + 4, 4, th.th_seq); if (th.th_flags & TH_ACK) - proto_tree_add_item(tcp_tree, hf_tcp_ack, offset + 8, 4, th.th_ack); - proto_tree_add_uint_format(tcp_tree, hf_tcp_hdr_len, offset + 12, 1, hlen, + proto_tree_add_item(tcp_tree, hf_tcp_ack, NullTVB, offset + 8, 4, th.th_ack); + proto_tree_add_uint_format(tcp_tree, hf_tcp_hdr_len, NullTVB, offset + 12, 1, hlen, "Header length: %u bytes", hlen); - tf = proto_tree_add_uint_format(tcp_tree, hf_tcp_flags, offset + 13, 1, + tf = proto_tree_add_uint_format(tcp_tree, hf_tcp_flags, NullTVB, offset + 13, 1, th.th_flags, "Flags: 0x%04x (%s)", th.th_flags, flags); field_tree = proto_item_add_subtree(tf, ett_tcp_flags); - proto_tree_add_item(field_tree, hf_tcp_flags_urg, offset + 13, 1, th.th_flags); - proto_tree_add_item(field_tree, hf_tcp_flags_ack, offset + 13, 1, th.th_flags); - proto_tree_add_item(field_tree, hf_tcp_flags_push, offset + 13, 1, th.th_flags); - proto_tree_add_item(field_tree, hf_tcp_flags_reset, offset + 13, 1, th.th_flags); - proto_tree_add_item(field_tree, hf_tcp_flags_syn, offset + 13, 1, th.th_flags); - proto_tree_add_item(field_tree, hf_tcp_flags_fin, offset + 13, 1, th.th_flags); - proto_tree_add_item(tcp_tree, hf_tcp_window_size, offset + 14, 2, th.th_win); - proto_tree_add_item(tcp_tree, hf_tcp_checksum, offset + 16, 2, th.th_sum); + proto_tree_add_item(field_tree, hf_tcp_flags_urg, NullTVB, offset + 13, 1, th.th_flags); + proto_tree_add_item(field_tree, hf_tcp_flags_ack, NullTVB, offset + 13, 1, th.th_flags); + proto_tree_add_item(field_tree, hf_tcp_flags_push, NullTVB, offset + 13, 1, th.th_flags); + proto_tree_add_item(field_tree, hf_tcp_flags_reset, NullTVB, offset + 13, 1, th.th_flags); + proto_tree_add_item(field_tree, hf_tcp_flags_syn, NullTVB, offset + 13, 1, th.th_flags); + proto_tree_add_item(field_tree, hf_tcp_flags_fin, NullTVB, offset + 13, 1, th.th_flags); + proto_tree_add_item(tcp_tree, hf_tcp_window_size, NullTVB, offset + 14, 2, th.th_win); + proto_tree_add_item(tcp_tree, hf_tcp_checksum, NullTVB, offset + 16, 2, th.th_sum); if (th.th_flags & TH_URG) - proto_tree_add_item(tcp_tree, hf_tcp_urgent_pointer, offset + 18, 2, th.th_urp); + proto_tree_add_item(tcp_tree, hf_tcp_urgent_pointer, NullTVB, offset + 18, 2, th.th_urp); } /* Decode TCP options, if any. */ @@ -507,7 +507,7 @@ dissect_tcp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* There's more than just the fixed-length header. Decode the options. */ optlen = hlen - sizeof (e_tcphdr); /* length of options, in bytes */ - tf = proto_tree_add_text(tcp_tree, offset + 20, optlen, + tf = proto_tree_add_text(tcp_tree, NullTVB, offset + 20, optlen, "Options: (%d bytes)", optlen); field_tree = proto_item_add_subtree(tf, ett_tcp_options); dissect_ip_tcp_options(&pd[offset + 20], offset + 20, optlen, diff --git a/packet-telnet.c b/packet-telnet.c index 078c5565ac..c6858d1eef 100644 --- a/packet-telnet.c +++ b/packet-telnet.c @@ -2,7 +2,7 @@ * Routines for telnet packet dissection * Copyright 1999, Richard Sharpe * - * $Id: packet-telnet.c,v 1.11 2000/04/08 07:07:40 guy Exp $ + * $Id: packet-telnet.c,v 1.12 2000/05/11 08:15:52 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -149,16 +149,16 @@ telnet_sub_option(proto_tree *telnet_tree, const u_char *pd, subneg_len = offset - start_offset; - ti = proto_tree_add_text(telnet_tree, start_offset, subneg_len, + ti = proto_tree_add_text(telnet_tree, NullTVB, start_offset, subneg_len, "Suboption Begin: %s", opt); option_tree = proto_item_add_subtree(ti, ett_telnet_subopt); - proto_tree_add_text(option_tree, start_offset + 2, 2, + proto_tree_add_text(option_tree, NullTVB, start_offset + 2, 2, "%s %s", (req ? "Send your" : "Here's my"), opt); if (req == 0) { /* Add the value */ - proto_tree_add_text(option_tree, start_offset + 4, subneg_len - 4, + proto_tree_add_text(option_tree, NullTVB, start_offset + 4, subneg_len - 4, "Value: %s", format_text(&pd[start_offset + 4], subneg_len - 4)); } return offset; @@ -178,7 +178,7 @@ telnet_will_wont_do_dont(proto_tree *telnet_tree, const u_char *pd, opt = options[pd[offset]]; offset++; - proto_tree_add_text(telnet_tree, start_offset, 3, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 3, "Command: %s %s", type, opt); return offset; } @@ -195,72 +195,72 @@ telnet_command(proto_tree *telnet_tree, const u_char *pd, int start_offset) switch(optcode) { case TN_EOF: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: End of File"); break; case TN_SUSP: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Suspend Current Process"); break; case TN_ABORT: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Abort Process"); break; case TN_EOR: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: End of Record"); break; case TN_SE: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Suboption End"); break; case TN_NOP: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: No Operation"); break; case TN_DM: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Data Mark"); break; case TN_BRK: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Break"); break; case TN_IP: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Interrupt Process"); break; case TN_AO: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Abort Output"); break; case TN_AYT: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Are You There?"); break; case TN_EC: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Escape Character"); break; case TN_EL: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Erase Line"); break; case TN_GA: - proto_tree_add_text(telnet_tree, start_offset, 2, + proto_tree_add_text(telnet_tree, NullTVB, start_offset, 2, "Command: Go Ahead"); break; @@ -307,7 +307,7 @@ dissect_telnet(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) int data_offset; int data_len; - ti = proto_tree_add_item(tree, proto_telnet, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_telnet, NullTVB, offset, END_OF_FRAME, NULL); telnet_tree = proto_item_add_subtree(ti, ett_telnet); data_offset = offset; @@ -324,7 +324,7 @@ dissect_telnet(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) * tree. */ if (data_len > 0) { - proto_tree_add_text(telnet_tree, data_offset, data_len, + proto_tree_add_text(telnet_tree, NullTVB, data_offset, data_len, "Data: %s", format_text(&pd[data_offset], data_len)); data_len = 0; data_offset = offset; @@ -347,7 +347,7 @@ dissect_telnet(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) * If there's any data left, add it to the tree. */ if (data_len > 0) { - proto_tree_add_text(telnet_tree, data_offset, data_len, "Data: %s", + proto_tree_add_text(telnet_tree, NullTVB, data_offset, data_len, "Data: %s", format_text(&pd[data_offset], data_len)); } } diff --git a/packet-tftp.c b/packet-tftp.c index 2c137d312a..175927c322 100644 --- a/packet-tftp.c +++ b/packet-tftp.c @@ -5,7 +5,7 @@ * Craig Newell * RFC2347 TFTP Option Extension * - * $Id: packet-tftp.c,v 1.10 2000/02/09 17:15:47 gram Exp $ + * $Id: packet-tftp.c,v 1.11 2000/05/11 08:15:53 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -97,89 +97,89 @@ dissect_tftp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_tftp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_tftp, NullTVB, offset, END_OF_FRAME, NULL); tftp_tree = proto_item_add_subtree(ti, ett_tftp); i1 = pntohs(pd+offset); - proto_tree_add_item_hidden(tftp_tree, hf_tftp_type, offset, 2, i1); + proto_tree_add_item_hidden(tftp_tree, hf_tftp_type, NullTVB, offset, 2, i1); switch (i1) { case RRQ: - proto_tree_add_text(tftp_tree, offset, 2, "Read Request"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Read Request"); offset += 2; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Source File: %s", pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Source File: %s", pd+offset); offset += i1 + 1; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Type: %s",pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Type: %s",pd+offset); offset += i1 + 1; while (offset < pi.captured_len) { int i2; i1 = strlen(pd+offset); /* length of option */ i2 = strlen(pd+offset+i1+1); /* length of value */ - proto_tree_add_text(tftp_tree, offset, i1+i2+2, "Option: %s = %s", + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+i2+2, "Option: %s = %s", pd+offset, pd+offset+i1+1); offset += i1 + i2 + 2; } break; case WRQ: - proto_tree_add_text(tftp_tree, offset, 2, "Write Request"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Write Request"); offset += 2; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Destination File: %s", pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Destination File: %s", pd+offset); offset += i1 + 1; i1 = strlen(pd+offset); - proto_tree_add_text(tftp_tree, offset, i1+1, "Type: %s",pd+offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+1, "Type: %s",pd+offset); offset += i1 + 1; while (offset < pi.captured_len) { int i2; i1 = strlen(pd+offset); /* length of option */ i2 = strlen(pd+offset+i1+1); /* length of value */ - proto_tree_add_text(tftp_tree, offset, i1+i2+2, "Option: %s = %s", + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+i2+2, "Option: %s = %s", pd+offset, pd+offset+i1+1); offset += i1 + i2 + 2; } break; case DATA: - proto_tree_add_text(tftp_tree, offset, 2, "Data Packet"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Data Packet"); offset += 2; i1 = pntohs(pd+offset); - proto_tree_add_text(tftp_tree, offset, 2, "Block = %u", i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Block = %u", i1); offset += 2; - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Data (%d bytes)", END_OF_FRAME); break; case ACK: - proto_tree_add_text(tftp_tree, offset, 2, "Acknowledgement"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Acknowledgement"); offset += 2; i1 = pntohs(pd+offset); - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, "Block = %u", i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Block = %u", i1); break; case ERROR: - proto_tree_add_text(tftp_tree, offset, 2, "Error Code"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Error Code"); offset += 2; i1 = pntohs(pd+offset); - proto_tree_add_item_hidden(tftp_tree, hf_tftp_error_code, offset, 2, i1); - proto_tree_add_text(tftp_tree, offset, 2, "Code = %s", tftp_errors[i1 % 8]); + proto_tree_add_item_hidden(tftp_tree, hf_tftp_error_code, NullTVB, offset, 2, i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Code = %s", tftp_errors[i1 % 8]); offset += 2; - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, "Error Message: %s", pd + offset); + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Error Message: %s", pd + offset); break; case OACK: - proto_tree_add_text(tftp_tree, offset, 2, "Option Acknowledgement"); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Option Acknowledgement"); offset += 2; while (offset < pi.captured_len) { int i2; i1 = strlen(pd+offset); /* length of option */ i2 = strlen(pd+offset+i1+1); /* length of value */ - proto_tree_add_text(tftp_tree, offset, i1+i2+2, "Option: %s = %s", + proto_tree_add_text(tftp_tree, NullTVB, offset, i1+i2+2, "Option: %s = %s", pd+offset, pd+offset+i1+1); offset += i1 + i2 + 2; } break; default: - proto_tree_add_text(tftp_tree, offset, 2, "Unknown TFTP Request: %0X.", i1); + proto_tree_add_text(tftp_tree, NullTVB, offset, 2, "Unknown TFTP Request: %0X.", i1); offset += 2; - proto_tree_add_text(tftp_tree, offset, END_OF_FRAME, + proto_tree_add_text(tftp_tree, NullTVB, offset, END_OF_FRAME, "Data (%d bytes)", END_OF_FRAME); break; } diff --git a/packet-time.c b/packet-time.c index 5a564112af..d60e6a32c3 100644 --- a/packet-time.c +++ b/packet-time.c @@ -5,7 +5,7 @@ * Craig Newell * RFC2347 TIME Option Extension * - * $Id: packet-time.c,v 1.4 2000/04/08 07:07:40 guy Exp $ + * $Id: packet-time.c,v 1.5 2000/05/11 08:15:53 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -56,14 +56,14 @@ dissect_time(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_time, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_time, NullTVB, offset, END_OF_FRAME, NULL); time_tree = proto_item_add_subtree(ti, ett_time); - proto_tree_add_text(time_tree, offset, 0, + proto_tree_add_text(time_tree, NullTVB, offset, 0, pi.srcport==37? "Type: Response":"Type: Request"); if (pi.srcport == 37) { guint32 delta_seconds = pntohl(pd+offset); - proto_tree_add_text(time_tree, offset, 4, + proto_tree_add_text(time_tree, NullTVB, offset, 4, " %u seconds since midnight 1 January 1900 GMT", delta_seconds); } diff --git a/packet-tns.c b/packet-tns.c index f03deb4b6b..54e6a3f50e 100644 --- a/packet-tns.c +++ b/packet-tns.c @@ -1,7 +1,7 @@ /* packet-tns.c * Routines for MSX tns packet dissection * - * $Id: packet-tns.c,v 1.5 2000/04/08 07:07:40 guy Exp $ + * $Id: packet-tns.c,v 1.6 2000/05/11 08:15:53 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -85,10 +85,10 @@ static void dissect_tns_sns(const u_char *pd, int offset, frame_data *fd, if ( tree ) { - ti = proto_tree_add_text(tns_tree, offset, END_OF_FRAME, "Secure Network Services"); + ti = proto_tree_add_text(tns_tree, NullTVB, offset, END_OF_FRAME, "Secure Network Services"); sns_tree = proto_item_add_subtree(ti, ett_tns_sns); - proto_tree_add_item_hidden(tns_tree, hf_tns_sns, 0, 0, TRUE); + proto_tree_add_item_hidden(tns_tree, hf_tns_sns, NullTVB, 0, 0, TRUE); } if ( check_col(fd, COL_INFO) ) @@ -109,7 +109,7 @@ static void dissect_tns_data(const u_char *pd, int offset, frame_data *fd, TRUNC(2); if ( tree ) { - proto_tree_add_item(tns_tree, hf_tns_data_flag, + proto_tree_add_item(tns_tree, hf_tns_data_flag, NullTVB, offset, 2, pntohs(&pd[offset])); } offset += 2; @@ -135,10 +135,10 @@ static void dissect_tns_connect(const u_char *pd, int offset, frame_data *fd, if ( tree ) { - ti = proto_tree_add_text(tns_tree, offset, END_OF_FRAME, "Connect"); + ti = proto_tree_add_text(tns_tree, NullTVB, offset, END_OF_FRAME, "Connect"); connect_tree = proto_item_add_subtree(ti, ett_tns_connect); - proto_tree_add_item_hidden(tns_tree, hf_tns_connect, 0, 0, TRUE); + proto_tree_add_item_hidden(tns_tree, hf_tns_connect, NullTVB, 0, 0, TRUE); } if ( check_col(fd, COL_INFO) ) @@ -149,7 +149,7 @@ static void dissect_tns_connect(const u_char *pd, int offset, frame_data *fd, TRUNC(2); if ( connect_tree ) { - proto_tree_add_item(connect_tree, hf_tns_version, + proto_tree_add_item(connect_tree, hf_tns_version, NullTVB, offset, 2, pntohs(&pd[offset])); } offset += 2; @@ -157,7 +157,7 @@ static void dissect_tns_connect(const u_char *pd, int offset, frame_data *fd, TRUNC(2); if ( connect_tree ) { - proto_tree_add_item(connect_tree, hf_tns_compat_version, + proto_tree_add_item(connect_tree, hf_tns_compat_version, NullTVB, offset, 2, pntohs(&pd[offset])); } offset += 2; @@ -166,7 +166,7 @@ static void dissect_tns_connect(const u_char *pd, int offset, frame_data *fd, if ( connect_tree ) { /* need to break down w/ bitfield */ - proto_tree_add_item(connect_tree, hf_tns_service_options, + proto_tree_add_item(connect_tree, hf_tns_service_options, NullTVB, offset, 2, pntohs(&pd[offset])); } offset += 2; @@ -204,21 +204,21 @@ dissect_tns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (tree) { - ti = proto_tree_add_item(tree, proto_tns, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_tns, NullTVB, offset, END_OF_FRAME, NULL); tns_tree = proto_item_add_subtree(ti, ett_tns); if (pi.match_port == pi.destport) { - proto_tree_add_item_hidden(tns_tree, hf_tns_request, + proto_tree_add_item_hidden(tns_tree, hf_tns_request, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tns_tree, offset, + proto_tree_add_text(tns_tree, NullTVB, offset, END_OF_FRAME, "Request: " ); } else { - proto_tree_add_item_hidden(tns_tree, hf_tns_response, + proto_tree_add_item_hidden(tns_tree, hf_tns_response, NullTVB, offset, END_OF_FRAME, TRUE); - proto_tree_add_text(tns_tree, offset, + proto_tree_add_text(tns_tree, NullTVB, offset, END_OF_FRAME, "Response: "); } } @@ -229,7 +229,7 @@ dissect_tns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) length = pntohs(&pd[offset]); if (tree) { - proto_tree_add_item(tns_tree, hf_tns_length, + proto_tree_add_item(tns_tree, hf_tns_length, NullTVB, offset, 2, length); } TRUNC(length); @@ -238,7 +238,7 @@ dissect_tns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) TRUNC(2); if ( tree ) { - proto_tree_add_item(tns_tree, hf_tns_packet_checksum, + proto_tree_add_item(tns_tree, hf_tns_packet_checksum, NullTVB, offset, 2, pntohs(&pd[offset])); } offset += 2; @@ -247,7 +247,7 @@ dissect_tns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) type = pd[offset]; if ( tree ) { - proto_tree_add_item(tns_tree, hf_tns_packet_type, + proto_tree_add_item(tns_tree, hf_tns_packet_type, NullTVB, offset, 1, type); } offset += 1; @@ -261,7 +261,7 @@ dissect_tns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) TRUNC(1); if ( tree ) { - proto_tree_add_item(tns_tree, hf_tns_reserved_byte, + proto_tree_add_item(tns_tree, hf_tns_reserved_byte, NullTVB, offset, 1, &pd[offset]); } offset += 1; @@ -269,7 +269,7 @@ dissect_tns(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) TRUNC(2); if ( tree ) { - proto_tree_add_item(tns_tree, hf_tns_header_checksum, + proto_tree_add_item(tns_tree, hf_tns_header_checksum, NullTVB, offset, 2, pntohs(&pd[offset])); } offset += 2; diff --git a/packet-tr.c b/packet-tr.c index eecabb2c8b..9ccd32f1ce 100644 --- a/packet-tr.c +++ b/packet-tr.c @@ -2,7 +2,7 @@ * Routines for Token-Ring packet disassembly * Gilbert Ramirez * - * $Id: packet-tr.c,v 1.37 2000/05/04 22:59:27 gram Exp $ + * $Id: packet-tr.c,v 1.38 2000/05/11 08:15:53 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -412,43 +412,43 @@ dissect_tr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { /* protocol analysis tree */ if (tree) { /* Create Token-Ring Tree */ - ti = proto_tree_add_item(tree, proto_tr, offset, 14 + actual_rif_bytes, NULL); + ti = proto_tree_add_item(tree, proto_tr, NullTVB, offset, 14 + actual_rif_bytes, NULL); tr_tree = proto_item_add_subtree(ti, ett_token_ring); /* Create the Access Control bitfield tree */ trn_ac = pd[offset+0]; - ti = proto_tree_add_item(tr_tree, hf_tr_ac, offset, 1, trn_ac); + ti = proto_tree_add_item(tr_tree, hf_tr_ac, NullTVB, offset, 1, trn_ac); bf_tree = proto_item_add_subtree(ti, ett_token_ring_ac); - proto_tree_add_item(bf_tree, hf_tr_priority, offset, 1, trn_ac); - proto_tree_add_item(bf_tree, hf_tr_frame, offset, 1, trn_ac); - proto_tree_add_item(bf_tree, hf_tr_monitor_cnt, offset, 1, trn_ac); - proto_tree_add_item(bf_tree, hf_tr_priority_reservation, offset, 1, trn_ac); + proto_tree_add_item(bf_tree, hf_tr_priority, NullTVB, offset, 1, trn_ac); + proto_tree_add_item(bf_tree, hf_tr_frame, NullTVB, offset, 1, trn_ac); + proto_tree_add_item(bf_tree, hf_tr_monitor_cnt, NullTVB, offset, 1, trn_ac); + proto_tree_add_item(bf_tree, hf_tr_priority_reservation, NullTVB, offset, 1, trn_ac); /* Create the Frame Control bitfield tree */ - ti = proto_tree_add_item(tr_tree, hf_tr_fc, offset + 1, 1, trn_fc); + ti = proto_tree_add_item(tr_tree, hf_tr_fc, NullTVB, offset + 1, 1, trn_fc); bf_tree = proto_item_add_subtree(ti, ett_token_ring_fc); - proto_tree_add_item(bf_tree, hf_tr_fc_type, offset + 1, 1, trn_fc); - proto_tree_add_item(bf_tree, hf_tr_fc_pcf, offset + 1, 1, trn_fc); - proto_tree_add_item(tr_tree, hf_tr_dst, offset + 2, 6, trn_dhost); - proto_tree_add_item(tr_tree, hf_tr_src, offset + 8, 6, trn_shost); - proto_tree_add_item_hidden(tr_tree, hf_tr_addr, offset + 2, 6, trn_dhost); - proto_tree_add_item_hidden(tr_tree, hf_tr_addr, offset + 8, 6, trn_shost); + proto_tree_add_item(bf_tree, hf_tr_fc_type, NullTVB, offset + 1, 1, trn_fc); + proto_tree_add_item(bf_tree, hf_tr_fc_pcf, NullTVB, offset + 1, 1, trn_fc); + proto_tree_add_item(tr_tree, hf_tr_dst, NullTVB, offset + 2, 6, trn_dhost); + proto_tree_add_item(tr_tree, hf_tr_src, NullTVB, offset + 8, 6, trn_shost); + proto_tree_add_item_hidden(tr_tree, hf_tr_addr, NullTVB, offset + 2, 6, trn_dhost); + proto_tree_add_item_hidden(tr_tree, hf_tr_addr, NullTVB, offset + 8, 6, trn_shost); - proto_tree_add_item(tr_tree, hf_tr_sr, offset + 8, 1, source_routed); + proto_tree_add_item(tr_tree, hf_tr_sr, NullTVB, offset + 8, 1, source_routed); /* non-source-routed version of src addr */ - proto_tree_add_item_hidden(tr_tree, hf_tr_src, offset + 8, 6, trn_shost_nonsr); + proto_tree_add_item_hidden(tr_tree, hf_tr_src, NullTVB, offset + 8, 6, trn_shost_nonsr); if (source_routed) { /* RCF Byte 1 */ - proto_tree_add_item(tr_tree, hf_tr_rif_bytes, offset + 14, 1, trn_rif_bytes); - proto_tree_add_item(tr_tree, hf_tr_broadcast, offset + 14, 1, pd[offset + 14] & 224); + proto_tree_add_item(tr_tree, hf_tr_rif_bytes, NullTVB, offset + 14, 1, trn_rif_bytes); + proto_tree_add_item(tr_tree, hf_tr_broadcast, NullTVB, offset + 14, 1, pd[offset + 14] & 224); /* RCF Byte 2 */ - proto_tree_add_item(tr_tree, hf_tr_max_frame_size, offset + 15, 1, pd[offset + 15] & 112); - proto_tree_add_item(tr_tree, hf_tr_direction, offset + 15, 1, pd[offset + 15] & 128); + proto_tree_add_item(tr_tree, hf_tr_max_frame_size, NullTVB, offset + 15, 1, pd[offset + 15] & 112); + proto_tree_add_item(tr_tree, hf_tr_direction, NullTVB, offset + 15, 1, pd[offset + 15] & 128); /* if we have more than 2 bytes of RIF, then we have ring/bridge pairs */ @@ -468,12 +468,12 @@ dissect_tr(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { tcpdump. W/o that, however, I'm guessing that DSAP == SSAP if the frame type is LLC. It's very much a hack. -- Gilbert Ramirez */ if (actual_rif_bytes > trn_rif_bytes) { - proto_tree_add_text(tr_tree, 14 + trn_rif_bytes, actual_rif_bytes - trn_rif_bytes, + proto_tree_add_text(tr_tree, NullTVB, 14 + trn_rif_bytes, actual_rif_bytes - trn_rif_bytes, "Empty RIF from Linux 2.0.x driver. The sniffing NIC " "is also running a protocol stack."); } if (fixoffset) { - proto_tree_add_text(tr_tree, 14 + 18,8,"Linux 2.0.x fake LLC and SNAP header"); + proto_tree_add_text(tr_tree, NullTVB, 14 + 18,8,"Linux 2.0.x fake LLC and SNAP header"); } } offset += 14 + actual_rif_bytes + fixoffset; @@ -521,20 +521,20 @@ add_ring_bridge_pairs(int rcf_len, const u_char *pd, int offset, proto_tree *tre if (j==1) { segment=pntohs(&pd[offset + 16]) >> 4; size = sprintf(buffer, "%03X",segment); - proto_tree_add_item_hidden(tree, hf_tr_rif_ring, offset + 16, 2, segment); + proto_tree_add_item_hidden(tree, hf_tr_rif_ring, NullTVB, offset + 16, 2, segment); buff_offset += size; } segment=pntohs(&pd[offset+17+j]) >> 4; brdgnmb=pd[offset+16+j] & 0x0f; size = sprintf(buffer+buff_offset, "-%01X-%03X",brdgnmb,segment); - proto_tree_add_item_hidden(tree, hf_tr_rif_ring, offset+17+j, 2, segment); - proto_tree_add_item_hidden(tree, hf_tr_rif_bridge, offset+16+j, 1, brdgnmb); + proto_tree_add_item_hidden(tree, hf_tr_rif_ring, NullTVB, offset+17+j, 2, segment); + proto_tree_add_item_hidden(tree, hf_tr_rif_bridge, NullTVB, offset+16+j, 1, brdgnmb); buff_offset += size; } - proto_tree_add_item(tree, hf_tr_rif, offset+16, rcf_len, buffer); + proto_tree_add_item(tree, hf_tr_rif, NullTVB, offset+16, rcf_len, buffer); if (unprocessed_rif > 0) { - proto_tree_add_text(tree, offset+14+RIF_BYTES_TO_PROCESS, unprocessed_rif, + proto_tree_add_text(tree, NullTVB, offset+14+RIF_BYTES_TO_PROCESS, unprocessed_rif, "Extra RIF bytes beyond spec: %d", unprocessed_rif); } } diff --git a/packet-trmac.c b/packet-trmac.c index 87babc5cb0..246c6863bf 100644 --- a/packet-trmac.c +++ b/packet-trmac.c @@ -2,7 +2,7 @@ * Routines for Token-Ring Media Access Control * Gilbert Ramirez * - * $Id: packet-trmac.c,v 1.20 2000/03/12 04:47:50 gram Exp $ + * $Id: packet-trmac.c,v 1.21 2000/05/11 08:15:54 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -116,154 +116,154 @@ sv_text(const u_char *pd, int pkt_offset, proto_tree *tree) u_char errors[6]; /* isolating or non-isolating */ /* this just adds to the clutter on the screen... - proto_tree_add_text(tree, pkt_offset, 1, + proto_tree_add_text(tree, NullTVB, pkt_offset, 1, "Subvector Length: %d bytes", sv_length);*/ - proto_tree_add_item_hidden(tree, hf_trmac_sv, pkt_offset+1, 1, pd[1]); + proto_tree_add_item_hidden(tree, hf_trmac_sv, NullTVB, pkt_offset+1, 1, pd[1]); switch(pd[1]) { case 0x01: /* Beacon Type */ beacon_type = pntohs(&pd[2]); if (beacon_type < array_length(beacon)) { - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Beacon Type: %s", beacon[beacon_type] ); } else { - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Beacon Type: Illegal value: %d", beacon_type ); } break; case 0x02: /* NAUN */ - proto_tree_add_item(tree, hf_trmac_naun, pkt_offset+1, sv_length-1, (guint8*)&pd[2]); + proto_tree_add_item(tree, hf_trmac_naun, NullTVB, pkt_offset+1, sv_length-1, (guint8*)&pd[2]); break; case 0x03: /* Local Ring Number */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Local Ring Number: 0x%04X (%d)", pntohs( &pd[2] ), pntohs( &pd[2] )); break; case 0x04: /* Assign Physical Location */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Assign Physical Location: 0x%08X", pntohl( &pd[2] ) ); break; case 0x05: /* Soft Error Report Value */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Soft Error Report Value: %d ms", 10 * pntohs( &pd[2] ) ); break; case 0x06: /* Enabled Function Classes */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Enabled Function Classes: %04X", pntohs( &pd[2] ) ); break; case 0x07: /* Allowed Access Priority */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Allowed Access Priority: %04X", pntohs( &pd[2] ) ); break; case 0x09: /* Correlator */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Correlator: %04X", pntohs( &pd[2] ) ); break; case 0x0A: /* Address of last neighbor notification */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Address of Last Neighbor Notification: %s", ether_to_str((guint8*)&pd[2])); break; case 0x0B: /* Physical Location */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Physical Location: 0x%08X", pntohl( &pd[2] ) ); break; case 0x20: /* Response Code */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Response Code: 0x%04X 0x%04X", pntohl( &pd[2] ), pntohl( &pd[4] ) ); break; case 0x21: /* Reserved */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Reserved: 0x%04X", pntohs( &pd[2] ) ); break; case 0x22: /* Product Instance ID */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Product Instance ID: ..."); break; case 0x23: /* Ring Station Microcode Level */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Ring Station Microcode Level: ..."); break; case 0x26: /* Wrap data */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Wrap Data: ... (%d bytes)", sv_length - 2); break; case 0x27: /* Frame Forward */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Frame Forward: ... (%d bytes)", sv_length - 2); break; case 0x29: /* Ring Station Status Subvector */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Ring Station Status Subvector: ..."); break; case 0x2A: /* Transmit Status Code */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Transmit Status Code: %04X", pntohs( &pd[2] ) ); break; case 0x2B: /* Group Address */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Group Address: %08X", pntohl( &pd[2] ) ); break; case 0x2C: /* Functional Address */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Functional Address: %08X", pntohl( &pd[2] ) ); break; case 0x2D: /* Isolating Error Counts */ memcpy(errors, &pd[2], 6); - ti = proto_tree_add_item(tree, hf_trmac_errors_iso, pkt_offset+1, sv_length-1, + ti = proto_tree_add_item(tree, hf_trmac_errors_iso, NullTVB, pkt_offset+1, sv_length-1, errors[0] + errors[1] + errors[2] + errors[3] + errors[4]); sv_tree = proto_item_add_subtree(ti, ett_tr_ierr_cnt); - proto_tree_add_item(sv_tree, hf_trmac_errors_line, pkt_offset+2, 1, errors[0]); - proto_tree_add_item(sv_tree, hf_trmac_errors_internal, pkt_offset+3, 1, errors[1]); - proto_tree_add_item(sv_tree, hf_trmac_errors_burst, pkt_offset+4, 1, errors[2]); - proto_tree_add_item(sv_tree, hf_trmac_errors_ac, pkt_offset+5, 1, errors[3]); - proto_tree_add_item(sv_tree, hf_trmac_errors_abort, pkt_offset+6, 1, errors[4]); + proto_tree_add_item(sv_tree, hf_trmac_errors_line, NullTVB, pkt_offset+2, 1, errors[0]); + proto_tree_add_item(sv_tree, hf_trmac_errors_internal, NullTVB, pkt_offset+3, 1, errors[1]); + proto_tree_add_item(sv_tree, hf_trmac_errors_burst, NullTVB, pkt_offset+4, 1, errors[2]); + proto_tree_add_item(sv_tree, hf_trmac_errors_ac, NullTVB, pkt_offset+5, 1, errors[3]); + proto_tree_add_item(sv_tree, hf_trmac_errors_abort, NullTVB, pkt_offset+6, 1, errors[4]); break; case 0x2E: /* Non-Isolating Error Counts */ memcpy(errors, &pd[2], 6); - ti = proto_tree_add_item(tree, hf_trmac_errors_noniso, pkt_offset+1, sv_length-1, + ti = proto_tree_add_item(tree, hf_trmac_errors_noniso, NullTVB, pkt_offset+1, sv_length-1, errors[0] + errors[1] + errors[2] + errors[3] + errors[4]); sv_tree = proto_item_add_subtree(ti, ett_tr_nerr_cnt); - proto_tree_add_item(sv_tree, hf_trmac_errors_lost, pkt_offset+2, 1, errors[0]); - proto_tree_add_item(sv_tree, hf_trmac_errors_congestion, pkt_offset+3, 1, errors[1]); - proto_tree_add_item(sv_tree, hf_trmac_errors_fc, pkt_offset+4, 1, errors[2]); - proto_tree_add_item(sv_tree, hf_trmac_errors_freq, pkt_offset+5, 1, errors[3]); - proto_tree_add_item(sv_tree, hf_trmac_errors_token, pkt_offset+6, 1, errors[4]); + proto_tree_add_item(sv_tree, hf_trmac_errors_lost, NullTVB, pkt_offset+2, 1, errors[0]); + proto_tree_add_item(sv_tree, hf_trmac_errors_congestion, NullTVB, pkt_offset+3, 1, errors[1]); + proto_tree_add_item(sv_tree, hf_trmac_errors_fc, NullTVB, pkt_offset+4, 1, errors[2]); + proto_tree_add_item(sv_tree, hf_trmac_errors_freq, NullTVB, pkt_offset+5, 1, errors[3]); + proto_tree_add_item(sv_tree, hf_trmac_errors_token, NullTVB, pkt_offset+6, 1, errors[4]); break; case 0x30: /* Error Code */ - proto_tree_add_text(tree, pkt_offset+1, sv_length-1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, sv_length-1, "Error Code: %04X", pntohs( &pd[2] ) ); break; default: /* Unknown */ - proto_tree_add_text(tree, pkt_offset+1, 1, + proto_tree_add_text(tree, NullTVB, pkt_offset+1, 1, "Unknown Sub-Vector: 0x%02X", pd[1]); } return sv_length; @@ -292,14 +292,14 @@ dissect_trmac(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { if (tree) { - ti = proto_tree_add_item(tree, proto_trmac, offset, mv_length, NULL); + ti = proto_tree_add_item(tree, proto_trmac, NullTVB, offset, mv_length, NULL); mac_tree = proto_item_add_subtree(ti, ett_tr_mac); - proto_tree_add_item(mac_tree, hf_trmac_mv, offset+3, 1, mv_val); - proto_tree_add_uint_format(mac_tree, hf_trmac_length, offset, 2, mv_length, + proto_tree_add_item(mac_tree, hf_trmac_mv, NullTVB, offset+3, 1, mv_val); + proto_tree_add_uint_format(mac_tree, hf_trmac_length, NullTVB, offset, 2, mv_length, "Total Length: %d bytes", mv_length); - proto_tree_add_item(mac_tree, hf_trmac_srcclass, offset+2, 1, pd[offset+2] & 0x0f); - proto_tree_add_item(mac_tree, hf_trmac_dstclass, offset+2, 1, pd[offset+2] >> 4 ); + proto_tree_add_item(mac_tree, hf_trmac_srcclass, NullTVB, offset+2, 1, pd[offset+2] & 0x0f); + proto_tree_add_item(mac_tree, hf_trmac_dstclass, NullTVB, offset+2, 1, pd[offset+2] >> 4 ); /* interpret the subvectors */ sv_offset = 0; diff --git a/packet-udp.c b/packet-udp.c index da4219969e..b16f5fbb97 100644 --- a/packet-udp.c +++ b/packet-udp.c @@ -1,7 +1,7 @@ /* packet-udp.c * Routines for UDP packet disassembly * - * $Id: packet-udp.c,v 1.69 2000/04/20 07:05:57 guy Exp $ + * $Id: packet-udp.c,v 1.70 2000/05/11 08:15:54 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -166,19 +166,19 @@ dissect_udp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { get_udp_port(uh_sport), get_udp_port(uh_dport)); if (tree) { - ti = proto_tree_add_item(tree, proto_udp, offset, 8); + ti = proto_tree_add_item(tree, proto_udp, NullTVB, offset, 8); udp_tree = proto_item_add_subtree(ti, ett_udp); - proto_tree_add_uint_format(udp_tree, hf_udp_srcport, offset, 2, uh_sport, + proto_tree_add_uint_format(udp_tree, hf_udp_srcport, NullTVB, offset, 2, uh_sport, "Source port: %s (%u)", get_udp_port(uh_sport), uh_sport); - proto_tree_add_uint_format(udp_tree, hf_udp_dstport, offset + 2, 2, uh_dport, + proto_tree_add_uint_format(udp_tree, hf_udp_dstport, NullTVB, offset + 2, 2, uh_dport, "Destination port: %s (%u)", get_udp_port(uh_dport), uh_dport); - proto_tree_add_item_hidden(udp_tree, hf_udp_port, offset, 2, uh_sport); - proto_tree_add_item_hidden(udp_tree, hf_udp_port, offset+2, 2, uh_dport); + proto_tree_add_item_hidden(udp_tree, hf_udp_port, NullTVB, offset, 2, uh_sport); + proto_tree_add_item_hidden(udp_tree, hf_udp_port, NullTVB, offset+2, 2, uh_dport); - proto_tree_add_item(udp_tree, hf_udp_length, offset + 4, 2, uh_ulen); - proto_tree_add_uint_format(udp_tree, hf_udp_checksum, offset + 6, 2, uh_sum, + proto_tree_add_item(udp_tree, hf_udp_length, NullTVB, offset + 4, 2, uh_ulen); + proto_tree_add_uint_format(udp_tree, hf_udp_checksum, NullTVB, offset + 6, 2, uh_sum, "Checksum: 0x%04x", uh_sum); } diff --git a/packet-v120.c b/packet-v120.c index 9775f2d2c8..5862a67579 100644 --- a/packet-v120.c +++ b/packet-v120.c @@ -2,7 +2,7 @@ * Routines for v120 frame disassembly * Bert Driehuis * - * $Id: packet-v120.c,v 1.5 2000/03/17 05:21:48 guy Exp $ + * $Id: packet-v120.c,v 1.6 2000/05/11 08:15:54 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -72,7 +72,7 @@ dissect_v120(const u_char *pd, frame_data *fd, proto_tree *tree) if (check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, "Invalid V.120 frame"); if (tree) - ti = proto_tree_add_protocol_format(tree, proto_v120, 0, fd->cap_len, + ti = proto_tree_add_protocol_format(tree, proto_v120, NullTVB, 0, fd->cap_len, "Invalid V.120 frame"); return; } @@ -97,27 +97,27 @@ dissect_v120(const u_char *pd, frame_data *fd, proto_tree *tree) is_response = FALSE; if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_v120, 0, 0, + ti = proto_tree_add_protocol_format(tree, proto_v120, NullTVB, 0, 0, "V.120"); v120_tree = proto_item_add_subtree(ti, ett_v120); addr = pd[1] << 8 | pd[0]; sprintf(info, "LLI: %d C/R: %s", ((pd[0] & 0xfc) << 5) | ((pd[1] & 0xfe) >> 1), pd[0] & 0x02 ? "R" : "C"); - tc = proto_tree_add_text(v120_tree, + tc = proto_tree_add_text(v120_tree, NullTVB, 0, 2, "Address field: %s", info); address_tree = proto_item_add_subtree(tc, ett_v120_address); - proto_tree_add_text(address_tree, 0, 2, + proto_tree_add_text(address_tree, NullTVB, 0, 2, decode_boolean_bitfield(addr, 0x0002, 2*8, "Response", "Command"), NULL); sprintf(info, "LLI: %d", ((pd[0] & 0xfc) << 5) | ((pd[1] & 0xfe) >> 1)); - proto_tree_add_text(address_tree, 0, 2, + proto_tree_add_text(address_tree, NullTVB, 0, 2, decode_numeric_bitfield(addr, 0xfefc, 2*8, info)); - proto_tree_add_text(address_tree, 0, 2, + proto_tree_add_text(address_tree, NullTVB, 0, 2, decode_boolean_bitfield(addr, 0x0001, 2*8, "EA0 = 1 (Error)", "EA0 = 0"), NULL); - proto_tree_add_text(address_tree, 0, 2, + proto_tree_add_text(address_tree, NullTVB, 0, 2, decode_boolean_bitfield(addr, 0x0100, 2*8, "EA1 = 1", "EA1 = 0 (Error)"), NULL); } @@ -155,36 +155,36 @@ dissect_v120_header(const u_char *pd, int offset, frame_data *fd, proto_tree *tr nbits = header_len * 8; sprintf(info, "Header: B: %d F: %d", pd[offset] & 0x02 ? 1:0, pd[offset] & 0x01 ? 1:0); - tc = proto_tree_add_text(tree, + tc = proto_tree_add_text(tree, NullTVB, offset, header_len, "Header octet: %s (0x%02X)", info, pd[offset]); h_tree = proto_item_add_subtree(tc, ett_v120_header); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x80, nbits, "No extension octet", "Extension octet follows"), NULL); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x40, nbits, "Break condition", "No break condition"), NULL); sprintf(info, "Error control C1/C2: %d", (header & 0x0c) >> 2); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_numeric_bitfield(header, 0x0c, nbits, info)); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x02, nbits, "Segmentation bit B", "No segmentation bit B"), NULL); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x01, nbits, "Segmentation bit F", "No segmentation bit F"), NULL); if (header_len == 2) { - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x8000, nbits, "E", "E bit not set (Error)"), NULL); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x4000, nbits, "DR", "No DR"), NULL); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x2000, nbits, "SR", "No SR"), NULL); - proto_tree_add_text(h_tree, offset, header_len, + proto_tree_add_text(h_tree, NullTVB, offset, header_len, decode_boolean_bitfield(header, 0x1000, nbits, "RR", "No RR"), NULL); } diff --git a/packet-vines.c b/packet-vines.c index dc45a08787..daa89958da 100644 --- a/packet-vines.c +++ b/packet-vines.c @@ -1,7 +1,7 @@ /* packet-vines.c * Routines for Banyan VINES protocol packet disassembly * - * $Id: packet-vines.c,v 1.15 2000/04/16 22:46:24 guy Exp $ + * $Id: packet-vines.c,v 1.16 2000/05/11 08:15:54 gram Exp $ * * Don Lafontaine * @@ -104,10 +104,10 @@ dissect_vines_frp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree } if (tree) { - ti = proto_tree_add_text(tree, offset, 2, "Vines Fragmentation Protocol"); + ti = proto_tree_add_text(tree, NullTVB, offset, 2, "Vines Fragmentation Protocol"); vines_frp_tree = proto_item_add_subtree(ti, ett_vines_frp); - proto_tree_add_text(vines_frp_tree, offset, 1, "Control Flags: 0x%02x = %s fragment", vines_frp_ctrl, frp_flags_str); - proto_tree_add_text(vines_frp_tree, offset + 1, 1, "Sequence Number: 0x%02x", vines_frp_seqno); + proto_tree_add_text(vines_frp_tree, NullTVB, offset, 1, "Control Flags: 0x%02x = %s fragment", vines_frp_ctrl, frp_flags_str); + proto_tree_add_text(vines_frp_tree, NullTVB, offset + 1, 1, "Sequence Number: 0x%02x", vines_frp_seqno); } /* Skip over header */ @@ -232,13 +232,13 @@ dissect_vines(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) */ if (tree) { - ti = proto_tree_add_text(tree, offset, (viph.vip_pktlen), "Vines IP"); + ti = proto_tree_add_text(tree, NullTVB, offset, (viph.vip_pktlen), "Vines IP"); vip_tree = proto_item_add_subtree(ti, ett_vines); - proto_tree_add_text(vip_tree, offset, 2, "Packet checksum: 0x%04x", viph.vip_chksum); - proto_tree_add_text(vip_tree, offset + 2, 2, "Packet length: 0x%04x (%d)", viph.vip_pktlen, viph.vip_pktlen); - proto_tree_add_text(vip_tree, offset + 4, 1, "Transport control: 0x%02x", + proto_tree_add_text(vip_tree, NullTVB, offset, 2, "Packet checksum: 0x%04x", viph.vip_chksum); + proto_tree_add_text(vip_tree, NullTVB, offset + 2, 2, "Packet length: 0x%04x (%d)", viph.vip_pktlen, viph.vip_pktlen); + proto_tree_add_text(vip_tree, NullTVB, offset + 4, 1, "Transport control: 0x%02x", viph.vip_tctl); - proto_tree_add_text(vip_tree, offset + 5, 1, "Protocol: 0x%02x", viph.vip_proto); + proto_tree_add_text(vip_tree, NullTVB, offset + 5, 1, "Protocol: 0x%02x", viph.vip_proto); } @@ -322,17 +322,17 @@ void dissect_vines_spp(const u_char *pd, int offset, frame_data *fd, proto_tree */ if (tree) { - ti = proto_tree_add_text(tree, offset, sizeof(viph), "Vines SPP"); + ti = proto_tree_add_text(tree, NullTVB, offset, sizeof(viph), "Vines SPP"); vspp_tree = proto_item_add_subtree(ti, ett_vines_spp); - proto_tree_add_text(vspp_tree, offset, 2, "Source port: 0x%04x", viph.vspp_sport); - proto_tree_add_text(vspp_tree, offset+2, 2, "Destination port: 0x%04x", viph.vspp_dport); - proto_tree_add_text(vspp_tree, offset+4, 1, "Packet type: 0x%02x", viph.vspp_pkttype); - proto_tree_add_text(vspp_tree, offset+5, 1, "Control: 0x%02x", viph.vspp_control); - proto_tree_add_text(vspp_tree, offset+6, 2, "Local Connection ID: 0x%04x", viph.vspp_lclid); - proto_tree_add_text(vspp_tree, offset+8, 2, "Remote Connection ID: 0x%04x", viph.vspp_rmtid); - proto_tree_add_text(vspp_tree, offset+10, 2, "Sequence number: 0x%04x", viph.vspp_seqno); - proto_tree_add_text(vspp_tree, offset+12, 2, "Ack number: 0x%04x", viph.vspp_ack); - proto_tree_add_text(vspp_tree, offset+14, 2, "Window: 0x%04x", viph.vspp_win); + proto_tree_add_text(vspp_tree, NullTVB, offset, 2, "Source port: 0x%04x", viph.vspp_sport); + proto_tree_add_text(vspp_tree, NullTVB, offset+2, 2, "Destination port: 0x%04x", viph.vspp_dport); + proto_tree_add_text(vspp_tree, NullTVB, offset+4, 1, "Packet type: 0x%02x", viph.vspp_pkttype); + proto_tree_add_text(vspp_tree, NullTVB, offset+5, 1, "Control: 0x%02x", viph.vspp_control); + proto_tree_add_text(vspp_tree, NullTVB, offset+6, 2, "Local Connection ID: 0x%04x", viph.vspp_lclid); + proto_tree_add_text(vspp_tree, NullTVB, offset+8, 2, "Remote Connection ID: 0x%04x", viph.vspp_rmtid); + proto_tree_add_text(vspp_tree, NullTVB, offset+10, 2, "Sequence number: 0x%04x", viph.vspp_seqno); + proto_tree_add_text(vspp_tree, NullTVB, offset+12, 2, "Ack number: 0x%04x", viph.vspp_ack); + proto_tree_add_text(vspp_tree, NullTVB, offset+14, 2, "Window: 0x%04x", viph.vspp_win); } offset += 16; /* sizeof SPP */ dissect_data(pd, offset, fd, tree); diff --git a/packet-vlan.c b/packet-vlan.c index 874873ce1d..bb5c0a78ab 100644 --- a/packet-vlan.c +++ b/packet-vlan.c @@ -1,7 +1,7 @@ /* packet-vlan.c * Routines for VLAN 802.1Q ethernet header disassembly * - * $Id: packet-vlan.c,v 1.10 2000/04/16 22:59:37 guy Exp $ + * $Id: packet-vlan.c,v 1.11 2000/05/11 08:15:55 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -89,12 +89,12 @@ dissect_vlan(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) { } if (tree) { - ti = proto_tree_add_item(tree, proto_vlan, offset, 4); + ti = proto_tree_add_item(tree, proto_vlan, NullTVB, offset, 4); vlan_tree = proto_item_add_subtree(ti, ett_vlan); - proto_tree_add_item(vlan_tree, hf_vlan_priority, offset, 2, tci); - proto_tree_add_item(vlan_tree, hf_vlan_cfi, offset, 2, tci); - proto_tree_add_item(vlan_tree, hf_vlan_id, offset, 2, tci); + proto_tree_add_item(vlan_tree, hf_vlan_priority, NullTVB, offset, 2, tci); + proto_tree_add_item(vlan_tree, hf_vlan_cfi, NullTVB, offset, 2, tci); + proto_tree_add_item(vlan_tree, hf_vlan_id, NullTVB, offset, 2, tci); } if ( encap_proto <= IEEE_802_3_MAX_LEN) { diff --git a/packet-vrrp.c b/packet-vrrp.c index e3754fa3e0..487dbc3197 100644 --- a/packet-vrrp.c +++ b/packet-vrrp.c @@ -4,7 +4,7 @@ * * Heikki Vatiainen * - * $Id: packet-vrrp.c,v 1.4 2000/04/16 22:46:25 guy Exp $ + * $Id: packet-vrrp.c,v 1.5 2000/05/11 08:15:55 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -132,27 +132,27 @@ dissect_vrrp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) return; } - ti = proto_tree_add_item(tree, proto_vrrp, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_vrrp, NullTVB, offset, END_OF_FRAME, NULL); vrrp_tree = proto_item_add_subtree(ti, ett_vrrp); - tv = proto_tree_add_uint_format(vrrp_tree, hf_vrrp_ver_type, offset, 1, + tv = proto_tree_add_uint_format(vrrp_tree, hf_vrrp_ver_type, NullTVB, offset, 1, vrh.ver_type, "Version %u, Packet type %u (%s)", hi_nibble(vrh.ver_type), lo_nibble(vrh.ver_type), val_to_str(lo_nibble(vrh.ver_type), vrrp_type_vals, "Unknown")); ver_type_tree = proto_item_add_subtree(tv, ett_vrrp_ver_type); - proto_tree_add_item(ver_type_tree, hf_vrrp_version, offset, 1, vrh.ver_type); - proto_tree_add_item(ver_type_tree, hf_vrrp_type, offset, 1, vrh.ver_type); + proto_tree_add_item(ver_type_tree, hf_vrrp_version, NullTVB, offset, 1, vrh.ver_type); + proto_tree_add_item(ver_type_tree, hf_vrrp_type, NullTVB, offset, 1, vrh.ver_type); offset++; - proto_tree_add_text(vrrp_tree, offset++, 1, "Virtual Router ID: %u", vrh.vrouter_id); - proto_tree_add_text(vrrp_tree, offset++, 1, "Priority: %u (%s)", vrh.priority, + proto_tree_add_text(vrrp_tree, NullTVB, offset++, 1, "Virtual Router ID: %u", vrh.vrouter_id); + proto_tree_add_text(vrrp_tree, NullTVB, offset++, 1, "Priority: %u (%s)", vrh.priority, val_to_str(vrh.priority, vrrp_prio_vals, "Non-default backup priority")); - proto_tree_add_text(vrrp_tree, offset++, 1, "Count IP Addrs: %u", vrh.count_ip_addrs); - proto_tree_add_text(vrrp_tree, offset++, 1, "Authentication Type: %u (%s)", vrh.auth_type, + proto_tree_add_text(vrrp_tree, NullTVB, offset++, 1, "Count IP Addrs: %u", vrh.count_ip_addrs); + proto_tree_add_text(vrrp_tree, NullTVB, offset++, 1, "Authentication Type: %u (%s)", vrh.auth_type, val_to_str(vrh.auth_type, vrrp_auth_vals, "Unknown")); - proto_tree_add_text(vrrp_tree, offset++, 1, "Advertisement Interval: %u second%s", + proto_tree_add_text(vrrp_tree, NullTVB, offset++, 1, "Advertisement Interval: %u second%s", vrh.adver_int, plurality(vrh.adver_int, "", "s")); - proto_tree_add_text(vrrp_tree, offset, 2, "Checksum: 0x%x", htons(vrh.checksum)); + proto_tree_add_text(vrrp_tree, NullTVB, offset, 2, "Checksum: 0x%x", htons(vrh.checksum)); offset+=2; if (short_packet) { @@ -162,7 +162,7 @@ dissect_vrrp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) ip_count = vrh.count_ip_addrs; while (ip_count > 0) { - proto_tree_add_text(vrrp_tree, offset, 4, "Virtual Router IP address: %s", + proto_tree_add_text(vrrp_tree, NullTVB, offset, 4, "Virtual Router IP address: %s", ip_to_str(pd+offset)); offset+=4; ip_count--; @@ -175,7 +175,7 @@ dissect_vrrp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) auth_buf[VRRP_AUTH_DATA_LEN] = '\0'; auth_len = strlen(auth_buf); if (auth_len > 0) - proto_tree_add_text(vrrp_tree, offset, auth_len, "Authentication string: `%s'", auth_buf); + proto_tree_add_text(vrrp_tree, NullTVB, offset, auth_len, "Authentication string: `%s'", auth_buf); offset+=8; } diff --git a/packet-vtp.c b/packet-vtp.c index 3374e047e1..9b7751a883 100644 --- a/packet-vtp.c +++ b/packet-vtp.c @@ -1,7 +1,7 @@ /* packet-vtp.c * Routines for the disassembly of Cisco's Virtual Trunking Protocol * - * $Id: packet-vtp.c,v 1.2 2000/03/12 04:47:51 gram Exp $ + * $Id: packet-vtp.c,v 1.3 2000/05/11 08:15:55 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -106,71 +106,71 @@ dissect_vtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_str(fd, COL_INFO, "Virtual Trunking Protocol"); if (tree) { - ti = proto_tree_add_item(tree, proto_vtp, offset, END_OF_FRAME, + ti = proto_tree_add_item(tree, proto_vtp, NullTVB, offset, END_OF_FRAME, NULL); vtp_tree = proto_item_add_subtree(ti, ett_vtp); - proto_tree_add_item(vtp_tree, hf_vtp_version, offset, 1, + proto_tree_add_item(vtp_tree, hf_vtp_version, NullTVB, offset, 1, pd[offset]); offset += 1; code = pd[offset]; - proto_tree_add_item(vtp_tree, hf_vtp_code, offset, 1, + proto_tree_add_item(vtp_tree, hf_vtp_code, NullTVB, offset, 1, code); offset += 1; switch (code) { case SUMMARY_ADVERT: - proto_tree_add_item(vtp_tree, hf_vtp_followers, offset, + proto_tree_add_item(vtp_tree, hf_vtp_followers, NullTVB, offset, 1, pd[offset]); offset += 1; md_len = pd[offset]; - proto_tree_add_item(vtp_tree, hf_vtp_md_len, offset, + proto_tree_add_item(vtp_tree, hf_vtp_md_len, NullTVB, offset, 1, md_len); offset += 1; - proto_tree_add_string_format(vtp_tree, hf_vtp_md, offset, + proto_tree_add_string_format(vtp_tree, hf_vtp_md, NullTVB, offset, 32, &pd[offset], "Management Domain: %.32s", &pd[offset]); offset += 32; - proto_tree_add_item(vtp_tree, hf_vtp_conf_rev_num, + proto_tree_add_item(vtp_tree, hf_vtp_conf_rev_num, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; - proto_tree_add_item(vtp_tree, hf_vtp_upd_id, + proto_tree_add_item(vtp_tree, hf_vtp_upd_id, NullTVB, offset, 4, &pd[offset]); offset += 4; - proto_tree_add_string_format(vtp_tree, hf_vtp_upd_ts, + proto_tree_add_string_format(vtp_tree, hf_vtp_upd_ts, NullTVB, offset, 12, &pd[offset], "Update Timestamp: %.2s-%.2s-%.2s %.2s:%.2s:%.2s", &pd[offset], &pd[offset+2], &pd[offset+4], &pd[offset+6], &pd[offset+8], &pd[offset+10]); offset += 12; - proto_tree_add_item(vtp_tree, hf_vtp_md5_digest, + proto_tree_add_item(vtp_tree, hf_vtp_md5_digest, NullTVB, offset, 16, &pd[offset]); break; case SUBSET_ADVERT: - proto_tree_add_item(vtp_tree, hf_vtp_seq_num, offset, + proto_tree_add_item(vtp_tree, hf_vtp_seq_num, NullTVB, offset, 1, pd[offset]); offset += 1; md_len = pd[offset]; - proto_tree_add_item(vtp_tree, hf_vtp_md_len, offset, + proto_tree_add_item(vtp_tree, hf_vtp_md_len, NullTVB, offset, 1, md_len); offset += 1; - proto_tree_add_string_format(vtp_tree, hf_vtp_md, offset, + proto_tree_add_string_format(vtp_tree, hf_vtp_md, NullTVB, offset, 32, &pd[offset], "Management Domain: %.32s", &pd[offset]); offset += 32; - proto_tree_add_item(vtp_tree, hf_vtp_conf_rev_num, + proto_tree_add_item(vtp_tree, hf_vtp_conf_rev_num, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; @@ -187,11 +187,11 @@ dissect_vtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) offset += 1; /* skip reserved field */ md_len = pd[offset]; - proto_tree_add_item(vtp_tree, hf_vtp_md_len, offset, + proto_tree_add_item(vtp_tree, hf_vtp_md_len, NullTVB, offset, 1, md_len); offset += 1; - proto_tree_add_item(vtp_tree, hf_vtp_start_value, + proto_tree_add_item(vtp_tree, hf_vtp_start_value, NullTVB, offset, 2, pntohs(&pd[offset])); break; @@ -203,18 +203,18 @@ dissect_vtp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) offset += 1; /* skip unknown field */ md_len = pd[offset]; - proto_tree_add_item(vtp_tree, hf_vtp_md_len, offset, + proto_tree_add_item(vtp_tree, hf_vtp_md_len, NullTVB, offset, 1, md_len); offset += 1; - proto_tree_add_string_format(vtp_tree, hf_vtp_md, offset, + proto_tree_add_string_format(vtp_tree, hf_vtp_md, NullTVB, offset, 32, &pd[offset], "Management Domain: %.32s", &pd[offset]); offset += 32; offset += 2; /* skip unknown field */ - proto_tree_add_text(vtp_tree, offset, 2, + proto_tree_add_text(vtp_tree, NullTVB, offset, 2, "VLAN ID of some sort: 0x%04x", pntohs(&pd[offset])); offset += 2; @@ -277,12 +277,12 @@ dissect_vlan_info(const u_char *pd, int offset, proto_tree *tree) if (!BYTES_ARE_IN_FRAME(offset, 1)) return -1; vlan_info_len = pd[offset]; - ti = proto_tree_add_text(tree, offset, vlan_info_len, + ti = proto_tree_add_text(tree, NullTVB, offset, vlan_info_len, "VLAN Information"); vlan_info_tree = proto_item_add_subtree(ti, ett_vtp_vlan_info); vlan_info_left = vlan_info_len; - proto_tree_add_item(vlan_info_tree, hf_vtp_vlan_info_len, offset, 1, + proto_tree_add_item(vlan_info_tree, hf_vtp_vlan_info_len, NullTVB, offset, 1, vlan_info_len); offset += 1; vlan_info_left -= 1; @@ -290,18 +290,18 @@ dissect_vlan_info(const u_char *pd, int offset, proto_tree *tree) if (!BYTES_ARE_IN_FRAME(offset, 1) || vlan_info_left < 1) return -1; status = pd[offset]; - ti = proto_tree_add_text(vlan_info_tree, offset, 1, + ti = proto_tree_add_text(vlan_info_tree, NullTVB, offset, 1, "Status: 0x%02x%s", status, (status & VLAN_SUSPENDED) ? "(VLAN suspended)" : ""); status_tree = proto_item_add_subtree(ti, ett_vtp_vlan_status); - proto_tree_add_item(status_tree, hf_vtp_vlan_status_vlan_susp, offset, 1, + proto_tree_add_item(status_tree, hf_vtp_vlan_status_vlan_susp, NullTVB, offset, 1, status); offset += 1; vlan_info_left -= 1; if (!BYTES_ARE_IN_FRAME(offset, 1) || vlan_info_left < 1) return -1; - proto_tree_add_item(vlan_info_tree, hf_vtp_vlan_type, offset, 1, + proto_tree_add_item(vlan_info_tree, hf_vtp_vlan_type, NullTVB, offset, 1, pd[offset]); offset += 1; vlan_info_left -= 1; @@ -309,28 +309,28 @@ dissect_vlan_info(const u_char *pd, int offset, proto_tree *tree) if (!BYTES_ARE_IN_FRAME(offset, 1) || vlan_info_left < 1) return -1; vlan_name_len = pd[offset]; - proto_tree_add_item(vlan_info_tree, hf_vtp_vlan_name_len, offset, 1, + proto_tree_add_item(vlan_info_tree, hf_vtp_vlan_name_len, NullTVB, offset, 1, vlan_name_len); offset += 1; vlan_info_left -= 1; if (!BYTES_ARE_IN_FRAME(offset, 2) || vlan_info_left < 2) return -1; - proto_tree_add_item(vlan_info_tree, hf_vtp_isl_vlan_id, offset, 2, + proto_tree_add_item(vlan_info_tree, hf_vtp_isl_vlan_id, NullTVB, offset, 2, pntohs(&pd[offset])); offset += 2; vlan_info_left -= 2; if (!BYTES_ARE_IN_FRAME(offset, 2) || vlan_info_left < 2) return -1; - proto_tree_add_item(vlan_info_tree, hf_vtp_mtu_size, offset, 2, + proto_tree_add_item(vlan_info_tree, hf_vtp_mtu_size, NullTVB, offset, 2, pntohs(&pd[offset])); offset += 2; vlan_info_left -= 2; if (!BYTES_ARE_IN_FRAME(offset, 4) || vlan_info_left < 4) return -1; - proto_tree_add_item(vlan_info_tree, hf_vtp_802_10_index, offset, 4, + proto_tree_add_item(vlan_info_tree, hf_vtp_802_10_index, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; vlan_info_left -= 4; @@ -341,7 +341,7 @@ dissect_vlan_info(const u_char *pd, int offset, proto_tree *tree) if (!BYTES_ARE_IN_FRAME(offset, vlan_name_len) || vlan_info_left < vlan_name_len) return -1; - proto_tree_add_string_format(vlan_info_tree, hf_vtp_vlan_name, offset, + proto_tree_add_string_format(vlan_info_tree, hf_vtp_vlan_name, NullTVB, offset, vlan_name_len, &pd[offset], "VLAN Name: %.*s", vlan_name_len, &pd[offset]); offset += vlan_name_len; @@ -353,12 +353,12 @@ dissect_vlan_info(const u_char *pd, int offset, proto_tree *tree) type_str = val_to_str(type, vlan_tlv_type_vals, "Unknown (0x%04x)"); - ti = proto_tree_add_notext(vlan_info_tree, offset, + ti = proto_tree_add_notext(vlan_info_tree, NullTVB, offset, 2 + length*2); tlv_tree = proto_item_add_subtree(ti, ett_vtp_tlv); - proto_tree_add_item(tlv_tree, hf_vtp_vlan_tlvtype, offset, + proto_tree_add_item(tlv_tree, hf_vtp_vlan_tlvtype, NullTVB, offset, 1, type); - proto_tree_add_item(tlv_tree, hf_vtp_vlan_tlvlength, offset+1, + proto_tree_add_item(tlv_tree, hf_vtp_vlan_tlvlength, NullTVB, offset+1, 1, length); offset += 2; vlan_info_left -= 2; @@ -409,14 +409,14 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Source-Routing Ring Number: 0x%04x", pntohs(&pd[offset])); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Source-Routing Ring Number: 0x%04x", pntohs(&pd[offset])); } else { proto_item_set_text(ti, "Source-Routing Ring Number: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Source-Routing Ring Number: Bad length %u", length); } @@ -427,14 +427,14 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Source-Routing Bridge Number: 0x%04x", pntohs(&pd[offset])); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Source-Routing Bridge Number: 0x%04x", pntohs(&pd[offset])); } else { proto_item_set_text(ti, "Source-Routing Bridge Number: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Source-Routing Bridge Number: Bad length %u", length); } @@ -446,7 +446,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, "Spanning-Tree Protocol Type: %s", val_to_str(pntohs(&pd[offset]), stp_type_vals, "Unknown (0x%04x)")); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Spanning-Tree Protocol Type: %s", val_to_str(pntohs(&pd[offset]), stp_type_vals, "Unknown (0x%04x)")); @@ -454,7 +454,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Spanning-Tree Protocol Type: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Spanning-Tree Protocol Type: Bad length %u", length); } @@ -465,14 +465,14 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Parent VLAN: 0x%04x", pntohs(&pd[offset])); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Parent VLAN: 0x%04x", pntohs(&pd[offset])); } else { proto_item_set_text(ti, "Parent VLAN: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Parent VLAN: Bad length %u", length); } @@ -483,14 +483,14 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Translationally Bridged VLANs: 0x%04x", pntohs(&pd[offset])); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Translationally Bridged VLANs: 0x%04x", pntohs(&pd[offset])); } else { proto_item_set_text(ti, "Translationally Bridged VLANs: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Translationally Bridged VLANs: Bad length %u", length); } @@ -502,7 +502,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, "Pruning: %s", val_to_str(pntohs(&pd[offset]), pruning_vals, "Unknown (0x%04x)")); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Pruning: %s", val_to_str(pntohs(&pd[offset]), pruning_vals, "Unknown (0x%04x)")); @@ -510,7 +510,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Pruning: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Pruning: Bad length %u", length); } @@ -522,7 +522,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, "Bridge Type: %s", val_to_str(pntohs(&pd[offset]), bridge_type_vals, "Unknown (0x%04x)")); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Bridge Type: %s", val_to_str(pntohs(&pd[offset]), bridge_type_vals, "Unknown (0x%04x)")); @@ -530,7 +530,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Bridge Type: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Bridge Type: Bad length %u", length); } @@ -541,14 +541,14 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Max ARE Hop Count: %u", pntohs(&pd[offset])); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Max ARE Hop Count: %u", pntohs(&pd[offset])); } else { proto_item_set_text(ti, "Max ARE Hop Count: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Max ARE Hop Count: Bad length %u", length); } @@ -559,14 +559,14 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Max STE Hop Count: %u", pntohs(&pd[offset])); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Max STE Hop Count: %u", pntohs(&pd[offset])); } else { proto_item_set_text(ti, "Max STE Hop Count: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Max STE Hop Count: Bad length %u", length); } @@ -578,7 +578,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, "Backup CRF Mode: %s", val_to_str(pntohs(&pd[offset]), backup_crf_mode_vals, "Unknown (0x%04x)")); - proto_tree_add_text(tree, offset, 2, + proto_tree_add_text(tree, NullTVB, offset, 2, "Backup CRF Mode: %s", val_to_str(pntohs(&pd[offset]), backup_crf_mode_vals, "Unknown (0x%04x)")); @@ -586,7 +586,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, proto_item_set_text(ti, "Backup CRF Mode: Bad length %u", length); - proto_tree_add_text(tree, offset, length, + proto_tree_add_text(tree, NullTVB, offset, length, "Backup CRF Mode: Bad length %u", length); } @@ -594,7 +594,7 @@ dissect_vlan_info_tlv(const u_char *pd, int offset, int length, default: proto_item_set_text(ti, "Unknown TLV type: 0x%02x", type); - proto_tree_add_text(tree, offset, length, "Data"); + proto_tree_add_text(tree, NullTVB, offset, length, "Data"); break; } } diff --git a/packet-wccp.c b/packet-wccp.c index ca4a99e573..9756d8a4d1 100644 --- a/packet-wccp.c +++ b/packet-wccp.c @@ -2,7 +2,7 @@ * Routines for Web Cache Coordination Protocol dissection * Jerry Talkington * - * $Id: packet-wccp.c,v 1.6 2000/04/08 07:07:41 guy Exp $ + * $Id: packet-wccp.c,v 1.7 2000/05/11 08:15:55 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -114,11 +114,11 @@ dissect_wccp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if(tree != NULL) { - wccp_tree_item = proto_tree_add_item(tree, proto_wccp, offset, + wccp_tree_item = proto_tree_add_item(tree, proto_wccp, NullTVB, offset, END_OF_FRAME, NULL); wccp_tree = proto_item_add_subtree(wccp_tree_item, ett_wccp); - proto_tree_add_item(wccp_tree, hf_wccp_message_type, offset, + proto_tree_add_item(wccp_tree, hf_wccp_message_type, NullTVB, offset, sizeof(wccp_message_type), wccp_message_type); offset += sizeof(wccp_message_type); @@ -126,29 +126,29 @@ dissect_wccp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) case WCCP_HERE_I_AM: wccp_version = pntohl(&pd[offset]); - proto_tree_add_item(wccp_tree, hf_wccp_version, + proto_tree_add_item(wccp_tree, hf_wccp_version, NullTVB, offset, 4, wccp_version); offset += 4; dissect_hash_data(pd, offset, wccp_tree); offset += HASH_INFO_SIZE; - proto_tree_add_item(wccp_tree, hf_recvd_id, offset, + proto_tree_add_item(wccp_tree, hf_recvd_id, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; break; case WCCP_I_SEE_YOU: wccp_version = pntohl(&pd[offset]); - proto_tree_add_item(wccp_tree, hf_wccp_version, + proto_tree_add_item(wccp_tree, hf_wccp_version, NullTVB, offset, 4, wccp_version); offset += 4; - proto_tree_add_item(wccp_tree, hf_change_num, offset, + proto_tree_add_item(wccp_tree, hf_change_num, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; - proto_tree_add_item(wccp_tree, hf_recvd_id, offset, + proto_tree_add_item(wccp_tree, hf_recvd_id, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; cache_count = pntohl(&pd[offset]); - proto_tree_add_text(wccp_tree, offset, 4, + proto_tree_add_text(wccp_tree, NullTVB, offset, 4, "Number of Web Caches: %u", cache_count); offset += 4; for (i = 0; i < cache_count; i++) { @@ -163,23 +163,23 @@ dissect_wccp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) * This hasn't been tested, since I don't have any * traces with this in it. */ - proto_tree_add_item(wccp_tree, hf_recvd_id, offset, + proto_tree_add_item(wccp_tree, hf_recvd_id, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; cache_count = pntohl(&pd[offset]); - proto_tree_add_text(wccp_tree, offset, 4, + proto_tree_add_text(wccp_tree, NullTVB, offset, 4, "Number of Web Caches: %u", cache_count); offset += 4; for (i = 0; i < cache_count; i++) { proto_tree_add_ipv4_format(wccp_tree, - hf_cache_ip, offset, 4, + hf_cache_ip, NullTVB, offset, 4, pntohl(&pd[offset]), "Web Cache %d IP Address: %s", i, ip_to_str((guint8 *) &pd[offset])); offset += 4; } for (i = 0; i < 256; i += 4) { - proto_tree_add_text(wccp_tree, offset, 4, + proto_tree_add_text(wccp_tree, NullTVB, offset, 4, "Buckets %d - %d: %10s %10s %10s %10s", i, i + 3, bucket_name(pd[offset]), @@ -192,7 +192,7 @@ dissect_wccp(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) default: wccp_version = pntohl(&pd[offset]); - proto_tree_add_item(wccp_tree, hf_wccp_version, + proto_tree_add_item(wccp_tree, hf_wccp_version, NullTVB, offset, 4, wccp_version); offset += 4; dissect_data(pd, offset, fd, wccp_tree); @@ -213,11 +213,11 @@ dissect_hash_data(const u_char *pd, int offset, proto_tree *wccp_tree) int n; guint32 flags; - proto_tree_add_item(wccp_tree, hf_hash_revision, offset, 4, + proto_tree_add_item(wccp_tree, hf_hash_revision, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; - bucket_item = proto_tree_add_text(wccp_tree, offset, 32, + bucket_item = proto_tree_add_text(wccp_tree, NullTVB, offset, 32, "Hash information"); bucket_tree = proto_item_add_subtree(bucket_item, ett_buckets); @@ -227,13 +227,13 @@ dissect_hash_data(const u_char *pd, int offset, proto_tree *wccp_tree) offset += 1; } flags = pntohl(&pd[offset]); - tf = proto_tree_add_text(wccp_tree, offset, 4, + tf = proto_tree_add_text(wccp_tree, NullTVB, offset, 4, "Flags: 0x%08X (%s)", flags, ((flags & WCCP_U_FLAG) ? "Hash information is historical" : "Hash information is current")); field_tree = proto_item_add_subtree(tf, ett_flags); - proto_tree_add_text(field_tree, offset, 4, "%s", + proto_tree_add_text(field_tree, NullTVB, offset, 4, "%s", decode_boolean_bitfield(flags, WCCP_U_FLAG, sizeof (flags)*8, "Hash information is historical", @@ -247,11 +247,11 @@ dissect_web_cache_list_entry(const u_char *pd, int offset, int index, proto_item *tl; proto_tree *list_entry_tree; - tl = proto_tree_add_text(wccp_tree, offset, 4 + HASH_INFO_SIZE, + tl = proto_tree_add_text(wccp_tree, NullTVB, offset, 4 + HASH_INFO_SIZE, "Web-Cache List Entry(%d)", index); list_entry_tree = proto_item_add_subtree(tl, ett_cache_info); - proto_tree_add_item(list_entry_tree, hf_cache_ip, offset, 4, + proto_tree_add_item(list_entry_tree, hf_cache_ip, NullTVB, offset, 4, pntohl(&pd[offset])); dissect_hash_data(pd, offset + 4, list_entry_tree); } @@ -268,7 +268,7 @@ wccp_bucket_info(guint8 bucket_info, proto_tree *bucket_tree, guint32 start, guint32 i; for(i = 0; i < 8; i++) { - proto_tree_add_text(bucket_tree, offset, sizeof(bucket_info), "Bucket %3d: %s", start, (bucket_info & 1< * - * $Id: packet-who.c,v 1.5 2000/04/08 07:07:41 guy Exp $ + * $Id: packet-who.c,v 1.6 2000/05/11 08:15:56 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -137,41 +137,41 @@ dissect_who(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) /* We already know that the packet has enough data to fill in * the summary info. Retrieve that data */ - who_ti = proto_tree_add_item(tree, proto_who, offset, END_OF_FRAME, NULL); + who_ti = proto_tree_add_item(tree, proto_who, NullTVB, offset, END_OF_FRAME, NULL); who_tree = proto_item_add_subtree(who_ti, ett_who); - proto_tree_add_item(who_tree, hf_who_vers, offset, 1, pd[offset]); + proto_tree_add_item(who_tree, hf_who_vers, NullTVB, offset, 1, pd[offset]); offset += 1; - proto_tree_add_item(who_tree, hf_who_type, offset, 1, pd[offset]); + proto_tree_add_item(who_tree, hf_who_type, NullTVB, offset, 1, pd[offset]); offset += 1; /* 2 filler bytes */ offset += 2; tv.tv_sec = pntohl(&pd[offset]); - proto_tree_add_item(who_tree, hf_who_sendtime, offset, 4, &tv); + proto_tree_add_item(who_tree, hf_who_sendtime, NullTVB, offset, 4, &tv); offset += 4; tv.tv_sec = pntohl(&pd[offset]); - proto_tree_add_item(who_tree, hf_who_recvtime, offset, 4, &tv); + proto_tree_add_item(who_tree, hf_who_recvtime, NullTVB, offset, 4, &tv); offset += 4; - proto_tree_add_item(who_tree, hf_who_hostname, offset, 32, server_name); + proto_tree_add_item(who_tree, hf_who_hostname, NullTVB, offset, 32, server_name); offset += 32; - proto_tree_add_item(who_tree, hf_who_loadav_5, offset, 4, loadav_5); + proto_tree_add_item(who_tree, hf_who_loadav_5, NullTVB, offset, 4, loadav_5); offset += 4; - proto_tree_add_item(who_tree, hf_who_loadav_10, offset, 4, loadav_10); + proto_tree_add_item(who_tree, hf_who_loadav_10, NullTVB, offset, 4, loadav_10); offset += 4; - proto_tree_add_item(who_tree, hf_who_loadav_15, offset, 4, loadav_15); + proto_tree_add_item(who_tree, hf_who_loadav_15, NullTVB, offset, 4, loadav_15); offset += 4; tv.tv_sec = pntohl(&pd[offset]); - proto_tree_add_item(who_tree, hf_who_boottime, offset, 4, &tv); + proto_tree_add_item(who_tree, hf_who_boottime, NullTVB, offset, 4, &tv); offset += 4; dissect_whoent(pd, offset, fd, who_tree); @@ -203,21 +203,21 @@ dissect_whoent(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) memcpy(out_line, &pd[line_offset], 8); memcpy(out_name, &pd[line_offset+8], 8); - whoent_ti = proto_tree_add_item(tree, hf_who_whoent, line_offset, SIZE_OF_WHOENT, NULL); + whoent_ti = proto_tree_add_item(tree, hf_who_whoent, NullTVB, line_offset, SIZE_OF_WHOENT, NULL); whoent_tree = proto_item_add_subtree(whoent_ti, ett_whoent); - proto_tree_add_item(whoent_tree, hf_who_tty, line_offset, 8, out_line); + proto_tree_add_item(whoent_tree, hf_who_tty, NullTVB, line_offset, 8, out_line); line_offset += 8; - proto_tree_add_item(whoent_tree, hf_who_uid, line_offset, 8, out_name); + proto_tree_add_item(whoent_tree, hf_who_uid, NullTVB, line_offset, 8, out_name); line_offset += 8; tv.tv_sec = pntohl(&pd[line_offset]); - proto_tree_add_item(whoent_tree, hf_who_timeon, line_offset, 4, &tv); + proto_tree_add_item(whoent_tree, hf_who_timeon, NullTVB, line_offset, 4, &tv); line_offset += 4; idle_secs = pntohl(&pd[line_offset]); - proto_tree_add_uint_format(whoent_tree, hf_who_idle, line_offset, 4, idle_secs, + proto_tree_add_uint_format(whoent_tree, hf_who_idle, NullTVB, line_offset, 4, idle_secs, "Idle: %s", time_secs_to_str(idle_secs)); line_offset += 4; diff --git a/packet-x25.c b/packet-x25.c index e6977c2c60..59aa8f52e9 100644 --- a/packet-x25.c +++ b/packet-x25.c @@ -2,7 +2,7 @@ * Routines for x25 packet disassembly * Olivier Abad * - * $Id: packet-x25.c,v 1.24 2000/04/15 22:11:12 guy Exp $ + * $Id: packet-x25.c,v 1.25 2000/05/11 08:15:56 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -631,10 +631,10 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) len = *ptr++; if (len && tree) { - ti = proto_tree_add_text(tree, *offset, len + 1, + ti = proto_tree_add_text(tree, NullTVB, *offset, len + 1, "Facilities"); fac_tree = proto_item_add_subtree(ti, ett_x25_fac); - proto_tree_add_text(fac_tree, *offset, 1, + proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Facilities length: %d", len); } (*offset)++; @@ -645,13 +645,13 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) switch (*ptr) { case X25_FAC_COMP_MARK: if (fac_tree) - ti = proto_tree_add_text(fac_tree, *offset, 1, + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : 00 (Marker)"); switch (ptr[1]) { case 0x00: if (fac_tree) { fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_mark); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter : 00 (Network complementary " "services - calling DTE)"); } @@ -659,7 +659,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) case 0xFF: if (fac_tree) { fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_mark); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter : FF (Network complementary " "services - called DTE)"); } @@ -667,7 +667,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) case 0x0F: if (fac_tree) { fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_mark); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter : 0F (DTE complementary " "services)"); } @@ -675,7 +675,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) default: if (fac_tree) { fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_mark); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter : %02X (Unknown marker)", ptr[1]); } @@ -684,21 +684,21 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) break; case X25_FAC_REVERSE: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Reverse charging / Fast select)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_reverse); - proto_tree_add_text(fac_subtree, *offset+1, 1, "Parameter : %02X", + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter : %02X", ptr[1]); if (ptr[1] & 0xC0) - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "11.. .... = Fast select with restriction"); else if (ptr[1] & 0x80) - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "10.. .... = Fast select - no restriction"); else - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "00.. .... = Fast select not requested"); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, decode_boolean_bitfield(ptr[1], 0x01, 1*8, "Reverse charging requested", "Reverse charging not requested")); @@ -708,7 +708,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) if (fac_tree) { char tmpbuf[80]; - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Throughput class negociation)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_throughput); switch (ptr[1] >> 4) @@ -734,7 +734,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) default: sprintf(tmpbuf, "From the called DTE : %%u (Reserved)"); } - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, decode_numeric_bitfield(ptr[1], 0xF0, 1*8, tmpbuf)); switch (ptr[1] & 0x0F) { @@ -759,66 +759,66 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) default: sprintf(tmpbuf, "From the calling DTE : %%u (Reserved)"); } - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, decode_numeric_bitfield(ptr[1], 0x0F, 1*8, tmpbuf)); } break; case X25_FAC_CUG: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Closed user group selection)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_cug); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Closed user group: %02X", ptr[1]); } break; case X25_FAC_CALLED_MODIF: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Called address modified)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_called_modif); - proto_tree_add_text(fac_tree, *offset, 2, + proto_tree_add_text(fac_tree, NullTVB, *offset, 2, "Parameter %02X", ptr[1]); } break; case X25_FAC_CUG_OUTGOING_ACC: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Closed user group with outgoing access selection)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_cug_outgoing_acc); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Closed user group: %02X", ptr[1]); } break; case X25_FAC_THROUGHPUT_MIN: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Minimum throughput class)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_throughput_min); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter %02X", ptr[1]); } break; case X25_FAC_EXPRESS_DATA: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Negociation of express data)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_express_data); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter %02X", ptr[1]); } break; default: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X (Unknown class A)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_unknown); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Parameter %02X", ptr[1]); } break; @@ -831,11 +831,11 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) switch (*ptr) { case X25_FAC_BILATERAL_CUG: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Bilateral closed user group selection)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_bilateral_cug); - proto_tree_add_text(fac_subtree, *offset+1, 2, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 2, "Bilateral CUG: %02X%02X", ptr[1], ptr[2]); } @@ -845,7 +845,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) { char tmpbuf[80]; - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Packet size)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_packet_size); switch (ptr[1]) @@ -881,7 +881,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) sprintf(tmpbuf, "From the called DTE : %%u (Unknown)"); break; } - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, decode_numeric_bitfield(ptr[1], 0x0F, 1*8, tmpbuf)); switch (ptr[2]) @@ -917,51 +917,51 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) sprintf(tmpbuf, "From the calling DTE : %%u (Unknown)"); break; } - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, decode_numeric_bitfield(ptr[2], 0x0F, 1*8, tmpbuf)); } break; case X25_FAC_WINDOW_SIZE: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Window size)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_window_size); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, decode_numeric_bitfield(ptr[1], 0x7F, 1*8, "From the called DTE: %u")); - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, decode_numeric_bitfield(ptr[2], 0x7F, 1*8, "From the calling DTE: %u")); } break; case X25_FAC_RPOA_SELECTION: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(RPOA selection)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_rpoa_selection); - proto_tree_add_text(fac_subtree, *offset+1, 2, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 2, "Data network identification code : %02X%02X", ptr[1], ptr[2]); } break; case X25_FAC_TRANSIT_DELAY: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Transit delay selection and indication)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_transit_delay); - proto_tree_add_text(fac_subtree, *offset+1, 2, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 2, "Transit delay: %d ms", (ptr[1]<<8) + ptr[2]); } break; default: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X (Unknown class B)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_unknown); - proto_tree_add_text(fac_subtree, *offset+1, 2, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 2, "Parameter %02X%02X", ptr[1], ptr[2]); } break; @@ -972,10 +972,10 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) break; case X25_FAC_CLASS_C: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X (Unknown class C)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_unknown); - proto_tree_add_text(fac_subtree, *offset+1, 3, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 3, "Parameter %02X%02X%02X", ptr[1], ptr[2], ptr[3]); } @@ -990,41 +990,41 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) int i; char tmpbuf[256]; - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Call redirection or deflection notification)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_call_transfer); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Length : %u", ptr[1]); if ((ptr[2] & 0xC0) == 0xC0) { - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : call deflection by the originally " "called DTE address"); } else { switch (ptr[2]) { case 0x01: - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : originally called DTE busy"); break; case 0x07: - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : call dist. within a hunt group"); break; case 0x09: - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : originally called DTE out of order"); break; case 0x0F: - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : systematic call redirection"); break; default: - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : unknown"); break; } } - proto_tree_add_text(fac_subtree, *offset+3, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+3, 1, "Number of semi-octets in DTE address : %u", ptr[3]); for (i = 0; i < ptr[3]; i++) { if (i % 2 == 0) { @@ -1038,7 +1038,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) } } tmpbuf[i] = 0; - proto_tree_add_text(fac_subtree, *offset+4, ptr[1] - 2, + proto_tree_add_text(fac_subtree, NullTVB, *offset+4, ptr[1] - 2, "DTE address : %s", tmpbuf); } break; @@ -1047,13 +1047,13 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) int i; char tmpbuf[256]; - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Calling address extension)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_calling_addr_ext); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Length : %u", ptr[1]); - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Number of semi-octets in DTE address : %u", ptr[2]); for (i = 0; i < ptr[2]; i++) { if (i % 2 == 0) { @@ -1067,7 +1067,7 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) } } tmpbuf[i] = 0; - proto_tree_add_text(fac_subtree, *offset+3, ptr[1] - 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+3, ptr[1] - 1, "DTE address : %s", tmpbuf); } break; @@ -1076,13 +1076,13 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) int i; char tmpbuf[256]; - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Called address extension)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_called_addr_ext); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Length : %u", ptr[1]); - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Number of semi-octets in DTE address : %u", ptr[2]); for (i = 0; i < ptr[2]; i++) { if (i % 2 == 0) { @@ -1096,19 +1096,19 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) } } tmpbuf[i] = 0; - proto_tree_add_text(fac_subtree, *offset+3, ptr[1] - 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+3, ptr[1] - 1, "DTE address : %s", tmpbuf); } break; case X25_FAC_ETE_TRANSIT_DELAY: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(End to end transit delay)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_ete_transit_delay); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Length : %u", ptr[1]); - proto_tree_add_text(fac_subtree, *offset+2, ptr[1], "Value"); + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, ptr[1], "Value"); } break; case X25_FAC_CALL_DEFLECT: @@ -1116,19 +1116,19 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) int i; char tmpbuf[256]; - ti = proto_tree_add_text(fac_tree, *offset, 1, "Code : %02X " + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X " "(Call deflection selection)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_call_deflect); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Length : %u", ptr[1]); if ((ptr[2] & 0xC0) == 0xC0) - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : call DTE originated"); else - proto_tree_add_text(fac_subtree, *offset+2, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, 1, "Reason : unknown"); - proto_tree_add_text(fac_subtree, *offset+3, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+3, 1, "Number of semi-octets in the alternative DTE address : %u", ptr[3]); for (i = 0; i < ptr[3]; i++) { @@ -1143,28 +1143,28 @@ dump_facilities(proto_tree *tree, int *offset, const guint8 *p) } } tmpbuf[i] = 0; - proto_tree_add_text(fac_subtree, *offset+4, ptr[1] - 2, + proto_tree_add_text(fac_subtree, NullTVB, *offset+4, ptr[1] - 2, "Alternative DTE address : %s", tmpbuf); } break; case X25_FAC_PRIORITY: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X (Priority)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_priority); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Length : %u", ptr[1]); - proto_tree_add_text(fac_subtree, *offset+2, ptr[1], "Value"); + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, ptr[1], "Value"); } break; default: if (fac_tree) { - ti = proto_tree_add_text(fac_tree, *offset, 1, + ti = proto_tree_add_text(fac_tree, NullTVB, *offset, 1, "Code : %02X (Unknown class D)", *ptr); fac_subtree = proto_item_add_subtree(ti, ett_x25_fac_unknown); - proto_tree_add_text(fac_subtree, *offset+1, 1, + proto_tree_add_text(fac_subtree, NullTVB, *offset+1, 1, "Length : %u", ptr[1]); - proto_tree_add_text(fac_subtree, *offset+2, ptr[1], "Value"); + proto_tree_add_text(fac_subtree, NullTVB, *offset+2, ptr[1], "Value"); } } (*offset) += ptr[1]+2; @@ -1187,11 +1187,11 @@ x25_ntoa(proto_tree *tree, int *offset, const guint8 *p, len1 = (*p >> 4) & 0x0F; len2 = (*p >> 0) & 0x0F; if (tree) { - proto_tree_add_text(tree, *offset, 1, + proto_tree_add_text(tree, NullTVB, *offset, 1, decode_numeric_bitfield(*p, 0xF0, 1*8, toa ? "Called address length : %u" : "Calling address length : %u")); - proto_tree_add_text(tree, *offset, 1, + proto_tree_add_text(tree, NullTVB, *offset, 1, decode_numeric_bitfield(*p, 0x0F, 1*8, toa ? "Calling address length : %u" : "Called address length : %u")); @@ -1233,7 +1233,7 @@ x25_ntoa(proto_tree *tree, int *offset, const guint8 *p, col_add_str(fd, COL_RES_DL_SRC, addr1); } if (tree) - proto_tree_add_text(tree, *offset, + proto_tree_add_text(tree, NullTVB, *offset, (len1 + 1) / 2, "%s address : %s", toa ? "Called" : "Calling", @@ -1249,7 +1249,7 @@ x25_ntoa(proto_tree *tree, int *offset, const guint8 *p, col_add_str(fd, COL_RES_DL_DST, addr2); } if (tree) - proto_tree_add_text(tree, *offset + len1/2, + proto_tree_add_text(tree, NullTVB, *offset + len1/2, (len2+1)/2+(len1%2+(len2+1)%2)/2, "%s address : %s", toa ? "Calling" : "Called", @@ -1389,23 +1389,23 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, "Invalid/short X.25 packet"); if (tree) - proto_tree_add_protocol_format(tree, (modulo == 8 ? proto_x25 : proto_ex25), + proto_tree_add_protocol_format(tree, (modulo == 8 ? proto_x25 : proto_ex25), NullTVB, localoffset, END_OF_FRAME, "Invalid/short X.25 packet"); return; } vc = (int)(pd[localoffset] & 0x0F)*256 + (int)pd[localoffset+1]; if (tree) { - ti = proto_tree_add_item(tree, (modulo == 8) ? proto_x25 : proto_ex25, + ti = proto_tree_add_item(tree, (modulo == 8) ? proto_x25 : proto_ex25, NullTVB, localoffset, x25_pkt_len, NULL); x25_tree = proto_item_add_subtree(ti, ett_x25); if (pd[localoffset] & 0x80) - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_qbit : hf_ex25_qbit, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_qbit : hf_ex25_qbit, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); if (pd[localoffset] & 0x40) - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_dbit : hf_ex25_dbit, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_dbit : hf_ex25_dbit, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_mod : hf_ex25_mod, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_mod : hf_ex25_mod, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); } switch (pd[localoffset+2]) { @@ -1416,11 +1416,11 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) : "Call req." , vc); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); proto_tree_add_uint_format(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, - localoffset+2, 1, X25_CALL_REQUEST, + NullTVB, localoffset+2, 1, X25_CALL_REQUEST, (fd->pseudo_header.x25.flags & FROM_DCE) ? "Incoming call" : "Call request"); } @@ -1447,7 +1447,7 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) x25_hash_add_proto_start(vc, fd->abs_secs, fd->abs_usecs, dissect_ip); if (x25_tree) - proto_tree_add_text(x25_tree, localoffset, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset, 1, "X.224 secondary protocol ID: IP"); localoffset++; break; @@ -1479,16 +1479,16 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) field is 0x01. */ prt_id = pd[localoffset+2]; if (x25_tree) { - proto_tree_add_text(x25_tree, localoffset, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset, 1, "X.264 length indicator: %u", pd[localoffset]); - proto_tree_add_text(x25_tree, localoffset+1, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+1, 1, "X.264 UN TPDU identifier: 0x%02X", pd[localoffset+1]); - proto_tree_add_text(x25_tree, localoffset+2, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+2, 1, "X.264 protocol identifier: %s", val_to_str(prt_id, prt_id_vals, "Unknown (0x%02X)")); - proto_tree_add_text(x25_tree, localoffset+3, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+3, 1, "X.264 sharing strategy: %s", val_to_str(pd[localoffset+3], sharing_strategy_vals, "Unknown (0x%02X)")); } @@ -1513,7 +1513,7 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) unknown: if (x25_tree) { if (IS_DATA_IN_FRAME(localoffset)) - proto_tree_add_text(x25_tree, localoffset, + proto_tree_add_text(x25_tree, NullTVB, localoffset, pi.captured_len-localoffset, "Data"); } localoffset = pi.captured_len; @@ -1528,11 +1528,11 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) : "Call acc." , vc); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); proto_tree_add_uint_format(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, - localoffset+2, 1, X25_CALL_ACCEPTED, + NullTVB, localoffset+2, 1, X25_CALL_ACCEPTED, (fd->pseudo_header.x25.flags & FROM_DCE) ? "Call connected" : "Call accepted"); } @@ -1545,7 +1545,7 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (IS_DATA_IN_FRAME(localoffset)) { /* user data */ if (x25_tree) - proto_tree_add_text(x25_tree, localoffset, + proto_tree_add_text(x25_tree, NullTVB, localoffset, pi.captured_len-localoffset, "Data"); localoffset=pi.captured_len; } @@ -1560,18 +1560,18 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } x25_hash_add_proto_end(vc, fd->abs_secs, fd->abs_usecs); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); proto_tree_add_uint_format(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, - localoffset+2, 1, X25_CLEAR_REQUEST, + NullTVB, localoffset+2, 1, X25_CLEAR_REQUEST, (fd->pseudo_header.x25.flags & FROM_DCE) ? "Clear indication" : "Clear request"); if (localoffset+3 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+3, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+3, 1, "Cause : %s", clear_code(pd[localoffset+3])); if (localoffset+4 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+4, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+4, 1, "Diagnostic : %s", clear_diag(pd[localoffset+4])); } @@ -1581,9 +1581,9 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if(check_col(fd, COL_INFO)) col_add_fstr(fd, COL_INFO, "Clear Conf. VC:%d", vc); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_CLEAR_CONFIRMATION); } localoffset += x25_pkt_len; @@ -1599,10 +1599,10 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) col_add_fstr(fd, COL_INFO, "Diag. %d", (int)pd[localoffset+3]); } if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_DIAGNOSTIC); if (localoffset+3 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+3, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+3, 1, "Diagnostic : %d", (int)pd[localoffset+3]); } localoffset += x25_pkt_len; @@ -1611,9 +1611,9 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if(check_col(fd, COL_INFO)) col_add_fstr(fd, COL_INFO, "Interrupt VC:%d", vc); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_INTERRUPT); } localoffset += x25_pkt_len; @@ -1622,9 +1622,9 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if(check_col(fd, COL_INFO)) col_add_fstr(fd, COL_INFO, "Interrupt Conf. VC:%d", vc); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_INTERRUPT_CONFIRMATION); } localoffset += x25_pkt_len; @@ -1639,18 +1639,18 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } x25_hash_add_proto_end(vc, fd->abs_secs, fd->abs_usecs); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); proto_tree_add_uint_format(x25_tree, - (modulo == 8) ? hf_x25_type : hf_ex25_type, localoffset+2, 1, + (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_RESET_REQUEST, (fd->pseudo_header.x25.flags & FROM_DCE) ? "Reset indication" : "Reset request"); if (localoffset+3 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+3, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+3, 1, "Cause : %s", reset_code(pd[localoffset+3])); if (localoffset+4 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+4, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+4, 1, "Diagnostic : %d", (int)pd[localoffset+4]); } localoffset += x25_pkt_len; @@ -1659,9 +1659,9 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if(check_col(fd, COL_INFO)) col_add_fstr(fd, COL_INFO, "Reset conf. VC:%d", vc); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset, 2, pd[localoffset]*256+pd[localoffset+1]); - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_RESET_CONFIRMATION); } localoffset += x25_pkt_len; @@ -1676,15 +1676,15 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (x25_tree) { proto_tree_add_uint_format(x25_tree, - (modulo == 8) ? hf_x25_type : hf_ex25_type, localoffset+2, 1, + (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_RESTART_REQUEST, (fd->pseudo_header.x25.flags & FROM_DCE) ? "Restart indication" : "Restart request"); if (localoffset+3 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+3, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+3, 1, "Cause : %s", restart_code(pd[localoffset+3])); if (localoffset+4 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+4, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+4, 1, "Diagnostic : %d", (int)pd[localoffset+4]); } localoffset += x25_pkt_len; @@ -1693,7 +1693,7 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if(check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, "Restart conf."); if (x25_tree) - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_RESTART_CONFIRMATION); localoffset += x25_pkt_len; break; @@ -1701,7 +1701,7 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if(check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, "Registration req."); if (x25_tree) - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_REGISTRATION_REQUEST); localoffset += 3; if (localoffset < x25_pkt_len+offset) @@ -1709,10 +1709,10 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (x25_tree) { if (localoffset < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset, 1, "Registration length: %d", pd[localoffset] & 0x7F); if (localoffset+1 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+1, pd[localoffset] & 0x7F, "Registration"); } localoffset = pi.captured_len; @@ -1721,13 +1721,13 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if(check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, "Registration conf."); if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_type : hf_ex25_type, NullTVB, localoffset+2, 1, X25_REGISTRATION_CONFIRMATION); if (localoffset+3 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+3, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+3, 1, "Cause: %s", registration_code(pd[localoffset+3])); if (localoffset+4 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+4, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+4, 1, "Diagnostic: %s", registration_code(pd[localoffset+4])); } localoffset += 5; @@ -1736,10 +1736,10 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) if (x25_tree) { if (localoffset < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset, 1, "Registration length: %d", pd[localoffset] & 0x7F); if (localoffset+1 < x25_pkt_len+offset) - proto_tree_add_text(x25_tree, localoffset+1, + proto_tree_add_text(x25_tree, NullTVB, localoffset+1, pd[localoffset] & 0x7F, "Registration"); } localoffset = pi.captured_len; @@ -1763,31 +1763,31 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) (pd[localoffset+1] & 0x01) ? " M" : ""); } if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset-2, 2, pd[localoffset-2]*256+pd[localoffset-1]); if (modulo == 8) { - proto_tree_add_item_hidden(x25_tree, hf_x25_type, localoffset, 1, + proto_tree_add_item_hidden(x25_tree, hf_x25_type, NullTVB, localoffset, 1, X25_DATA); - proto_tree_add_item(x25_tree, hf_x25_p_r, localoffset, 1, + proto_tree_add_item(x25_tree, hf_x25_p_r, NullTVB, localoffset, 1, pd[localoffset]); if (pd[localoffset] & 0x10) - proto_tree_add_item(x25_tree, hf_x25_mbit, localoffset, 1, + proto_tree_add_item(x25_tree, hf_x25_mbit, NullTVB, localoffset, 1, pd[localoffset]); - proto_tree_add_item(x25_tree, hf_x25_p_s, localoffset, 1, + proto_tree_add_item(x25_tree, hf_x25_p_s, NullTVB, localoffset, 1, pd[localoffset]); - proto_tree_add_text(x25_tree, localoffset, 1, + proto_tree_add_text(x25_tree, NullTVB, localoffset, 1, decode_boolean_bitfield(pd[localoffset], 0x01, 1*8, NULL, "DATA")); } else { - proto_tree_add_item_hidden(x25_tree, hf_ex25_type, localoffset, 1, + proto_tree_add_item_hidden(x25_tree, hf_ex25_type, NullTVB, localoffset, 1, X25_DATA); - proto_tree_add_item(x25_tree, hf_x25_p_r, localoffset, 1, + proto_tree_add_item(x25_tree, hf_x25_p_r, NullTVB, localoffset, 1, pd[localoffset]); - proto_tree_add_item(x25_tree, hf_x25_p_s, localoffset+1, 1, + proto_tree_add_item(x25_tree, hf_x25_p_s, NullTVB, localoffset+1, 1, pd[localoffset+1]); if (pd[localoffset+1] & 0x01) - proto_tree_add_item(x25_tree, hf_ex25_mbit, localoffset+1, 1, + proto_tree_add_item(x25_tree, hf_ex25_mbit, NullTVB, localoffset+1, 1, pd[localoffset+1]); } } @@ -1806,16 +1806,16 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) vc, pd[localoffset+1] >> 1); } if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset-2, 2, pd[localoffset-2]*256+pd[localoffset-1]); if (modulo == 8) { - proto_tree_add_item(x25_tree, hf_x25_p_r, + proto_tree_add_item(x25_tree, hf_x25_p_r, NullTVB, localoffset, 1, pd[localoffset]); - proto_tree_add_item(x25_tree, hf_x25_type, localoffset, 1, X25_RR); + proto_tree_add_item(x25_tree, hf_x25_type, NullTVB, localoffset, 1, X25_RR); } else { - proto_tree_add_item(x25_tree, hf_ex25_type, localoffset, 1, X25_RR); - proto_tree_add_item(x25_tree, hf_ex25_p_r, + proto_tree_add_item(x25_tree, hf_ex25_type, NullTVB, localoffset, 1, X25_RR); + proto_tree_add_item(x25_tree, hf_ex25_p_r, NullTVB, localoffset+1, 1, pd[localoffset+1]); } } @@ -1831,16 +1831,16 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) vc, pd[localoffset+1] >> 1); } if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset-2, 2, pd[localoffset-2]*256+pd[localoffset-1]); if (modulo == 8) { - proto_tree_add_item(x25_tree, hf_x25_p_r, + proto_tree_add_item(x25_tree, hf_x25_p_r, NullTVB, localoffset, 1, pd[localoffset]); - proto_tree_add_item(x25_tree, hf_x25_type, localoffset, 1, X25_RNR); + proto_tree_add_item(x25_tree, hf_x25_type, NullTVB, localoffset, 1, X25_RNR); } else { - proto_tree_add_item(x25_tree, hf_ex25_type, localoffset, 1, X25_RNR); - proto_tree_add_item(x25_tree, hf_ex25_p_r, + proto_tree_add_item(x25_tree, hf_ex25_type, NullTVB, localoffset, 1, X25_RNR); + proto_tree_add_item(x25_tree, hf_ex25_p_r, NullTVB, localoffset+1, 1, pd[localoffset+1]); } } @@ -1856,16 +1856,16 @@ dissect_x25(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) vc, pd[localoffset+1] >> 1); } if (x25_tree) { - proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, + proto_tree_add_item(x25_tree, (modulo == 8) ? hf_x25_lcn : hf_ex25_lcn, NullTVB, localoffset-2, 2, pd[localoffset-2]*256+pd[localoffset-1]); if (modulo == 8) { - proto_tree_add_item(x25_tree, hf_x25_p_r, + proto_tree_add_item(x25_tree, hf_x25_p_r, NullTVB, localoffset, 1, pd[localoffset]); - proto_tree_add_item(x25_tree, hf_x25_type, localoffset, 1, X25_REJ); + proto_tree_add_item(x25_tree, hf_x25_type, NullTVB, localoffset, 1, X25_REJ); } else { - proto_tree_add_item(x25_tree, hf_ex25_type, localoffset, 1, X25_REJ); - proto_tree_add_item(x25_tree, hf_ex25_p_r, + proto_tree_add_item(x25_tree, hf_ex25_type, NullTVB, localoffset, 1, X25_REJ); + proto_tree_add_item(x25_tree, hf_ex25_p_r, NullTVB, localoffset+1, 1, pd[localoffset+1]); } } diff --git a/packet-yhoo.c b/packet-yhoo.c index 5f6361b694..ad291fa3e5 100644 --- a/packet-yhoo.c +++ b/packet-yhoo.c @@ -2,7 +2,7 @@ * Routines for yahoo messenger packet dissection * Copyright 1999, Nathan Neulinger * - * $Id: packet-yhoo.c,v 1.6 2000/05/05 09:32:06 guy Exp $ + * $Id: packet-yhoo.c,v 1.7 2000/05/11 08:15:57 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -143,28 +143,28 @@ dissect_yhoo(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) ); if (tree) { - ti = proto_tree_add_item(tree, proto_yhoo, offset, END_OF_FRAME, NULL); + ti = proto_tree_add_item(tree, proto_yhoo, NullTVB, offset, END_OF_FRAME, NULL); yhoo_tree = proto_item_add_subtree(ti, ett_yhoo); - proto_tree_add_item(yhoo_tree, hf_yhoo_version, + proto_tree_add_item(yhoo_tree, hf_yhoo_version, NullTVB, offset, 8, pkt->version); - proto_tree_add_item(yhoo_tree, hf_yhoo_len, + proto_tree_add_item(yhoo_tree, hf_yhoo_len, NullTVB, offset+8, 4, pletohl(pkt->len)); - proto_tree_add_item(yhoo_tree, hf_yhoo_service, + proto_tree_add_item(yhoo_tree, hf_yhoo_service, NullTVB, offset+12, 4, pletohl(pkt->service)); - proto_tree_add_item(yhoo_tree, hf_yhoo_connection_id, + proto_tree_add_item(yhoo_tree, hf_yhoo_connection_id, NullTVB, offset+16, 4, pletohl(pkt->connection_id)); - proto_tree_add_item(yhoo_tree, hf_yhoo_magic_id, + proto_tree_add_item(yhoo_tree, hf_yhoo_magic_id, NullTVB, offset+20, 4, pletohl(pkt->magic_id)); - proto_tree_add_item(yhoo_tree, hf_yhoo_unknown1, + proto_tree_add_item(yhoo_tree, hf_yhoo_unknown1, NullTVB, offset+24, 4, pletohl(pkt->unknown1)); - proto_tree_add_item(yhoo_tree, hf_yhoo_msgtype, + proto_tree_add_item(yhoo_tree, hf_yhoo_msgtype, NullTVB, offset+28, 4, pletohl(pkt->msgtype)); - proto_tree_add_item(yhoo_tree, hf_yhoo_nick1, + proto_tree_add_item(yhoo_tree, hf_yhoo_nick1, NullTVB, offset+32, 36, pkt->nick1); - proto_tree_add_item(yhoo_tree, hf_yhoo_nick2, + proto_tree_add_item(yhoo_tree, hf_yhoo_nick2, NullTVB, offset+68, 36, pkt->nick2); - proto_tree_add_item(yhoo_tree, hf_yhoo_content, + proto_tree_add_item(yhoo_tree, hf_yhoo_content, NullTVB, offset+104, END_OF_FRAME, pkt->content); } diff --git a/packet-ypserv.c b/packet-ypserv.c index 7eb209eafa..9f5ad0aa09 100644 --- a/packet-ypserv.c +++ b/packet-ypserv.c @@ -1,7 +1,7 @@ /* packet-ypserv.c * Routines for ypserv dissection * - * $Id: packet-ypserv.c,v 1.9 2000/04/04 06:46:29 guy Exp $ + * $Id: packet-ypserv.c,v 1.10 2000/05/11 08:15:58 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -66,7 +66,7 @@ int dissect_domain_reply(const u_char *pd, int offset, frame_data *fd, if ( tree ) { - proto_tree_add_item(tree, hf_ypserv_servesdomain, + proto_tree_add_item(tree, hf_ypserv_servesdomain, NullTVB, offset, 4, pntohl(&pd[offset])); } @@ -120,7 +120,7 @@ int dissect_match_reply(const u_char *pd, int offset, frame_data *fd, if ( tree ) { - proto_tree_add_item(tree, hf_ypserv_status, + proto_tree_add_item(tree, hf_ypserv_status, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; @@ -137,7 +137,7 @@ int dissect_firstnext_reply(const u_char *pd, int offset, frame_data *fd, if ( tree ) { - proto_tree_add_item(tree, hf_ypserv_status, + proto_tree_add_item(tree, hf_ypserv_status, NullTVB, offset, 4, pntohl(&pd[offset])); offset += 4; diff --git a/packet.c b/packet.c index 8a6f8a0d73..9945ab7097 100644 --- a/packet.c +++ b/packet.c @@ -1,7 +1,7 @@ /* packet.c * Routines for packet disassembly * - * $Id: packet.c,v 1.79 2000/05/05 09:32:07 guy Exp $ + * $Id: packet.c,v 1.80 2000/05/11 08:15:58 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -90,6 +90,10 @@ #include "resolv.h" #endif +#ifndef __TVBUFF_H__ +#include "tvbuff.h" +#endif + #include "plugins.h" extern capture_file cf; @@ -1060,12 +1064,15 @@ void blank_packetinfo(void) pi.ptype = PT_NONE; pi.srcport = 0; pi.destport = 0; + pi.current_proto = ""; } /* Do all one-time initialization. */ void dissect_init(void) { + except_init(); + tvbuff_init(); proto_init(); dfilter_init(); #ifdef HAVE_PLUGINS @@ -1076,8 +1083,10 @@ dissect_init(void) void dissect_cleanup(void) { - proto_cleanup(); dfilter_cleanup(); + proto_cleanup(); + tvbuff_cleanup(); + except_deinit(); } /* Allow protocols to register "init" routines, which are called before @@ -1114,10 +1123,11 @@ dissect_packet(const u_char *pd, frame_data *fd, proto_tree *tree) proto_tree *fh_tree; proto_item *ti; struct timeval tv; + tvbuff_t *tvb; /* Put in frame header information. */ if (tree) { - ti = proto_tree_add_protocol_format(tree, proto_frame, 0, fd->cap_len, + ti = proto_tree_add_protocol_format(tree, proto_frame, NullTVB, 0, fd->cap_len, "Frame %u (%u on wire, %u captured)", fd->num, fd->pkt_len, fd->cap_len); @@ -1126,23 +1136,23 @@ dissect_packet(const u_char *pd, frame_data *fd, proto_tree *tree) tv.tv_sec = fd->abs_secs; tv.tv_usec = fd->abs_usecs; - proto_tree_add_item(fh_tree, hf_frame_arrival_time, + proto_tree_add_item(fh_tree, hf_frame_arrival_time, NullTVB, 0, 0, &tv); tv.tv_sec = fd->del_secs; tv.tv_usec = fd->del_usecs; - proto_tree_add_item(fh_tree, hf_frame_time_delta, + proto_tree_add_item(fh_tree, hf_frame_time_delta, NullTVB, 0, 0, &tv); - proto_tree_add_item(fh_tree, hf_frame_number, + proto_tree_add_item(fh_tree, hf_frame_number, NullTVB, 0, 0, fd->num); - proto_tree_add_uint_format(fh_tree, hf_frame_packet_len, + proto_tree_add_uint_format(fh_tree, hf_frame_packet_len, NullTVB, 0, 0, fd->pkt_len, "Packet Length: %d byte%s", fd->pkt_len, plurality(fd->pkt_len, "", "s")); - proto_tree_add_uint_format(fh_tree, hf_frame_capture_len, + proto_tree_add_uint_format(fh_tree, hf_frame_capture_len, NullTVB, 0, 0, fd->cap_len, "Capture Length: %d byte%s", fd->cap_len, plurality(fd->cap_len, "", "s")); } @@ -1155,47 +1165,63 @@ dissect_packet(const u_char *pd, frame_data *fd, proto_tree *tree) pi.len = fd->pkt_len; pi.captured_len = fd->cap_len; - switch (fd->lnk_t) { - case WTAP_ENCAP_ETHERNET : - dissect_eth(pd, 0, fd, tree); - break; - case WTAP_ENCAP_FDDI : - dissect_fddi(pd, fd, tree, FALSE); - break; - case WTAP_ENCAP_FDDI_BITSWAPPED : - dissect_fddi(pd, fd, tree, TRUE); - break; - case WTAP_ENCAP_TR : - dissect_tr(pd, 0, fd, tree); - break; - case WTAP_ENCAP_NULL : - dissect_null(pd, fd, tree); - break; - case WTAP_ENCAP_PPP : - dissect_ppp(pd, 0, fd, tree); - break; - case WTAP_ENCAP_LAPB : - dissect_lapb(pd, fd, tree); - break; - case WTAP_ENCAP_RAW_IP : - dissect_raw(pd, fd, tree); - break; - case WTAP_ENCAP_LINUX_ATM_CLIP : - dissect_clip(pd, fd, tree); - break; - case WTAP_ENCAP_ATM_SNIFFER : - dissect_atm(pd, fd, tree); - break; - case WTAP_ENCAP_ASCEND : - dissect_ascend(pd, fd, tree); - break; - case WTAP_ENCAP_LAPD : - dissect_lapd(pd, fd, tree); - break; - case WTAP_ENCAP_V120 : - dissect_v120(pd, fd, tree); - break; + tvb = tvb_new_real_data(pd, fd->cap_len); + pi.fd = fd; + pi.compat_top_tvb = tvb; + + TRY { + switch (fd->lnk_t) { + case WTAP_ENCAP_ETHERNET : + /*dissect_eth(tvb, &pi, tree);*/ + dissect_eth(pd, 0, fd, tree); + break; + case WTAP_ENCAP_FDDI : + dissect_fddi(tvb, &pi, tree, FALSE); + break; + case WTAP_ENCAP_FDDI_BITSWAPPED : + dissect_fddi(tvb, &pi, tree, TRUE); + break; + case WTAP_ENCAP_TR : + dissect_tr(pd, 0, fd, tree); + break; + case WTAP_ENCAP_NULL : + dissect_null(pd, fd, tree); + break; + case WTAP_ENCAP_PPP : + dissect_ppp(pd, 0, fd, tree); + break; + case WTAP_ENCAP_LAPB : + dissect_lapb(pd, fd, tree); + break; + case WTAP_ENCAP_RAW_IP : + dissect_raw(pd, fd, tree); + break; + case WTAP_ENCAP_LINUX_ATM_CLIP : + dissect_clip(pd, fd, tree); + break; + case WTAP_ENCAP_ATM_SNIFFER : + dissect_atm(pd, fd, tree); + break; + case WTAP_ENCAP_ASCEND : + dissect_ascend(pd, fd, tree); + break; + case WTAP_ENCAP_LAPD : + dissect_lapd(pd, fd, tree); + break; + case WTAP_ENCAP_V120 : + dissect_v120(pd, fd, tree); + break; + } + } + CATCH(BoundsError) { + proto_tree_add_text(tree, NullTVB, 0, 0, "Short Frame: [%s]", pi.current_proto ); } + ENDTRY; + + /* Free all tvb's created from this tvb, unless dissector + * wanted to store the pointer (in which case, the dissector + * would have incremented the usage count on that tvbuff_t*) */ + tvb_free_chain(tvb); fd->flags.visited = 1; } diff --git a/packet.h b/packet.h index 3a8636223c..528b98cabb 100644 --- a/packet.h +++ b/packet.h @@ -1,7 +1,7 @@ /* packet.h * Definitions for packet disassembly structures and routines * - * $Id: packet.h,v 1.183 2000/05/05 09:32:09 guy Exp $ + * $Id: packet.h,v 1.184 2000/05/11 08:15:59 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -35,6 +35,11 @@ #include "proto.h" #endif +#ifndef __TVBUFF_H__ +#include "tvbuff.h" +#endif + + /* Pointer versions of ntohs and ntohl. Given a pointer to a member of a * byte array, returns the value of the two or four bytes at the pointer. * The pletoh[sl] versions return the little-endian representation. @@ -65,7 +70,6 @@ /* Useful when you have an array whose size you can tell at compile-time */ #define array_length(x) (sizeof x / sizeof x[0]) - /* Useful when highlighting regions inside a dissect_*() function. With this * macro, you can highlight from an arbitrary offset to the end of the * packet (which may come before the end of the frame). @@ -182,6 +186,9 @@ typedef enum { } port_type; typedef struct _packet_info { + const char *current_proto; /* name of protocol currently being dissected */ + frame_data *fd; + tvbuff_t *compat_top_tvb; /* only needed while converting Ethereal to use tvbuffs */ int len; int captured_len; address dl_src; /* link-layer source address */ diff --git a/plugins/gryphon/packet-gryphon.c b/plugins/gryphon/packet-gryphon.c index 53fb3c8898..725dc6b787 100644 --- a/plugins/gryphon/packet-gryphon.c +++ b/plugins/gryphon/packet-gryphon.c @@ -1,7 +1,7 @@ /* packet-gryphon.c * Routines for Gryphon protocol packet disassembly * - * $Id: packet-gryphon.c,v 1.8 2000/03/15 18:38:58 guy Exp $ + * $Id: packet-gryphon.c,v 1.9 2000/05/11 08:18:09 gram Exp $ * * Ethereal - Network traffic analyzer * By Steve Limkemann @@ -140,7 +140,7 @@ dissector(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (tree) { if (fd) { - ti = proto_tree_add_item(tree, proto_gryphon, offset, + ti = proto_tree_add_item(tree, proto_gryphon, NullTVB, offset, end_of_frame, NULL); gryphon_tree = proto_item_add_subtree(ti, ett_gryphon); } else @@ -152,7 +152,7 @@ dissector(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) frmtyp = data[6]; msglen = pntohs ((unsigned short *)&data[4]); - header_item = proto_tree_add_text(gryphon_tree, offset, + header_item = proto_tree_add_text(gryphon_tree, NullTVB, offset, MSG_HDR_SZ, "Header"); header_tree = proto_item_add_subtree(header_item, ett_gryphon_header); @@ -162,10 +162,10 @@ dissector(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (i >= SIZEOF(src_dest)) i = SIZEOF(src_dest) - 1; - proto_tree_add_text(header_tree, offset, 2, + proto_tree_add_text(header_tree, NullTVB, offset, 2, "Source: %s, channel %hd", src_dest[i].strptr, data[1]); - proto_tree_add_item_hidden(header_tree, hf_gryph_src, offset, 1, src); - proto_tree_add_item_hidden(header_tree, hf_gryph_srcchan, offset+1, 1, data[1]); + proto_tree_add_item_hidden(header_tree, hf_gryph_src, NullTVB, offset, 1, src); + proto_tree_add_item_hidden(header_tree, hf_gryph_srcchan, NullTVB, offset+1, 1, data[1]); for (i = 0; i < SIZEOF(src_dest); i++) { if (src_dest[i].value == dest) @@ -173,22 +173,22 @@ dissector(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (i >= SIZEOF(src_dest)) i = SIZEOF(src_dest) - 1; - proto_tree_add_text(header_tree, offset+2, 2, + proto_tree_add_text(header_tree, NullTVB, offset+2, 2, "Destination: %s, channel %hd", src_dest[i].strptr, data[3]); - proto_tree_add_item_hidden(header_tree, hf_gryph_dest, offset+2, 1, dest); - proto_tree_add_item_hidden(header_tree, hf_gryph_destchan, offset+3, 1, data[3]); + proto_tree_add_item_hidden(header_tree, hf_gryph_dest, NullTVB, offset+2, 1, dest); + proto_tree_add_item_hidden(header_tree, hf_gryph_destchan, NullTVB, offset+3, 1, data[3]); - proto_tree_add_text(header_tree, offset+4, 2, + proto_tree_add_text(header_tree, NullTVB, offset+4, 2, "Data length: %d bytes", msglen); - proto_tree_add_text(header_tree, offset+6, 1, + proto_tree_add_text(header_tree, NullTVB, offset+6, 1, "Frame type: %s", frame_type[frmtyp]); - proto_tree_add_text(header_tree, offset+7, 1, "reserved"); + proto_tree_add_text(header_tree, NullTVB, offset+7, 1, "reserved"); - proto_tree_add_item_hidden(header_tree, hf_gryph_type, offset+6, 1, frmtyp); + proto_tree_add_item_hidden(header_tree, hf_gryph_type, NullTVB, offset+6, 1, frmtyp); msgpad = 3 - (msglen + 3) % 4; msgend = data + msglen + msgpad + MSG_HDR_SZ; - body_item = proto_tree_add_text(gryphon_tree, offset + MSG_HDR_SZ, + body_item = proto_tree_add_text(gryphon_tree, NullTVB, offset + MSG_HDR_SZ, msglen + msgpad, "Body"); body_tree = proto_item_add_subtree(body_item, ett_gryphon_body); @@ -216,12 +216,12 @@ dissector(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) } if (data < msgend - msgpad) { i = msgend - msgpad - data; - proto_tree_add_text(gryphon_tree, offset, i, "Data"); + proto_tree_add_text(gryphon_tree, NullTVB, offset, i, "Data"); BUMP (offset, data, i); } if (data < msgend) { i = msgend - data; - proto_tree_add_text(gryphon_tree, offset, i, "padding"); + proto_tree_add_text(gryphon_tree, NullTVB, offset, i, "padding"); BUMP (offset, data, i); } /* data = dataend;*/ @@ -446,7 +446,7 @@ decode_command (int dst, const u_char **data, const u_char *dataend, int *offset proto_item *ti; cmd = (*data)[0]; - proto_tree_add_item_hidden(pt, hf_gryph_cmd, *offset, 1, cmd); + proto_tree_add_item_hidden(pt, hf_gryph_cmd, NullTVB, *offset, 1, cmd); if (cmd > 0x3F) cmd += dst * 256; @@ -464,11 +464,11 @@ decode_command (int dst, const u_char **data, const u_char *dataend, int *offset if (i >= SIZEOF(cmds)) i = SIZEOF(cmds) - 1; - proto_tree_add_text (pt, *offset, 4, "Command: %s", cmds[i].strptr); + proto_tree_add_text (pt, NullTVB, *offset, 4, "Command: %s", cmds[i].strptr); BUMP (*offset, *data, 4); if (cmds[i].cmd_fnct && dataend - *data) { - ti = proto_tree_add_text(pt, *offset, dataend - *data, "Data: (%d bytes)", dataend - *data); + ti = proto_tree_add_text(pt, NullTVB, *offset, dataend - *data, "Data: (%d bytes)", dataend - *data); ft = proto_item_add_subtree(ti, ett_gryphon_command_data); (*(cmds[i].cmd_fnct)) (dst, data, dataend, offset, msglen, ft); } @@ -498,7 +498,7 @@ decode_response (int src, const u_char **data, const u_char *dataend, int *offse } if (i >= SIZEOF(cmds)) i = SIZEOF(cmds) - 1; - proto_tree_add_text (pt, *offset, 4, "Command: %s", cmds[i].strptr); + proto_tree_add_text (pt, NullTVB, *offset, 4, "Command: %s", cmds[i].strptr); BUMP (*offset, *data, 4); resp = pntohl ((unsigned long *)data[0]); @@ -508,11 +508,11 @@ decode_response (int src, const u_char **data, const u_char *dataend, int *offse } if (j >= SIZEOF(responses)) j = SIZEOF(responses) - 1; - proto_tree_add_text (pt, *offset, 4, "Status: %s", responses[j].strptr); + proto_tree_add_text (pt, NullTVB, *offset, 4, "Status: %s", responses[j].strptr); BUMP (*offset, *data, 4); if (cmds[i].rsp_fnct) { - ti = proto_tree_add_text(pt, *offset, dataend - *data, "Data: (%d bytes)", dataend - *data); + ti = proto_tree_add_text(pt, NullTVB, *offset, dataend - *data, "Data: (%d bytes)", dataend - *data); ft = proto_item_add_subtree(ti, ett_gryphon_response_data); (*(cmds[i].rsp_fnct)) (src, data, dataend, offset, msglen, ft); } @@ -534,53 +534,53 @@ decode_data (int src, const u_char **data, const u_char *dataend, int *offset, i padding = 3 - (hdrsize + datasize + extrasize + 3) % 4; msgsize = hdrsize + datasize + extrasize + padding + 16; - item = proto_tree_add_text(pt, *offset, 16, "Message header"); + item = proto_tree_add_text(pt, NullTVB, *offset, 16, "Message header"); tree = proto_item_add_subtree (item, ett_gryphon_data_header); - proto_tree_add_text(tree, *offset, 2, "Header length: %d bytes, %d bits", hdrsize, hdrbits); - proto_tree_add_text(tree, *offset+2, 2, "Data length: %d bytes", datasize); - proto_tree_add_text(tree, *offset+4, 1, "Extra data length: %d bytes", extrasize); + proto_tree_add_text(tree, NullTVB, *offset, 2, "Header length: %d bytes, %d bits", hdrsize, hdrbits); + proto_tree_add_text(tree, NullTVB, *offset+2, 2, "Data length: %d bytes", datasize); + proto_tree_add_text(tree, NullTVB, *offset+4, 1, "Extra data length: %d bytes", extrasize); mode = (*data)[5]; - item1 = proto_tree_add_text(tree, *offset+5, 1, "Mode: %hd", mode); + item1 = proto_tree_add_text(tree, NullTVB, *offset+5, 1, "Mode: %hd", mode); if (mode) { tree1 = proto_item_add_subtree (item1, ett_gryphon_flags); if (mode & 0x80) - proto_tree_add_text(tree1, *offset+5, 1, "1... .... = Transmitted message"); + proto_tree_add_text(tree1, NullTVB, *offset+5, 1, "1... .... = Transmitted message"); if (mode & 0x40) - proto_tree_add_text(tree1, *offset+5, 1, ".1.. .... = Received message"); + proto_tree_add_text(tree1, NullTVB, *offset+5, 1, ".1.. .... = Received message"); if (mode & 0x20) - proto_tree_add_text(tree1, *offset+5, 1, "..1. .... = Local message"); + proto_tree_add_text(tree1, NullTVB, *offset+5, 1, "..1. .... = Local message"); if (mode & 0x10) - proto_tree_add_text(tree1, *offset+5, 1, "...1 .... = Remote message"); + proto_tree_add_text(tree1, NullTVB, *offset+5, 1, "...1 .... = Remote message"); if (mode & 0x01) - proto_tree_add_text(tree1, *offset+5, 1, ".... ...1 = Internal message"); + proto_tree_add_text(tree1, NullTVB, *offset+5, 1, ".... ...1 = Internal message"); } - proto_tree_add_text(tree, *offset+6, 1, "Priority: %d", (*data)[6]); - proto_tree_add_text(tree, *offset+7, 1, "Error status: %hd", (*data)[7]); + proto_tree_add_text(tree, NullTVB, *offset+6, 1, "Priority: %d", (*data)[6]); + proto_tree_add_text(tree, NullTVB, *offset+7, 1, "Error status: %hd", (*data)[7]); timestamp = pntohl ((unsigned long *)((*data)+8)); hours = timestamp /(100000 * 60 *60); minutes = (timestamp / (100000 * 60)) % 60; seconds = (timestamp / 100000) % 60; fraction = timestamp % 100000; - proto_tree_add_text(tree, *offset+8, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); - proto_tree_add_text(tree, *offset+12, 1, "Context: %hd", (*data)[12]); - proto_tree_add_text(tree, *offset+13, 3, "reserved:"); + proto_tree_add_text(tree, NullTVB, *offset+8, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); + proto_tree_add_text(tree, NullTVB, *offset+12, 1, "Context: %hd", (*data)[12]); + proto_tree_add_text(tree, NullTVB, *offset+13, 3, "reserved:"); BUMP (*offset, *data, 16); - item = proto_tree_add_text(pt, *offset, msgsize-16-padding, "Message Body"); + item = proto_tree_add_text(pt, NullTVB, *offset, msgsize-16-padding, "Message Body"); tree = proto_item_add_subtree (item, ett_gryphon_data_body); if (hdrsize) { - proto_tree_add_text(tree, *offset, hdrsize, "Header"); + proto_tree_add_text(tree, NullTVB, *offset, hdrsize, "Header"); BUMP (*offset, *data, hdrsize); } if (datasize) { - proto_tree_add_text(tree, *offset, datasize, "Data"); + proto_tree_add_text(tree, NullTVB, *offset, datasize, "Data"); BUMP (*offset, *data, datasize); } if (extrasize) { - proto_tree_add_text(tree, *offset, extrasize, "Extra data"); + proto_tree_add_text(tree, NullTVB, *offset, extrasize, "Extra data"); BUMP (*offset, *data, extrasize); } if (padding) { - proto_tree_add_text(pt, *offset, padding, "padding"); + proto_tree_add_text(pt, NullTVB, *offset, padding, "padding"); BUMP (*offset, *data, padding); } } @@ -594,24 +594,24 @@ decode_event (int src, const u_char **data, const u_char *dataend, int *offset, padding = 3 - (msglen + 3) % 4; msgend = *data + msglen; - proto_tree_add_text(pt, *offset, 1, "Event ID: %hd", **data); - proto_tree_add_text(pt, *offset+1, 1, "Event context: %hd", *((*data)+1)); - proto_tree_add_text(pt, *offset+2, 2, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Event ID: %hd", **data); + proto_tree_add_text(pt, NullTVB, *offset+1, 1, "Event context: %hd", *((*data)+1)); + proto_tree_add_text(pt, NullTVB, *offset+2, 2, "reserved"); BUMP (*offset, *data, 4); timestamp = pntohl ((unsigned long *)(*data)); hours = timestamp /(100000 * 60 *60); minutes = (timestamp / (100000 * 60)) % 60; seconds = (timestamp / 100000) % 60; fraction = timestamp % 100000; - proto_tree_add_text(pt, *offset, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); BUMP (*offset, *data, 4); if (*data < msgend) { length = msgend - *data; - proto_tree_add_text (pt, *offset, length, "Data (%d bytes)", length); + proto_tree_add_text (pt, NullTVB, *offset, length, "Data (%d bytes)", length); BUMP (*offset, *data, length); } if (padding) { - proto_tree_add_text (pt, *offset, padding, "padding"); + proto_tree_add_text (pt, NullTVB, *offset, padding, "padding"); BUMP (*offset, *data, padding); } } @@ -627,8 +627,8 @@ cmd_init (int src, const u_char **data, const u_char *dataend, int *offset, int ptr = "Always initialize"; else ptr = "Initialize if not previously initialized"; - proto_tree_add_text(pt, *offset, 1, "Mode: %s", ptr); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Mode: %s", ptr); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } @@ -638,10 +638,10 @@ eventnum (int src, const u_char **data, const u_char *dataend, int *offset, int unsigned char event = **data; if (event) - proto_tree_add_text(pt, *offset, 1, "Event number: %hd", event); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Event number: %hd", event); else - proto_tree_add_text(pt, *offset, 1, "Event numbers: All"); - proto_tree_add_text(pt, *offset+1, 3, "padding"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Event numbers: All"); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "padding"); BUMP (*offset, *data, 4); } @@ -661,13 +661,13 @@ resp_time (int src, const u_char **data, const u_char *dataend, int *offset, int timestamp = ts.lnglng / 100000L; strncpy (date, ctime((time_t*)×tamp), sizeof(date)); date[strlen(date)-1] = 0x00; - proto_tree_add_text(pt, *offset, 8, "Date/Time: %s", date); + proto_tree_add_text(pt, NullTVB, *offset, 8, "Date/Time: %s", date); timestamp = ts.lng[0]; hours = timestamp /(100000 * 60 *60); minutes = (timestamp / (100000 * 60)) % 60; seconds = (timestamp / 100000) % 60; fraction = timestamp % 100000; - proto_tree_add_text(pt, *offset+4, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); + proto_tree_add_text(pt, NullTVB, *offset+4, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); BUMP (*offset, *data, 8); } @@ -685,16 +685,16 @@ cmd_setfilt (int src, const u_char **data, const u_char *dataend, int *offset, i strcpy (mode, "Block"); if (length == 0) strcat (mode, " all"); - proto_tree_add_text(pt, *offset, 4, "Pass/Block flag: %s", mode); - proto_tree_add_text(pt, *offset+4, 4, "Length of Pattern & Mask: %d", length); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Pass/Block flag: %s", mode); + proto_tree_add_text(pt, NullTVB, *offset+4, 4, "Length of Pattern & Mask: %d", length); BUMP (*offset, *data, 8); if (length) { - proto_tree_add_text(pt, *offset, length * 2, "discarded data"); + proto_tree_add_text(pt, NullTVB, *offset, length * 2, "discarded data"); BUMP (*offset, *data, length * 2); } padding = 3 - (length * 2 + 3) % 4; if (padding) { - proto_tree_add_text(pt, *offset+1, 3, "padding"); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "padding"); BUMP (*offset, *data, padding); } } @@ -712,9 +712,9 @@ cmd_ioctl (int src, const u_char **data, const u_char *dataend, int *offset, int } if (i >= SIZEOF(ioctls)) i = SIZEOF(ioctls) - 1; - proto_tree_add_text(pt, *offset, 4, "IOCTL: %s", ioctls[i].strptr); + proto_tree_add_text(pt, NullTVB, *offset, 4, "IOCTL: %s", ioctls[i].strptr); BUMP (*offset, *data, 4); - proto_tree_add_text(pt, *offset, dataend - *data, "Data"); + proto_tree_add_text(pt, NullTVB, *offset, dataend - *data, "Data"); BUMP (*offset, *data, dataend - *data); } @@ -730,27 +730,27 @@ cmd_addfilt (int src, const u_char **data, const u_char *dataend, int *offset, i char active[] = ".... ..1. = The filter is active"; char inactive[] = ".... ..0. = The filter is inactive"; - item = proto_tree_add_text(pt, *offset, 1, "Flags"); + item = proto_tree_add_text(pt, NullTVB, *offset, 1, "Flags"); tree = proto_item_add_subtree (item, ett_gryphon_flags); if (**data & FILTER_PASS_FLAG) ptr = pass; else ptr = block; - proto_tree_add_text(tree, *offset, 1, ptr); + proto_tree_add_text(tree, NullTVB, *offset, 1, ptr); if (**data & FILTER_ACTIVE_FLAG) ptr = active; else ptr = inactive; - proto_tree_add_text(tree, *offset, 1, ptr); + proto_tree_add_text(tree, NullTVB, *offset, 1, ptr); BUMP (*offset, *data, 1); blocks = **data; - proto_tree_add_text(pt, *offset, 1, "Number of filter blocks = %d", blocks); - proto_tree_add_text(pt, *offset+1, 6, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of filter blocks = %d", blocks); + proto_tree_add_text(pt, NullTVB, *offset+1, 6, "reserved"); BUMP (*offset, *data, 7); for (i = 1; i <= blocks; i++) { length = pntohs ((unsigned short *)((*data)+2)) * 2 + 8; length += 3 - (length + 3) % 4; - item = proto_tree_add_text(pt, *offset, length, "Filter block %d", i); + item = proto_tree_add_text(pt, NullTVB, *offset, length, "Filter block %d", i); tree = proto_item_add_subtree (item, ett_gryphon_cmd_filter_block); filter_block (src, data, dataend, offset, msglen, tree); } @@ -759,8 +759,8 @@ cmd_addfilt (int src, const u_char **data, const u_char *dataend, int *offset, i void resp_addfilt (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { - proto_tree_add_text(pt, *offset, 1, "Filter handle: %hd", **data); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Filter handle: %hd", **data); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } @@ -771,9 +771,9 @@ cmd_modfilt (int src, const u_char **data, const u_char *dataend, int *offset, i int i; if (**data) - proto_tree_add_text(pt, *offset, 1, "Filter handle: %hd", **data); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Filter handle: %hd", **data); else - proto_tree_add_text(pt, *offset, 1, "Filter handles: all"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Filter handles: all"); action = *((*data) + 1); for (i = 0; i < SIZEOF(filtacts); i++) { if (filtacts[i].value == action) @@ -781,8 +781,8 @@ cmd_modfilt (int src, const u_char **data, const u_char *dataend, int *offset, i } if (i >= SIZEOF(filtacts)) i = SIZEOF(filtacts) - 1; - proto_tree_add_text(pt, *offset+1, 1, "Action: %s filter", filtacts[i].strptr); - proto_tree_add_text(pt, *offset+2, 2, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset+1, 1, "Action: %s filter", filtacts[i].strptr); + proto_tree_add_text(pt, NullTVB, *offset+2, 2, "reserved"); BUMP (*offset, *data, 4); } @@ -792,13 +792,13 @@ resp_filthan (int src, const u_char **data, const u_char *dataend, int *offset, int handles = **data; int i, padding; - proto_tree_add_text(pt, *offset, 1, "Number of filter handles: %d", handles); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of filter handles: %d", handles); for (i = 1; i <= handles; i++){ - proto_tree_add_text(pt, *offset+i, 1, "Handle %d: %hd", i, *(*data+i)); + proto_tree_add_text(pt, NullTVB, *offset+i, 1, "Handle %d: %hd", i, *(*data+i)); } padding = 3 - (handles + 1 + 3) % 4; if (padding) - proto_tree_add_text(pt, *offset+1+handles, padding, "padding"); + proto_tree_add_text(pt, NullTVB, *offset+1+handles, padding, "padding"); BUMP (*offset, *data, 1+handles+padding); } @@ -814,8 +814,8 @@ dfiltmode (int src, const u_char **data, const u_char *dataend, int *offset, int } if (i >= SIZEOF(dmodes)) i = SIZEOF(dmodes) - 1; - proto_tree_add_text(pt, *offset, 1, "Filter mode: %s", dmodes[i].strptr); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Filter mode: %s", dmodes[i].strptr); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } @@ -831,8 +831,8 @@ filtmode (int src, const u_char **data, const u_char *dataend, int *offset, int } if (i >= SIZEOF(modes)) i = SIZEOF(modes) - 1; - proto_tree_add_text(pt, *offset, 1, "Filter mode: %s", modes[i].strptr); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Filter mode: %s", modes[i].strptr); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } @@ -844,10 +844,10 @@ resp_events (int src, const u_char **data, const u_char *dataend, int *offset, i i = 1; while (*data < dataend) { - item = proto_tree_add_text(pt, *offset, 20, "Event %d:", i); + item = proto_tree_add_text(pt, NullTVB, *offset, 20, "Event %d:", i); tree = proto_item_add_subtree (item, ett_gryphon_cmd_events_data); - proto_tree_add_text(tree, *offset, 1, "Event ID: %hd", **data); - proto_tree_add_text(tree, *offset+1, 19, "Event name: %s", (*data)+1); + proto_tree_add_text(tree, NullTVB, *offset, 1, "Event ID: %hd", **data); + proto_tree_add_text(tree, NullTVB, *offset+1, 19, "Event name: %s", (*data)+1); BUMP (*offset, *data, 20); i++; } @@ -859,19 +859,19 @@ cmd_register (int src, const u_char **data, const u_char *dataend, int *offset, char string[33]; MEMCPY (string, *data, 16); - proto_tree_add_text(pt, *offset, 16, "Username: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 16, "Username: %s", string); BUMP (*offset, *data, 16); MEMCPY (string, *data, 32); - proto_tree_add_text(pt, *offset, 32, "Password: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 32, "Password: %s", string); BUMP (*offset, *data, 32); } void resp_register (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { - proto_tree_add_text(pt, *offset, 1, "Client ID: %hd", (*data)[0]); - proto_tree_add_text(pt, *offset+1, 1, "Privileges: %hd", (*data)[1]); - proto_tree_add_text(pt, *offset+2, 2, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Client ID: %hd", (*data)[0]); + proto_tree_add_text(pt, NullTVB, *offset+1, 1, "Privileges: %hd", (*data)[1]); + proto_tree_add_text(pt, NullTVB, *offset+2, 2, "reserved"); BUMP (*offset, *data, 4); } @@ -902,38 +902,38 @@ resp_config (int src, const u_char **data, const u_char *dataend, int *offset, i MEMCPY (string, *data, 20); - proto_tree_add_text(pt, *offset, 20, "Device name: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 20, "Device name: %s", string); BUMP (*offset, *data, 20); MEMCPY (string, *data, 8); - proto_tree_add_text(pt, *offset, 8, "Device version: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 8, "Device version: %s", string); BUMP (*offset, *data, 8); MEMCPY (string, *data, 20); - proto_tree_add_text(pt, *offset, 20, "Device serial number: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 20, "Device serial number: %s", string); BUMP (*offset, *data, 20); devices = **data; - proto_tree_add_text(pt, *offset, 1, "Number of channels: %d", devices); - proto_tree_add_text(pt, *offset+1, 15, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of channels: %d", devices); + proto_tree_add_text(pt, NullTVB, *offset+1, 15, "reserved"); BUMP (*offset, *data, 16); for (i = 1; i <= devices; i++) { - ti = proto_tree_add_text(pt, *offset, 80, "Channel %d:", i); + ti = proto_tree_add_text(pt, NullTVB, *offset, 80, "Channel %d:", i); ft = proto_item_add_subtree(ti, ett_gryphon_cmd_config_device); MEMCPY (string, *data, 20); - proto_tree_add_text(ft, *offset, 20, "Driver name: %s", string); + proto_tree_add_text(ft, NullTVB, *offset, 20, "Driver name: %s", string); BUMP (*offset, *data, 20); MEMCPY (string, *data, 8); - proto_tree_add_text(ft, *offset, 8, "Driver version: %s", string); + proto_tree_add_text(ft, NullTVB, *offset, 8, "Driver version: %s", string); BUMP (*offset, *data, 8); MEMCPY (string, *data, 24); - proto_tree_add_text(ft, *offset, 24, "device security string: %s", string); + proto_tree_add_text(ft, NullTVB, *offset, 24, "device security string: %s", string); BUMP (*offset, *data, 24); MEMCPY (string, *data, 20); - proto_tree_add_text(ft, *offset, 20, "Hardware serial number: %s", string); + proto_tree_add_text(ft, NullTVB, *offset, 20, "Hardware serial number: %s", string); BUMP (*offset, *data, 20); x = pntohs ((unsigned short *)*data); @@ -943,11 +943,11 @@ resp_config (int src, const u_char **data, const u_char *dataend, int *offset, i } if (j >= SIZEOF(protocol_types)) j = SIZEOF(protocol_types) -1; - proto_tree_add_text(ft, *offset, 2, "Protocol type & subtype: %s", protocol_types[j].strptr); + proto_tree_add_text(ft, NullTVB, *offset, 2, "Protocol type & subtype: %s", protocol_types[j].strptr); BUMP (*offset, *data, 2); - proto_tree_add_text(ft, *offset, 1, "Channel ID: %hd", **data); - proto_tree_add_text(ft, *offset+1, 5, "reserved"); + proto_tree_add_text(ft, NullTVB, *offset, 1, "Channel ID: %hd", **data); + proto_tree_add_text(ft, NullTVB, *offset+1, 5, "reserved"); BUMP (*offset, *data, 6); } } @@ -965,39 +965,39 @@ cmd_sched (int src, const u_char **data, const u_char *dataend, int *offset, int x = pntohl ((unsigned int *)*data); if (x == 0xFFFFFFFF) - proto_tree_add_text(pt, *offset, 4, "Number of iterations: infinite"); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Number of iterations: infinite"); else - proto_tree_add_text(pt, *offset, 4, "Number of iterations: %d", x); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Number of iterations: %d", x); BUMP (*offset, *data, 4); x = pntohl ((unsigned int *)*data); - item = proto_tree_add_text(pt, *offset, 4, "Flags"); + item = proto_tree_add_text(pt, NullTVB, *offset, 4, "Flags"); tree = proto_item_add_subtree (item, ett_gryphon_flags); ptr = x & 1 ? crit : norm; - proto_tree_add_text(tree, *offset, 4, ptr, NULL); + proto_tree_add_text(tree, NullTVB, *offset, 4, ptr, NULL); BUMP (*offset, *data, 4); i = 1; while (*data < dataend) { length = 16 + (*data)[16] + pntohs ((unsigned short *)((*data)+18)) + (*data)[20] + 16; length += 3 - (length + 3) % 4; - item = proto_tree_add_text(pt, *offset, length, "Message %d", i); + item = proto_tree_add_text(pt, NullTVB, *offset, length, "Message %d", i); tree = proto_item_add_subtree (item, ett_gryphon_cmd_sched_data); x = pntohl ((unsigned int *)*data); - proto_tree_add_text(tree, *offset, 4, "Sleep: %d milliseconds", x); + proto_tree_add_text(tree, NullTVB, *offset, 4, "Sleep: %d milliseconds", x); BUMP (*offset, *data, 4); x = pntohl ((unsigned int *)*data); - proto_tree_add_text(tree, *offset, 4, "Transmit count: %d", x); + proto_tree_add_text(tree, NullTVB, *offset, 4, "Transmit count: %d", x); BUMP (*offset, *data, 4); x = pntohl ((unsigned int *)*data); - proto_tree_add_text(tree, *offset, 4, "Transmit period: %d milliseconds", x); + proto_tree_add_text(tree, NullTVB, *offset, 4, "Transmit period: %d milliseconds", x); BUMP (*offset, *data, 4); - proto_tree_add_text(tree, *offset, 2, "reserved flags"); + proto_tree_add_text(tree, NullTVB, *offset, 2, "reserved flags"); x = *((*data)+2); if (x == 0) x = def_chan; - proto_tree_add_text(tree, *offset+2, 1, "Channel: %d", x); - proto_tree_add_text(tree, *offset+3, 1, "reserved"); + proto_tree_add_text(tree, NullTVB, *offset+2, 1, "Channel: %d", x); + proto_tree_add_text(tree, NullTVB, *offset+3, 1, "reserved"); BUMP (*offset, *data, 4); - item1 = proto_tree_add_text(tree, *offset, length, "Message"); + item1 = proto_tree_add_text(tree, NullTVB, *offset, length, "Message"); tree1 = proto_item_add_subtree (item1, ett_gryphon_cmd_sched_cmd); decode_data (src, data, dataend, offset, msglen, tree1); i++; @@ -1021,13 +1021,13 @@ resp_blm_data (int src, const u_char **data, const u_char *dataend, int *offset, minutes = (timestamp / (100000 * 60)) % 60; seconds = (timestamp / 100000) % 60; fraction = timestamp % 100000; - proto_tree_add_text(pt, *offset, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Timestamp: %d:%02d:%02d.%05d", hours, minutes, seconds, fraction); BUMP (*offset, *data, 4); for (i = 0; i < SIZEOF(fields); i++){ x = pntohs ((unsigned short *)(*data)); fract = x % 100; x /= 100; - proto_tree_add_text(pt, *offset, 2, fields[i], x, fract); + proto_tree_add_text(pt, NullTVB, *offset, 2, fields[i], x, fract); BUMP (*offset, *data, 2); } } @@ -1048,7 +1048,7 @@ resp_blm_stat (int src, const u_char **data, const u_char *dataend, int *offset, resp_blm_data (src, data, dataend, offset, msglen, pt); for (i = 0; i < SIZEOF(fields); i++){ x = pntohl ((unsigned int *)(*data)); - proto_tree_add_text(pt, *offset, 4, fields[i], x); + proto_tree_add_text(pt, NullTVB, *offset, 4, fields[i], x); BUMP (*offset, *data, 4); } } @@ -1065,22 +1065,22 @@ cmd_addresp (int src, const u_char **data, const u_char *dataend, int *offset, i char inactive[] = ".... ..0. = The response is inactive"; actionType = 0; - item = proto_tree_add_text(pt, *offset, 1, "Flags"); + item = proto_tree_add_text(pt, NullTVB, *offset, 1, "Flags"); tree = proto_item_add_subtree (item, ett_gryphon_flags); if (**data & FILTER_ACTIVE_FLAG) ptr = active; else ptr = inactive; - proto_tree_add_text(tree, *offset, 1, ptr, NULL); + proto_tree_add_text(tree, NullTVB, *offset, 1, ptr, NULL); BUMP (*offset, *data, 1); blocks = **data; - proto_tree_add_text(pt, *offset, 1, "Number of filter blocks = %d", blocks); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of filter blocks = %d", blocks); BUMP (*offset, *data, 1); responses = **data; - proto_tree_add_text(pt, *offset, 1, "Number of response blocks = %d", responses); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of response blocks = %d", responses); BUMP (*offset, *data, 1); old_handle = **data; - proto_tree_add_text(pt, *offset, 1, "Old handle = %d", old_handle); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Old handle = %d", old_handle); BUMP (*offset, *data, 1); action = **data; switch (action & 7) { @@ -1096,22 +1096,22 @@ cmd_addresp (int src, const u_char **data, const u_char *dataend, int *offset, i default: ptr = "- unknown -"; } - item = proto_tree_add_text(pt, *offset, 1, "Action = %s", ptr); + item = proto_tree_add_text(pt, NullTVB, *offset, 1, "Action = %s", ptr); tree = proto_item_add_subtree (item, ett_gryphon_flags); if (action & FR_DEACT_AFTER_PER && !(action & FR_DELETE)){ - proto_tree_add_text(tree, *offset, 1, + proto_tree_add_text(tree, NullTVB, *offset, 1, "1.0. .... Deactivate this response after the specified period following a conforming message"); } if (action & FR_DEACT_ON_EVENT && !(action & FR_DELETE)){ - proto_tree_add_text(tree, *offset, 1, + proto_tree_add_text(tree, NullTVB, *offset, 1, ".10. .... Deactivate this response for a conforming message"); } if (action & FR_DEACT_AFTER_PER && action & FR_DELETE){ - proto_tree_add_text(tree, *offset, 1, + proto_tree_add_text(tree, NullTVB, *offset, 1, "1.1. .... Delete this response after the specified period following a conforming message"); } if (action & FR_DEACT_ON_EVENT && action & FR_DELETE){ - proto_tree_add_text(tree, *offset, 1, + proto_tree_add_text(tree, NullTVB, *offset, 1, ".11. .... Delete this response for a conforming message"); } actionValue = pntohs ((unsigned short *)((*data)+2)); @@ -1123,30 +1123,30 @@ cmd_addresp (int src, const u_char **data, const u_char *dataend, int *offset, i ptr = "...0 .... The period is in 0.01 seconds"; actionType = 0; } - proto_tree_add_text(tree, *offset, 1, ptr, NULL); + proto_tree_add_text(tree, NullTVB, *offset, 1, ptr, NULL); } BUMP (*offset, *data, 1); - proto_tree_add_text(pt, *offset, 1, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "reserved"); BUMP (*offset, *data, 1); if (actionValue) { if (actionType == 1) { - proto_tree_add_text(tree, *offset, 2, "Period: %d messages", actionValue); + proto_tree_add_text(tree, NullTVB, *offset, 2, "Period: %d messages", actionValue); } else { - proto_tree_add_text(tree, *offset, 2, "Period: %d.%02d seconds", actionValue/100, actionValue%100); + proto_tree_add_text(tree, NullTVB, *offset, 2, "Period: %d.%02d seconds", actionValue/100, actionValue%100); } } BUMP (*offset, *data, 2); for (i = 1; i <= blocks; i++) { length = pntohs ((unsigned short *)((*data)+2)) * 2 + 8; length += 3 - (length + 3) % 4; - item = proto_tree_add_text(pt, *offset, length, "Filter block %d", i); + item = proto_tree_add_text(pt, NullTVB, *offset, length, "Filter block %d", i); tree = proto_item_add_subtree (item, ett_gryphon_cmd_filter_block); filter_block (src, data, dataend, offset, msglen, tree); } for (i = 1; i <= responses; i++) { length = pntohs ((unsigned short *)((*data)+4)) + 8; length += 3 - (length + 3) % 4; - item = proto_tree_add_text(pt, *offset, length, "Response block %d", i); + item = proto_tree_add_text(pt, NullTVB, *offset, length, "Response block %d", i); tree = proto_item_add_subtree (item, ett_gryphon_cmd_response_block); dissector((*data)-*offset, *offset, NULL, tree); BUMP (*offset, *data, length); @@ -1157,8 +1157,8 @@ void resp_addresp (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { if (*data < dataend) { - proto_tree_add_text(pt, *offset, 1, "Response handle: %hd", **data); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Response handle: %hd", **data); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } } @@ -1171,11 +1171,11 @@ cmd_modresp (int src, const u_char **data, const u_char *dataend, int *offset, i int i; if (**data) - proto_tree_add_text(pt, *offset, 1, "Response handle: %hd", **data); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Response handle: %hd", **data); else if (dest) - proto_tree_add_text(pt, *offset, 1, "Response handles: all on channel %hd", dest); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Response handles: all on channel %hd", dest); else - proto_tree_add_text(pt, *offset, 1, "Response handles: all"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Response handles: all"); action = *((*data) + 1); for (i = 0; i < SIZEOF(filtacts); i++) { if (filtacts[i].value == action) @@ -1183,8 +1183,8 @@ cmd_modresp (int src, const u_char **data, const u_char *dataend, int *offset, i } if (i >= SIZEOF(filtacts)) i = SIZEOF(filtacts) - 1; - proto_tree_add_text(pt, *offset+1, 1, "Action: %s response", filtacts[i].strptr); - proto_tree_add_text(pt, *offset+2, 2, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset+1, 1, "Action: %s response", filtacts[i].strptr); + proto_tree_add_text(pt, NullTVB, *offset+2, 2, "reserved"); BUMP (*offset, *data, 4); } @@ -1194,13 +1194,13 @@ resp_resphan (int src, const u_char **data, const u_char *dataend, int *offset, int handles = **data; int i, padding; - proto_tree_add_text(pt, *offset, 1, "Number of response handles: %d", handles); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of response handles: %d", handles); for (i = 1; i <= handles; i++){ - proto_tree_add_text(pt, *offset+i, 1, "Handle %d: %hd", i, *(*data+i)); + proto_tree_add_text(pt, NullTVB, *offset+i, 1, "Handle %d: %hd", i, *(*data+i)); } padding = 3 - (handles + 1 + 3) % 4; if (padding) - proto_tree_add_text(pt, *offset+1+handles, padding, "padding"); + proto_tree_add_text(pt, NullTVB, *offset+1+handles, padding, "padding"); BUMP (*offset, *data, 1+handles+padding); } @@ -1208,7 +1208,7 @@ void resp_sched (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { unsigned int id = pntohl ((unsigned int *)(*data)); - proto_tree_add_text(pt, *offset, 4, "Transmit schedule ID: %d", id); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Transmit schedule ID: %d", id); BUMP (*offset, *data, 4); } @@ -1217,15 +1217,15 @@ cmd_desc (int src, const u_char **data, const u_char *dataend, int *offset, int { u_char string[81]; - proto_tree_add_text(pt, *offset, 4, "Program size: %d bytes", pntohl ((unsigned int *)(*data))); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Program size: %d bytes", pntohl ((unsigned int *)(*data))); BUMP (*offset, *data, 4); strncpy (string, *data, 32); string[32] = 0; - proto_tree_add_text(pt, *offset, 32, "Program name: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 32, "Program name: %s", string); BUMP (*offset, *data, 32); strncpy (string, *data, 80); string[80] = 0; - proto_tree_add_text(pt, *offset, 80, "Program description: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 80, "Program description: %s", string); BUMP (*offset, *data, 80); } @@ -1238,15 +1238,15 @@ resp_desc (int src, const u_char **data, const u_char *dataend, int *offset, int char missing[] = ".... ...0 = The program is not present"; char present[] = ".... ...1 = The program is already present"; - item = proto_tree_add_text(pt, *offset, 1, "Flags"); + item = proto_tree_add_text(pt, NullTVB, *offset, 1, "Flags"); tree = proto_item_add_subtree (item, ett_gryphon_flags); if (**data & 1) ptr = present; else ptr = missing; - proto_tree_add_text(tree, *offset, 1, ptr); - proto_tree_add_text(pt, *offset+1, 1, "Handle: %hd", (*data)[1]); - proto_tree_add_text(pt, *offset+2, 2, "reserved"); + proto_tree_add_text(tree, NullTVB, *offset, 1, ptr); + proto_tree_add_text(pt, NullTVB, *offset+1, 1, "Handle: %hd", (*data)[1]); + proto_tree_add_text(pt, NullTVB, *offset+2, 2, "reserved"); BUMP (*offset, *data, 4); } @@ -1254,16 +1254,16 @@ void cmd_upload (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { unsigned int length; - proto_tree_add_text(pt, *offset, 2, "Block number: %d", pntohs ((unsigned short *)(*data))); + proto_tree_add_text(pt, NullTVB, *offset, 2, "Block number: %d", pntohs ((unsigned short *)(*data))); BUMP (*offset, *data, 4); - proto_tree_add_text(pt, *offset+2, 1, "Handle: %hd", (*data)[2]); + proto_tree_add_text(pt, NullTVB, *offset+2, 1, "Handle: %hd", (*data)[2]); BUMP (*offset, *data, 3); length = *data - dataend; - proto_tree_add_text(pt, *offset, length, "Data (%d bytes)", length); + proto_tree_add_text(pt, NullTVB, *offset, length, "Data (%d bytes)", length); BUMP (*offset, *data, length); length = 3 - (length + 3) % 4; if (length) { - proto_tree_add_text(pt, *offset, length, "padding"); + proto_tree_add_text(pt, NullTVB, *offset, length, "padding"); BUMP (*offset, *data, length); } } @@ -1274,15 +1274,15 @@ cmd_delete (int src, const u_char **data, const u_char *dataend, int *offset, in strncpy (string, *data, 32); string[32] = 0; - proto_tree_add_text(pt, *offset, 32, "Program name: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, 32, "Program name: %s", string); BUMP (*offset, *data, 32); } void cmd_list (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { - proto_tree_add_text(pt, *offset, 1, "Block number: %hd", (*data)[0]); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Block number: %hd", (*data)[0]); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } @@ -1294,21 +1294,21 @@ resp_list (int src, const u_char **data, const u_char *dataend, int *offset, int unsigned int i, count; count = (*data)[0]; - proto_tree_add_text(pt, *offset, 1, "Number of programs in this response: %d", count); - proto_tree_add_text(pt, *offset+1, 1, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of programs in this response: %d", count); + proto_tree_add_text(pt, NullTVB, *offset+1, 1, "reserved"); BUMP (*offset, *data, 2); - proto_tree_add_text(pt, *offset, 2, "Number of remaining programs: %d", pntohs ((unsigned short *)(*data))); + proto_tree_add_text(pt, NullTVB, *offset, 2, "Number of remaining programs: %d", pntohs ((unsigned short *)(*data))); BUMP (*offset, *data, 2); for (i = 1; i <= count; i++) { - item = proto_tree_add_text(pt, *offset, 112, "Program %d", i); + item = proto_tree_add_text(pt, NullTVB, *offset, 112, "Program %d", i); tree = proto_item_add_subtree (item, ett_gryphon_pgm_list); strncpy (string, *data, 32); string[32] = 0; - proto_tree_add_text(tree, *offset, 32, "Name: %s", string); + proto_tree_add_text(tree, NullTVB, *offset, 32, "Name: %s", string); BUMP (*offset, *data, 32); strncpy (string, *data, 80); string[80] = 0; - proto_tree_add_text(tree, *offset, 80, "Description: %s", string); + proto_tree_add_text(tree, NullTVB, *offset, 80, "Description: %s", string); BUMP (*offset, *data, 80); } } @@ -1322,11 +1322,11 @@ cmd_start (int src, const u_char **data, const u_char *dataend, int *offset, int strncpy (string, *data, 119); string[119] = 0; length = strlen (string) + 1; - proto_tree_add_text(pt, *offset, length, "Arguments: %s", string); + proto_tree_add_text(pt, NullTVB, *offset, length, "Arguments: %s", string); BUMP (*offset, *data, length); length = 3 - (length + 3) % 4; if (length) { - proto_tree_add_text(pt, *offset, length, "padding"); + proto_tree_add_text(pt, NullTVB, *offset, length, "padding"); BUMP (*offset, *data, length); } } @@ -1334,8 +1334,8 @@ cmd_start (int src, const u_char **data, const u_char *dataend, int *offset, int void resp_start (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { - proto_tree_add_text(pt, *offset, 1, "Channel (Client) number: %hd", (*data)[0]); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Channel (Client) number: %hd", (*data)[0]); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } @@ -1346,18 +1346,18 @@ resp_status (int src, const u_char **data, const u_char *dataend, int *offset, i unsigned int i, copies, length; copies = (*data)[0]; - item = proto_tree_add_text(pt, *offset, 1, "Number of running copies: %d", copies); + item = proto_tree_add_text(pt, NullTVB, *offset, 1, "Number of running copies: %d", copies); tree = proto_item_add_subtree (item, ett_gryphon_pgm_status); BUMP (*offset, *data, 1); if (copies) { for (i = 1; i <= copies; i++) { - proto_tree_add_text(tree, *offset, 1, "Program %d channel (client) number %hd", i, (*data)[0]); + proto_tree_add_text(tree, NullTVB, *offset, 1, "Program %d channel (client) number %hd", i, (*data)[0]); BUMP (*offset, *data, 1); } } length = 3 - (copies + 1 + 3) % 4; if (length) { - proto_tree_add_text(pt, *offset, length, "padding"); + proto_tree_add_text(pt, NullTVB, *offset, length, "padding"); BUMP (*offset, *data, length); } } @@ -1369,13 +1369,13 @@ cmd_options (int src, const u_char **data, const u_char *dataend, int *offset, i unsigned int i, size, padding, option, option_length, option_value; unsigned char *string, *string1; - item = proto_tree_add_text(pt, *offset, 1, "Handle: %hd", **data); - item = proto_tree_add_text(pt, *offset+1, 3, "reserved"); + item = proto_tree_add_text(pt, NullTVB, *offset, 1, "Handle: %hd", **data); + item = proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); for (i = 1; *data <= dataend; i++) { size = (*data)[1] + 2; padding = 3 - ((size + 3) %4); - item = proto_tree_add_text(pt, *offset, size + padding, "Option number %d", i); + item = proto_tree_add_text(pt, NullTVB, *offset, size + padding, "Option number %d", i); tree = proto_item_add_subtree (item, ett_gryphon_pgm_options); option = **data; option_length = (*data)[1]; @@ -1418,10 +1418,10 @@ cmd_options (int src, const u_char **data, const u_char *dataend, int *offset, i } break; } - proto_tree_add_text(tree, *offset, 1, "%s", string); - proto_tree_add_text(tree, *offset+2, option_length, "%s", string1); + proto_tree_add_text(tree, NullTVB, *offset, 1, "%s", string); + proto_tree_add_text(tree, NullTVB, *offset+2, option_length, "%s", string1); if (padding) - proto_tree_add_text(tree, *offset+option_length+2, padding, "padding"); + proto_tree_add_text(tree, NullTVB, *offset+option_length+2, padding, "padding"); BUMP (*offset, *data, size + padding); } } @@ -1429,8 +1429,8 @@ cmd_options (int src, const u_char **data, const u_char *dataend, int *offset, i void speed (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { - proto_tree_add_text(pt, *offset, 1, "Baud rate index: %hd", (*data)[0]); - proto_tree_add_text(pt, *offset+1, 3, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Baud rate index: %hd", (*data)[0]); + proto_tree_add_text(pt, NullTVB, *offset+1, 3, "reserved"); BUMP (*offset, *data, 4); } @@ -1438,9 +1438,9 @@ void filter_block (int src, const u_char **data, const u_char *dataend, int *offset, int msglen, proto_tree *pt) { int length, type, i, operator, padding; - proto_tree_add_text(pt, *offset, 2, "Filter field starts at byte %d", pntohs ((unsigned short *)(*data))); + proto_tree_add_text(pt, NullTVB, *offset, 2, "Filter field starts at byte %d", pntohs ((unsigned short *)(*data))); length = pntohs ((unsigned short *)((*data)+2)); - proto_tree_add_text(pt, *offset+2, 2, "Filter field is %d bytes long", length); + proto_tree_add_text(pt, NullTVB, *offset+2, 2, "Filter field is %d bytes long", length); type = *((*data)+4); for (i = 0; i < SIZEOF(filter_data_types); i++) { if (filter_data_types[i].value == type) @@ -1448,7 +1448,7 @@ filter_block (int src, const u_char **data, const u_char *dataend, int *offset, } if (i >= SIZEOF(filter_data_types)) i = SIZEOF(filter_data_types) - 1; - proto_tree_add_text(pt, *offset+4, 1, "Filtering on %s", filter_data_types[i].strptr); + proto_tree_add_text(pt, NullTVB, *offset+4, 1, "Filtering on %s", filter_data_types[i].strptr); operator = *((*data)+5); for (i = 0; i < SIZEOF(operators); i++) { @@ -1457,32 +1457,32 @@ filter_block (int src, const u_char **data, const u_char *dataend, int *offset, } if (i >= SIZEOF(operators)) i = SIZEOF(operators) - 1; - proto_tree_add_text(pt, *offset+5, 1, "Type of comparison: %s", operators[i].strptr); - proto_tree_add_text(pt, *offset+6, 2, "reserved"); + proto_tree_add_text(pt, NullTVB, *offset+5, 1, "Type of comparison: %s", operators[i].strptr); + proto_tree_add_text(pt, NullTVB, *offset+6, 2, "reserved"); BUMP (*offset, *data, 8); if (operator == BIT_FIELD_CHECK) { - proto_tree_add_text(pt, *offset, length, "Pattern"); - proto_tree_add_text(pt, *offset+length, length, "Mask"); + proto_tree_add_text(pt, NullTVB, *offset, length, "Pattern"); + proto_tree_add_text(pt, NullTVB, *offset+length, length, "Mask"); } else { switch (length) { case 1: - proto_tree_add_text(pt, *offset, 1, "Value: %hd", **data); + proto_tree_add_text(pt, NullTVB, *offset, 1, "Value: %hd", **data); break; case 2: - proto_tree_add_text(pt, *offset, 2, "Value: %d", pntohs ((unsigned short *)(*data))); + proto_tree_add_text(pt, NullTVB, *offset, 2, "Value: %d", pntohs ((unsigned short *)(*data))); break; case 4: - proto_tree_add_text(pt, *offset, 4, "Value: %dl", pntohl ((unsigned long *)(*data))); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Value: %dl", pntohl ((unsigned long *)(*data))); break; default: - proto_tree_add_text(pt, *offset, length, "Value"); + proto_tree_add_text(pt, NullTVB, *offset, length, "Value"); } } BUMP (*offset, *data, length * 2); padding = 3 - (length * 2 + 3) % 4; if (padding) { - proto_tree_add_text(pt, *offset, padding, "padding"); + proto_tree_add_text(pt, NullTVB, *offset, padding, "padding"); BUMP (*offset, *data, padding); } } @@ -1514,9 +1514,9 @@ blm_mode (int src, const u_char **data, const u_char *dataend, int *offset, int mode = "- unknown -"; sprintf (line, "reserved"); } - proto_tree_add_text(pt, *offset, 4, "Mode: %s", mode); + proto_tree_add_text(pt, NullTVB, *offset, 4, "Mode: %s", mode); BUMP (*offset, *data, 4); - proto_tree_add_text(pt, *offset, 4, line, NULL); + proto_tree_add_text(pt, NullTVB, *offset, 4, line, NULL); BUMP (*offset, *data, 4); } diff --git a/proto.c b/proto.c index 02fe8765fb..33a979a72e 100644 --- a/proto.c +++ b/proto.c @@ -1,7 +1,7 @@ /* proto.c * Routines for protocol tree * - * $Id: proto.c,v 1.63 2000/04/25 21:43:49 gram Exp $ + * $Id: proto.c,v 1.64 2000/05/11 08:15:59 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -90,13 +90,13 @@ static gboolean check_for_protocol_or_field_id(GNode *node, gpointer data); static gboolean check_for_field_within_protocol(GNode *node, gpointer data); static field_info* -proto_tree_add_field_info(int hfindex, gint start, gint length, int visible); +proto_tree_add_field_info(int hfindex, tvbuff_t *tvb, gint start, gint length, int visible); static proto_item* proto_tree_add_node(proto_tree *tree, field_info *fi); static proto_item * -proto_tree_add_pi(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_pi(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *format, gboolean visible, field_info **pfi, va_list ap); static void @@ -265,7 +265,7 @@ proto_registrar_get_nth(int hfindex) /* Add a node with no text */ proto_item * -proto_tree_add_notext(proto_tree *tree, gint start, gint length) +proto_tree_add_notext(proto_tree *tree, tvbuff_t *tvb, gint start, gint length) { field_info *fi; proto_item *pi; @@ -273,7 +273,7 @@ proto_tree_add_notext(proto_tree *tree, gint start, gint length) if (!tree) return(NULL); - fi = proto_tree_add_field_info(hf_text_only, start, length, + fi = proto_tree_add_field_info(hf_text_only, tvb, start, length, proto_tree_is_visible); pi = proto_tree_add_node(tree, fi); fi->representation = NULL; @@ -283,7 +283,7 @@ proto_tree_add_notext(proto_tree *tree, gint start, gint length) /* Add a text-only node to the proto_tree */ proto_item * -proto_tree_add_text(proto_tree *tree, gint start, gint length, +proto_tree_add_text(proto_tree *tree, tvbuff_t *tvb, gint start, gint length, const char *format, ...) { field_info *fi; @@ -293,7 +293,7 @@ proto_tree_add_text(proto_tree *tree, gint start, gint length, if (!tree) return(NULL); - fi = proto_tree_add_field_info(hf_text_only, start, length, + fi = proto_tree_add_field_info(hf_text_only, tvb, start, length, proto_tree_is_visible); pi = proto_tree_add_node(tree, fi); @@ -313,7 +313,7 @@ proto_tree_add_text(proto_tree *tree, gint start, gint length, /* Add an item to a proto_tree, using the text label registered to that item. */ proto_item * -proto_tree_add_item(proto_tree *tree, int hfindex, gint start, gint length, ...) +proto_tree_add_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, ...) { proto_item *pi; va_list ap; @@ -324,7 +324,7 @@ proto_tree_add_item(proto_tree *tree, int hfindex, gint start, gint length, ...) va_start(ap, length); /* ap won't be used since format is NULL */ - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, NULL, TRUE, &new_fi, ap); proto_tree_set_value(new_fi, length, ap); va_end(ap); @@ -335,7 +335,7 @@ proto_tree_add_item(proto_tree *tree, int hfindex, gint start, gint length, ...) /* Add an item to a proto_tree, but make it invisible in GUI. The field is * still searchable, though. */ proto_item * -proto_tree_add_item_hidden(proto_tree *tree, int hfindex, gint start, gint length, ...) +proto_tree_add_item_hidden(proto_tree *tree, int hfindex, tvbuff_t* tvb, gint start, gint length, ...) { proto_item *pi; va_list ap; @@ -346,7 +346,7 @@ proto_tree_add_item_hidden(proto_tree *tree, int hfindex, gint start, gint lengt va_start(ap, length); /* ap won't be used since format is NULL */ - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, NULL, FALSE, &new_fi, ap); proto_tree_set_value(new_fi, length, ap); va_end(ap); @@ -445,8 +445,8 @@ proto_tree_set_value(field_info *fi, gint length, va_list ap) /* Add a FT_NONE to a proto_tree */ proto_item * -proto_tree_add_protocol_format(proto_tree *tree, int hfindex, gint start, gint length, - const char *format, ...) +proto_tree_add_protocol_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, + gint length, const char *format, ...) { proto_item *pi; va_list ap; @@ -459,7 +459,7 @@ proto_tree_add_protocol_format(proto_tree *tree, int hfindex, gint start, gint l g_assert(hfinfo->type == FT_NONE); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, NULL, ap); /* no value to set for FT_NONE */ va_end(ap); @@ -469,8 +469,8 @@ proto_tree_add_protocol_format(proto_tree *tree, int hfindex, gint start, gint l /* Add a FT_BYTES to a proto_tree */ proto_item * -proto_tree_add_bytes_format(proto_tree *tree, int hfindex, gint start, gint length, - const guint8 *start_ptr, const char *format, ...) +proto_tree_add_bytes_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, + gint length, const guint8 *start_ptr, const char *format, ...) { proto_item *pi; va_list ap; @@ -484,7 +484,7 @@ proto_tree_add_bytes_format(proto_tree *tree, int hfindex, gint start, gint leng g_assert(hfinfo->type == FT_BYTES); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_bytes(new_fi, start_ptr, length); va_end(ap); @@ -506,7 +506,7 @@ proto_tree_set_bytes(field_info *fi, const guint8* start_ptr, gint length) /* Add a FT_*TIME to a proto_tree */ proto_item * -proto_tree_add_time_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_time_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, struct timeval *value_ptr, const char *format, ...) { proto_item *pi; @@ -522,7 +522,7 @@ proto_tree_add_time_format(proto_tree *tree, int hfindex, gint start, gint lengt hfinfo->type == FT_RELATIVE_TIME); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_time(new_fi, value_ptr); va_end(ap); @@ -539,7 +539,7 @@ proto_tree_set_time(field_info *fi, struct timeval *value_ptr) /* Add a FT_IPXNET to a proto_tree */ proto_item * -proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) { proto_item *pi; @@ -554,7 +554,7 @@ proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, gint start, gint len g_assert(hfinfo->type == FT_IPXNET); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_ipxnet(new_fi, value); va_end(ap); @@ -571,7 +571,7 @@ proto_tree_set_ipxnet(field_info *fi, guint32 value) /* Add a FT_IPv4 to a proto_tree */ proto_item * -proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) { proto_item *pi; @@ -586,7 +586,7 @@ proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, gint start, gint lengt g_assert(hfinfo->type == FT_IPv4); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_ipv4(new_fi, value); va_end(ap); @@ -604,7 +604,7 @@ proto_tree_set_ipv4(field_info *fi, guint32 value) /* Add a FT_IPv6 to a proto_tree */ proto_item * -proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint8* value_ptr, const char *format, ...) { proto_item *pi; @@ -619,7 +619,7 @@ proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, gint start, gint lengt g_assert(hfinfo->type == FT_IPv6); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_ipv6(new_fi, value_ptr); va_end(ap); @@ -636,8 +636,8 @@ proto_tree_set_ipv6(field_info *fi, guint8* value_ptr) /* Add a FT_STRING to a proto_tree */ proto_item * -proto_tree_add_string_format(proto_tree *tree, int hfindex, gint start, gint length, - const char* value, const char *format, ...) +proto_tree_add_string_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, + gint length, const char* value, const char *format, ...) { proto_item *pi; va_list ap; @@ -651,7 +651,7 @@ proto_tree_add_string_format(proto_tree *tree, int hfindex, gint start, gint len g_assert(hfinfo->type == FT_STRING); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_string(new_fi, value); va_end(ap); @@ -669,7 +669,7 @@ proto_tree_set_string(field_info *fi, const char* value) /* Add a FT_ETHER to a proto_tree */ proto_item * -proto_tree_add_ether_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_ether_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint8* value, const char *format, ...) { proto_item *pi; @@ -684,7 +684,7 @@ proto_tree_add_ether_format(proto_tree *tree, int hfindex, gint start, gint leng g_assert(hfinfo->type == FT_ETHER); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_ether(new_fi, value); va_end(ap); @@ -701,7 +701,7 @@ proto_tree_set_ether(field_info *fi, guint8* value) /* Add a FT_BOOLEAN to a proto_tree */ proto_item * -proto_tree_add_boolean_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_boolean_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) { proto_item *pi; @@ -716,7 +716,7 @@ proto_tree_add_boolean_format(proto_tree *tree, int hfindex, gint start, gint le g_assert(hfinfo->type == FT_BOOLEAN); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_boolean(new_fi, value); va_end(ap); @@ -733,7 +733,7 @@ proto_tree_set_boolean(field_info *fi, guint32 value) /* Add a FT_DOUBLE to a proto_tree */ proto_item * -proto_tree_add_double_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_double_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, double value, const char *format, ...) { proto_item *pi; @@ -748,7 +748,7 @@ proto_tree_add_double_format(proto_tree *tree, int hfindex, gint start, gint len g_assert(hfinfo->type == FT_DOUBLE); va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_double(new_fi, value); va_end(ap); @@ -765,7 +765,7 @@ proto_tree_set_double(field_info *fi, double value) /* Add any FT_UINT* to a proto_tree */ proto_item * -proto_tree_add_uint_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_uint_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) { proto_item *pi = NULL; @@ -783,7 +783,7 @@ proto_tree_add_uint_format(proto_tree *tree, int hfindex, gint start, gint lengt case FT_UINT24: case FT_UINT32: va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_uint(new_fi, value); va_end(ap); @@ -817,7 +817,7 @@ proto_tree_set_uint(field_info *fi, guint32 value) /* Add any FT_INT* to a proto_tree */ proto_item * -proto_tree_add_int_format(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_int_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint32 value, const char *format, ...) { proto_item *pi = NULL; @@ -835,7 +835,7 @@ proto_tree_add_int_format(proto_tree *tree, int hfindex, gint start, gint length case FT_INT24: case FT_INT32: va_start(ap, format); - pi = proto_tree_add_pi(tree, hfindex, start, length, + pi = proto_tree_add_pi(tree, hfindex, tvb, start, length, format, TRUE, &new_fi, ap); proto_tree_set_int(new_fi, value); va_end(ap); @@ -870,7 +870,7 @@ proto_tree_set_int(field_info *fi, gint32 value) /* Create a new field_info struct, and initialize it */ static field_info * -proto_tree_add_field_info(int hfindex, gint start, gint length, int visible) +proto_tree_add_field_info(int hfindex, tvbuff_t *tvb, gint start, gint length, int visible) { field_info *fi; @@ -880,6 +880,9 @@ proto_tree_add_field_info(int hfindex, gint start, gint length, int visible) fi->hfinfo = proto_registrar_get_nth(hfindex); g_assert(fi->hfinfo != NULL); fi->start = start; + if (tvb) { + fi->start += tvb_raw_offset(tvb); + } fi->length = length; fi->tree_type = ETT_NONE; fi->visible = visible; @@ -903,7 +906,7 @@ proto_tree_add_node(proto_tree *tree, field_info *fi) /* Generic way to allocate field_info, add to proto_tree, and set representation. * Sets *pfi to address of newly-allocated field_info struct, if pfi is non-NULL. */ static proto_item * -proto_tree_add_pi(proto_tree *tree, int hfindex, gint start, gint length, +proto_tree_add_pi(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *format, gboolean visible, field_info **pfi, va_list ap) { proto_item *pi; @@ -915,7 +918,7 @@ proto_tree_add_pi(proto_tree *tree, int hfindex, gint start, gint length, /* either visibility flag can nullify the other */ visible = proto_tree_is_visible && visible; - fi = proto_tree_add_field_info(hfindex, start, length, visible); + fi = proto_tree_add_field_info(hfindex, tvb, start, length, visible); pi = proto_tree_add_node(tree, fi); diff --git a/proto.h b/proto.h index 2d5dae8980..de64c5355f 100644 --- a/proto.h +++ b/proto.h @@ -1,7 +1,7 @@ /* proto.h * Definitions for protocol display * - * $Id: proto.h,v 1.29 2000/04/25 21:43:50 gram Exp $ + * $Id: proto.h,v 1.30 2000/05/11 08:15:59 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -41,6 +41,10 @@ #include "ipv4.h" #endif +#ifndef __TVBUFF_H__ +#include "tvbuff.h" +#endif + /* needs glib.h */ typedef struct GNode proto_tree; typedef struct GNode proto_item; @@ -148,6 +152,10 @@ typedef struct proto_tree_search_info { } result; } proto_tree_search_info; + +/* For use while converting dissectors to use tvbuff's */ +#define NullTVB NULL + /* Sets up memory used by proto routines. Called at program startup */ void proto_init(void); @@ -189,149 +197,149 @@ proto_register_subtree_array(gint **indices, int num_indices); /* Add item's value to proto_tree, using label registered to that field */ proto_item * -proto_tree_add_item(proto_tree *tree, int hfindex, gint start, +proto_tree_add_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, ...); proto_item * -proto_tree_add_item_hidden(proto_tree *tree, int hfindex, gint start, +proto_tree_add_item_hidden(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, ...); #if __GNUC__ == 2 proto_item * -proto_tree_add_protocol_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_protocol_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *format, ...) - __attribute__((format (printf, 5, 6))); + __attribute__((format (printf, 6, 7))); #else proto_item * -proto_tree_add_protocol_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_protocol_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_bytes_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_bytes_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8* start_ptr, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_bytes_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_bytes_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const guint8* start_ptr, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_time_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_time_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, struct timeval* value_ptr, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_time_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_time_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, struct timeval* value_ptr, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint8* value_ptr, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ipv6_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint8* value_ptr, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_ether_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ether_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint8* value, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_ether_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_ether_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint8* value, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_string_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_string_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char* value, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_string_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_string_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, const char* value, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_boolean_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_boolean_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_boolean_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_boolean_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_uint_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_uint_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_uint_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_uint_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_int_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_int_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint32 value, const char *format, ...) - __attribute__((format (printf, 6, 7))); + __attribute__((format (printf, 7, 8))); #else proto_item * -proto_tree_add_int_format(proto_tree *tree, int hfindex, gint start, +proto_tree_add_int_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, gint32 value, const char *format, ...); #endif #if __GNUC__ == 2 proto_item * -proto_tree_add_text(proto_tree *tree, gint start, gint length, const char *, - ...) __attribute__((format (printf, 4, 5))); +proto_tree_add_text(proto_tree *tree, tvbuff_t *tvb, gint start, gint length, const char *, + ...) __attribute__((format (printf, 5, 6))); #else proto_item * -proto_tree_add_text(proto_tree *tree, gint start, gint length, const char *, +proto_tree_add_text(proto_tree *tree, tvbuff_t *tvb, gint start, gint length, const char *, ...); #endif proto_item * -proto_tree_add_notext(proto_tree *tree, gint start, gint length); +proto_tree_add_notext(proto_tree *tree, tvbuff_t *tvb, gint start, gint length); void diff --git a/tvbtest.c b/tvbtest.c new file mode 100644 index 0000000000..72077c91e4 --- /dev/null +++ b/tvbtest.c @@ -0,0 +1,392 @@ +/* Standalone program to test functionality of tvbuffs. + * + * tvbtest : tvbtest.o tvbuff.o except.o + * + * $Id: tvbtest.c,v 1.1 2000/05/11 08:16:00 gram Exp $ + * + * Copyright (c) 2000 by Gilbert Ramirez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#include +#include +#include + +#include "tvbuff.h" + +#define pntohs(p) ((guint16) \ + ((guint16)*((guint8 *)p+0)<<8| \ + (guint16)*((guint8 *)p+1)<<0)) + +#define pntohl(p) ((guint32)*((guint8 *)p+0)<<24| \ + (guint32)*((guint8 *)p+1)<<16| \ + (guint32)*((guint8 *)p+2)<<8| \ + (guint32)*((guint8 *)p+3)<<0) + +#define pletohs(p) ((guint16) \ + ((guint16)*((guint8 *)p+1)<<8| \ + (guint16)*((guint8 *)p+0)<<0)) + +#define pletohl(p) ((guint32)*((guint8 *)p+3)<<24| \ + (guint32)*((guint8 *)p+2)<<16| \ + (guint32)*((guint8 *)p+1)<<8| \ + (guint32)*((guint8 *)p+0)<<0) + +/* Tests a tvbuff against the expected pattern/length. + * Returns TRUE if all tests succeeed, FALSE if any test fails */ +gboolean +test(tvbuff_t *tvb, gchar* name, + guint8* expected_data, guint expected_length) +{ + guint length; + guint8 *ptr; + gboolean ex_thrown; + guint32 val32, expected32; + int incr, i; + + length = tvb_length(tvb); + + if (length != expected_length) { + printf("Failed TVB=%s Length of tvb=%u while expected length=%u\n", + name, length, expected_length); + return FALSE; + } + + /* Test boundary case. A BoundsError exception should be thrown. */ + ex_thrown = FALSE; + TRY { + ptr = tvb_get_ptr(tvb, 0, length + 1); + } + CATCH(BoundsError) { + ex_thrown = TRUE; + } + ENDTRY; + + if (!ex_thrown) { + printf("Failed TVB=%s No BoundsError when retrieving %u bytes\n", + name, length + 1); + return FALSE; + } + + /* Test boundary case. A BoundsError exception should be thrown. */ + ex_thrown = FALSE; + TRY { + ptr = tvb_get_ptr(tvb, -1, 2); + } + CATCH(BoundsError) { + ex_thrown = TRUE; + } + ENDTRY; + + if (!ex_thrown) { + printf("Failed TVB=%s No BoundsError when retrieving 2 bytes from" + " offset -1\n", name); + return FALSE; + } + + /* Test boundary case. A BoundsError exception should not be thrown. */ + ex_thrown = FALSE; + TRY { + ptr = tvb_get_ptr(tvb, 0, 1); + } + CATCH(BoundsError) { + ex_thrown = TRUE; + } + ENDTRY; + + if (ex_thrown) { + printf("Failed TVB=%s BoundsError when retrieving 1 bytes from" + " offset 0\n", name); + return FALSE; + } + + /* Test boundary case. A BoundsError exception should not be thrown. */ + ex_thrown = FALSE; + TRY { + ptr = tvb_get_ptr(tvb, -1, 1); + } + CATCH(BoundsError) { + ex_thrown = TRUE; + } + ENDTRY; + + if (ex_thrown) { + printf("Failed TVB=%s BoundsError when retrieving 1 bytes from" + " offset -1\n", name); + return FALSE; + } + + + /* Check data at boundary. An exception should not be thrown. */ + if (length >= 4) { + ex_thrown = FALSE; + TRY { + val32 = tvb_get_ntohl(tvb, 0); + } + CATCH(BoundsError) { + ex_thrown = TRUE; + } + ENDTRY; + + if (ex_thrown) { + printf("Failed TVB=%s BoundsError when retrieving " + "guint32 from offset 0\n", name); + return FALSE; + } + + expected32 = pntohl(expected_data); + if (val32 != expected32) { + printf("Failed TVB=%s guint32 @ 0 %u != expected %u\n", + name, val32, expected32); + return FALSE; + } + } + + /* Check data at boundary. An exception should not be thrown. */ + if (length >= 4) { + ex_thrown = FALSE; + TRY { + val32 = tvb_get_ntohl(tvb, -4); + } + CATCH(BoundsError) { + ex_thrown = TRUE; + } + ENDTRY; + + if (ex_thrown) { + printf("Failed TVB=%s BoundsError when retrieving " + "guint32 from offset 0\n", name); + return FALSE; + } + + expected32 = pntohl(&expected_data[length-4]); + if (val32 != expected32) { + printf("Failed TVB=%s guint32 @ -4 %u != expected %u\n", + name, val32, expected32); + return FALSE; + } + } + + /* Sweep across data in various sized increments checking + * tvb_memdup() */ + for (incr = 1; incr < length; incr++) { + for (i = 0; i < length - incr; i += incr) { + ptr = tvb_memdup(tvb, i, incr); + if (memcmp(ptr, &expected_data[i], incr) != 0) { + printf("Failed TVB=%s Offset=%d Length=%d " + "Bad memdup\n", + name, i, incr); + g_free(ptr); + return FALSE; + } + g_free(ptr); + } + } + + /* One big memdup */ + ptr = tvb_memdup(tvb, 0, -1); + if (memcmp(ptr, expected_data, length) != 0) { + printf("Failed TVB=%s Offset=0 Length=-1 " + "Bad memdup\n", name); + g_free(ptr); + return FALSE; + } + g_free(ptr); + + + printf("Passed TVB=%s\n", name); + + return TRUE; +} + + + +void +run_tests(void) +{ + int i, j; + + tvbuff_t *tvb_small[3]; + tvbuff_t *tvb_large[3]; + tvbuff_t *tvb_subset[6]; + tvbuff_t *tvb_comp[6]; + guint8 *small[3]; + guint8 *large[3]; + guint8 *subset[6]; + guint subset_length[6]; + guint8 *comp[6]; + guint comp_length[6]; + guint8 temp; + int len; + + for (i = 0; i < 3; i++) { + small[i] = g_new(guint8, 16); + + temp = 16 * i; + for (j = 0; j < 16; j++) { + small[i][j] = temp + j; + } + + tvb_small[i] = tvb_new_real_data(small[i], 16); + } + + for (i = 0; i < 3; i++) { + large[i] = g_new(guint8, 19); + + temp = 19 * i; + for (j = 0; j < 19; j++) { + large[i][j] = temp + j; + } + + tvb_large[i] = tvb_new_real_data(large[i], 19); + } + + /* Test the TVBUFF_REAL_DATA objects. */ + test(tvb_small[0], "Small 0", small[0], 16); + test(tvb_small[1], "Small 1", small[1], 16); + test(tvb_small[2], "Small 2", small[2], 16); + + test(tvb_large[0], "Large 0", large[0], 19); + test(tvb_large[1], "Large 1", large[1], 19); + test(tvb_large[2], "Large 2", large[2], 19); + + tvb_subset[0] = tvb_new_subset(tvb_small[0], 0, 8); + subset[0] = &small[0][0]; + subset_length[0] = 8; + + tvb_subset[1] = tvb_new_subset(tvb_large[0], -10, 10); + subset[1] = &large[0][9]; + subset_length[1] = 10; + + tvb_subset[2] = tvb_new_subset(tvb_small[1], -16, -1); + subset[2] = &small[1][0]; + subset_length[2] = 16; + + tvb_subset[3] = tvb_new_subset(tvb_subset[0], 0, 3); + subset[3] = &small[0][0]; + subset_length[3] = 3; + + tvb_subset[4] = tvb_new_subset(tvb_subset[1], -5, 5); + subset[4] = &large[0][14]; + subset_length[4] = 5; + + tvb_subset[5] = tvb_new_subset(tvb_subset[2], 4, 8); + subset[5] = &small[1][4]; + subset_length[5] = 8; + + /* Test the TVBUFF_SUBSET objects. */ + test(tvb_subset[0], "Subset 0", subset[0], subset_length[0]); + test(tvb_subset[1], "Subset 1", subset[1], subset_length[1]); + test(tvb_subset[2], "Subset 2", subset[2], subset_length[2]); + test(tvb_subset[3], "Subset 3", subset[3], subset_length[3]); + test(tvb_subset[4], "Subset 4", subset[4], subset_length[4]); + test(tvb_subset[5], "Subset 5", subset[5], subset_length[5]); + + /* One Real */ + printf("Making Composite 0\n"); + tvb_comp[0] = tvb_new_composite(); + comp[0] = small[0]; + comp_length[0] = 16; + tvb_composite_append(tvb_comp[0], tvb_small[0]); + tvb_composite_finalize(tvb_comp[0]); + + /* Two Reals */ + printf("Making Composite 1\n"); + tvb_comp[1] = tvb_new_composite(); + comp[1] = g_malloc(32); + comp_length[1] = 32; + memcpy(comp[1], small[0], 16); + memcpy(&comp[1][16], small[1], 16); + tvb_composite_append(tvb_comp[1], tvb_small[0]); + tvb_composite_append(tvb_comp[1], tvb_small[1]); + tvb_composite_finalize(tvb_comp[1]); + + /* One subset */ + printf("Making Composite 2\n"); + tvb_comp[2] = tvb_new_composite(); + comp[2] = subset[1]; + comp_length[2] = subset_length[1]; + tvb_composite_append(tvb_comp[2], tvb_subset[1]); + tvb_composite_finalize(tvb_comp[2]); + + /* Two subsets */ + printf("Making Composite 3\n"); + tvb_comp[3] = tvb_new_composite(); + comp[3] = g_malloc(13); + comp_length[3] = 13; + memcpy(comp[3], &large[0][14], 5); + memcpy(&comp[3][5], &small[1][4], 8); + tvb_composite_append(tvb_comp[3], tvb_subset[4]); + tvb_composite_append(tvb_comp[3], tvb_subset[5]); + tvb_composite_finalize(tvb_comp[3]); + + /* One real, one subset */ + printf("Making Composite 4\n"); + tvb_comp[4] = tvb_new_composite(); + comp[4] = g_malloc(16 + subset_length[1]); + comp_length[4] = 16 + subset_length[1]; + memcpy(comp[4], small[0], 16); + memcpy(&comp[4][16], subset[1], subset_length[1]); + tvb_composite_append(tvb_comp[4], tvb_small[0]); + tvb_composite_append(tvb_comp[4], tvb_subset[1]); + tvb_composite_finalize(tvb_comp[4]); + + /* 4 composites */ + printf("Making Composite 5\n"); + tvb_comp[5] = tvb_new_composite(); + comp_length[5] = comp_length[0] + + comp_length[1] + + comp_length[2] + + comp_length[3]; + comp[5] = g_malloc(comp_length[5]); + + len = 0; + memcpy(&comp[5][len], comp[0], comp_length[0]); + len += comp_length[0]; + memcpy(&comp[5][len], comp[1], comp_length[1]); + len += comp_length[1]; + memcpy(&comp[5][len], comp[2], comp_length[2]); + len += comp_length[2]; + memcpy(&comp[5][len], comp[3], comp_length[3]); + + tvb_composite_append(tvb_comp[5], tvb_comp[0]); + tvb_composite_append(tvb_comp[5], tvb_comp[1]); + tvb_composite_append(tvb_comp[5], tvb_comp[2]); + tvb_composite_append(tvb_comp[5], tvb_comp[3]); + tvb_composite_finalize(tvb_comp[5]); + + /* Test the TVBUFF_COMPOSITE objects. */ + test(tvb_comp[0], "Composite 0", comp[0], comp_length[0]); + test(tvb_comp[1], "Composite 1", comp[1], comp_length[1]); + test(tvb_comp[2], "Composite 2", comp[2], comp_length[2]); + test(tvb_comp[3], "Composite 3", comp[3], comp_length[3]); + test(tvb_comp[4], "Composite 4", comp[4], comp_length[4]); + test(tvb_comp[5], "Composite 5", comp[5], comp_length[5]); +} + +int +main(void) +{ + except_init(); + tvbuff_init(); + run_tests(); + tvbuff_cleanup(); + except_deinit(); + exit(0); +} + + diff --git a/tvbuff.c b/tvbuff.c new file mode 100644 index 0000000000..e74cb1ab37 --- /dev/null +++ b/tvbuff.c @@ -0,0 +1,824 @@ +/* tvbuff.c + * + * Testy, Virtual(-izable) Buffer of guint8*'s + * + * "Testy" -- the buffer gets mad when an attempt to access data + * beyond the bounds of the buffer. An exception is thrown. + * + * "Virtual" -- the buffer can have its own data, can use a subset of + * the data of a backing tvbuff, or can be a composite of + * other tvbuffs. + * + * $Id: tvbuff.c,v 1.1 2000/05/11 08:16:00 gram Exp $ + * + * Copyright (c) 2000 by Gilbert Ramirez + * + * Ethereal - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __TVBUFF_H__ +#include "tvbuff.h" +#endif + +#include + +/* Pointer versions of ntohs and ntohl. Given a pointer to a member of a + * byte array, returns the value of the two or four bytes at the pointer. + * The pletoh[sl] versions return the little-endian representation. + */ + +#define pntohs(p) ((guint16) \ + ((guint16)*((guint8 *)p+0)<<8| \ + (guint16)*((guint8 *)p+1)<<0)) + +#define pntohl(p) ((guint32)*((guint8 *)p+0)<<24| \ + (guint32)*((guint8 *)p+1)<<16| \ + (guint32)*((guint8 *)p+2)<<8| \ + (guint32)*((guint8 *)p+3)<<0) + +#define pletohs(p) ((guint16) \ + ((guint16)*((guint8 *)p+1)<<8| \ + (guint16)*((guint8 *)p+0)<<0)) + +#define pletohl(p) ((guint32)*((guint8 *)p+3)<<24| \ + (guint32)*((guint8 *)p+2)<<16| \ + (guint32)*((guint8 *)p+1)<<8| \ + (guint32)*((guint8 *)p+0)<<0) + + +typedef struct { + /* The backing tvbuff_t */ + tvbuff_t *tvb; + + /* The offset/length of 'tvb' to which I'm privy */ + guint offset; + guint length; + +} tvb_backing_t; + +typedef struct { + GSList *tvbs; + + /* Used for quick testing to see if this + * is the tvbuff that a COMPOSITE is + * interested in. */ + guint *start_offsets; + guint *end_offsets; + +} tvb_comp_t; + +struct tvbuff { + /* Record-keeping */ + tvbuff_type type; + gboolean initialized; + guint usage_count; + + /* The tvbuffs in which this tvbuff is a member + * (that is, a backing tvbuff for a TVBUFF_SUBSET + * or a member for a TVB_COMPOSITE) */ + GSList *used_in; + + /* TVBUFF_SUBSET and TVBUFF_COMPOSITE keep track + * of the other tvbuff's they use */ + union { + tvb_backing_t subset; + tvb_comp_t composite; + } tvbuffs; + + /* We're either a TVBUFF_REAL_DATA or a + * TVBUFF_SUBSET that has a backing buffer that + * has real_data != NULL, or a TVBUFF_COMPOSITE + * which has flattened its data due to a call + * to tvb_get_ptr(). + */ + guint8 *real_data; + + /* Length of virtual buffer (and/or real_data). */ + guint length; + + /* Offset from beginning of first TVBUFF_REAL. */ + gint raw_offset; + + /* Func to call when actually freed */ + tvbuff_free_cb_t free_cb; +}; + +static guint8* +ensure_contiguous(tvbuff_t *tvb, gint offset, gint length); + +/* We dole out tvbuff's from this memchunk. */ +GMemChunk *tvbuff_mem_chunk = NULL; + +void +tvbuff_init(void) +{ + if (!tvbuff_mem_chunk) + tvbuff_mem_chunk = g_mem_chunk_create(tvbuff_t, 20, G_ALLOC_AND_FREE); +} + +void +tvbuff_cleanup(void) +{ + if (tvbuff_mem_chunk) + g_mem_chunk_destroy(tvbuff_mem_chunk); + + tvbuff_mem_chunk = NULL; +} + + + + +static void +tvb_init(tvbuff_t *tvb, tvbuff_type type) +{ + tvb_backing_t *backing; + tvb_comp_t *composite; + + tvb->type = type; + tvb->initialized = FALSE; + tvb->usage_count = 1; + tvb->length = 0; + tvb->free_cb = NULL; + tvb->real_data = NULL; + tvb->raw_offset = -1; + tvb->used_in = NULL; + + switch(type) { + case TVBUFF_REAL_DATA: + /* Nothing */ + break; + + case TVBUFF_SUBSET: + backing = &tvb->tvbuffs.subset; + backing->tvb = NULL; + backing->offset = 0; + backing->length = 0; + break; + + case TVBUFF_COMPOSITE: + composite = &tvb->tvbuffs.composite; + composite->tvbs = NULL; + composite->start_offsets = NULL; + composite->end_offsets = NULL; + break; + } +} + + +tvbuff_t* +tvb_new(tvbuff_type type) +{ + tvbuff_t *tvb; + + tvb = g_chunk_new(tvbuff_t, tvbuff_mem_chunk); + g_assert(tvb); + + tvb_init(tvb, type); + + return tvb; +} + +void +tvb_free(tvbuff_t* tvb) +{ + tvbuff_t *member_tvb; + tvb_comp_t *composite; + GSList *slist; + + tvb->usage_count--; + + if (tvb->usage_count == 0) { + switch (tvb->type) { + case TVBUFF_REAL_DATA: + if (tvb->free_cb) { + tvb->free_cb(tvb->real_data); + } + break; + + case TVBUFF_SUBSET: + tvb_decrement_usage_count(tvb->tvbuffs.subset.tvb, 1); + break; + + case TVBUFF_COMPOSITE: + composite = &tvb->tvbuffs.composite; + for (slist = composite->tvbs; slist != NULL ; slist = slist->next) { + member_tvb = slist->data; + tvb_decrement_usage_count(member_tvb, 1); + } + + g_slist_free(composite->tvbs); + + if (composite->start_offsets) + g_free(composite->start_offsets); + if (composite->end_offsets) + g_free(composite->end_offsets); + if (tvb->real_data) + g_free(tvb->real_data); + + break; + } + + if (tvb->used_in) { + g_slist_free(tvb->used_in); + } + + g_chunk_free(tvb, tvbuff_mem_chunk); + } +} + +guint +tvb_increment_usage_count(tvbuff_t* tvb, guint count) +{ + tvb->usage_count += count; + + return tvb->usage_count; +} + +guint +tvb_decrement_usage_count(tvbuff_t* tvb, guint count) +{ + if (tvb->usage_count <= count) { + tvb->usage_count = 1; + tvb_free(tvb); + return 0; + } + else { + tvb->usage_count -= count; + return tvb->usage_count; + } + +} + +void +tvb_free_chain(tvbuff_t* tvb) +{ + GSList *slist; + + /* Recursively call tvb_free_chain() */ + for (slist = tvb->used_in; slist != NULL ; slist = slist->next) { + tvb_free_chain( (tvbuff_t*)slist->data ); + } + + /* Stop the recursion */ + tvb_free(tvb); +} + + + +void +tvb_set_free_cb(tvbuff_t* tvb, tvbuff_free_cb_t func) +{ + g_assert(tvb->type == TVBUFF_REAL_DATA); + tvb->free_cb = func; +} + +void +tvb_set_real_data(tvbuff_t* tvb, const guint8* data, guint length) +{ + g_assert(tvb->type == TVBUFF_REAL_DATA); + g_assert(!tvb->initialized); + + tvb->real_data = (gpointer) data; + tvb->length = length; + tvb->initialized = TRUE; +} + +tvbuff_t* +tvb_new_real_data(const guint8* data, guint length) +{ + tvbuff_t *tvb; + + tvb = tvb_new(TVBUFF_REAL_DATA); + tvb_set_real_data(tvb, data, length); + + return tvb; +} + +/* Computes the absolute offset and length based on a possibly-negative offset + * and a length that is possible -1 (which means "to the end of the data"). + * Returns TRUE/FALSE indicating whether the offset is in bounds or + * not. The integer ptrs are modified with the new offset and length. + * No exception is thrown. */ +static gboolean +compute_offset_length(tvbuff_t *tvb, gint offset, gint length, + guint *offset_ptr, guint *length_ptr) +{ + g_assert(offset_ptr); + g_assert(length_ptr); + + /* Compute the offset */ + if (offset >= 0) { + *offset_ptr = offset; + } + else if (-offset > tvb->length) { + return FALSE; + } + else { + *offset_ptr = tvb->length + offset; + } + + /* Compute the length */ + g_assert(length >= -1); + if (length == -1) { + *length_ptr = tvb->length - *offset_ptr; + } + else { + *length_ptr = length; + } + + return TRUE; +} + + +static gboolean +check_offset_length_no_exception(tvbuff_t *tvb, gint offset, gint length, + guint *offset_ptr, guint *length_ptr) +{ + g_assert(tvb->initialized); + + if (!compute_offset_length(tvb, offset, length, offset_ptr, length_ptr)) { + return FALSE; + } + + if (*offset_ptr + *length_ptr <= tvb->length) { + return TRUE; + } + else { + return FALSE; + } + + g_assert_not_reached(); +} + +/* Checks (+/-) offset and length and throws BoundsError if + * either is out of bounds. Sets integer ptrs to the new offset + * and length. */ +static void +check_offset_length(tvbuff_t *tvb, gint offset, gint length, + guint *offset_ptr, guint *length_ptr) +{ + if (!check_offset_length_no_exception(tvb, offset, length, offset_ptr, length_ptr)) { + THROW(BoundsError); + } + return; +} + +static void +add_to_used_in_list(tvbuff_t *tvb, tvbuff_t *used_in) +{ + tvb->used_in = g_slist_prepend(tvb->used_in, used_in); +} + +void +tvb_set_subset(tvbuff_t *tvb, tvbuff_t *backing, + gint backing_offset, gint backing_length) +{ + g_assert(tvb->type == TVBUFF_SUBSET); + g_assert(!tvb->initialized); + + check_offset_length(backing, backing_offset, backing_length, + &tvb->tvbuffs.subset.offset, + &tvb->tvbuffs.subset.length); + + tvb_increment_usage_count(backing, 1); + tvb->tvbuffs.subset.tvb = backing; + tvb->length = tvb->tvbuffs.subset.length; + tvb->initialized = TRUE; + add_to_used_in_list(backing, tvb); + + /* Optimization. If the backing buffer has a pointer to contiguous, real data, + * then we can point directly to our starting offset in that buffer */ + if (backing->real_data != NULL) { + tvb->real_data = backing->real_data + tvb->tvbuffs.subset.offset; + } +} + + +tvbuff_t* +tvb_new_subset(tvbuff_t *backing, gint backing_offset, gint backing_length) +{ + tvbuff_t *tvb; + + tvb = tvb_new(TVBUFF_SUBSET); + tvb_set_subset(tvb, backing, backing_offset, backing_length); + + return tvb; +} + +void +tvb_composite_append(tvbuff_t* tvb, tvbuff_t* member) +{ + tvb_comp_t *composite; + + g_assert(!tvb->initialized); + composite = &tvb->tvbuffs.composite; + composite->tvbs = g_slist_append( composite->tvbs, member ); +} + +void +tvb_composite_prepend(tvbuff_t* tvb, tvbuff_t* member) +{ + tvb_comp_t *composite; + + g_assert(!tvb->initialized); + composite = &tvb->tvbuffs.composite; + composite->tvbs = g_slist_prepend( composite->tvbs, member ); +} + +tvbuff_t* +tvb_new_composite(void) +{ + return tvb_new(TVBUFF_COMPOSITE); +} + +void +tvb_composite_finalize(tvbuff_t* tvb) +{ + GSList *slist; + guint num_members; + tvbuff_t *member_tvb; + tvb_comp_t *composite; + int i = 0; + + g_assert(!tvb->initialized); + g_assert(tvb->length == 0); + + composite = &tvb->tvbuffs.composite; + num_members = g_slist_length(composite->tvbs); + + composite->start_offsets = g_new(guint, num_members); + composite->end_offsets = g_new(guint, num_members); + + for (slist = composite->tvbs; slist != NULL; slist = slist->next) { + g_assert(i < num_members); + member_tvb = slist->data; + composite->start_offsets[i] = tvb->length; + tvb->length += member_tvb->length; + composite->end_offsets[i] = tvb->length - 1; + i++; + } + + tvb->initialized = TRUE; +} + + + +guint +tvb_length(tvbuff_t* tvb) +{ + g_assert(tvb->initialized); + + return tvb->length; +} + +guint +tvb_length_remaining(tvbuff_t *tvb, gint offset) +{ + guint abs_offset, abs_length; + + g_assert(tvb->initialized); + + if (compute_offset_length(tvb, offset, -1, + &abs_offset, &abs_length)) { + return abs_length; + } + else { + return -1; + } +} + + + +/* Validates that 'length' bytes are available starting from + * offset (pos/neg). Does not throw BoundsError exception. */ +gboolean +tvb_bytes_exist(tvbuff_t *tvb, gint offset, gint length) +{ + guint abs_offset, abs_length; + + g_assert(tvb->initialized); + + if (!compute_offset_length(tvb, offset, length, &abs_offset, &abs_length)) + return FALSE; + + if (abs_offset + abs_length <= tvb->length) { + return TRUE; + } + else { + return FALSE; + } +} + +gboolean +tvb_offset_exists(tvbuff_t *tvb, gint offset) +{ + guint abs_offset, abs_length; + + g_assert(tvb->initialized); + if (compute_offset_length(tvb, offset, -1, &abs_offset, &abs_length)) { + return TRUE; + } + else { + return FALSE; + } +} + + + + +guint8* +first_real_data_ptr(tvbuff_t *tvb) +{ + tvbuff_t *member; + + switch(tvb->type) { + case TVBUFF_REAL_DATA: + return tvb->real_data; + case TVBUFF_SUBSET: + member = tvb->tvbuffs.subset.tvb; + return first_real_data_ptr(member); + case TVBUFF_COMPOSITE: + member = tvb->tvbuffs.composite.tvbs->data; + return first_real_data_ptr(member); + } + + g_assert_not_reached(); + return NULL; +} + +int +offset_from_real_beginning(tvbuff_t *tvb, int counter) +{ + tvbuff_t *member; + + switch(tvb->type) { + case TVBUFF_REAL_DATA: + return counter; + case TVBUFF_SUBSET: + member = tvb->tvbuffs.subset.tvb; + return offset_from_real_beginning(member, counter + tvb->tvbuffs.subset.offset); + case TVBUFF_COMPOSITE: + member = tvb->tvbuffs.composite.tvbs->data; + return offset_from_real_beginning(member, counter); + } + + g_assert_not_reached(); + return 0; +} + +gint +tvb_raw_offset(tvbuff_t *tvb) +{ + if (tvb->raw_offset == -1) { + tvb->raw_offset = offset_from_real_beginning(tvb, 0); + } + return tvb->raw_offset; +} + +void +tvb_compat(tvbuff_t *tvb, const guint8 **pd, int *offset) +{ + g_assert(tvb->initialized); + *pd = first_real_data_ptr(tvb); + *offset = tvb_raw_offset(tvb); +} + + +static guint8* +composite_ensure_contiguous(tvbuff_t *tvb, guint abs_offset, guint abs_length) +{ + guint i, num_members; + tvb_comp_t *composite; + tvbuff_t *member_tvb = NULL; + guint member_offset, member_length; + GSList *slist; + + g_assert(tvb->type == TVBUFF_COMPOSITE); + + /* Maybe the range specified by offset/length + * is contiguous inside one of the member tvbuffs */ + composite = &tvb->tvbuffs.composite; + num_members = g_slist_length(composite->tvbs); + + for (i = 0; i < num_members; i++) { + if (abs_offset <= composite->end_offsets[i]) { + slist = g_slist_nth(composite->tvbs, i); + member_tvb = slist->data; + break; + } + } + g_assert(member_tvb); + + if (check_offset_length_no_exception(member_tvb, abs_offset - composite->start_offsets[i], + abs_length, &member_offset, &member_length)) { + + g_assert(!tvb->real_data); + return ensure_contiguous(member_tvb, member_offset, member_length); + } + else { + tvb->real_data = tvb_memdup(tvb, 0, -1); + return tvb->real_data + abs_offset; + } + + g_assert_not_reached(); + return NULL; +} + +static guint8* +ensure_contiguous(tvbuff_t *tvb, gint offset, gint length) +{ + guint abs_offset, abs_length; + + check_offset_length(tvb, offset, length, &abs_offset, &abs_length); + + if (tvb->real_data) { + return tvb->real_data + abs_offset; + } + else { + switch(tvb->type) { + case TVBUFF_REAL_DATA: + g_assert_not_reached(); + case TVBUFF_SUBSET: + return ensure_contiguous(tvb->tvbuffs.subset.tvb, + abs_offset - tvb->tvbuffs.subset.offset, + abs_length); + case TVBUFF_COMPOSITE: + return composite_ensure_contiguous(tvb, abs_offset, abs_length); + } + } + + g_assert_not_reached(); + return NULL; +} + + +/************** ACCESSORS **************/ + +static guint8* +composite_memcpy(tvbuff_t *tvb, guint8* target, guint abs_offset, guint abs_length) +{ + guint i, num_members; + tvb_comp_t *composite; + tvbuff_t *member_tvb = NULL; + guint member_offset, member_length; + gboolean retval; + GSList *slist; + + g_assert(tvb->type == TVBUFF_COMPOSITE); + + /* Maybe the range specified by offset/length + * is contiguous inside one of the member tvbuffs */ + composite = &tvb->tvbuffs.composite; + num_members = g_slist_length(composite->tvbs); + + for (i = 0; i < num_members; i++) { + if (abs_offset <= composite->end_offsets[i]) { + slist = g_slist_nth(composite->tvbs, i); + member_tvb = slist->data; + break; + } + } + g_assert(member_tvb); + + if (check_offset_length_no_exception(member_tvb, abs_offset - composite->start_offsets[i], + abs_length, &member_offset, &member_length)) { + + g_assert(!tvb->real_data); + return tvb_memcpy(member_tvb, target, member_offset, member_length); + } + else { + /* The requested data is non-contiguous inside + * the member tvb. We have to memcpy() the part that's in the member tvb, + * then iterate across the other member tvb's, copying their portions + * until we have copied all data. + */ + retval = compute_offset_length(member_tvb, abs_offset - composite->start_offsets[i], -1, + &member_offset, &member_length); + g_assert(retval); + + tvb_memcpy(member_tvb, target, member_offset, member_length); + abs_offset += member_length; + abs_length -= member_length; + + /* Recurse */ + if (abs_length > 0) { + composite_memcpy(tvb, target + member_length, abs_offset, abs_length); + } + + return target; + } + + g_assert_not_reached(); + return NULL; +} + +guint8* +tvb_memcpy(tvbuff_t *tvb, guint8* target, gint offset, gint length) +{ + guint abs_offset, abs_length; + + check_offset_length(tvb, offset, length, &abs_offset, &abs_length); + + if (tvb->real_data) { + return (guint8*) memcpy(target, tvb->real_data + abs_offset, abs_length); + } + + switch(tvb->type) { + case TVBUFF_REAL_DATA: + g_assert_not_reached(); + + case TVBUFF_SUBSET: + return tvb_memcpy(tvb->tvbuffs.subset.tvb, target, + abs_offset - tvb->tvbuffs.subset.offset, + abs_length); + + case TVBUFF_COMPOSITE: + return composite_memcpy(tvb, target, offset, length); + } + + g_assert_not_reached(); + return NULL; +} + + +guint8* +tvb_memdup(tvbuff_t *tvb, gint offset, gint length) +{ + guint abs_offset, abs_length; + guint8 *duped; + + check_offset_length(tvb, offset, length, &abs_offset, &abs_length); + + duped = g_malloc(abs_length); + return tvb_memcpy(tvb, duped, abs_offset, abs_length); +} + + + +guint8* +tvb_get_ptr(tvbuff_t *tvb, gint offset, gint length) +{ + return ensure_contiguous(tvb, offset, length); +} + +guint8 +tvb_get_guint8(tvbuff_t *tvb, gint offset) +{ + guint8* ptr; + + ptr = ensure_contiguous(tvb, offset, sizeof(guint8)); + return *ptr; +} + +guint16 +tvb_get_ntohs(tvbuff_t *tvb, gint offset) +{ + guint8* ptr; + + ptr = ensure_contiguous(tvb, offset, sizeof(guint16)); + return pntohs(ptr); +} + +guint32 +tvb_get_ntohl(tvbuff_t *tvb, gint offset) +{ + guint8* ptr; + + ptr = ensure_contiguous(tvb, offset, sizeof(guint32)); + return pntohl(ptr); +} + +guint16 +tvb_get_letohs(tvbuff_t *tvb, gint offset) +{ + guint8* ptr; + + ptr = ensure_contiguous(tvb, offset, sizeof(guint16)); + return pletohs(ptr); +} + +guint32 +tvb_get_letohl(tvbuff_t *tvb, gint offset) +{ + guint8* ptr; + + ptr = ensure_contiguous(tvb, offset, sizeof(guint32)); + return pletohl(ptr); +} diff --git a/tvbuff.h b/tvbuff.h new file mode 100644 index 0000000000..0e00c60935 --- /dev/null +++ b/tvbuff.h @@ -0,0 +1,230 @@ +/* tvbuff.h + * + * Testy, Virtual(-izable) Buffer of guint8*'s + * + * "Testy" -- the buffer gets mad when an attempt is made to access data + * beyond the bounds of the buffer. An exception is thrown. + * + * "Virtual" -- the buffer can have its own data, can use a subset of + * the data of a backing tvbuff, or can be a composite of + * other tvbuffs. + * + * $Id: tvbuff.h,v 1.1 2000/05/11 08:16:00 gram Exp $ + * + * Copyright (c) 2000 by Gilbert Ramirez + * + * Ethereal - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __TVBUFF_H__ +#define __TVBUFF_H__ + +#ifndef __GLIB_H__ +#include +#endif + +#ifndef __EXCEPTIONS_H__ +#include "exceptions.h" +#endif + +typedef struct tvbuff tvbuff_t; + +typedef void (*tvbuff_free_cb_t)(void*); + +/* The different types of tvbuff's */ +typedef enum { + TVBUFF_REAL_DATA, + TVBUFF_SUBSET, + TVBUFF_COMPOSITE +} tvbuff_type; + +/* TVBUFF_REAL_DATA contains a guint8* that points to real data. + * The data is allocated and contiguous. + * + * TVBUFF_SUBSET has a backing tvbuff. The TVBUFF_SUBSET is a "window" + * through which the program sees only a portion of the backing tvbuff. + * + * TVBUFF_COMPOSITE combines multiple tvbuffs sequentually to produce + * a larger byte array. + * + * tvbuff's of any type can be used as the backing-tvbuff of a + * TVBUFF_SUBSET or as the member of a TVBUFF_COMPOSITE. + * TVBUFF_COMPOSITEs can have member-tvbuffs of different types. + * + * Once a tvbuff is create/initialized/finalized, the tvbuff is read-only. + * That is, it cannot point to any other data. A new tvbuff must be created if + * you want a tvbuff that points to other data. + */ + + +/* "class" initialization. Called once during execution of program + * so that tvbuff.c can initialize its data. */ +void tvbuff_init(void); + +/* "class" cleanup. Called once during execution of program + * so that tvbuff.c can clean up its data. */ +void tvbuff_cleanup(void); + + +/* Returns a pointer to a newly initialized tvbuff. Note that + * tvbuff's of types TVBUFF_SUBSET and TVBUFF_COMPOSITE + * require further initialization via the appropriate functions */ +tvbuff_t* tvb_new(tvbuff_type); + +/* Marks a tvbuff for freeing. The guint8* data is *never* freed by + * the tvbuff routines. The tvbuff is actually freed once its usage + * count drops to 0. Usage counts increment for any time the tvbuff is + * used as a member of another tvbuff, i.e., as the backing buffer for + * a TVBUFF_SUBSET or as a member of a TVBUFF_COMPOSITE. + * + * The caller can artificially increment/decrement the usage count + * with tvbuff_increment_usage_count()/tvbuff_decrement_usage_count(). + */ +void tvb_free(tvbuff_t*); + +/* Free the tvbuff_t and all tvbuff's created from it. */ +void tvb_free_chain(tvbuff_t*); + +/* Both return the new usage count, after the increment or decrement */ +guint tvb_increment_usage_count(tvbuff_t*, guint count); +/* If a decrement causes the usage count to drop to 0, a the tvbuff + * is immediately freed. Be sure you know exactly what you're doing + * if you decide to use this function, as another tvbuff could + * still have a pointer to the just-freed tvbuff, causing corrupted data + * or a segfault in the future */ +guint tvb_decrement_usage_count(tvbuff_t*, guint count); + +/* Set a callback function to call when a tvbuff is actually freed + * (once the usage count drops to 0). One argument is passed to + * that callback --- the guint* that points to the real data. + * Obviously, this only applies to a TVBUFF_REAL_DATA tvbuff. */ +void tvb_set_free_cb(tvbuff_t*, tvbuff_free_cb_t); + + +/* Sets parameters for TVBUFF_REAL_DATA */ +void tvb_set_real_data(tvbuff_t*, const guint8* data, guint length); + +/* Combination of tvb_new() and tvb_set_real_data() */ +tvbuff_t* tvb_new_real_data(const guint8* data, guint length); + + +/* Define the subset of the backing buffer to use. + * + * 'backing_offset' can be negative, to indicate bytes from + * the end of the backing buffer. + * + * 'backing_length' can be 0, although the usefulness of the buffer would + * be rather limited. + * + * 'backing_length' of -1 means "to the end of the backing buffer" + * + * Will throw BoundsError if 'backing_offset'/'length' + * is beyond the bounds of the backing tvbuff. */ +void tvb_set_subset(tvbuff_t* tvb, tvbuff_t* backing, + gint backing_offset, gint backing_length); + +/* Combination of tvb_new() and tvb_set_subset() */ +tvbuff_t* tvb_new_subset(tvbuff_t* backing, + gint backing_offset, gint backing_length); + + +/* Both tvb_composite_append and tvb_composite_prepend can throw + * BoundsError if member_offset/member_length goes beyond bounds of + * the 'member' tvbuff. */ + +/* Append to the list of tvbuffs that make up this composite tvbuff */ +void tvb_composite_append(tvbuff_t* tvb, tvbuff_t* member); + +/* Prepend to the list of tvbuffs that make up this composite tvbuff */ +void tvb_composite_prepend(tvbuff_t* tvb, tvbuff_t* member); + +/* Helper function that calls tvb_new(TVBUFF_COMPOSITE). + * Provided only to maintain symmetry with other constructors */ +tvbuff_t* tvb_new_composite(void); + +/* Mark a composite tvbuff as initialized. No further appends or prepends + * occur, data access can finally happen after this finalization. */ +void tvb_composite_finalize(tvbuff_t* tvb); + + +/* Get total length of buffer */ +guint tvb_length(tvbuff_t*); + +/* Computes bytes to end of buffer, from offset (which can be negative, + * to indicate bytes from end of buffer). Function returns -1 to + * indicate that offset is out of bounds. No exception is thrown. */ +guint tvb_length_remaining(tvbuff_t*, gint offset); + +/* Checks (w/o throwing exception) that the bytes referred to by 'offset'/'length' + * actualy exist in the buffer */ +gboolean tvb_bytes_exist(tvbuff_t*, gint offset, gint length); + +/* Checks (w/o throwing exception) that offset exists in buffer */ +gboolean tvb_offset_exists(tvbuff_t*, gint offset); + +/* Returns the offset from the first byte of real data. This is + * the same value as 'offset' in tvb_compat() */ +gint tvb_raw_offset(tvbuff_t*); + +/************** START OF ACCESSORS ****************/ +/* All accessors will throw BoundsError if appropriate */ + +guint8 tvb_get_guint8(tvbuff_t*, gint offset); +guint16 tvb_get_ntohs(tvbuff_t*, gint offset); +guint32 tvb_get_ntohl(tvbuff_t*, gint offset); +guint16 tvb_get_letohs(tvbuff_t*, gint offset); +guint32 tvb_get_letohl(tvbuff_t*, gint offset); + +/* Returns target for convenience. Does not suffer from possible + * expense of tvb_get_ptr(), since this routine is smart enough + * to copy data in chunks if the request range actually exists in + * different TVBUFF_REAL_DATA tvbuffs. */ +guint8* tvb_memcpy(tvbuff_t*, guint8* target, gint offset, gint length); + +/* It is the user's responsibility to g_free() the memory allocated by + * tvb_memdup(). Calls tvb_memcpy() */ +guint8* tvb_memdup(tvbuff_t*, gint offset, gint length); + +/* WARNING! This function is possibly expensive, temporarily allocating + * another copy of the packet data. Furthermore, it's dangerous because once + * this pointer is given to the user, there's no guarantee that the user will + * honor the 'length' and not overstep the boundaries of the buffer. + * + * Return a pointer into our buffer if the data asked for via 'offset'/'length' + * is contiguous (which might not be the case for TVBUFF_COMPOSITE). If the + * data is not contiguous, a tvb_memdup() is called for the entire buffer + * and the pointer to the newly-contiguous data is returned. This dynamically- + * allocated memory will be freed when the tvbuff is freed, after the + * tvbuff_free_cb_t() is called, if any. */ +guint8* tvb_get_ptr(tvbuff_t*, gint offset, gint length); + +/* Find length of string by looking for end of string ('\0'), up to + * 'max_length' characters'. Returns -1 if 'max_length' reached + * before finding EOS. */ +/*gint tvb_strnlen(tvbuff_t*, gint offset, gint max_length);*/ + +/************** END OF ACCESSORS ****************/ + +/* Sets pd and offset so that tvbuff's can be used with code + * that only understands pd/offset and not tvbuffs. + * This is the "compatibility" function */ +void tvb_compat(tvbuff_t*, const guint8 **pd, int *offset); + +#endif /* __TVBUFF_H__ */ diff --git a/xdlc.c b/xdlc.c index 1bbd6d5fa4..982820165a 100644 --- a/xdlc.c +++ b/xdlc.c @@ -2,7 +2,7 @@ * Routines for use by various SDLC-derived protocols, such as HDLC * and its derivatives LAPB, IEEE 802.2 LLC, etc.. * - * $Id: xdlc.c,v 1.13 2000/03/14 06:03:26 guy Exp $ + * $Id: xdlc.c,v 1.14 2000/05/11 08:16:00 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -249,45 +249,45 @@ dissect_xdlc_control(const u_char *pd, int offset, frame_data *fd, col_add_str(fd, COL_INFO, info); if (xdlc_tree) { if (is_extended) { - tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, + tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, NullTVB, offset, 2, control, "Control field: %s (0x%04X)", info, control); control_tree = proto_item_add_subtree(tc, ett_xdlc_control); - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_numeric_bitfield(control, XDLC_N_R_EXT_MASK, 2*8, "N(R) = %u")); if (control & XDLC_P_F_EXT) { - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_boolean_bitfield(control, XDLC_P_F_EXT, 2*8, (is_response ? "Final" : "Poll"), NULL)); } - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_enumerated_bitfield(control, XDLC_S_FTYPE_MASK, 2*8, stype_vals, "Supervisory frame - %s")); /* This will always say it's a supervisory frame */ - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_boolean_bitfield(control, 0x03, 2*8, "Supervisory frame", NULL)); } else { - tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, + tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, NullTVB, offset, 1, control, "Control field: %s (0x%02X)", info, control); control_tree = proto_item_add_subtree(tc, ett_xdlc_control); - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_numeric_bitfield(control, XDLC_N_R_MASK, 1*8, "N(R) = %u")); if (control & XDLC_P_F) { - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_boolean_bitfield(control, XDLC_P_F, 1*8, (is_response ? "Final" : "Poll"), NULL)); } - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_enumerated_bitfield(control, XDLC_S_FTYPE_MASK, 1*8, stype_vals, "%s")); /* This will always say it's a supervisory frame */ - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_boolean_bitfield(control, 0x03, 1*8, "Supervisory frame", NULL)); } @@ -323,22 +323,22 @@ dissect_xdlc_control(const u_char *pd, int offset, frame_data *fd, if (check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, info); if (xdlc_tree) { - tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, + tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, NullTVB, offset, 1, control, "Control field: %s (0x%02X)", info, control); control_tree = proto_item_add_subtree(tc, ett_xdlc_control); if (control & XDLC_P_F) { - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_boolean_bitfield(control, XDLC_P_F, 1*8, (is_response ? "Final" : "Poll"), NULL)); } - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_enumerated_bitfield(control, XDLC_U_MODIFIER_MASK, 1*8, (is_response ? modifier_vals_resp : modifier_vals_cmd), "%s")); /* This will always say it's an unnumbered frame */ - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_boolean_bitfield(control, 0x03, 1*8, "Unnumbered frame", NULL)); } @@ -366,7 +366,7 @@ dissect_xdlc_control(const u_char *pd, int offset, frame_data *fd, if (check_col(fd, COL_INFO)) col_add_str(fd, COL_INFO, info); if (xdlc_tree) { - tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, + tc = proto_tree_add_uint_format(xdlc_tree, hf_xdlc_control, NullTVB, offset, (is_extended) ? 2 : 1, control, (is_extended) ? "Control field: %s (0x%04X)" @@ -374,35 +374,35 @@ dissect_xdlc_control(const u_char *pd, int offset, frame_data *fd, info, control); control_tree = proto_item_add_subtree(tc, ett_xdlc_control); if (is_extended) { - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_numeric_bitfield(control, XDLC_N_R_EXT_MASK, 2*8, "N(R) = %u")); - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_numeric_bitfield(control, XDLC_N_S_EXT_MASK, 2*8, "N(S) = %u")); if (control & XDLC_P_F_EXT) { - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_boolean_bitfield(control, XDLC_P_F_EXT, 2*8, "Poll", NULL)); } /* This will always say it's an information frame */ - proto_tree_add_text(control_tree, offset, 2, + proto_tree_add_text(control_tree, NullTVB, offset, 2, decode_boolean_bitfield(control, 0x01, 2*8, NULL, "Information frame")); } else { - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_numeric_bitfield(control, XDLC_N_R_MASK, 1*8, "N(R) = %u")); - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_numeric_bitfield(control, XDLC_N_S_MASK, 1*8, "N(S) = %u")); if (control & XDLC_P_F) { - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_boolean_bitfield(control, XDLC_P_F, 1*8, "Poll", NULL)); } /* This will always say it's an information frame */ - proto_tree_add_text(control_tree, offset, 1, + proto_tree_add_text(control_tree, NullTVB, offset, 1, decode_boolean_bitfield(control, 0x01, 1*8, NULL, "Information frame")); } -- 2.34.1