X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-internal.c;h=0e66f3d3553521b418308435d20b25107a044fcd;hb=9b29bb6853987bf6fef21531f69864fdfb39eb9a;hp=317f6a8a9cdea436647a59536b670fa6492236dc;hpb=392d5b378ceae5e1fd7c91ca545fcf4cd105744a;p=elogind.git diff --git a/src/libsystemd-bus/bus-internal.c b/src/libsystemd-bus/bus-internal.c index 317f6a8a9..0e66f3d35 100644 --- a/src/libsystemd-bus/bus-internal.c +++ b/src/libsystemd-bus/bus-internal.c @@ -141,7 +141,6 @@ bool service_name_is_valid(const char *p) { return false; return true; - } bool member_name_is_valid(const char *p) { @@ -172,6 +171,12 @@ bool member_name_is_valid(const char *p) { static bool complex_pattern_check(char c, const char *a, const char *b) { bool separator = false; + if (!a && !b) + return true; + + if (!a || !b) + return false; + for (;;) { if (*a != *b) return (separator && (*a == 0 || *b == 0)) || @@ -196,6 +201,13 @@ bool path_complex_pattern(const char *pattern, const char *value) { } static bool simple_pattern_check(char c, const char *a, const char *b) { + + if (!a && !b) + return true; + + if (!a || !b) + return false; + for (;;) { if (*a != *b) return *a == 0 && *b == c; @@ -229,3 +241,16 @@ int bus_message_type_from_string(const char *s, uint8_t *u) { return 0; } + +const char *bus_message_type_to_string(uint8_t u) { + if (u == SD_BUS_MESSAGE_TYPE_SIGNAL) + return "signal"; + else if (u == SD_BUS_MESSAGE_TYPE_METHOD_CALL) + return "method_call"; + else if (u == SD_BUS_MESSAGE_TYPE_METHOD_ERROR) + return "error"; + else if (u == SD_BUS_MESSAGE_TYPE_METHOD_RETURN) + return "method_return"; + else + return NULL; +}