Add copyright attributions and licenses. License each derived work
[obnox/wireshark/wip.git] / tap-iousers.c
index 693dbe36f7f7bd8012613f1b2b0cf21316962152..c030f469a7f0cc4741f4eb3d528d29b473b83da6 100644 (file)
@@ -3,8 +3,8 @@
  *
  * $Id$
  *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
  * Copyright 1998 Gerald Combs
  * 
  * This program is free software; you can redistribute it and/or
 #include <string.h>
 #include <epan/packet_info.h>
 #include <epan/packet.h>
+#include <epan/emem.h>
 #include <epan/addr_resolv.h>
 #include <epan/tap.h>
+#include <epan/conversation.h>
+#include <epan/stat_cmd_args.h>
 #include "register.h"
 #include <epan/dissectors/packet-ip.h>
 #include <epan/dissectors/packet-ipx.h>
@@ -45,9 +48,9 @@
 #include <epan/dissectors/packet-eth.h>
 #include <epan/dissectors/packet-sctp.h>
 #include <epan/dissectors/packet-tr.h>
+#include <epan/dissectors/packet-scsi.h>
 #include <epan/dissectors/packet-fc.h>
 #include <epan/dissectors/packet-fddi.h>
-#include <string.h>
 
 typedef struct _io_users_t {
        const char *type;
@@ -79,20 +82,20 @@ iousers_udpip_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, con
 
        if(udph->uh_sport>udph->uh_dport){
                direction=0;
-               snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
-               snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
        } else if(udph->uh_sport<udph->uh_dport){
                direction=1;
-               snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
-               snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
        } else if(CMP_ADDRESS(&udph->ip_src, &udph->ip_dst)>0){
                direction=0;
-               snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
-               snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
        } else {
                direction=1;
-               snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
-               snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&udph->ip_src),get_udp_port(udph->uh_sport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&udph->ip_dst),get_udp_port(udph->uh_dport));
        }
 
        for(iui=iu->items;iui;iui=iui->next){
@@ -137,21 +140,21 @@ iousers_sctp_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, cons
        io_users_item_t *iui;
        int direction=0;
 
-       sprintf(s_sport,"%d",sctph->sport);
-       sprintf(s_dport,"%d",sctph->dport);
+       g_snprintf(s_sport, sizeof s_sport, "%d",sctph->sport);
+       g_snprintf(s_dport, sizeof s_dport, "%d",sctph->dport);
        
        if(sctph->sport > sctph->dport) {
                direction=0;
-               snprintf(name1,256,"%s:%s",address_to_str(&sctph->ip_src),s_sport);     
-               snprintf(name2,256,"%s:%s",address_to_str(&sctph->ip_dst),s_dport);     
+               g_snprintf(name1,256,"%s:%s",address_to_str(&sctph->ip_src),s_sport);   
+               g_snprintf(name2,256,"%s:%s",address_to_str(&sctph->ip_dst),s_dport);   
        } else if(sctph->sport < sctph->dport) {
                direction=1;
-               snprintf(name1,256,"%s:%s",address_to_str(&sctph->ip_src),s_sport);     
-               snprintf(name2,256,"%s:%s",address_to_str(&sctph->ip_dst),s_dport);     
+               g_snprintf(name1,256,"%s:%s",address_to_str(&sctph->ip_src),s_sport);   
+               g_snprintf(name2,256,"%s:%s",address_to_str(&sctph->ip_dst),s_dport);   
        } else {
                direction=0;
-               snprintf(name1,256,"%s:%s",address_to_str(&sctph->ip_src),s_sport);     
-               snprintf(name2,256,"%s:%s",address_to_str(&sctph->ip_dst),s_dport);     
+               g_snprintf(name1,256,"%s:%s",address_to_str(&sctph->ip_src),s_sport);   
+               g_snprintf(name2,256,"%s:%s",address_to_str(&sctph->ip_dst),s_dport);   
        }
 
        for(iui=iu->items;iui;iui=iui->next){
@@ -198,20 +201,20 @@ iousers_tcpip_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, con
 
        if(tcph->th_sport>tcph->th_dport){
                direction=0;
-               snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
-               snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
        } else if(tcph->th_sport<tcph->th_dport){
                direction=1;
-               snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
-               snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
        } else if(CMP_ADDRESS(&tcph->ip_src, &tcph->ip_dst)>0){
                direction=0;
-               snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
-               snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
        } else {
                direction=1;
-               snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
-               snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
+               g_snprintf(name2,256,"%s:%s",address_to_str(&tcph->ip_src),get_tcp_port(tcph->th_sport));
+               g_snprintf(name1,256,"%s:%s",address_to_str(&tcph->ip_dst),get_tcp_port(tcph->th_dport));
        }
 
        for(iui=iu->items;iui;iui=iui->next){
@@ -579,7 +582,7 @@ iousers_draw(void *arg)
 }
 
 void
-iousers_init(const char *optarg)
+iousers_init(const char *optarg, void* userdata _U_)
 {
        const char *filter=NULL;
        const char *tap_type, *tap_type_name;
@@ -669,7 +672,7 @@ iousers_init(const char *optarg)
                tap_type_name="SCTP";
                packet_func=iousers_sctp_packet;
        } else {
-               fprintf(stderr, "tethereal: invalid \"-z conv,<type>[,<filter>]\" argument\n");
+               fprintf(stderr, "tshark: invalid \"-z conv,<type>[,<filter>]\" argument\n");
                fprintf(stderr,"   <type> must be one of\n");
                fprintf(stderr,"      \"eth\"\n");
                fprintf(stderr,"      \"fc\"\n");
@@ -699,7 +702,7 @@ iousers_init(const char *optarg)
                        g_free(iu->items);
                }
                g_free(iu);
-               fprintf(stderr, "tethereal: Couldn't register conversations tap: %s\n",
+               fprintf(stderr, "tshark: Couldn't register conversations tap: %s\n",
                    error_string->str);
                g_string_free(error_string, TRUE);
                exit(1);
@@ -710,5 +713,5 @@ iousers_init(const char *optarg)
 void
 register_tap_listener_iousers(void)
 {
-       register_tap_listener_cmd_arg("conv,", iousers_init);
+       register_stat_cmd_arg("conv,", iousers_init, NULL);
 }