static int userdb_flags_from_service(Varlink *link, const char *service, UserDBFlags *ret) {
assert(link);
- assert(service);
assert(ret);
if (streq_ptr(service, "io.systemd.NameServiceSwitch"))
return r;
r = userdb_flags_from_service(link, p.service, &userdb_flags);
- if (r < 0)
+ if (r != 0) /* return value of < 0 means error (as usual); > 0 means 'already processed and replied,
+ * we are done'; == 0 means 'not processed, caller should process now' */
return r;
if (uid_is_valid(p.uid))
return r;
r = userdb_flags_from_service(link, p.service, &userdb_flags);
- if (r < 0)
+ if (r != 0)
return r;
if (gid_is_valid(p.gid))
return r;
r = userdb_flags_from_service(link, p.service, &userdb_flags);
- if (r < 0)
+ if (r != 0)
return r;
if (p.group_name)