+ retap_packets()
authorlego <lego@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 5 Mar 2006 02:01:16 +0000 (02:01 +0000)
committerlego <lego@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 5 Mar 2006 02:01:16 +0000 (02:01 +0000)
+ complete gtk TextWindow
+ fix elua_dumper
+ fix elua_proto

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@17462 f5534014-38df-0310-8fa8-9805f1628bb7

epan/funnel.h
gtk/funnel_stat.c
plugins/lua/elua_dumper.c
plugins/lua/elua_proto.c
tap-funnel.c

index da0de68c5fcafa29e2e7b8c752b80a6550a0efb5..ab3428329fcb0212e78498d2eb8b31ac421b10cc 100644 (file)
@@ -71,6 +71,8 @@ typedef struct _funnel_ops_t {
                    GLogLevelFlags log_level,
                    const gchar *message,
                    gpointer user_data);
+       
+       void (*retap_packets)(void);
 } funnel_ops_t;
 
 
index 0e775f4ddf0e05ddf9f58ae0e9843d914d22b7a1..eb0e9239bf840f2212a6d4ede31a9fd91aa59c19 100644 (file)
@@ -234,6 +234,7 @@ static void text_window_append(funnel_text_window_t*  tw, const char *str)
     
     
 #if GTK_MAJOR_VERSION < 2
+       gtk_text_set_point(GTK_TEXT(txt),gtk_text_get_length(GTK_TEXT(txt)));
     gtk_text_insert(GTK_TEXT(txt), user_font_get_regular(), NULL, NULL, str, nchars);
 #else
     buf= gtk_text_view_get_buffer(GTK_TEXT_VIEW(txt));
