diff --git a/attrib/gattrib.c b/attrib/gattrib.c
index 8c15e52..4d901f1 100644
--- a/attrib/gattrib.c
+++ b/attrib/gattrib.c
struct event *evt = l->data;
if (evt->expected == buf[0] ||
- evt->expected == GATTRIB_ALL_EVENTS)
+ evt->expected == GATTRIB_ALL_EVENTS ||
+ (is_response(buf[0]) == FALSE &&
+ evt->expected == GATTRIB_ALL_REQS))
evt->func(buf, len, evt->user_data);
}
diff --git a/attrib/gattrib.h b/attrib/gattrib.h
index 4c49879..47c0d60 100644
--- a/attrib/gattrib.h
+++ b/attrib/gattrib.h
#endif
#define GATTRIB_ALL_EVENTS 0xFF
+#define GATTRIB_ALL_REQS 0xFE
struct _GAttrib;
typedef struct _GAttrib GAttrib;
diff --git a/src/attrib-server.c b/src/attrib-server.c
index 260e64a..5c46e6d 100644
--- a/src/attrib-server.c
+++ b/src/attrib-server.c
channel->attrib = g_attrib_ref(attrib);
- channel->id = g_attrib_register(channel->attrib, GATTRIB_ALL_EVENTS,
+ channel->id = g_attrib_register(channel->attrib, GATTRIB_ALL_REQS,
channel_handler, channel, NULL);
if (out == FALSE)