[systemd-devel] siphash24 gives unmatched bloom_mask and bloom_filter?

eshark77 at 163.com eshark77 at 163.com
Tue Jun 9 06:01:06 PDT 2015


Hi, David,

    I think I've found the reason for my problem. That is , with "arg0path=/p1/p2/p3",

The sent signal should be sent with "arg0=/p1/p2/p3/", but not "arg0=/p1/p2/p3".




Then Another question is, with "arg0path=/p1/p2", the signal sent with "arg0=/p1/p2/p3"

should be received and the callback be executed.

But following the execution path: proces_message()==> process_match() ==>bus_match_run()

==> value_node_test() ==> path_complex_pattern()==> complex_pattern_check('/', pattern, value)

==> if (*a != *b) return (separator && (*a == 0 || *b == 0)) || (*a == 0 && *b == c && b[1] == 0) || (*b == 0 && *a == c && a[1] == 0);

This will return "false", which caused the callback cannot be executed.

Should this comply with the DBus Spec?

Thank you!

>David Herrmann Mon, 08 Jun 2015 09:44:25 -0700

>Hi

>On Mon, Jun 8, 2015 at 3:26 PM,  <eshar... at 163.com> wrote:
>> Hi, David
>>    I just modified the  src/libsystemd/sd-bus/test-bus-match.c.
>> And you could add the following two lines in the bloom_add_data() in
>> bus-bloom.c
>>          for (i = 0; i < size/sizeof(uint64_t); i++)
>>             log_info("bloom: filter[%d] = 0x%llx",i, filter[i]);
>Can you please try with systemd-220? The diff against 220 is 83 lines
>and it doesn't even compile. If there is a bloom-bug, it should be
>possible to show this with a much shorter example. I'm having a hard
>time understanding what you changed there, sorry.

>Thanks
>David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20150609/dcee0490/attachment-0001.html>


More information about the systemd-devel mailing list