merge_all_tap_menus() has been moved to menus.c.
[obnox/wireshark/wip.git] / gtk / decode_as_dcerpc.c
index 7009921a1b30ce54dc5bd8cd07b3587a9dc48c3f..6329480bee0c6f03e11e58d2b5447db997d02de9 100644 (file)
 #ifdef HAVE_CONFIG_H
 # include "config.h"
 #endif
+#include <string.h>
 
 #include <gtk/gtk.h>
-#include <string.h>
 
-#include "decode_as_dlg.h"
-#include "dlg_utils.h"
-#include "globals.h"
-#include "simple_dialog.h"
 #include <epan/packet.h>
-#include "ipproto.h"
-#include "ui_util.h"
 #include <epan/epan_dissect.h>
-#include "compat_macros.h"
-#include "decode_as_dcerpc.h"
-
 #include <epan/dissectors/packet-dcerpc.h>
 
+#include "../simple_dialog.h"
+
+#include "gtk/decode_as_dlg.h"
+#include "gtk/dlg_utils.h"
+#include "gtk/gui_utils.h"
+#include "gtk/decode_as_dcerpc.h"
+
 
 /**************************************************/
 /*                Typedefs & Enums                */
@@ -54,22 +52,22 @@ GSList *decode_dcerpc_bindings = NULL;
 /**************************************************/
 
 /* inject one of our bindings into the dcerpc binding table */
-static void 
-decode_dcerpc_inject_binding(gpointer data, gpointer user_data)
+static void
+decode_dcerpc_inject_binding(gpointer data, gpointer user_data _U_)
 {
     dcerpc_add_conv_to_bind_table((decode_dcerpc_bind_values_t *) data);
 }
 
 
 /* inject all of our bindings into the dcerpc binding table */
