diff --git a/src/shared/userdb.c b/src/shared/userdb.c index d856625dd3..caef7cdf06 100644 --- a/src/shared/userdb.c +++ b/src/shared/userdb.c @@ -402,6 +402,9 @@ static int userdb_start_query( assert(iterator); assert(method); + if (FLAGS_SET(flags, USERDB_EXCLUDE_VARLINK)) + return -ENOLINK; + e = getenv("SYSTEMD_BYPASS_USERDB"); if (e) { r = parse_boolean(e); diff --git a/src/shared/userdb.h b/src/shared/userdb.h index 055cf627a4..f0a3196795 100644 --- a/src/shared/userdb.h +++ b/src/shared/userdb.h @@ -17,6 +17,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(UserDBIterator*, userdb_iterator_free); typedef enum UserDBFlags { /* The main sources */ USERDB_EXCLUDE_NSS = 1 << 0, /* don't do client-side nor server-side NSS */ + USERDB_EXCLUDE_VARLINK = 1 << 1, /* don't talk to any varlink services */ /* Modifications */ USERDB_SUPPRESS_SHADOW = 1 << 3, /* don't do client-side shadow calls (server side might happen though) */