summaryrefslogtreecommitdiff
path: root/doc/examples/ex-serv-dtls.c
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/ex-serv-dtls.c')
-rw-r--r--doc/examples/ex-serv-dtls.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/doc/examples/ex-serv-dtls.c b/doc/examples/ex-serv-dtls.c
index 40b4f4728f..7374d96b45 100644
--- a/doc/examples/ex-serv-dtls.c
+++ b/doc/examples/ex-serv-dtls.c
@@ -27,6 +27,11 @@
* Note that error checking is minimal to simplify the example.
*/
+#define LOOP_CHECK(rval, cmd) \
+ do { \
+ rval = cmd; \
+ } while(rval == GNUTLS_E_AGAIN || rval == GNUTLS_E_INTERRUPTED)
+
#define MAX_BUFFER 1024
#define PORT 5557
@@ -197,11 +202,7 @@ int main(void)
gnutls_transport_set_pull_timeout_function(session,
pull_timeout_func);
- do {
- ret = gnutls_handshake(session);
- }
- while (ret == GNUTLS_E_INTERRUPTED
- || ret == GNUTLS_E_AGAIN);
+ LOOP_CHECK(ret, gnutls_handshake(session));
/* Note that DTLS may also receive GNUTLS_E_LARGE_PACKET.
* In that case the MTU should be adjusted.
*/
@@ -216,14 +217,10 @@ int main(void)
printf("- Handshake was completed\n");
for (;;) {
- do {
- ret =
+ LOOP_CHECK(ret,
gnutls_record_recv_seq(session, buffer,
MAX_BUFFER,
- sequence);
- }
- while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ sequence));
if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
fprintf(stderr, "*** Warning: %s\n",
@@ -248,7 +245,7 @@ int main(void)
sequence[6], sequence[7], buffer);
/* reply back */
- ret = gnutls_record_send(session, buffer, ret);
+ LOOP_CHECK(ret, gnutls_record_send(session, buffer, ret));
if (ret < 0) {
fprintf(stderr, "Error in send(): %s\n",
gnutls_strerror(ret));
@@ -256,7 +253,7 @@ int main(void)
}
}
- gnutls_bye(session, GNUTLS_SHUT_WR);
+ LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
gnutls_deinit(session);
}