Lines Matching +full:system +full:- +full:bus

40 #include "pcap-int.h"
41 #include "pcap-dbus.h"
44 * Private data for capturing on D-Bus.
54 struct pcap_dbus *handlep = handle->priv; in dbus_read()
64 message = dbus_connection_pop_message(handlep->conn); in dbus_read()
67 /* XXX handle->opt.timeout = timeout_ms; */ in dbus_read()
68 if (!dbus_connection_read_write(handlep->conn, 100)) { in dbus_read()
69 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Connection closed"); in dbus_read()
70 return -1; in dbus_read()
73 if (handle->break_loop) { in dbus_read()
74 handle->break_loop = 0; in dbus_read()
75 return -2; in dbus_read()
78 message = dbus_connection_pop_message(handlep->conn); in dbus_read()
82 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Disconnected"); in dbus_read()
83 return -1; in dbus_read()
88 /* pkth.caplen = min (payload_len, handle->snapshot); */ in dbus_read()
91 if (handle->fcode.bf_insns == NULL || in dbus_read()
92 pcapint_filter(handle->fcode.bf_insns, (u_char *)raw_msg, pkth.len, pkth.caplen)) { in dbus_read()
93 handlep->packets_read++; in dbus_read()
107 struct pcap_dbus *handlep = handle->priv; in dbus_write()
113 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "dbus_message_demarshal() failed: %s", error.message); in dbus_write()
115 return -1; in dbus_write()
118 dbus_connection_send(handlep->conn, msg, NULL); in dbus_write()
119 dbus_connection_flush(handlep->conn); in dbus_write()
128 struct pcap_dbus *handlep = handle->priv; in dbus_stats()
130 stats->ps_recv = handlep->packets_read; in dbus_stats()
131 stats->ps_drop = 0; in dbus_stats()
132 stats->ps_ifdrop = 0; in dbus_stats()
139 struct pcap_dbus *handlep = handle->priv; in dbus_cleanup()
141 dbus_connection_unref(handlep->conn); in dbus_cleanup()
147 * We don't support non-blocking mode. I'm not sure what we'd
155 snprintf(p->errbuf, PCAP_ERRBUF_SIZE, in dbus_getnonblock()
156 "Non-blocking mode isn't supported for capturing on D-Bus"); in dbus_getnonblock()
157 return (-1); in dbus_getnonblock()
163 snprintf(p->errbuf, PCAP_ERRBUF_SIZE, in dbus_setnonblock()
164 "Non-blocking mode isn't supported for capturing on D-Bus"); in dbus_setnonblock()
165 return (-1); in dbus_setnonblock()
182 struct pcap_dbus *handlep = handle->priv; in dbus_activate()
183 const char *dev = handle->opt.device; in dbus_activate()
188 if (strcmp(dev, "dbus-system") == 0) { in dbus_activate()
189 if (!(handlep->conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error))) { in dbus_activate()
190 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Failed to get system bus: %s", error.message); in dbus_activate()
195 } else if (strcmp(dev, "dbus-session") == 0) { in dbus_activate()
196 if (!(handlep->conn = dbus_bus_get(DBUS_BUS_SESSION, &error))) { in dbus_activate()
197 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Failed to get session bus: %s", error.message); in dbus_activate()
205 if (!(handlep->conn = dbus_connection_open(addr, &error))) { in dbus_activate()
206 …snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Failed to open connection to: %s: %s", addr, error.mes… in dbus_activate()
211 if (!dbus_bus_register(handlep->conn, &error)) { in dbus_activate()
212 …snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Failed to register bus %s: %s\n", addr, error.message); in dbus_activate()
218 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Can't get bus address from %s", handle->opt.device); in dbus_activate()
223 handle->bufsize = 0; in dbus_activate()
224 handle->offset = 0; in dbus_activate()
225 handle->linktype = DLT_DBUS; in dbus_activate()
226 handle->read_op = dbus_read; in dbus_activate()
227 handle->inject_op = dbus_write; in dbus_activate()
228 …handle->setfilter_op = pcapint_install_bpf_program; /* XXX, later add support for dbus_bus_add_mat… in dbus_activate()
229 handle->setdirection_op = NULL; in dbus_activate()
230 handle->set_datalink_op = NULL; /* can't change data link type */ in dbus_activate()
231 handle->getnonblock_op = dbus_getnonblock; in dbus_activate()
232 handle->setnonblock_op = dbus_setnonblock; in dbus_activate()
233 handle->stats_op = dbus_stats; in dbus_activate()
234 handle->cleanup_op = dbus_cleanup; in dbus_activate()
239 * kevent()/etc. on a D-Bus connection isn't a simple in dbus_activate()
251 * a given watch is enabled or disabled - most libpcap programs in dbus_activate()
252 * know nothing about D-Bus and shouldn't *have* to know anything in dbus_activate()
253 * about D-Bus other than how to decode D-Bus messages.) in dbus_activate()
259 handle->selectable_fd = handle->fd = -1; in dbus_activate()
262 if (handle->opt.rfmon) { in dbus_activate()
273 * value, into the maximum message length for D-Bus (128MB). in dbus_activate()
275 if (handle->snapshot <= 0 || handle->snapshot > 134217728) in dbus_activate()
276 handle->snapshot = 134217728; in dbus_activate()
278 /* dbus_connection_set_max_message_size(handlep->conn, handle->snapshot); */ in dbus_activate()
279 if (handle->opt.buffer_size != 0) in dbus_activate()
280 dbus_connection_set_max_received_size(handlep->conn, handle->opt.buffer_size); in dbus_activate()
283 dbus_bus_add_match(handlep->conn, rules[i], &error); in dbus_activate()
288 dbus_bus_add_match(handlep->conn, rules[i] + strlen(EAVESDROPPING_RULE), &error); in dbus_activate()
290 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Failed to add bus match: %s\n", error.message); in dbus_activate()
306 if (strcmp(device, "dbus-system") && in dbus_create()
307 strcmp(device, "dbus-session") && in dbus_create()
319 p->activate_op = dbus_activate; in dbus_create()
322 * to set non-blocking mode before we're activated, or in dbus_create()
323 * query the state of non-blocking mode, they get an error, in dbus_create()
324 * rather than having the non-blocking mode option set in dbus_create()
327 p->getnonblock_op = dbus_getnonblock; in dbus_create()
328 p->setnonblock_op = dbus_setnonblock; in dbus_create()
337 * XXX - what about the notions of "up" and "running"? in dbus_findalldevs()
339 if (pcapint_add_dev(devlistp, "dbus-system", in dbus_findalldevs()
340 PCAP_IF_CONNECTION_STATUS_NOT_APPLICABLE, "D-Bus system bus", in dbus_findalldevs()
342 return -1; in dbus_findalldevs()
343 if (pcapint_add_dev(devlistp, "dbus-session", in dbus_findalldevs()
344 PCAP_IF_CONNECTION_STATUS_NOT_APPLICABLE, "D-Bus session bus", in dbus_findalldevs()
346 return -1; in dbus_findalldevs()