-static void 
-decode_dcerpc_inject_bindings(gpointer data) {
+static void
+decode_dcerpc_inject_bindings(gpointer data _U_) {
     g_slist_foreach(decode_dcerpc_bindings, decode_dcerpc_inject_binding, NULL /* user_data */);
 }
 
 
 /* init this file */
-void 
+void
 decode_dcerpc_init(void) {
     GHook*      hook_init_proto;
 
@@ -98,7 +96,7 @@ decode_dcerpc_binding_clone(decode_dcerpc_bind_values_t *binding_in)
 
 
 /* free a binding */
-void 
+void
 decode_dcerpc_binding_free(void *binding_in)
 {
     decode_dcerpc_bind_values_t *binding = binding_in;
@@ -120,7 +118,7 @@ decode_dcerpc_binding_cmp(gconstpointer a, gconstpointer b)
 
 
     /* don't compare uuid and ver! */
-    if( 
+    if(
         ADDRESSES_EQUAL(&binding_a->addr_a, &binding_b->addr_a) &&
         ADDRESSES_EQUAL(&binding_a->addr_b, &binding_b->addr_b) &&
         binding_a->ptype == binding_b->ptype &&
@@ -149,16 +147,16 @@ decode_dcerpc_add_show_list_single(gpointer data, gpointer user_data)
 {
     gchar      string1[20];
 
-    
+
     decode_dcerpc_bind_values_t *binding = data;
 
     g_snprintf(string1, sizeof(string1), "ctx_id: %u", binding->ctx_id);
 
     decode_add_to_show_list (
-        user_data, 
-        "DCE-RPC", 
-        string1, 
-        "-", 
+        user_data,
+        "DCE-RPC",
+        string1,
+        "-",
         binding->ifname->str);
 }
 
@@ -187,7 +185,7 @@ decode_dcerpc_reset_all(void)
 
         decode_dcerpc_binding_free(binding);
         decode_dcerpc_bindings = g_slist_remove(
-            decode_dcerpc_bindings, 
+            decode_dcerpc_bindings,
             decode_dcerpc_bindings->data);
     }
 }
@@ -196,7 +194,7 @@ decode_dcerpc_reset_all(void)
 /* remove a binding (looking the same way as the given one) */
 static void
 decode_dcerpc_binding_reset(
-gchar *table_name, 
+const gchar *table_name _U_,
 decode_dcerpc_bind_values_t *binding)
 {
     GSList *le;
@@ -224,7 +222,7 @@ decode_dcerpc_bind_values_t *binding)
 /* a binding has changed (remove a previously existing one) */
 static void
 decode_dcerpc_binding_change(
-gchar *table_name, 
+const gchar *table_name,
 decode_dcerpc_bind_values_t *binding)
 {
 
@@ -241,29 +239,14 @@ decode_dcerpc_bind_values_t *binding)
 
 /* a binding has changed (add/replace/remove it) */
 static void
-decode_change_one_dcerpc_binding(gchar *table_name, decode_dcerpc_bind_values_t *binding, GtkWidget *list)
+decode_change_one_dcerpc_binding(const gchar *table_name, decode_dcerpc_bind_values_t *binding, GtkWidget *list)
 {
     dcerpc_uuid_key     *key;
     gchar              *abbrev;
-#if GTK_MAJOR_VERSION < 2
-    gint               row;
-#else
     GtkTreeSelection  *selection;
     GtkTreeModel      *model;
     GtkTreeIter        iter;
-#endif
 
-#if GTK_MAJOR_VERSION < 2
-    if (!GTK_CLIST(list)->selection)
-    {
-       abbrev = NULL;
-       key = NULL;
-    } else {
-       row = GPOINTER_TO_INT(GTK_CLIST(list)->selection->data);
-       key = gtk_clist_get_row_data(GTK_CLIST(list), row);
-       gtk_clist_get_text(GTK_CLIST(list), row, E_LIST_S_PROTO_NAME, &abbrev);
-    }
-#else
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
     if (gtk_tree_selection_get_selected(selection, &model, &iter) == FALSE)
     {
@@ -273,20 +256,16 @@ decode_change_one_dcerpc_binding(gchar *table_name, decode_dcerpc_bind_values_t
         gtk_tree_model_get(model, &iter, E_LIST_S_PROTO_NAME, &abbrev,
                            E_LIST_S_TABLE+1, &key, -1);
     }
-#endif
 
-    if (abbrev != NULL && strcmp(abbrev, "(default)") == 0) {
+    if (key == NULL || (abbrev != NULL && strcmp(abbrev, "(default)") == 0) ) {
         decode_dcerpc_binding_reset(table_name, binding);
     } else {
-        binding->ifname = g_string_new(abbrev);
-        binding->uuid = key->uuid;
-        binding->ver = key->ver;
-        decode_dcerpc_binding_change(table_name, binding);
+                       binding->ifname = g_string_new(abbrev);
+                       binding->uuid = key->uuid;
+                       binding->ver = key->ver;
+                       decode_dcerpc_binding_change(table_name, binding);
     }
-#if GTK_MAJOR_VERSION >= 2
-    if (abbrev != NULL)
-       g_free(abbrev);
-#endif
+    g_free(abbrev);
 }
 
 
@@ -299,7 +278,7 @@ decode_change_one_dcerpc_binding(gchar *table_name, decode_dcerpc_bind_values_t
 /*
  * This routine is called when the user clicks the "OK" button in the
  * "Decode As..." dialog window and the DCE-RPC page is foremost.
- * This routine takes care of making any changes requested to the DCE-RPC 
+ * This routine takes care of making any changes requested to the DCE-RPC
  * binding tables.
  *
  * @param notebook_pg A pointer to the "DCE-RPC" notebook page.
@@ -308,21 +287,17 @@ static void
 decode_dcerpc(GtkWidget *notebook_pg)
 {
     GtkWidget *list;
-    gchar *table_name;
+    const gchar *table_name;
     decode_dcerpc_bind_values_t *binding;
 
 
-    list = OBJECT_GET_DATA(notebook_pg, E_PAGE_LIST);
+    list = g_object_get_data(G_OBJECT(notebook_pg), E_PAGE_LIST);
     if (requested_action == E_DECODE_NO)
-#if GTK_MAJOR_VERSION < 2
-       gtk_clist_unselect_all(GTK_CLIST(list));
-#else
        gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(list)));
-#endif
 
-    binding = OBJECT_GET_DATA(notebook_pg, E_PAGE_BINDING);
+    binding = g_object_get_data(G_OBJECT(notebook_pg), E_PAGE_BINDING);
 
-    /*table_name = OBJECT_GET_DATA(notebook_pg, E_PAGE_TABLE);*/
+    /*table_name = g_object_get_data(G_OBJECT(notebook_pg), E_PAGE_TABLE);*/
     table_name = "DCE-RPC";
     decode_change_one_dcerpc_binding(table_name, binding, list);
 }
@@ -334,10 +309,10 @@ decode_dcerpc(GtkWidget *notebook_pg)
 
 
 /* add an interface to the list */
-static void 
+static void
 decode_dcerpc_add_to_list(gpointer key, gpointer value, gpointer user_data)
 {
-    dcerpc_uuid_key *k = key;
+    /*dcerpc_uuid_key *k = key;*/
     dcerpc_uuid_value *v = value;
 
     if(strcmp(v->name, "(none)"))
@@ -347,7 +322,7 @@ decode_dcerpc_add_to_list(gpointer key, gpointer value, gpointer user_data)
 
 /* add all interfaces to the list */
 static GtkWidget *
-decode_add_dcerpc_menu (GtkWidget *page, gchar *table_name)
+decode_add_dcerpc_menu (GtkWidget *page, const gchar *table_name _U_)
 {
     GtkWidget *scrolled_window;
     GtkWidget *list;
@@ -377,18 +352,18 @@ decode_dcerpc_add_page (packet_info *pinfo)
     binding->port_a = pinfo->srcport;
     binding->port_b = pinfo->destport;
     binding->ctx_id = pinfo->dcectxid;
-    binding->smb_fid = dcerpc_get_transport_salt(pinfo, pinfo->dcetransporttype);
+    binding->smb_fid = dcerpc_get_transport_salt(pinfo);
     binding->ifname = NULL;
     /*binding->uuid = NULL;*/
     binding->ver = 0;
 
     /* create page content */
     page_hb = gtk_hbox_new(FALSE, 5);
-    OBJECT_SET_DATA(page_hb, E_PAGE_ACTION, decode_dcerpc);
-    OBJECT_SET_DATA(page_hb, E_PAGE_TABLE, "DCE-RPC");
-    OBJECT_SET_DATA(page_hb, E_PAGE_TITLE, "DCE-RPC");
-    OBJECT_SET_DATA(page_hb, E_PAGE_BINDING, binding);
-    
+    g_object_set_data(G_OBJECT(page_hb), E_PAGE_ACTION, decode_dcerpc);
+    g_object_set_data(G_OBJECT(page_hb), E_PAGE_TABLE, "DCE-RPC");
+    g_object_set_data(G_OBJECT(page_hb), E_PAGE_TITLE, "DCE-RPC");
+    g_object_set_data(G_OBJECT(page_hb), E_PAGE_BINDING, binding);
+
     info_vb = gtk_vbox_new(FALSE, 5);
     gtk_box_pack_start(GTK_BOX(page_hb), info_vb, TRUE, TRUE, 0);
 
@@ -398,17 +373,17 @@ decode_dcerpc_add_page (packet_info *pinfo)
 
     switch(binding->ptype) {
     case(PT_TCP):
-        g_string_sprintf(gs2, "TCP port");
+        g_string_printf(gs2, "TCP port");
         break;
     case(PT_UDP):
-        g_string_sprintf(gs2, "UDP port");
+        g_string_printf(gs2, "UDP port");
         break;
     default:
-        g_string_sprintf(gs2, "Unknown port type");
+        g_string_printf(gs2, "Unknown port type");
     }
 
     /* XXX - how to print the address binding->addr_a? */
-    g_string_sprintf(gs, "Address: ToBeDone %s: %u", gs2->str, binding->port_a);
+    g_string_printf(gs, "Address: ToBeDone %s: %u", gs2->str, binding->port_a);
     label = gtk_label_new(gs->str);
     gtk_box_pack_start(GTK_BOX(info_vb), label, TRUE, TRUE, 0);
 
@@ -416,14 +391,14 @@ decode_dcerpc_add_page (packet_info *pinfo)
     gtk_box_pack_start(GTK_BOX(info_vb), label, TRUE, TRUE, 0);
 
     /* XXX - how to print the address binding->addr_b? */
-    g_string_sprintf(gs, "Address: ToBeDone %s: %u", gs2->str, binding->port_b);
+    g_string_printf(gs, "Address: ToBeDone %s: %u", gs2->str, binding->port_b);
     label = gtk_label_new(gs->str);
     gtk_box_pack_start(GTK_BOX(info_vb), label, TRUE, TRUE, 0);
 
     label = gtk_label_new("&");
     gtk_box_pack_start(GTK_BOX(info_vb), label, TRUE, TRUE, 0);
 
-    g_string_sprintf(gs, "Context ID: %u", binding->ctx_id);
+    g_string_printf(gs, "Context ID: %u", binding->ctx_id);
     label = gtk_label_new(gs->str);
     gtk_box_pack_start(GTK_BOX(info_vb), label, TRUE, TRUE, 0);
 
@@ -431,7 +406,7 @@ decode_dcerpc_add_page (packet_info *pinfo)
     gtk_box_pack_start(GTK_BOX(info_vb), label, TRUE, TRUE, 0);
     gtk_widget_set_sensitive(label, binding->smb_fid);
 
-    g_string_sprintf(gs, "SMB FID: %u", binding->smb_fid);
+    g_string_printf(gs, "SMB FID: %u", binding->smb_fid);
     label = gtk_label_new(gs->str);
     gtk_box_pack_start(GTK_BOX(info_vb), label, TRUE, TRUE, 0);
     gtk_widget_set_sensitive(label, binding->smb_fid);