_public_ int sd_session_is_remote(const char *session) { int r; _cleanup_free_ char *p = NULL, *s = NULL; r = file_of_session(session, &p); if (r < 0) return r; r = parse_env_file(p, NEWLINE, "REMOTE", &s, NULL); if (r < 0) return r; if (!s) return -EIO; return parse_boolean(s); }
_public_ int sd_session_is_remote(const char *session) { _cleanup_free_ char *p = NULL, *s = NULL; int r; r = file_of_session(session, &p); if (r < 0) return r; r = parse_env_file(p, NEWLINE, "REMOTE", &s, NULL); if (r == -ENOENT) return -ENXIO; if (r < 0) return r; if (isempty(s)) return -ENODATA; return parse_boolean(s); }
_public_ int sd_session_get_uid(const char *session, uid_t *uid) { int r; _cleanup_free_ char *p = NULL, *s = NULL; assert_return(uid, -EINVAL); r = file_of_session(session, &p); if (r < 0) return r; r = parse_env_file(p, NEWLINE, "UID", &s, NULL); if (r < 0) return r; if (!s) return -EIO; return parse_uid(s, uid); }
static int session_get_string(const char *session, const char *field, char **value) { _cleanup_free_ char *p = NULL, *s = NULL; int r; assert_return(value, -EINVAL); r = file_of_session(session, &p); if (r < 0) return r; r = parse_env_file(p, NEWLINE, field, &s, NULL); if (r < 0) return r; if (isempty(s)) return -ENOENT; *value = s; s = NULL; return 0; }
_public_ int sd_session_get_state(const char *session, char **state) { _cleanup_free_ char *p = NULL, *s = NULL; int r; assert_return(state, -EINVAL); r = file_of_session(session, &p); if (r < 0) return r; r = parse_env_file(p, NEWLINE, "STATE", &s, NULL); if (r < 0) return r; else if (!s) return -EIO; *state = s; s = NULL; return 0; }
_public_ int sd_session_get_state(const char *session, char **state) { _cleanup_free_ char *p = NULL, *s = NULL; int r; assert_return(state, -EINVAL); r = file_of_session(session, &p); if (r < 0) return r; r = parse_env_file(p, NEWLINE, "STATE", &s, NULL); if (r == -ENOENT) return -ENXIO; if (r < 0) return r; if (isempty(s)) return -EIO; *state = TAKE_PTR(s); return 0; }