diff --git a/man/sd_journal_get_fd.xml b/man/sd_journal_get_fd.xml
index e57431ea9e..f29aeaab23 100644
--- a/man/sd_journal_get_fd.xml
+++ b/man/sd_journal_get_fd.xml
@@ -115,11 +115,11 @@
below.
sd_journal_get_events()
- will return the
- poll2
- mask to wait for. This function will return a
- combination of POLLIN and POLLOUT and similar to fill
- into the .events field of
+ will return the poll() mask to
+ wait for. This function will return a combination of
+ POLLIN and
+ POLLOUT and similar to fill into
+ the .events field of
struct pollfd.
sd_journal_reliable_fd()
@@ -134,7 +134,7 @@
sd_journal_get_fd() are
sufficient as only source for wake-ups.
- After each poll() wake-up
+ After each poll() wake-up
sd_journal_process() needs to be
called to process events. This call will also indicate
what kind of change has been detected (see below; note
@@ -169,9 +169,9 @@
errno-style error code.
sd_journal_get_events()
- returns a combination of POLLIN, POLLOUT and suchlike
- on success or a negative errno-style error
- code.
+ returns a combination of POLLIN,
+ POLLOUT and suchlike on success or
+ a negative errno-style error code.
sd_journal_reliable_fd()
returns a positive integer if the file descriptor
diff --git a/man/sd_login_monitor_new.xml b/man/sd_login_monitor_new.xml
index 2c4d05dcb9..94428771a8 100644
--- a/man/sd_login_monitor_new.xml
+++ b/man/sd_login_monitor_new.xml
@@ -47,6 +47,7 @@
sd_login_monitor_unref
sd_login_monitor_flush
sd_login_monitor_get_fd
+ sd_login_monitor_get_events
sd_login_monitor
Monitor login sessions, seats and users
@@ -76,6 +77,11 @@
sd_login_monitor* m
+
+ int sd_login_monitor_get_events
+ sd_login_monitor* m
+
+
@@ -122,14 +128,24 @@
application defined event loop, based around
poll2
or a similar interface. The application should include
- the returned file descriptor as wake up source for
- POLLIN events. Whenever a wake-up is triggered the
- file descriptor needs to be reset via
+ the returned file descriptor as wake-up source for the
+ events mask returned by
+ sd_login_monitor_get_events(). Whenever
+ a wake-up is triggered the file descriptor needs to be
+ reset via
sd_login_monitor_flush(). An
application needs to reread the login state with a
function like
sd_get_seats3
or similar to determine what changed.
+
+ sd_login_monitor_get_events()
+ will return the poll() mask to
+ wait for. This function will return a combination of
+ POLLIN, POLLOUT
+ and similar to fill into the
+ .events field of struct
+ pollfd.
@@ -140,8 +156,12 @@
sd_login_monitor_flush() return 0
or a positive integer. On success
sd_login_monitor_get_fd() returns
- a Unix file descriptor. On failure, these calls return
- a negative errno-style error code.
+ a Unix file descriptor. On success
+ sd_login_monitor_get_events()
+ returns a combination of POLLIN,
+ POLLOUT and suchlike. On failure,
+ these calls return a negative errno-style error
+ code.
sd_login_monitor_unref()
always returns NULL.
@@ -151,10 +171,12 @@
Notes
The sd_login_monitor_new(),
- sd_login_monitor_unref(), sd_login_monitor_flush() and
- sd_login_monitor_get_fd() interfaces
- are available as shared library, which can be compiled
- and linked to with the
+ sd_login_monitor_unref(),
+ sd_login_monitor_flush(),
+ sd_login_monitor_get_fd() and
+ sd_login_monitor_get_events()
+ interfaces are available as shared library, which can
+ be compiled and linked to with the
libsystemd-login
pkg-config1
file.
@@ -166,7 +188,8 @@
systemd1,
sd-login3,
- sd_get_seats3
+ sd_get_seats3,
+ poll2
diff --git a/src/login/libsystemd-login.sym b/src/login/libsystemd-login.sym
index 272b0e2b52..55a828773b 100644
--- a/src/login/libsystemd-login.sym
+++ b/src/login/libsystemd-login.sym
@@ -58,3 +58,8 @@ LIBSYSTEMD_LOGIN_198 {
global:
sd_session_get_tty;
} LIBSYSTEMD_LOGIN_186;
+
+LIBSYSTEMD_LOGIN_201 {
+global:
+ sd_login_monitor_get_events;
+} LIBSYSTEMD_LOGIN_198;
diff --git a/src/login/sd-login.c b/src/login/sd-login.c
index 8867e8c8eb..861a57166d 100644
--- a/src/login/sd-login.c
+++ b/src/login/sd-login.c
@@ -23,6 +23,7 @@
#include
#include
#include
+#include
#include "util.h"
#include "cgroup-util.h"
@@ -797,3 +798,11 @@ _public_ int sd_login_monitor_get_fd(sd_login_monitor *m) {
return MONITOR_TO_FD(m);
}
+
+_public_ int sd_login_monitor_get_events(sd_login_monitor *m) {
+
+ if (!m)
+ return -EINVAL;
+
+ return POLLIN;
+}
diff --git a/src/login/test-login.c b/src/login/test-login.c
index 159ff3efc5..f639129636 100644
--- a/src/login/test-login.c
+++ b/src/login/test-login.c
@@ -185,7 +185,7 @@ int main(int argc, char* argv[]) {
zero(pollfd);
pollfd.fd = sd_login_monitor_get_fd(m);
- pollfd.events = POLLIN;
+ pollfd.events = sd_login_monitor_get_events(m);
for (n = 0; n < 5; n++) {
r = poll(&pollfd, 1, -1);
diff --git a/src/systemd/sd-login.h b/src/systemd/sd-login.h
index 3746b45cf3..57255bd4a9 100644
--- a/src/systemd/sd-login.h
+++ b/src/systemd/sd-login.h
@@ -156,6 +156,9 @@ int sd_login_monitor_flush(sd_login_monitor *m);
/* Get FD from monitor */
int sd_login_monitor_get_fd(sd_login_monitor *m);
+/* Get poll() mask to monitor */
+int sd_login_monitor_get_events(sd_login_monitor *m);
+
#ifdef __cplusplus
}
#endif