@@ -268,16 +269,57 @@ static void text_window_set_text(funnel_text_window_t*  tw, const gchar* text)
 
 
 static void text_window_prepend(funnel_text_window_t*  tw, const char *str _U_) {
+    GtkWidget *txt;
+    int nchars = strlen(str);
+#if GTK_MAJOR_VERSION >= 2
+    GtkTextBuffer *buf;
+    GtkTextIter    iter;
+#endif
+       
     if (! tw->win) return; 
-    /* XXX todo */
+       
+    txt = tw->txt;
+    nchars = strlen(str);
+    
+    
+#if GTK_MAJOR_VERSION < 2
+       gtk_text_set_point(GTK_TEXT(txt),0);
+    gtk_text_insert(GTK_TEXT(txt), user_font_get_regular(), NULL, NULL, str, nchars);
+#else
+    buf= gtk_text_view_get_buffer(GTK_TEXT_VIEW(txt));
+    
+    gtk_text_buffer_get_start_iter(buf, &iter);
+    gtk_widget_modify_font(GTK_WIDGET(txt), user_font_get_regular());
+    
+    if (!g_utf8_validate(str, -1, NULL))
+        printf("Invalid utf8 encoding: %s\n", str);
+    
+    gtk_text_buffer_insert(buf, &iter, str, nchars);
+#endif
 }
 
 static const gchar* text_window_get_text(funnel_text_window_t*  tw) {
-
+    GtkWidget *txt;
+#if GTK_MAJOR_VERSION >= 2
+    GtkTextBuffer *buf;
+    GtkTextIter    start;
+    GtkTextIter    end;
+#endif
+       
     if (! tw->win) return ""; 
-    /* XXX todo */
 
-    return "";
+       txt = tw->txt;
+
+#if GTK_MAJOR_VERSION < 2
+       /* to do */
+       return "";
+#else
+    buf= gtk_text_view_get_buffer(GTK_TEXT_VIEW(txt));
+       gtk_text_buffer_get_start_iter(buf, &start);
+       gtk_text_buffer_get_end_iter(buf, &end);
+    
+       return gtk_text_buffer_get_text(buf, &start, &end, FALSE);
+#endif
 }
 
 static void text_window_set_close_cb(funnel_text_window_t*  tw, text_win_close_cb_t cb, void* data) {
@@ -414,6 +456,10 @@ static void funnel_logger(const gchar *log_domain _U_,
     fputs(message,stderr);
 }
 
+static void elua_retap_packets(void) {
+       cf_retap_packets(&cfile, FALSE);
+}
+
 
 static const funnel_ops_t funnel_ops = {
     new_text_window,
@@ -426,7 +472,8 @@ static const funnel_ops_t funnel_ops = {
     text_window_destroy,
     /*...,*/
     funnel_new_dialog,
-    funnel_logger
+    funnel_logger,
+       funnel_retap_packets
 };
 
 
index abe0035633663517483bac0111a9af59d99ff243..6f667cd5c3b3a10219aa734e0ce1617d0c036e3c 100644 (file)
@@ -117,9 +117,9 @@ ELUA_CONSTRUCTOR PseudoHeader_atm(lua_State* L) {
 
 ELUA_CONSTRUCTOR PseudoHeader_mtp2(lua_State* L) {
        /* Creates an MTP2 PseudoHeader */
-#define ELUA_OPTARG_PseudoHeader_mtp2_SENT /* True if the packet is sent, False if received. */
-#define ELUA_OPTARG_PseudoHeader_mtp2_ANNEXA /* True if annex A is used  */
-#define ELUA_OPTARG_PseudoHeader_mtp2_LINKNUM /* Link Number */
+#define ELUA_OPTARG_PseudoHeader_mtp2_SENT /* True if the packet is sent, False if received. */
+#define ELUA_OPTARG_PseudoHeader_mtp2_ANNEXA /* True if annex A is used  */
+#define ELUA_OPTARG_PseudoHeader_mtp2_LINKNUM /* Link Number */
     PseudoHeader ph = g_malloc(sizeof(struct lua_pseudo_header));
     ph->type = PHDR_MTP2;
     ph->wph = g_malloc(sizeof(union wtap_pseudo_header));
@@ -171,7 +171,7 @@ ELUA_CONSTRUCTOR Dumper_new(lua_State* L) {
         Dumper:new_for_current() will probably be a better choice. 
        */
 #define ELUA_ARG_Dumper_new_FILENAME 1 /* The name of the capture file to be created */
-#define ELUA_OPTARG_Dumper_new_FILETYPE 3 /* The type of the file to be created */
+#define ELUA_OPTARG_Dumper_new_FILETYPE 2 /* The type of the file to be created */
 #define ELUA_OPTARG_Dumper_new_ENCAP 3 /* The encapsulation to be used in the file to be created */
     Dumper d;
     const char* filename = luaL_checkstring(L,1);
index 6adfbe73e68f64a52105dd219a6a61e6a07b7456..fb778fc951bae81374223e5e8975741eb86f0c45 100644 (file)
@@ -627,25 +627,9 @@ static const luaL_reg ProtoField_meta[] = {
 };
 
 int ProtoField_register(lua_State* L) {
-    const eth_ft_types_t* ts;
-    const struct base_display_string_t* b;
     
        ELUA_REGISTER_CLASS(ProtoField);
-    
-    /* add a global FT_* variable for each FT_ type */
-    for (ts = ftenums; ts->str; ts++) {
-        lua_pushstring(L, ts->str);
-        lua_pushstring(L, ts->str);
-        lua_settable(L, LUA_GLOBALSINDEX);
-    }
-    
-    /* add a global BASE_* variable for each BASE_ */
-    for (b=base_displays;b->str;b++) {
-        lua_pushstring(L, b->str);
-        lua_pushstring(L, b->str);
-        lua_settable(L, LUA_GLOBALSINDEX);
-    }
-    
+        
     return 1;
 }
 
@@ -862,7 +846,7 @@ static int Proto_tostring(lua_State* L) {
     return 1;
 }
 
-static int Proto_register_postdissector(lua_State* L) { 
+ELUA_FUNCTION elua_register_postdissector(lua_State* L) { 
     Proto proto = checkProto(L,1);
     if (!proto) return 0;
     
@@ -1028,10 +1012,6 @@ int Proto_register(lua_State* L) {
 
        ELUA_REGISTER_META(Proto);
 
-    lua_pushstring(L, "register_postdissector");
-    lua_pushcfunction(L, Proto_register_postdissector);
-    lua_settable(L, LUA_GLOBALSINDEX);
-
     lua_pushstring(L, "Proto");
     lua_pushcfunction(L, Proto_new);
     lua_settable(L, LUA_GLOBALSINDEX);
index 96c9455daeef59f94a8befa0fb04c447d3d55ea5..558ad2e66075749a73c745af2d7845ce2e145180 100644 (file)
@@ -72,7 +72,8 @@ static const funnel_ops_t funnel_ops = {
     NULL,
     /*...,*/
     NULL,
-    funnel_logger
+    funnel_logger,
+       NULL
 };