summaryrefslogtreecommitdiff
path: root/lib/gnutls_range.c
diff options
context:
space:
mode:
authorAlfredo Pironti <alfredo@pironti.eu>2013-01-24 14:17:57 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-01-25 21:25:10 +0100
commite7f1c63f7ed88c6efb6703a69a84b57223ba4158 (patch)
treeae30d6d1385f090619b07694714dddc5349c1fd9 /lib/gnutls_range.c
parent5c3390189c32db0452841c89bb47e20d1a3c84f2 (diff)
downloadgnutls-e7f1c63f7ed88c6efb6703a69a84b57223ba4158.tar.gz
Make gnutls_range_split available from the GnuTLS API
Diffstat (limited to 'lib/gnutls_range.c')
-rw-r--r--lib/gnutls_range.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/lib/gnutls_range.c b/lib/gnutls_range.c
index ebfc59b4cd..8448843633 100644
--- a/lib/gnutls_range.c
+++ b/lib/gnutls_range.c
@@ -137,11 +137,27 @@ gnutls_record_can_use_length_hiding (gnutls_session_t session)
}
}
-static ssize_t
-_gnutls_range_split (gnutls_session_t session,
- const gnutls_range_st orig,
- gnutls_range_st * small_range,
- gnutls_range_st * rem_range)
+/**
+ * gnutls_range_split:
+ * @session: is a #gnutls_session_t structure
+ * @orig: is the original range provided by the user
+ * @small_range: is the returned range that can be conveyed in a TLS record
+ * @rem_range: is the returned remaining range
+ *
+ * Use this function to split an arbitrary range into a smaller range
+ * that can be conveyed into a single TLS record fragment, and
+ * a remaining range, on which this function can be invoked again.
+ * When the returned #rem_range is (0,0) the splitting process can terminate.
+ *
+ * Returns: 0 in case splitting succeeds, non zero in case of error.
+ * Note that #orig is not changed, while the values of #small_range
+ * and #rem_range are modified to store the resulting values.
+ */
+ssize_t
+gnutls_range_split (gnutls_session_t session,
+ const gnutls_range_st orig,
+ gnutls_range_st * small_range,
+ gnutls_range_st * rem_range)
{
int ret;
ssize_t max_frag = MAX_USER_SEND_SIZE (session);
@@ -240,7 +256,7 @@ gnutls_record_send_range (gnutls_session_t session, const void *data,
while (cur_range.high != 0)
{
ret =
- _gnutls_range_split (session, cur_range, &cur_range,
+ gnutls_range_split (session, cur_range, &cur_range,
&next_range);
if (ret < 0)
{