diff options
-rw-r--r-- | pjlib/include/pj/activesock.h | 6 | ||||
-rw-r--r-- | pjlib/src/pj/activesock.c | 5 | ||||
-rw-r--r-- | pjlib/src/pjlib-test/activesock.c | 3 |
3 files changed, 11 insertions, 3 deletions
diff --git a/pjlib/include/pj/activesock.h b/pjlib/include/pj/activesock.h index 056890fb..e2213fda 100644 --- a/pjlib/include/pj/activesock.h +++ b/pjlib/include/pj/activesock.h @@ -227,6 +227,8 @@ PJ_DECL(void) pj_activesock_cfg_default(pj_activesock_cfg *cfg); * the default values will be used. * @param cb Pointer to structure containing application * callbacks. + * @param user_data Arbitrary user data to be associated with this + * active socket. * @param p_asock Pointer to receive the active socket instance. * * @return PJ_SUCCESS if the operation has been successful, @@ -238,6 +240,7 @@ PJ_DECL(pj_status_t) pj_activesock_create(pj_pool_t *pool, const pj_activesock_cfg *opt, pj_ioqueue_t *ioqueue, const pj_activesock_cb *cb, + void *user_data, pj_activesock_t **p_asock); /** @@ -253,6 +256,8 @@ PJ_DECL(pj_status_t) pj_activesock_create(pj_pool_t *pool, * the default values will be used. * @param cb Pointer to structure containing application * callbacks. + * @param user_data Arbitrary user data to be associated with this + * active socket. * @param p_asock Pointer to receive the active socket instance. * @param bound_addr If this argument is specified, it will be filled with * the bound address on return. @@ -265,6 +270,7 @@ PJ_DECL(pj_status_t) pj_activesock_create_udp(pj_pool_t *pool, const pj_activesock_cfg *opt, pj_ioqueue_t *ioqueue, const pj_activesock_cb *cb, + void *user_data, pj_activesock_t **p_asock, pj_sockaddr *bound_addr); diff --git a/pjlib/src/pj/activesock.c b/pjlib/src/pj/activesock.c index 112ca5f2..8e098ed1 100644 --- a/pjlib/src/pj/activesock.c +++ b/pjlib/src/pj/activesock.c @@ -97,6 +97,7 @@ PJ_DEF(pj_status_t) pj_activesock_create( pj_pool_t *pool, const pj_activesock_cfg *opt, pj_ioqueue_t *ioqueue, const pj_activesock_cb *cb, + void *user_data, pj_activesock_t **p_asock) { pj_activesock_t *asock; @@ -114,6 +115,7 @@ PJ_DEF(pj_status_t) pj_activesock_create( pj_pool_t *pool, asock->stream_oriented = (sock_type == pj_SOCK_STREAM()); asock->async_count = (opt? opt->async_cnt : 1); asock->max_loop = PJ_ACTIVESOCK_MAX_LOOP; + asock->user_data = user_data; pj_memcpy(&asock->cb, cb, sizeof(*cb)); pj_bzero(&ioq_cb, sizeof(ioq_cb)); @@ -143,6 +145,7 @@ PJ_DEF(pj_status_t) pj_activesock_create_udp( pj_pool_t *pool, const pj_activesock_cfg *opt, pj_ioqueue_t *ioqueue, const pj_activesock_cb *cb, + void *user_data, pj_activesock_t **p_asock, pj_sockaddr *bound_addr) { @@ -168,7 +171,7 @@ PJ_DEF(pj_status_t) pj_activesock_create_udp( pj_pool_t *pool, } status = pj_activesock_create(pool, sock_fd, pj_SOCK_DGRAM(), opt, - ioqueue, cb, p_asock); + ioqueue, cb, user_data, p_asock); if (status != PJ_SUCCESS) { pj_sock_close(sock_fd); return status; diff --git a/pjlib/src/pjlib-test/activesock.c b/pjlib/src/pjlib-test/activesock.c index 0e38eea9..570aef56 100644 --- a/pjlib/src/pjlib-test/activesock.c +++ b/pjlib/src/pjlib-test/activesock.c @@ -114,7 +114,7 @@ static pj_status_t udp_echo_srv_create(pj_pool_t *pool, activesock_cb.on_data_recvfrom = &udp_echo_srv_on_data_recvfrom; status = pj_activesock_create_udp(pool, &addr, NULL, ioqueue, &activesock_cb, - &srv->asock, &addr); + srv, &srv->asock, &addr); if (status != PJ_SUCCESS) { pj_sock_close(sock_fd); udp_echo_err("pj_activesock_create()", status); @@ -123,7 +123,6 @@ static pj_status_t udp_echo_srv_create(pj_pool_t *pool, srv->port = pj_ntohs(addr.ipv4.sin_port); - pj_activesock_set_user_data(srv->asock, srv); pj_ioqueue_op_key_init(&srv->send_key, sizeof(srv->send_key)); status = pj_activesock_start_recvfrom(srv->asock, pool, 32, 0); |