X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibelogind%2Fsd-login%2Fsd-login.c;h=ac22fa3454ce57a5fc757c5726c3309752d67acd;hb=da2587d5154e11d4e643e326793f3ce2cc48dee6;hp=f4dd7feecb3627b5e54076118b1af979f88beaf9;hpb=aada2b1bb29e22e6f19fec6994be09e156e66ce0;p=elogind.git diff --git a/src/libelogind/sd-login/sd-login.c b/src/libelogind/sd-login/sd-login.c index f4dd7feec..ac22fa345 100644 --- a/src/libelogind/sd-login/sd-login.c +++ b/src/libelogind/sd-login/sd-login.c @@ -19,21 +19,33 @@ along with systemd; If not, see . ***/ -#include -#include #include -#include #include +#include +#include +#include -#include "util.h" +#include "sd-login.h" + +#include "alloc-util.h" #include "cgroup-util.h" -#include "macro.h" -#include "strv.h" +#include "dirent-util.h" +#include "escape.h" +#include "fd-util.h" #include "fileio.h" -#include "login-util.h" #include "formats-util.h" +#include "fs-util.h" #include "hostname-util.h" -#include "sd-login.h" +#include "io-util.h" +#include "login-util.h" +#include "macro.h" +#include "parse-util.h" +#include "path-util.h" +#include "socket-util.h" +#include "string-util.h" +#include "strv.h" +#include "user-util.h" +#include "util.h" /* Error codes: * @@ -58,7 +70,11 @@ _public_ int sd_pid_get_unit(pid_t pid, char **unit) { assert_return(pid >= 0, -EINVAL); assert_return(unit, -EINVAL); +#if 0 /// elogind does not support systemd units return cg_pid_get_unit(pid, unit); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_pid_get_user_unit(pid_t pid, char **unit) { @@ -66,7 +82,11 @@ _public_ int sd_pid_get_user_unit(pid_t pid, char **unit) { assert_return(pid >= 0, -EINVAL); assert_return(unit, -EINVAL); +#if 0 /// elogind does not support systemd units return cg_pid_get_user_unit(pid, unit); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_pid_get_machine_name(pid_t pid, char **name) { @@ -74,7 +94,11 @@ _public_ int sd_pid_get_machine_name(pid_t pid, char **name) { assert_return(pid >= 0, -EINVAL); assert_return(name, -EINVAL); +#if 0 /// elogind does not support systemd units return cg_pid_get_machine_name(pid, name); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_pid_get_slice(pid_t pid, char **slice) { @@ -82,7 +106,11 @@ _public_ int sd_pid_get_slice(pid_t pid, char **slice) { assert_return(pid >= 0, -EINVAL); assert_return(slice, -EINVAL); +#if 0 /// elogind does not support systemd slices return cg_pid_get_slice(pid, slice); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_pid_get_user_slice(pid_t pid, char **slice) { @@ -90,7 +118,11 @@ _public_ int sd_pid_get_user_slice(pid_t pid, char **slice) { assert_return(pid >= 0, -EINVAL); assert_return(slice, -EINVAL); +#if 0 /// elogind does not support systemd slices return cg_pid_get_user_slice(pid, slice); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_pid_get_owner_uid(pid_t pid, uid_t *uid) { @@ -98,7 +130,11 @@ _public_ int sd_pid_get_owner_uid(pid_t pid, uid_t *uid) { assert_return(pid >= 0, -EINVAL); assert_return(uid, -EINVAL); +#if 0 /// elogind does not support systemd slices return cg_pid_get_owner_uid(pid, uid); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_pid_get_cgroup(pid_t pid, char **cgroup) { @@ -108,7 +144,7 @@ _public_ int sd_pid_get_cgroup(pid_t pid, char **cgroup) { assert_return(pid >= 0, -EINVAL); assert_return(cgroup, -EINVAL); - r = cg_pid_get_path(ELOGIND_CGROUP_CONTROLLER, pid, &c); + r = cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, pid, &c); if (r < 0) return r; @@ -138,7 +174,11 @@ _public_ int sd_peer_get_session(int fd, char **session) { if (r < 0) return r; +#if 0 /// elogind does not support systemd scopes return cg_pid_get_session(ucred.pid, session); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_peer_get_owner_uid(int fd, uid_t *uid) { @@ -152,7 +192,11 @@ _public_ int sd_peer_get_owner_uid(int fd, uid_t *uid) { if (r < 0) return r; +#if 0 /// elogind does not support systemd units return cg_pid_get_owner_uid(ucred.pid, uid); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_peer_get_unit(int fd, char **unit) { @@ -166,7 +210,11 @@ _public_ int sd_peer_get_unit(int fd, char **unit) { if (r < 0) return r; +#if 0 /// elogind does not support systemd units return cg_pid_get_unit(ucred.pid, unit); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_peer_get_user_unit(int fd, char **unit) { @@ -180,7 +228,11 @@ _public_ int sd_peer_get_user_unit(int fd, char **unit) { if (r < 0) return r; +#if 0 /// elogind does not support systemd units return cg_pid_get_user_unit(ucred.pid, unit); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_peer_get_machine_name(int fd, char **machine) { @@ -194,7 +246,11 @@ _public_ int sd_peer_get_machine_name(int fd, char **machine) { if (r < 0) return r; +#if 0 /// elogind does not support systemd units return cg_pid_get_machine_name(ucred.pid, machine); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_peer_get_slice(int fd, char **slice) { @@ -208,7 +264,11 @@ _public_ int sd_peer_get_slice(int fd, char **slice) { if (r < 0) return r; +#if 0 /// elogind does not support systemd slices return cg_pid_get_slice(ucred.pid, slice); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_peer_get_user_slice(int fd, char **slice) { @@ -222,7 +282,11 @@ _public_ int sd_peer_get_user_slice(int fd, char **slice) { if (r < 0) return r; +#if 0 /// elogind does not support systemd slices return cg_pid_get_user_slice(ucred.pid, slice); +#else + return -ESRCH; +#endif // 0 } _public_ int sd_peer_get_cgroup(int fd, char **cgroup) { @@ -316,7 +380,7 @@ static int file_of_seat(const char *seat, char **_p) { if (!filename_is_valid(seat)) return -EINVAL; - p = strappend("/run/systemd/seats/", seat); + p = strappend("/run/systemd/seats/", seat); } else { _cleanup_free_ char *buf = NULL; @@ -380,10 +444,10 @@ static int uid_get_array(uid_t uid, const char *variable, char ***array) { r = parse_env_file(p, NEWLINE, variable, &s, NULL); if (r == -ENOENT || (r >= 0 && isempty(s))) { - if (array) - *array = NULL; - return 0; - } + if (array) + *array = NULL; + return 0; + } if (r < 0) return r; @@ -920,9 +984,7 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ifindices) { *(char*) (mempcpy(buf, word, l)) = 0; - if (safe_atoi(buf, &ifi) < 0) - continue; - if (ifi <= 0) + if (parse_ifindex(buf, &ifi) < 0) continue; if (!GREEDY_REALLOC(ni, allocated, nr+1)) {