Convert DTLSv1_listen to use new state machine code
authorMatt Caswell <matt@openssl.org>
Thu, 22 Oct 2015 09:45:29 +0000 (10:45 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 30 Oct 2015 08:38:18 +0000 (08:38 +0000)
The DTLSv1_listen code set the state value explicitly to move into init.
Change to use state_set_in_init() instead.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
ssl/d1_lib.c

index 3a0a4cf..3bc9fe7 100644 (file)
@@ -868,11 +868,8 @@ int dtls1_listen(SSL *s, struct sockaddr *client)
      */
     SSL_set_options(s, SSL_OP_COOKIE_EXCHANGE);
 
      */
     SSL_set_options(s, SSL_OP_COOKIE_EXCHANGE);
 
-    /*
-     * Put us into the "init" state so that dtls1_accept doesn't clear our
-     * state
-     */
-    s->state = SSL_ST_ACCEPT;
+    /* Put us into the "init" state so that we don't get our state cleared */
+    statem_set_in_init(s, 1);
 
     if(BIO_dgram_get_peer(rbio, client) <= 0) {
         SSLerr(SSL_F_DTLS1_LISTEN, ERR_R_INTERNAL_ERROR);
 
     if(BIO_dgram_get_peer(rbio, client) <= 0) {
         SSLerr(SSL_F_DTLS1_LISTEN, ERR_R_INTERNAL_ERROR);