@@ -598,6 +598,55 @@ int test_wolfSSL_dtls_cid_parse(void)
598598 return EXPECT_RESULT ();
599599}
600600
601+ int test_wolfSSL_dtls_set_pending_peer (void )
602+ {
603+ EXPECT_DECLS ;
604+ #if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES ) && \
605+ defined(WOLFSSL_DTLS ) && defined(WOLFSSL_DTLS_CID )
606+ WOLFSSL_CTX * ctx_c = NULL , * ctx_s = NULL ;
607+ WOLFSSL * ssl_c = NULL , * ssl_s = NULL ;
608+ struct test_memio_ctx test_ctx ;
609+ unsigned char peer [10 ];
610+ unsigned int peerSz ;
611+ unsigned char readBuf [10 ];
612+ unsigned char client_cid [] = { 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 };
613+ unsigned char server_cid [] = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 };
614+
615+ XMEMSET (& test_ctx , 0 , sizeof (test_ctx ));
616+
617+ /* Setup DTLS contexts */
618+ ExpectIntEQ (test_memio_setup (& test_ctx , & ctx_c , & ctx_s , & ssl_c , & ssl_s ,
619+ wolfDTLS_client_method , wolfDTLS_server_method ), 0 );
620+
621+ ExpectIntEQ (wolfSSL_dtls_cid_use (ssl_c ), 1 );
622+ ExpectIntEQ (wolfSSL_dtls_cid_set (ssl_c , server_cid ,
623+ sizeof (server_cid )), 1 );
624+ ExpectIntEQ (wolfSSL_dtls_cid_use (ssl_s ), 1 );
625+ ExpectIntEQ (wolfSSL_dtls_cid_set (ssl_s , client_cid ,
626+ sizeof (client_cid )), 1 );
627+
628+ ExpectIntEQ (test_memio_do_handshake (ssl_c , ssl_s , 10 , NULL ), 0 );
629+
630+ peerSz = sizeof (peer );
631+ /* Fail since no peer set */
632+ ExpectIntEQ (wolfSSL_dtls_get_peer (ssl_s , peer , & peerSz ), 0 );
633+ ExpectIntEQ (wolfSSL_dtls_set_pending_peer (ssl_s , (void * )"123" , 4 ), 1 );
634+ ExpectIntEQ (wolfSSL_write (ssl_c , "test" , 5 ), 5 );
635+ ExpectIntEQ (wolfSSL_read (ssl_s , readBuf , sizeof (readBuf )), 5 );
636+ ExpectStrEQ (readBuf , "test" );
637+ peerSz = sizeof (peer );
638+ ExpectIntEQ (wolfSSL_dtls_get_peer (ssl_s , peer , & peerSz ), 1 );
639+ ExpectIntEQ (peerSz , 4 );
640+ ExpectStrEQ (peer , "123" );
641+
642+ wolfSSL_free (ssl_s );
643+ wolfSSL_free (ssl_c );
644+ wolfSSL_CTX_free (ctx_s );
645+ wolfSSL_CTX_free (ctx_c );
646+ #endif
647+ return EXPECT_RESULT ();
648+ }
649+
601650int test_dtls13_epochs (void ) {
602651 EXPECT_DECLS ;
603652#if defined(WOLFSSL_DTLS13 ) && !defined(NO_WOLFSSL_CLIENT )
0 commit comments