aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2015-07-05 16:55:06 +0200
committerAndreas Schneider <asn@cryptomilk.org>2016-05-02 16:40:43 +0200
commit5aaae4cb6b9b831fcc3359a64953902c97559931 (patch)
treeba585f3bfa49f4f37e1ca77475c939c58be65609
parentc092101e019316975108e4afbe66802520ef510a (diff)
downloadlibssh-5aaae4cb6b9b831fcc3359a64953902c97559931.tar.gz
libssh-5aaae4cb6b9b831fcc3359a64953902c97559931.tar.xz
libssh-5aaae4cb6b9b831fcc3359a64953902c97559931.zip
events: Add functions for poll objects
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r--include/libssh/poll.h2
-rw-r--r--src/poll.c27
2 files changed, 29 insertions, 0 deletions
diff --git a/include/libssh/poll.h b/include/libssh/poll.h
index bbc03a95..3aa9a49b 100644
--- a/include/libssh/poll.h
+++ b/include/libssh/poll.h
@@ -155,5 +155,7 @@ int ssh_poll_ctx_add_socket (ssh_poll_ctx ctx, struct ssh_socket_struct *s);
void ssh_poll_ctx_remove(ssh_poll_ctx ctx, ssh_poll_handle p);
int ssh_poll_ctx_dopoll(ssh_poll_ctx ctx, int timeout);
ssh_poll_ctx ssh_poll_get_default_ctx(ssh_session session);
+int ssh_event_add_poll(ssh_event event, ssh_poll_handle p);
+void ssh_event_remove_poll(ssh_event event, ssh_poll_handle p);
#endif /* POLL_H_ */
diff --git a/src/poll.c b/src/poll.c
index 807b0a56..142fb644 100644
--- a/src/poll.c
+++ b/src/poll.c
@@ -775,6 +775,33 @@ int ssh_event_add_fd(ssh_event event, socket_t fd, short events,
}
/**
+ * @brief Add a poll handle to the event.
+ *
+ * @param event the ssh_event
+ *
+ * @param p the poll handle
+ *
+ * @returns SSH_OK on success
+ * SSH_ERROR on failure
+ */
+int ssh_event_add_poll(ssh_event event, ssh_poll_handle p)
+{
+ return ssh_poll_ctx_add(event->ctx, p);
+}
+
+/**
+ * @brief remove a poll handle to the event.
+ *
+ * @param event the ssh_event
+ *
+ * @param p the poll handle
+ */
+void ssh_event_remove_poll(ssh_event event, ssh_poll_handle p)
+{
+ ssh_poll_ctx_remove(event->ctx,p);
+}
+
+/**
* @brief remove the poll handle from session and assign them to a event,
* when used in blocking mode.
*