static AJ_Status SetNameOwnerChangedRule(AJ_BusAttachment* bus, const char* oldOwner, uint8_t rule, uint32_t* serialNum) { AJ_Status status; size_t ruleLen; char* ruleStr; const char* rulePrefix = "type='signal',member='NameOwnerChanged',interface='org.freedesktop.DBus',arg1='"; const char* ruleSuffix = "',arg2=''"; ruleLen = strlen(rulePrefix) + strlen(oldOwner) + strlen(ruleSuffix); ruleStr = (char*) AJ_Malloc(ruleLen + 1 /* \0 */); if (ruleStr == NULL) { return AJ_ERR_RESOURCES; } strcpy(ruleStr, rulePrefix); strcat(ruleStr, oldOwner); strcat(ruleStr, ruleSuffix); status = AJ_BusSetSignalRuleSerial(bus, ruleStr, rule, 0, serialNum); AJ_Free(ruleStr); return status; }
AJ_Status AJ_BusSetSignalRuleFlags(AJ_BusAttachment* bus, const char* ruleString, uint8_t rule, uint8_t flags) { return AJ_BusSetSignalRuleSerial(bus, ruleString, rule, flags, NULL); }