Hi, All,
I use libsystemd.so for the kdbus protocol layer, and I met a question
that I added a signal matching rule by sd_bus_add_match() , then I sent signal
by sd_bus_send().
But I couldn't receive this signal because its bloom_filter caculated by
siphash24() NOT match the bloom_mask which was also caculated by siphash24().
For example , when adding matching rule for "
type='signal',interface='service.a.interface',path='/service/a',member='com_0yunos_0spms_0uninstall',arg0path='/p1/p2/p3'
" by sd_bus_add_match(),
I got the following bloom_mask:
bloom: mask[0] = 0x40000c08000080d4
bloom: mask[1] = 0x8804104020100000
bloom: mask[2] = 0x40000610
bloom: mask[3] = 0x8000000000408
bloom: mask[4] = 0x120000000101000
bloom: mask[5] = 0x8048000022002000
bloom: mask[6] = 0x4000402000000110
bloom: mask[7] = 0x100000
But when I sent the exact same signal by sd_bus_send(), I got the following
bloom_filter:
bloom: filter[0] = 0x60000e0801020086
bloom: filter[1] = 0x8804114084100000
bloom: filter[2] = 0x2000400c40400710
bloom: filter[3] = 0x208000000040528
bloom: filter[4] = 0x120010080002000
bloom: filter[5] = 0x8058000122406000
bloom: filter[6] = 0xc22000104111
bloom: filter[7] = 0x800300a120800000
Obviously, filter[0] & maks[0] != mask[0], which caused that I couldn't
receive the signal.
I also tested with
"type='signal',interface='service.a.interface',path='/service/a',member='com_0yunos_0spms_0uninstall'
" , which works OK.
Could anyone gives me some suggestion?
Thanks a lot!
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel