chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: fix test-udev binary
[elogind.git]
/
src
/
login
/
sd-login.c
diff --git
a/src/login/sd-login.c
b/src/login/sd-login.c
index 5a03d614bb602fe0e3cad3d4e764a28b58d4aed9..887c4210098f2bae00a47ee8487d896d8820f419 100644
(file)
--- a/
src/login/sd-login.c
+++ b/
src/login/sd-login.c
@@
-433,18
+433,18
@@
_public_ int sd_session_get_uid(const char *session, uid_t *uid) {
return r;
}
return r;
}
-
_public_ int sd_session_get_seat(const char *session, char **seat
) {
+
static int session_get_string(const char *session, const char *field, char **value
) {
char *p, *s = NULL;
int r;
char *p, *s = NULL;
int r;
- if (!
seat
)
+ if (!
value
)
return -EINVAL;
r = file_of_session(session, &p);
if (r < 0)
return r;
return -EINVAL;
r = file_of_session(session, &p);
if (r < 0)
return r;
- r = parse_env_file(p, NEWLINE,
"SEAT"
, &s, NULL);
+ r = parse_env_file(p, NEWLINE,
field
, &s, NULL);
free(p);
if (r < 0) {
free(p);
if (r < 0) {
@@
-455,34
+455,28
@@
_public_ int sd_session_get_seat(const char *session, char **seat) {
if (isempty(s))
return -ENOENT;
if (isempty(s))
return -ENOENT;
- *
seat
= s;
+ *
value
= s;
return 0;
}
return 0;
}
-_public_ int sd_session_get_service(const char *session, char **service) {
- char *p, *s = NULL;
- int r;
-
- if (!service)
- return -EINVAL;
-
- r = file_of_session(session, &p);
- if (r < 0)
- return r;
+_public_ int sd_session_get_seat(const char *session, char **seat) {
+ return session_get_string(session, "SEAT", seat);
+}
- r = parse_env_file(p, NEWLINE, "SERVICE", &s, NULL);
- free(p);
+_public_ int sd_session_get_service(const char *session, char **service) {
+ return session_get_string(session, "SERVICE", service);
+}
- if (r < 0) {
- free(s);
- return r;
- }
+_public_ int sd_session_get_type(const char *session, char **type) {
+ return session_get_string(session, "TYPE", type);
+}
- if (isempty(s))
- return -ENOENT;
+_public_ int sd_session_get_class(const char *session, char **class) {
+ return session_get_string(session, "CLASS", class);
+}
- *service = s;
- return
0
;
+_public_ int sd_session_get_display(const char *session, char **display) {
+ return
session_get_string(session, "DISPLAY", display)
;
}
static int file_of_seat(const char *seat, char **_p) {
}
static int file_of_seat(const char *seat, char **_p) {