summaryrefslogtreecommitdiff
path: root/lib/gnutls_state.c
diff options
context:
space:
mode:
authorJonathan Bastien-Filiatrault <joe@x2a.org>2009-07-25 19:58:22 -0400
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-02-17 22:23:29 +0100
commit9f63e9aec1cd3f4720a02062bfb27bcfc4b097eb (patch)
treeb9c5e6122f4c8122ca4a70d4f66e39c82843afba /lib/gnutls_state.c
parenta439f2cdce782187e3e762ce8e02837602fdb431 (diff)
downloadgnutls-9f63e9aec1cd3f4720a02062bfb27bcfc4b097eb.tar.gz
Add gnutls_init_dtls function.
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Diffstat (limited to 'lib/gnutls_state.c')
-rw-r--r--lib/gnutls_state.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/gnutls_state.c b/lib/gnutls_state.c
index 3e08f9b7a7..88824eaf59 100644
--- a/lib/gnutls_state.c
+++ b/lib/gnutls_state.c
@@ -363,6 +363,36 @@ gnutls_init (gnutls_session_t * session, gnutls_connection_end_t con_end)
return 0;
}
+/**
+ * gnutls_init_dtls - initialize the session like gnutls_init, but
+ * with a DTLS compatible transport.
+ * @con_end: indicate if this session is to be used for server or client.
+ * @session: is a pointer to a #gnutls_session_t structure.
+ * @flags: dtls flags for optional behavior.
+ *
+ * Returns: %GNUTLS_E_SUCCESS on success, or an error code.
+ **/
+int
+gnutls_init_dtls (gnutls_session_t * session,
+ gnutls_connection_end_t con_end,
+ gnutls_dtls_flags_t flags)
+{
+ int ret;
+
+ /* FIXME, we should inhibit the allocation of many buffers that are
+ useless with datagram transport. */
+ ret = gnutls_init(session, con_end);
+
+ if(ret != 0)
+ return ret;
+
+ /* Flags do nothing, so just copy them into the struct for now. */
+ (*session)->internals.dtls.flags = flags;
+ (*session)->internals.transport = GNUTLS_DGRAM;
+
+ return 0;
+}
+
/* returns RESUME_FALSE or RESUME_TRUE.
*/
int