}
if (!ssl3_new(s))
- return (0);
+ return 0;
if ((d1 = OPENSSL_zalloc(sizeof(*d1))) == NULL) {
ssl3_free(s);
- return (0);
+ return 0;
}
d1->buffered_messages = pqueue_new();
pqueue_free(d1->sent_messages);
OPENSSL_free(d1);
ssl3_free(s);
- return (0);
+ return 0;
}
s->d1 = d1;
- s->method->ssl_clear(s);
- return (1);
+
+ if (!s->method->ssl_clear(s))
+ return 0;
+
+ return 1;
}
static void dtls1_clear_queues(SSL *s)
s->d1 = NULL;
}
-void dtls1_clear(SSL *s)
+int dtls1_clear(SSL *s)
{
pqueue *buffered_messages;
pqueue *sent_messages;
s->d1->sent_messages = sent_messages;
}
- ssl3_clear(s);
+ if (!ssl3_clear(s))
+ return 0;
if (s->method->version == DTLS_ANY_VERSION)
s->version = DTLS_MAX_VERSION;
#endif
else
s->version = s->method->version;
+
+ return 1;
}
long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg)