summaryrefslogtreecommitdiff
path: root/test/navigation/patches/bustle_filter.patch
diff options
context:
space:
mode:
Diffstat (limited to 'test/navigation/patches/bustle_filter.patch')
-rw-r--r--test/navigation/patches/bustle_filter.patch138
1 files changed, 0 insertions, 138 deletions
diff --git a/test/navigation/patches/bustle_filter.patch b/test/navigation/patches/bustle_filter.patch
deleted file mode 100644
index 9208abe..0000000
--- a/test/navigation/patches/bustle_filter.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-diff -cr bustle-0.4.0/c-sources/pcap-monitor.c bustle-0.4.0.work/c-sources/pcap-monitor.c
-*** bustle-0.4.0/c-sources/pcap-monitor.c Wed Jan 18 11:32:49 2012
---- bustle-0.4.0.work/c-sources/pcap-monitor.c Thu Apr 19 13:59:23 2012
-***************
-*** 20,27 ****
---- 20,31 ----
- #include "pcap-monitor.h"
-
- #include <string.h>
-+ #include <stdlib.h>
- #include <pcap/pcap.h>
-
-+ const char *filter_str;
-+ GHashTable *filter_hash;
-+
- typedef struct {
- struct timeval ts;
- GByteArray *blob;
-***************
-*** 230,235 ****
---- 234,240 ----
-
- /* The cast is necessary because libpcap is weird. */
- pcap_dump ((u_char *) td->dumper, &hdr, message->blob->data);
-+ pcap_dump_flush(td->dumper);
- g_byte_array_unref (message->blob);
- g_slice_free (Message, message);
- }
-***************
-*** 260,266 ****
- }
-
- GDBusMessage *
-! filter (
- GDBusConnection *connection,
- GDBusMessage *message,
- gboolean is_incoming,
---- 265,271 ----
- }
-
- GDBusMessage *
-! filter_ok (
- GDBusConnection *connection,
- GDBusMessage *message,
- gboolean is_incoming,
-***************
-*** 318,323 ****
---- 323,399 ----
- }
- }
-
-+ gboolean
-+ filter_match(GDBusMessage *message)
-+ {
-+ const char *method=g_strdup_printf("%s.%s",g_dbus_message_get_interface(message),g_dbus_message_get_member(message));
-+ const char *filter=filter_str;
-+ gboolean match=FALSE;
-+ while (*filter) {
-+ int flen;
-+ gboolean part_match=TRUE;
-+ if (*filter=='-') {
-+ filter++;
-+ part_match=FALSE;
-+ }
-+ flen=strcspn(filter,",");
-+ if (!strncmp(method, filter, flen))
-+ match=part_match;
-+ filter+=flen;
-+ if (*filter==',')
-+ filter++;
-+ }
-+ g_free((gpointer)method);
-+ return match;
-+ }
-+
-+ GDBusMessage *
-+ filter(
-+ GDBusConnection *connection,
-+ GDBusMessage *message,
-+ gboolean is_incoming,
-+ gpointer user_data)
-+ {
-+ char *id, *reply_id, *found;
-+ const gchar *dest;
-+ if (!filter_str)
-+ return filter_ok(connection, message, is_incoming, user_data);
-+ dest = g_dbus_message_get_destination (message);
-+ if (!is_incoming || g_strcmp0 (dest, g_dbus_connection_get_unique_name (connection)) == 0)
-+ return message;
-+ switch(g_dbus_message_get_message_type(message)) {
-+ case G_DBUS_MESSAGE_TYPE_METHOD_CALL:
-+ if (!filter_match(message)) {
-+ g_clear_object (&message);
-+ return NULL;
-+ }
-+ id=g_strdup_printf("%s:%u",g_dbus_message_get_sender(message), g_dbus_message_get_serial(message));
-+ g_hash_table_insert(filter_hash, id, id);
-+ return filter_ok(connection, message, is_incoming, user_data);
-+ case G_DBUS_MESSAGE_TYPE_SIGNAL:
-+ if (!filter_match(message)) {
-+ g_clear_object (&message);
-+ return NULL;
-+ }
-+ case G_DBUS_MESSAGE_TYPE_INVALID:
-+ return filter_ok(connection, message, is_incoming, user_data);
-+ case G_DBUS_MESSAGE_TYPE_METHOD_RETURN:
-+ case G_DBUS_MESSAGE_TYPE_ERROR:
-+ reply_id=g_strdup_printf("%s:%u",g_dbus_message_get_destination(message), g_dbus_message_get_reply_serial(message));
-+ found=g_hash_table_lookup(filter_hash, reply_id);
-+ g_free(reply_id);
-+ if (found) {
-+ g_hash_table_remove(filter_hash, found);
-+ g_free(found);
-+ return filter_ok(connection, message, is_incoming, user_data);
-+ }
-+ g_clear_object (&message);
-+ return NULL;
-+ }
-+ g_clear_object (&message);
-+ return NULL;
-+ }
-+
- static gboolean
- match_everything (
- GDBusProxy *bus,
-***************
-*** 565,570 ****
---- 641,649 ----
- const gchar *filename,
- GError **error)
- {
-+ filter_str=getenv("BUSTLE_FILTER");
-+ if (!filter_hash)
-+ filter_hash=g_hash_table_new(g_str_hash, g_str_equal);
- return g_initable_new (
- BUSTLE_TYPE_PCAP_MONITOR, NULL, error,
- "bus-type", bus_type,
-Only in bustle-0.4.0.work: dist