rand_nw.c: compensate for gcc bug (using %edx instead of %eax at -O3)
[openssl.git] / ssl / d1_srvr.c
index eead971d257eaa35be6dc896d7762caeb8bcff17..301ceda7a578e990b74a7d51b823cb441264ab68 100644 (file)
@@ -452,7 +452,7 @@ int dtls1_accept(SSL *s)
                        s->init_num=0;
                        break;
                
-               case SSL3_ST_CW_FLUSH:
+               case SSL3_ST_SW_FLUSH:
                        s->rwstate=SSL_WRITING;
                        if (BIO_flush(s->wbio) <= 0)
                                {
@@ -1525,9 +1525,10 @@ int dtls1_send_newsession_ticket(SSL *s)
                p += hlen;
                /* Now write out lengths: p points to end of data written */
                /* Total length */
-               len = p - (unsigned char *)&(s->init_buf->data[DTLS1_HM_HEADER_LENGTH]);
+               len = p - (unsigned char *)(s->init_buf->data);
+               /* Ticket length */
                p=(unsigned char *)&(s->init_buf->data[DTLS1_HM_HEADER_LENGTH]) + 4;
-               s2n(len - 18, p);  /* Ticket length */
+               s2n(len - DTLS1_HM_HEADER_LENGTH - 6, p);
 
                /* number of bytes to write */
                s->init_num= len;