static pj_bool_t stun_sock_on_status(pj_stun_sock *stun_sock, pj_stun_sock_op op, pj_status_t status) { struct stun_test_session *test_sess = (struct stun_test_session*)pj_stun_sock_get_user_data(stun_sock); PJ_UNUSED_ARG(op); PJ_UNUSED_ARG(status); test_sess->param.client_got_response++; return PJ_TRUE; }
static pj_bool_t stun_sock_on_rx_data(pj_stun_sock *stun_sock, void *pkt, unsigned pkt_len, const pj_sockaddr_t *src_addr, unsigned addr_len) { struct peer *peer = (struct peer*) pj_stun_sock_get_user_data(stun_sock); char straddr[PJ_INET6_ADDRSTRLEN+10]; ((char*)pkt)[pkt_len] = '\0'; pj_sockaddr_print(src_addr, straddr, sizeof(straddr), 3); PJ_LOG(3,(THIS_FILE, "peer%d: received %d bytes data from %s: %s", peer-g.peer, pkt_len, straddr, (char*)pkt)); return PJ_TRUE; }
static pj_bool_t stun_sock_on_rx_data(pj_stun_sock *stun_sock, void *pkt, unsigned pkt_len, const pj_sockaddr_t *src_addr, unsigned addr_len) { struct stun_client *client; PJ_UNUSED_ARG(pkt); PJ_UNUSED_ARG(pkt_len); PJ_UNUSED_ARG(src_addr); PJ_UNUSED_ARG(addr_len); client = (struct stun_client*) pj_stun_sock_get_user_data(stun_sock); client->on_rx_data_cnt++; return PJ_TRUE; }
static pj_bool_t stun_sock_on_status(pj_stun_sock *stun_sock, pj_stun_sock_op op, pj_status_t status) { struct stun_client *client; client = (struct stun_client*) pj_stun_sock_get_user_data(stun_sock); client->on_status_cnt++; client->last_op = op; client->last_status = status; if (status != PJ_SUCCESS && client->destroy_on_err) { pj_stun_sock_destroy(client->sock); client->sock = NULL; return PJ_FALSE; } return PJ_TRUE; }
static pj_bool_t stun_sock_on_status(pj_stun_sock *stun_sock, pj_stun_sock_op op, pj_status_t status) { struct peer *peer = (struct peer*) pj_stun_sock_get_user_data(stun_sock); if (status == PJ_SUCCESS) { PJ_LOG(4,(THIS_FILE, "peer%d: %s success", peer-g.peer, pj_stun_sock_op_name(op))); } else { char errmsg[PJ_ERR_MSG_SIZE]; pj_strerror(status, errmsg, sizeof(errmsg)); PJ_LOG(1,(THIS_FILE, "peer%d: %s error: %s", peer-g.peer, pj_stun_sock_op_name(op), errmsg)); return PJ_FALSE; } if (op==PJ_STUN_SOCK_BINDING_OP || op==PJ_STUN_SOCK_KEEP_ALIVE_OP) { pj_stun_sock_info info; int cmp; pj_stun_sock_get_info(stun_sock, &info); cmp = pj_sockaddr_cmp(&info.mapped_addr, &peer->mapped_addr); if (cmp) { char straddr[PJ_INET6_ADDRSTRLEN+10]; pj_sockaddr_cp(&peer->mapped_addr, &info.mapped_addr); pj_sockaddr_print(&peer->mapped_addr, straddr, sizeof(straddr), 3); PJ_LOG(3,(THIS_FILE, "peer%d: STUN mapped address is %s", peer-g.peer, straddr)); } } return PJ_TRUE; }