Changeset 5214 for pjproject/trunk/pjlib/src/pj/ssl_sock_ossl.c
- Timestamp:
- Dec 11, 2015 4:59:56 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjlib/src/pj/ssl_sock_ossl.c
r5087 r5214 142 142 pj_ssl_sock_t *parent; 143 143 pj_ssl_sock_param param; 144 pj_ssl_sock_param newsock_param; 144 145 pj_ssl_cert_t *cert; 145 146 … … 1758 1759 pj_status_t status; 1759 1760 1760 PJ_UNUSED_ARG(src_addr_len);1761 1762 1761 /* Create new SSL socket instance */ 1763 status = pj_ssl_sock_create(ssock_parent->pool, &ssock_parent->param,1764 1762 status = pj_ssl_sock_create(ssock_parent->pool, 1763 &ssock_parent->newsock_param, &ssock); 1765 1764 if (status != PJ_SUCCESS) 1766 1765 goto on_return; … … 2184 2183 2185 2184 /* Init secure socket param */ 2186 ssock->param = *param;2185 pj_ssl_sock_param_copy(pool, &ssock->param, param); 2187 2186 ssock->param.read_buffer_size = ((ssock->param.read_buffer_size+7)>>3)<<3; 2188 if (param->ciphers_num > 0) {2189 unsigned i;2190 ssock->param.ciphers = (pj_ssl_cipher*)2191 pj_pool_calloc(pool, param->ciphers_num,2192 sizeof(pj_ssl_cipher));2193 for (i = 0; i < param->ciphers_num; ++i)2194 ssock->param.ciphers[i] = param->ciphers[i];2195 }2196 2197 /* Server name must be null-terminated */2198 pj_strdup_with_null(pool, &ssock->param.server_name,2199 ¶m->server_name);2200 2187 2201 2188 /* Finally */ … … 2618 2605 int addr_len) 2619 2606 { 2607 return pj_ssl_sock_start_accept2(ssock, pool, localaddr, addr_len, 2608 &ssock->param); 2609 } 2610 2611 2612 /** 2613 * Same as #pj_ssl_sock_start_accept(), but application provides parameter 2614 * for new accepted secure sockets. 2615 */ 2616 PJ_DEF(pj_status_t) 2617 pj_ssl_sock_start_accept2(pj_ssl_sock_t *ssock, 2618 pj_pool_t *pool, 2619 const pj_sockaddr_t *localaddr, 2620 int addr_len, 2621 const pj_ssl_sock_param *newsock_param) 2622 { 2620 2623 pj_activesock_cb asock_cb; 2621 2624 pj_activesock_cfg asock_cfg; … … 2623 2626 2624 2627 PJ_ASSERT_RETURN(ssock && pool && localaddr && addr_len, PJ_EINVAL); 2628 2629 /* Verify new socket parameters */ 2630 if (newsock_param->grp_lock != ssock->param.grp_lock || 2631 newsock_param->sock_af != ssock->param.sock_af || 2632 newsock_param->sock_type != ssock->param.sock_type) 2633 { 2634 return PJ_EINVAL; 2635 } 2625 2636 2626 2637 /* Create socket */ … … 2692 2703 2693 2704 /* Start accepting */ 2705 pj_ssl_sock_param_copy(pool, &ssock->newsock_param, newsock_param); 2694 2706 status = pj_activesock_start_accept(ssock->asock, pool); 2695 2707 if (status != PJ_SUCCESS)
Note: See TracChangeset
for help on using the changeset viewer.