diff options
Diffstat (limited to 'src/lib/libssl/d1_both.c')
-rw-r--r-- | src/lib/libssl/d1_both.c | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/src/lib/libssl/d1_both.c b/src/lib/libssl/d1_both.c index 7365968db6..07c868f45e 100644 --- a/src/lib/libssl/d1_both.c +++ b/src/lib/libssl/d1_both.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: d1_both.c,v 1.79 2021/10/23 08:34:36 jsing Exp $ */ | 1 | /* $OpenBSD: d1_both.c,v 1.80 2021/10/23 13:36:03 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
@@ -216,9 +216,9 @@ dtls1_do_write(SSL *s, int type) | |||
216 | size_t overhead; | 216 | size_t overhead; |
217 | 217 | ||
218 | /* AHA! Figure out the MTU, and stick to the right size */ | 218 | /* AHA! Figure out the MTU, and stick to the right size */ |
219 | if (D1I(s)->mtu < dtls1_min_mtu() && | 219 | if (s->d1->mtu < dtls1_min_mtu() && |
220 | !(SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)) { | 220 | !(SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)) { |
221 | D1I(s)->mtu = BIO_ctrl(SSL_get_wbio(s), | 221 | s->d1->mtu = BIO_ctrl(SSL_get_wbio(s), |
222 | BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL); | 222 | BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL); |
223 | 223 | ||
224 | /* | 224 | /* |
@@ -226,27 +226,27 @@ dtls1_do_write(SSL *s, int type) | |||
226 | * doesn't know the MTU (ie., the initial write), so just | 226 | * doesn't know the MTU (ie., the initial write), so just |
227 | * make sure we have a reasonable number | 227 | * make sure we have a reasonable number |
228 | */ | 228 | */ |
229 | if (D1I(s)->mtu < dtls1_min_mtu()) { | 229 | if (s->d1->mtu < dtls1_min_mtu()) { |
230 | D1I(s)->mtu = 0; | 230 | s->d1->mtu = 0; |
231 | D1I(s)->mtu = dtls1_guess_mtu(D1I(s)->mtu); | 231 | s->d1->mtu = dtls1_guess_mtu(s->d1->mtu); |
232 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SET_MTU, | 232 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SET_MTU, |
233 | D1I(s)->mtu, NULL); | 233 | s->d1->mtu, NULL); |
234 | } | 234 | } |
235 | } | 235 | } |
236 | 236 | ||
237 | OPENSSL_assert(D1I(s)->mtu >= dtls1_min_mtu()); | 237 | OPENSSL_assert(s->d1->mtu >= dtls1_min_mtu()); |
238 | /* should have something reasonable now */ | 238 | /* should have something reasonable now */ |
239 | 239 | ||
240 | if (s->internal->init_off == 0 && type == SSL3_RT_HANDSHAKE) | 240 | if (s->internal->init_off == 0 && type == SSL3_RT_HANDSHAKE) |
241 | OPENSSL_assert(s->internal->init_num == | 241 | OPENSSL_assert(s->internal->init_num == |
242 | (int)D1I(s)->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH); | 242 | (int)s->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH); |
243 | 243 | ||
244 | if (!tls12_record_layer_write_overhead(s->internal->rl, &overhead)) | 244 | if (!tls12_record_layer_write_overhead(s->internal->rl, &overhead)) |
245 | return -1; | 245 | return -1; |
246 | 246 | ||
247 | frag_off = 0; | 247 | frag_off = 0; |
248 | while (s->internal->init_num) { | 248 | while (s->internal->init_num) { |
249 | curr_mtu = D1I(s)->mtu - BIO_wpending(SSL_get_wbio(s)) - | 249 | curr_mtu = s->d1->mtu - BIO_wpending(SSL_get_wbio(s)) - |
250 | DTLS1_RT_HEADER_LENGTH - overhead; | 250 | DTLS1_RT_HEADER_LENGTH - overhead; |
251 | 251 | ||
252 | if (curr_mtu <= DTLS1_HM_HEADER_LENGTH) { | 252 | if (curr_mtu <= DTLS1_HM_HEADER_LENGTH) { |
@@ -254,7 +254,7 @@ dtls1_do_write(SSL *s, int type) | |||
254 | ret = BIO_flush(SSL_get_wbio(s)); | 254 | ret = BIO_flush(SSL_get_wbio(s)); |
255 | if (ret <= 0) | 255 | if (ret <= 0) |
256 | return ret; | 256 | return ret; |
257 | curr_mtu = D1I(s)->mtu - DTLS1_RT_HEADER_LENGTH - | 257 | curr_mtu = s->d1->mtu - DTLS1_RT_HEADER_LENGTH - |
258 | overhead; | 258 | overhead; |
259 | } | 259 | } |
260 | 260 | ||
@@ -279,8 +279,8 @@ dtls1_do_write(SSL *s, int type) | |||
279 | dtls1_fix_message_header(s, frag_off, | 279 | dtls1_fix_message_header(s, frag_off, |
280 | len - DTLS1_HM_HEADER_LENGTH); | 280 | len - DTLS1_HM_HEADER_LENGTH); |
281 | 281 | ||
282 | if (!dtls1_write_message_header(&D1I(s)->w_msg_hdr, | 282 | if (!dtls1_write_message_header(&s->d1->w_msg_hdr, |
283 | D1I(s)->w_msg_hdr.frag_off, D1I(s)->w_msg_hdr.frag_len, | 283 | s->d1->w_msg_hdr.frag_off, s->d1->w_msg_hdr.frag_len, |
284 | (unsigned char *)&s->internal->init_buf->data[s->internal->init_off])) | 284 | (unsigned char *)&s->internal->init_buf->data[s->internal->init_off])) |
285 | return -1; | 285 | return -1; |
286 | 286 | ||
@@ -299,7 +299,7 @@ dtls1_do_write(SSL *s, int type) | |||
299 | */ | 299 | */ |
300 | if (BIO_ctrl(SSL_get_wbio(s), | 300 | if (BIO_ctrl(SSL_get_wbio(s), |
301 | BIO_CTRL_DGRAM_MTU_EXCEEDED, 0, NULL) > 0) | 301 | BIO_CTRL_DGRAM_MTU_EXCEEDED, 0, NULL) > 0) |
302 | D1I(s)->mtu = BIO_ctrl(SSL_get_wbio(s), | 302 | s->d1->mtu = BIO_ctrl(SSL_get_wbio(s), |
303 | BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL); | 303 | BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL); |
304 | else | 304 | else |
305 | return (-1); | 305 | return (-1); |
@@ -313,14 +313,14 @@ dtls1_do_write(SSL *s, int type) | |||
313 | OPENSSL_assert(len == (unsigned int)ret); | 313 | OPENSSL_assert(len == (unsigned int)ret); |
314 | 314 | ||
315 | if (type == SSL3_RT_HANDSHAKE && | 315 | if (type == SSL3_RT_HANDSHAKE && |
316 | !D1I(s)->retransmitting) { | 316 | !s->d1->retransmitting) { |
317 | /* | 317 | /* |
318 | * Should not be done for 'Hello Request's, | 318 | * Should not be done for 'Hello Request's, |
319 | * but in that case we'll ignore the result | 319 | * but in that case we'll ignore the result |
320 | * anyway | 320 | * anyway |
321 | */ | 321 | */ |
322 | unsigned char *p = (unsigned char *)&s->internal->init_buf->data[s->internal->init_off]; | 322 | unsigned char *p = (unsigned char *)&s->internal->init_buf->data[s->internal->init_off]; |
323 | const struct hm_header_st *msg_hdr = &D1I(s)->w_msg_hdr; | 323 | const struct hm_header_st *msg_hdr = &s->d1->w_msg_hdr; |
324 | int xlen; | 324 | int xlen; |
325 | 325 | ||
326 | if (frag_off == 0) { | 326 | if (frag_off == 0) { |
@@ -392,7 +392,7 @@ dtls1_get_message(SSL *s, int st1, int stn, int mt, long max) | |||
392 | return 1; | 392 | return 1; |
393 | } | 393 | } |
394 | 394 | ||
395 | msg_hdr = &D1I(s)->r_msg_hdr; | 395 | msg_hdr = &s->d1->r_msg_hdr; |
396 | memset(msg_hdr, 0, sizeof(struct hm_header_st)); | 396 | memset(msg_hdr, 0, sizeof(struct hm_header_st)); |
397 | 397 | ||
398 | again: | 398 | again: |
@@ -420,8 +420,8 @@ dtls1_get_message(SSL *s, int st1, int stn, int mt, long max) | |||
420 | memset(msg_hdr, 0, sizeof(struct hm_header_st)); | 420 | memset(msg_hdr, 0, sizeof(struct hm_header_st)); |
421 | 421 | ||
422 | /* Don't change sequence numbers while listening */ | 422 | /* Don't change sequence numbers while listening */ |
423 | if (!D1I(s)->listen) | 423 | if (!s->d1->listen) |
424 | D1I(s)->handshake_read_seq++; | 424 | s->d1->handshake_read_seq++; |
425 | 425 | ||
426 | s->internal->init_msg = s->internal->init_buf->data + DTLS1_HM_HEADER_LENGTH; | 426 | s->internal->init_msg = s->internal->init_buf->data + DTLS1_HM_HEADER_LENGTH; |
427 | return 1; | 427 | return 1; |
@@ -451,7 +451,7 @@ dtls1_preprocess_fragment(SSL *s, struct hm_header_st *msg_hdr, int max) | |||
451 | return SSL_AD_ILLEGAL_PARAMETER; | 451 | return SSL_AD_ILLEGAL_PARAMETER; |
452 | } | 452 | } |
453 | 453 | ||
454 | if ( D1I(s)->r_msg_hdr.frag_off == 0) /* first fragment */ | 454 | if ( s->d1->r_msg_hdr.frag_off == 0) /* first fragment */ |
455 | { | 455 | { |
456 | /* | 456 | /* |
457 | * msg_len is limited to 2^24, but is effectively checked | 457 | * msg_len is limited to 2^24, but is effectively checked |
@@ -464,11 +464,11 @@ dtls1_preprocess_fragment(SSL *s, struct hm_header_st *msg_hdr, int max) | |||
464 | } | 464 | } |
465 | 465 | ||
466 | S3I(s)->hs.tls12.message_size = msg_len; | 466 | S3I(s)->hs.tls12.message_size = msg_len; |
467 | D1I(s)->r_msg_hdr.msg_len = msg_len; | 467 | s->d1->r_msg_hdr.msg_len = msg_len; |
468 | S3I(s)->hs.tls12.message_type = msg_hdr->type; | 468 | S3I(s)->hs.tls12.message_type = msg_hdr->type; |
469 | D1I(s)->r_msg_hdr.type = msg_hdr->type; | 469 | s->d1->r_msg_hdr.type = msg_hdr->type; |
470 | D1I(s)->r_msg_hdr.seq = msg_hdr->seq; | 470 | s->d1->r_msg_hdr.seq = msg_hdr->seq; |
471 | } else if (msg_len != D1I(s)->r_msg_hdr.msg_len) { | 471 | } else if (msg_len != s->d1->r_msg_hdr.msg_len) { |
472 | /* | 472 | /* |
473 | * They must be playing with us! BTW, failure to enforce | 473 | * They must be playing with us! BTW, failure to enforce |
474 | * upper limit would open possibility for buffer overrun. | 474 | * upper limit would open possibility for buffer overrun. |
@@ -494,7 +494,7 @@ dtls1_retrieve_buffered_fragment(SSL *s, long max, int *ok) | |||
494 | int al; | 494 | int al; |
495 | 495 | ||
496 | *ok = 0; | 496 | *ok = 0; |
497 | item = pqueue_peek(D1I(s)->buffered_messages); | 497 | item = pqueue_peek(s->d1->buffered_messages); |
498 | if (item == NULL) | 498 | if (item == NULL) |
499 | return 0; | 499 | return 0; |
500 | 500 | ||
@@ -504,9 +504,9 @@ dtls1_retrieve_buffered_fragment(SSL *s, long max, int *ok) | |||
504 | if (frag->reassembly != NULL) | 504 | if (frag->reassembly != NULL) |
505 | return 0; | 505 | return 0; |
506 | 506 | ||
507 | if (D1I(s)->handshake_read_seq == frag->msg_header.seq) { | 507 | if (s->d1->handshake_read_seq == frag->msg_header.seq) { |
508 | unsigned long frag_len = frag->msg_header.frag_len; | 508 | unsigned long frag_len = frag->msg_header.frag_len; |
509 | pqueue_pop(D1I(s)->buffered_messages); | 509 | pqueue_pop(s->d1->buffered_messages); |
510 | 510 | ||
511 | al = dtls1_preprocess_fragment(s, &frag->msg_header, max); | 511 | al = dtls1_preprocess_fragment(s, &frag->msg_header, max); |
512 | 512 | ||
@@ -571,7 +571,7 @@ dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
571 | memset(seq64be, 0, sizeof(seq64be)); | 571 | memset(seq64be, 0, sizeof(seq64be)); |
572 | seq64be[6] = (unsigned char)(msg_hdr->seq >> 8); | 572 | seq64be[6] = (unsigned char)(msg_hdr->seq >> 8); |
573 | seq64be[7] = (unsigned char)msg_hdr->seq; | 573 | seq64be[7] = (unsigned char)msg_hdr->seq; |
574 | item = pqueue_find(D1I(s)->buffered_messages, seq64be); | 574 | item = pqueue_find(s->d1->buffered_messages, seq64be); |
575 | 575 | ||
576 | if (item == NULL) { | 576 | if (item == NULL) { |
577 | frag = dtls1_hm_fragment_new(msg_hdr->msg_len, 1); | 577 | frag = dtls1_hm_fragment_new(msg_hdr->msg_len, 1); |
@@ -636,7 +636,7 @@ dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
636 | goto err; | 636 | goto err; |
637 | } | 637 | } |
638 | 638 | ||
639 | pqueue_insert(D1I(s)->buffered_messages, item); | 639 | pqueue_insert(s->d1->buffered_messages, item); |
640 | } | 640 | } |
641 | 641 | ||
642 | return DTLS1_HM_FRAGMENT_RETRY; | 642 | return DTLS1_HM_FRAGMENT_RETRY; |
@@ -665,7 +665,7 @@ dtls1_process_out_of_seq_message(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
665 | memset(seq64be, 0, sizeof(seq64be)); | 665 | memset(seq64be, 0, sizeof(seq64be)); |
666 | seq64be[6] = (unsigned char) (msg_hdr->seq >> 8); | 666 | seq64be[6] = (unsigned char) (msg_hdr->seq >> 8); |
667 | seq64be[7] = (unsigned char) msg_hdr->seq; | 667 | seq64be[7] = (unsigned char) msg_hdr->seq; |
668 | item = pqueue_find(D1I(s)->buffered_messages, seq64be); | 668 | item = pqueue_find(s->d1->buffered_messages, seq64be); |
669 | 669 | ||
670 | /* | 670 | /* |
671 | * If we already have an entry and this one is a fragment, | 671 | * If we already have an entry and this one is a fragment, |
@@ -680,9 +680,9 @@ dtls1_process_out_of_seq_message(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
680 | * a FINISHED before the SERVER_HELLO, which then must be a stale | 680 | * a FINISHED before the SERVER_HELLO, which then must be a stale |
681 | * retransmit. | 681 | * retransmit. |
682 | */ | 682 | */ |
683 | if (msg_hdr->seq <= D1I(s)->handshake_read_seq || | 683 | if (msg_hdr->seq <= s->d1->handshake_read_seq || |
684 | msg_hdr->seq > D1I(s)->handshake_read_seq + 10 || item != NULL || | 684 | msg_hdr->seq > s->d1->handshake_read_seq + 10 || item != NULL || |
685 | (D1I(s)->handshake_read_seq == 0 && | 685 | (s->d1->handshake_read_seq == 0 && |
686 | msg_hdr->type == SSL3_MT_FINISHED)) { | 686 | msg_hdr->type == SSL3_MT_FINISHED)) { |
687 | unsigned char devnull [256]; | 687 | unsigned char devnull [256]; |
688 | 688 | ||
@@ -723,7 +723,7 @@ dtls1_process_out_of_seq_message(SSL *s, struct hm_header_st* msg_hdr, int *ok) | |||
723 | if (item == NULL) | 723 | if (item == NULL) |
724 | goto err; | 724 | goto err; |
725 | 725 | ||
726 | pqueue_insert(D1I(s)->buffered_messages, item); | 726 | pqueue_insert(s->d1->buffered_messages, item); |
727 | } | 727 | } |
728 | 728 | ||
729 | return DTLS1_HM_FRAGMENT_RETRY; | 729 | return DTLS1_HM_FRAGMENT_RETRY; |
@@ -777,8 +777,8 @@ dtls1_get_message_fragment(SSL *s, int st1, int stn, long max, int *ok) | |||
777 | * While listening, we accept seq 1 (ClientHello with cookie) | 777 | * While listening, we accept seq 1 (ClientHello with cookie) |
778 | * although we're still expecting seq 0 (ClientHello) | 778 | * although we're still expecting seq 0 (ClientHello) |
779 | */ | 779 | */ |
780 | if (msg_hdr.seq != D1I(s)->handshake_read_seq && | 780 | if (msg_hdr.seq != s->d1->handshake_read_seq && |
781 | !(D1I(s)->listen && msg_hdr.seq == 1)) | 781 | !(s->d1->listen && msg_hdr.seq == 1)) |
782 | return dtls1_process_out_of_seq_message(s, &msg_hdr, ok); | 782 | return dtls1_process_out_of_seq_message(s, &msg_hdr, ok); |
783 | 783 | ||
784 | len = msg_hdr.msg_len; | 784 | len = msg_hdr.msg_len; |
@@ -788,7 +788,7 @@ dtls1_get_message_fragment(SSL *s, int st1, int stn, long max, int *ok) | |||
788 | if (frag_len && frag_len < len) | 788 | if (frag_len && frag_len < len) |
789 | return dtls1_reassemble_fragment(s, &msg_hdr, ok); | 789 | return dtls1_reassemble_fragment(s, &msg_hdr, ok); |
790 | 790 | ||
791 | if (!s->server && D1I(s)->r_msg_hdr.frag_off == 0 && | 791 | if (!s->server && s->d1->r_msg_hdr.frag_off == 0 && |
792 | wire[0] == SSL3_MT_HELLO_REQUEST) { | 792 | wire[0] == SSL3_MT_HELLO_REQUEST) { |
793 | /* | 793 | /* |
794 | * The server may always send 'Hello Request' messages -- | 794 | * The server may always send 'Hello Request' messages -- |
@@ -956,15 +956,15 @@ dtls1_buffer_message(SSL *s, int is_ccs) | |||
956 | 956 | ||
957 | memcpy(frag->fragment, s->internal->init_buf->data, s->internal->init_num); | 957 | memcpy(frag->fragment, s->internal->init_buf->data, s->internal->init_num); |
958 | 958 | ||
959 | OPENSSL_assert(D1I(s)->w_msg_hdr.msg_len + | 959 | OPENSSL_assert(s->d1->w_msg_hdr.msg_len + |
960 | (is_ccs ? DTLS1_CCS_HEADER_LENGTH : DTLS1_HM_HEADER_LENGTH) == | 960 | (is_ccs ? DTLS1_CCS_HEADER_LENGTH : DTLS1_HM_HEADER_LENGTH) == |
961 | (unsigned int)s->internal->init_num); | 961 | (unsigned int)s->internal->init_num); |
962 | 962 | ||
963 | frag->msg_header.msg_len = D1I(s)->w_msg_hdr.msg_len; | 963 | frag->msg_header.msg_len = s->d1->w_msg_hdr.msg_len; |
964 | frag->msg_header.seq = D1I(s)->w_msg_hdr.seq; | 964 | frag->msg_header.seq = s->d1->w_msg_hdr.seq; |
965 | frag->msg_header.type = D1I(s)->w_msg_hdr.type; | 965 | frag->msg_header.type = s->d1->w_msg_hdr.type; |
966 | frag->msg_header.frag_off = 0; | 966 | frag->msg_header.frag_off = 0; |
967 | frag->msg_header.frag_len = D1I(s)->w_msg_hdr.msg_len; | 967 | frag->msg_header.frag_len = s->d1->w_msg_hdr.msg_len; |
968 | frag->msg_header.is_ccs = is_ccs; | 968 | frag->msg_header.is_ccs = is_ccs; |
969 | 969 | ||
970 | /* save current state*/ | 970 | /* save current state*/ |
@@ -1039,7 +1039,7 @@ dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off, | |||
1039 | saved_state.session = s->session; | 1039 | saved_state.session = s->session; |
1040 | saved_state.epoch = tls12_record_layer_write_epoch(s->internal->rl); | 1040 | saved_state.epoch = tls12_record_layer_write_epoch(s->internal->rl); |
1041 | 1041 | ||
1042 | D1I(s)->retransmitting = 1; | 1042 | s->d1->retransmitting = 1; |
1043 | 1043 | ||
1044 | /* restore state in which the message was originally sent */ | 1044 | /* restore state in which the message was originally sent */ |
1045 | s->session = frag->msg_header.saved_retransmit_state.session; | 1045 | s->session = frag->msg_header.saved_retransmit_state.session; |
@@ -1056,7 +1056,7 @@ dtls1_retransmit_message(SSL *s, unsigned short seq, unsigned long frag_off, | |||
1056 | saved_state.epoch)) | 1056 | saved_state.epoch)) |
1057 | return 0; | 1057 | return 0; |
1058 | 1058 | ||
1059 | D1I(s)->retransmitting = 0; | 1059 | s->d1->retransmitting = 0; |
1060 | 1060 | ||
1061 | (void)BIO_flush(SSL_get_wbio(s)); | 1061 | (void)BIO_flush(SSL_get_wbio(s)); |
1062 | return ret; | 1062 | return ret; |
@@ -1085,12 +1085,12 @@ dtls1_set_message_header(SSL *s, unsigned char mt, unsigned long len, | |||
1085 | unsigned long frag_off, unsigned long frag_len) | 1085 | unsigned long frag_off, unsigned long frag_len) |
1086 | { | 1086 | { |
1087 | /* Don't change sequence numbers while listening */ | 1087 | /* Don't change sequence numbers while listening */ |
1088 | if (frag_off == 0 && !D1I(s)->listen) { | 1088 | if (frag_off == 0 && !s->d1->listen) { |
1089 | D1I(s)->handshake_write_seq = D1I(s)->next_handshake_write_seq; | 1089 | s->d1->handshake_write_seq = s->d1->next_handshake_write_seq; |
1090 | D1I(s)->next_handshake_write_seq++; | 1090 | s->d1->next_handshake_write_seq++; |
1091 | } | 1091 | } |
1092 | 1092 | ||
1093 | dtls1_set_message_header_int(s, mt, len, D1I(s)->handshake_write_seq, | 1093 | dtls1_set_message_header_int(s, mt, len, s->d1->handshake_write_seq, |
1094 | frag_off, frag_len); | 1094 | frag_off, frag_len); |
1095 | } | 1095 | } |
1096 | 1096 | ||
@@ -1099,7 +1099,7 @@ void | |||
1099 | dtls1_set_message_header_int(SSL *s, unsigned char mt, unsigned long len, | 1099 | dtls1_set_message_header_int(SSL *s, unsigned char mt, unsigned long len, |
1100 | unsigned short seq_num, unsigned long frag_off, unsigned long frag_len) | 1100 | unsigned short seq_num, unsigned long frag_off, unsigned long frag_len) |
1101 | { | 1101 | { |
1102 | struct hm_header_st *msg_hdr = &D1I(s)->w_msg_hdr; | 1102 | struct hm_header_st *msg_hdr = &s->d1->w_msg_hdr; |
1103 | 1103 | ||
1104 | msg_hdr->type = mt; | 1104 | msg_hdr->type = mt; |
1105 | msg_hdr->msg_len = len; | 1105 | msg_hdr->msg_len = len; |
@@ -1111,7 +1111,7 @@ dtls1_set_message_header_int(SSL *s, unsigned char mt, unsigned long len, | |||
1111 | static void | 1111 | static void |
1112 | dtls1_fix_message_header(SSL *s, unsigned long frag_off, unsigned long frag_len) | 1112 | dtls1_fix_message_header(SSL *s, unsigned long frag_off, unsigned long frag_len) |
1113 | { | 1113 | { |
1114 | struct hm_header_st *msg_hdr = &D1I(s)->w_msg_hdr; | 1114 | struct hm_header_st *msg_hdr = &s->d1->w_msg_hdr; |
1115 | 1115 | ||
1116 | msg_hdr->frag_off = frag_off; | 1116 | msg_hdr->frag_off = frag_off; |
1117 | msg_hdr->frag_len = frag_len; | 1117 | msg_hdr->frag_len = frag_len; |