summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--agent/pseudotcp.c8
-rw-r--r--agent/pseudotcp.h12
-rw-r--r--docs/reference/libnice/libnice-sections.txt1
3 files changed, 21 insertions, 0 deletions
diff --git a/agent/pseudotcp.c b/agent/pseudotcp.c
index 05fee3a..44f7823 100644
--- a/agent/pseudotcp.c
+++ b/agent/pseudotcp.c
@@ -1958,3 +1958,11 @@ set_state (PseudoTcpSocket *self, PseudoTcpState new_state)
priv->state = new_state;
}
+
+gboolean
+pseudo_tcp_socket_is_closed (PseudoTcpSocket *self)
+{
+ PseudoTcpSocketPrivate *priv = self->priv;
+
+ return (priv->state == TCP_CLOSED);
+}
diff --git a/agent/pseudotcp.h b/agent/pseudotcp.h
index ca7cb95..65feec4 100644
--- a/agent/pseudotcp.h
+++ b/agent/pseudotcp.h
@@ -471,6 +471,18 @@ gboolean pseudo_tcp_socket_can_send (PseudoTcpSocket *self);
*/
gsize pseudo_tcp_socket_get_available_send_space (PseudoTcpSocket *self);
+/**
+ * pseudo_tcp_socket_is_closed:
+ * @self: The #PseudoTcpSocket object.
+ *
+ * Gets whether the socket is closed, with the shutdown handshake completed,
+ * and both peers no longer able to read or write data to the connection.
+ *
+ * Returns: %TRUE if the socket is closed in both directions, %FALSE otherwise
+ * Since: UNRELEASED
+ */
+gboolean pseudo_tcp_socket_is_closed (PseudoTcpSocket *self);
+
G_END_DECLS
#endif /* _PSEUDOTCP_H */
diff --git a/docs/reference/libnice/libnice-sections.txt b/docs/reference/libnice/libnice-sections.txt
index af53529..eec82ed 100644
--- a/docs/reference/libnice/libnice-sections.txt
+++ b/docs/reference/libnice/libnice-sections.txt
@@ -291,6 +291,7 @@ pseudo_tcp_socket_connect
pseudo_tcp_socket_recv
pseudo_tcp_socket_send
pseudo_tcp_socket_close
+pseudo_tcp_socket_is_closed
pseudo_tcp_socket_get_error
pseudo_tcp_socket_get_next_clock
pseudo_tcp_socket_notify_clock