summaryrefslogtreecommitdiff
path: root/pjnath/src/pjturn-srv
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-03-19 23:00:30 +0000
committerBenny Prijono <bennylp@teluu.com>2008-03-19 23:00:30 +0000
commit97dfbff2ebfae83b7cb10517247215d38e4a74fd (patch)
tree0edea19f19049829e444733eced5d892b5a95a84 /pjnath/src/pjturn-srv
parentb15dff0bed0f34a3371bce1b17e5a13ade0fb194 (diff)
Related to ticket #485: huge changeset to update STUN relating to managing authentication. See the ticket for the details
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1877 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjnath/src/pjturn-srv')
-rw-r--r--pjnath/src/pjturn-srv/allocation.c65
-rw-r--r--pjnath/src/pjturn-srv/auth.c23
-rw-r--r--pjnath/src/pjturn-srv/auth.h12
-rw-r--r--pjnath/src/pjturn-srv/server.c117
-rw-r--r--pjnath/src/pjturn-srv/turn.h23
5 files changed, 47 insertions, 193 deletions
diff --git a/pjnath/src/pjturn-srv/allocation.c b/pjnath/src/pjturn-srv/allocation.c
index da35266c..14ed228b 100644
--- a/pjnath/src/pjturn-srv/allocation.c
+++ b/pjnath/src/pjturn-srv/allocation.c
@@ -72,7 +72,7 @@ static pj_status_t stun_on_send_msg(pj_stun_session *sess,
static pj_status_t stun_on_rx_request(pj_stun_session *sess,
const pj_uint8_t *pkt,
unsigned pkt_len,
- const pj_stun_msg *msg,
+ const pj_stun_rx_data *rdata,
const pj_sockaddr_t *src_addr,
unsigned src_addr_len);
static pj_status_t stun_on_rx_indication(pj_stun_session *sess,
@@ -97,10 +97,11 @@ static void alloc_err(pj_turn_allocation *alloc, const char *title,
/* Parse ALLOCATE request */
static pj_status_t parse_allocate_req(alloc_request *cfg,
pj_stun_session *sess,
- const pj_stun_msg *req,
+ const pj_stun_rx_data *rdata,
const pj_sockaddr_t *src_addr,
unsigned src_addr_len)
{
+ const pj_stun_msg *req = rdata->msg;
pj_stun_bandwidth_attr *attr_bw;
pj_stun_req_transport_attr *attr_req_tp;
pj_stun_res_token_attr *attr_res_token;
@@ -120,7 +121,8 @@ static pj_status_t parse_allocate_req(alloc_request *cfg,
/* Check if we can satisfy the bandwidth */
if (cfg->bandwidth > MAX_CLIENT_BANDWIDTH) {
- pj_stun_session_respond(sess, req, PJ_STUN_SC_ALLOCATION_QUOTA_REACHED,
+ pj_stun_session_respond(sess, rdata,
+ PJ_STUN_SC_ALLOCATION_QUOTA_REACHED,
"Invalid bandwidth", PJ_TRUE,
src_addr, src_addr_len);
return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_ALLOCATION_QUOTA_REACHED);
@@ -130,7 +132,7 @@ static pj_status_t parse_allocate_req(alloc_request *cfg,
attr_req_tp = (pj_stun_uint_attr*)
pj_stun_msg_find_attr(req, PJ_STUN_ATTR_REQ_TRANSPORT, 0);
if (attr_req_tp == NULL) {
- pj_stun_session_respond(sess, req, PJ_STUN_SC_BAD_REQUEST,
+ pj_stun_session_respond(sess, rdata, PJ_STUN_SC_BAD_REQUEST,
"Missing REQUESTED-TRANSPORT attribute",
PJ_TRUE, src_addr, src_addr_len);
return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_BAD_REQUEST);
@@ -140,7 +142,7 @@ static pj_status_t parse_allocate_req(alloc_request *cfg,
/* Can only support UDP for now */
if (cfg->tp_type != PJ_TURN_TP_UDP) {
- pj_stun_session_respond(sess, req, PJ_STUN_SC_UNSUPP_TRANSPORT_PROTO,
+ pj_stun_session_respond(sess, rdata, PJ_STUN_SC_UNSUPP_TRANSPORT_PROTO,
NULL, PJ_TRUE, src_addr, src_addr_len);
return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_UNSUPP_TRANSPORT_PROTO);
}
@@ -151,7 +153,7 @@ static pj_status_t parse_allocate_req(alloc_request *cfg,
0);
if (attr_res_token) {
/* We don't support RESERVATION-TOKEN for now */
- pj_stun_session_respond(sess, req,
+ pj_stun_session_respond(sess, rdata,
PJ_STUN_SC_BAD_REQUEST,
"RESERVATION-TOKEN is not supported", PJ_TRUE,
src_addr, src_addr_len);
@@ -163,7 +165,7 @@ static pj_status_t parse_allocate_req(alloc_request *cfg,
pj_stun_msg_find_attr(req, PJ_STUN_ATTR_REQ_PROPS, 0);
if (attr_rpp) {
/* We don't support REQUESTED-PROPS for now */
- pj_stun_session_respond(sess, req,
+ pj_stun_session_respond(sess, rdata,
PJ_STUN_SC_BAD_REQUEST,
"REQUESTED-PROPS is not supported", PJ_TRUE,
src_addr, src_addr_len);
@@ -176,7 +178,7 @@ static pj_status_t parse_allocate_req(alloc_request *cfg,
if (attr_lifetime) {
cfg->lifetime = attr_lifetime->value;
if (cfg->lifetime < MIN_LIFETIME) {
- pj_stun_session_respond(sess, req, PJ_STUN_SC_BAD_REQUEST,
+ pj_stun_session_respond(sess, rdata, PJ_STUN_SC_BAD_REQUEST,
"LIFETIME too short", PJ_TRUE,
src_addr, src_addr_len);
return PJ_STATUS_FROM_STUN_CODE(PJ_STUN_SC_BAD_REQUEST);
@@ -194,13 +196,13 @@ static pj_status_t parse_allocate_req(alloc_request *cfg,
/* Respond to ALLOCATE request */
static pj_status_t send_allocate_response(pj_turn_allocation *alloc,
pj_stun_session *srv_sess,
- const pj_stun_msg *msg)
+ const pj_stun_rx_data *rdata)
{
pj_stun_tx_data *tdata;
pj_status_t status;
/* Respond the original ALLOCATE request */
- status = pj_stun_session_create_res(srv_sess, msg, 0, NULL, &tdata);
+ status = pj_stun_session_create_res(srv_sess, rdata, 0, NULL, &tdata);
if (status != PJ_SUCCESS)
return status;
@@ -284,11 +286,12 @@ static pj_status_t init_cred(pj_turn_allocation *alloc, const pj_stun_msg *req)
PJ_DEF(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener,
const pj_sockaddr_t *src_addr,
unsigned src_addr_len,
- const pj_stun_msg *msg,
+ const pj_stun_rx_data *rdata,
pj_stun_session *srv_sess,
pj_turn_allocation **p_alloc)
{
pj_turn_srv *srv = listener->server;
+ const pj_stun_msg *msg = rdata->msg;
pj_pool_t *pool;
alloc_request req;
pj_turn_allocation *alloc;
@@ -297,7 +300,7 @@ PJ_DEF(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener,
pj_status_t status;
/* Parse ALLOCATE request */
- status = parse_allocate_req(&req, srv_sess, msg, src_addr, src_addr_len);
+ status = parse_allocate_req(&req, srv_sess, rdata, src_addr, src_addr_len);
if (status != PJ_SUCCESS)
return status;
@@ -354,7 +357,8 @@ PJ_DEF(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener,
}
/* Attach authentication credential to STUN session */
- pj_stun_session_set_credential(alloc->sess, &alloc->cred);
+ pj_stun_session_set_credential(alloc->sess, PJ_STUN_AUTH_LONG_TERM,
+ &alloc->cred);
/* Create the relay resource */
status = create_relay(srv, alloc, msg, &req, &alloc->relay);
@@ -366,7 +370,7 @@ PJ_DEF(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener,
pj_turn_srv_register_allocation(srv, alloc);
/* Respond to ALLOCATE request */
- status = send_allocate_response(alloc, srv_sess, msg);
+ status = send_allocate_response(alloc, srv_sess, rdata);
if (status != PJ_SUCCESS)
goto on_error;
@@ -383,7 +387,7 @@ PJ_DEF(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener,
on_error:
/* Send reply to the ALLOCATE request */
pj_strerror(status, str_tmp, sizeof(str_tmp));
- pj_stun_session_respond(srv_sess, msg, PJ_STUN_SC_BAD_REQUEST, str_tmp,
+ pj_stun_session_respond(srv_sess, rdata, PJ_STUN_SC_BAD_REQUEST, str_tmp,
PJ_TRUE, src_addr, src_addr_len);
/* Cleanup */
@@ -709,13 +713,13 @@ static pj_status_t create_relay(pj_turn_srv *srv,
/* Create and send error response */
static void send_reply_err(pj_turn_allocation *alloc,
- const pj_stun_msg *req,
+ const pj_stun_rx_data *rdata,
pj_bool_t cache,
int code, const char *errmsg)
{
pj_status_t status;
- status = pj_stun_session_respond(alloc->sess, req, code, errmsg, cache,
+ status = pj_stun_session_respond(alloc->sess, rdata, code, errmsg, cache,
&alloc->hkey.clt_addr,
pj_sockaddr_get_len(&alloc->hkey.clt_addr.addr));
if (status != PJ_SUCCESS) {
@@ -726,13 +730,13 @@ static void send_reply_err(pj_turn_allocation *alloc,
/* Create and send successful response */
static void send_reply_ok(pj_turn_allocation *alloc,
- const pj_stun_msg *req)
+ const pj_stun_rx_data *rdata)
{
pj_status_t status;
unsigned interval;
pj_stun_tx_data *tdata;
- status = pj_stun_session_create_res(alloc->sess, req, 0, NULL, &tdata);
+ status = pj_stun_session_create_res(alloc->sess, rdata, 0, NULL, &tdata);
if (status != PJ_SUCCESS) {
alloc_err(alloc, "Error creating STUN success response", status);
return;
@@ -1072,10 +1076,11 @@ static pj_status_t stun_on_send_msg(pj_stun_session *sess,
static pj_status_t stun_on_rx_request(pj_stun_session *sess,
const pj_uint8_t *pkt,
unsigned pkt_len,
- const pj_stun_msg *msg,
+ const pj_stun_rx_data *rdata,
const pj_sockaddr_t *src_addr,
unsigned src_addr_len)
{
+ const pj_stun_msg *msg = rdata->msg;
pj_turn_allocation *alloc;
PJ_UNUSED_ARG(pkt);
@@ -1088,7 +1093,7 @@ static pj_status_t stun_on_rx_request(pj_stun_session *sess,
/* Refuse to serve any request if we've been shutdown */
if (alloc->relay.lifetime == 0) {
/* Reject with 437 if we're shutting down */
- send_reply_err(alloc, msg, PJ_TRUE,
+ send_reply_err(alloc, rdata, PJ_TRUE,
PJ_STUN_SC_ALLOCATION_MISMATCH, NULL);
return PJ_SUCCESS;
}
@@ -1115,7 +1120,7 @@ static pj_status_t stun_on_rx_request(pj_stun_session *sess,
alloc->relay.lifetime = 0;
/* Respond first */
- send_reply_ok(alloc, msg);
+ send_reply_ok(alloc, rdata);
/* Shutdown allocation */
PJ_LOG(4,(alloc->obj_name,
@@ -1141,7 +1146,7 @@ static pj_status_t stun_on_rx_request(pj_stun_session *sess,
resched_timeout(alloc);
/* Send reply */
- send_reply_ok(alloc, msg);
+ send_reply_ok(alloc, rdata);
}
} else if (msg->hdr.type == PJ_STUN_CHANNEL_BIND_REQUEST) {
@@ -1158,7 +1163,8 @@ static pj_status_t stun_on_rx_request(pj_stun_session *sess,
pj_stun_msg_find_attr(msg, PJ_STUN_ATTR_PEER_ADDR, 0);
if (!ch_attr || !peer_attr) {
- send_reply_err(alloc, msg, PJ_TRUE, PJ_STUN_SC_BAD_REQUEST, NULL);
+ send_reply_err(alloc, rdata, PJ_TRUE,
+ PJ_STUN_SC_BAD_REQUEST, NULL);
return PJ_SUCCESS;
}
@@ -1171,7 +1177,7 @@ static pj_status_t stun_on_rx_request(pj_stun_session *sess,
if (p1) {
if (pj_sockaddr_cmp(&p1->hkey.peer_addr, &peer_attr->sockaddr)) {
/* Address mismatch. Send 400 */
- send_reply_err(alloc, msg, PJ_TRUE,
+ send_reply_err(alloc, rdata, PJ_TRUE,
PJ_STUN_SC_BAD_REQUEST,
"Peer address mismatch");
return PJ_SUCCESS;
@@ -1190,7 +1196,7 @@ static pj_status_t stun_on_rx_request(pj_stun_session *sess,
p2 = lookup_permission_by_addr(alloc, &peer_attr->sockaddr,
pj_sockaddr_get_len(&peer_attr->sockaddr));
if (p2 && p2->channel != PJ_TURN_INVALID_CHANNEL) {
- send_reply_err(alloc, msg, PJ_TRUE, PJ_STUN_SC_BAD_REQUEST,
+ send_reply_err(alloc, rdata, PJ_TRUE, PJ_STUN_SC_BAD_REQUEST,
"Peer address already assigned a channel number");
return PJ_SUCCESS;
}
@@ -1210,19 +1216,20 @@ static pj_status_t stun_on_rx_request(pj_stun_session *sess,
refresh_permission(p2);
/* Reply */
- send_reply_ok(alloc, msg);
+ send_reply_ok(alloc, rdata);
return PJ_SUCCESS;
} else if (msg->hdr.type == PJ_STUN_ALLOCATE_REQUEST) {
/* Respond with 437 (section 6.3 turn-07) */
- send_reply_err(alloc, msg, PJ_TRUE, PJ_STUN_SC_ALLOCATION_MISMATCH, NULL);
+ send_reply_err(alloc, rdata, PJ_TRUE, PJ_STUN_SC_ALLOCATION_MISMATCH,
+ NULL);
} else {
/* Respond with Bad Request? */
- send_reply_err(alloc, msg, PJ_TRUE, PJ_STUN_SC_BAD_REQUEST, NULL);
+ send_reply_err(alloc, rdata, PJ_TRUE, PJ_STUN_SC_BAD_REQUEST, NULL);
}
diff --git a/pjnath/src/pjturn-srv/auth.c b/pjnath/src/pjturn-srv/auth.c
index ad930251..3071221c 100644
--- a/pjnath/src/pjturn-srv/auth.c
+++ b/pjnath/src/pjturn-srv/auth.c
@@ -58,29 +58,6 @@ PJ_DEF(void) pj_turn_auth_dinit(void)
}
-PJ_DEF(pj_status_t) pj_turn_get_cred( const pj_stun_msg *msg,
- void *user_data,
- pj_pool_t *pool,
- pj_str_t *realm,
- pj_str_t *username,
- pj_str_t *nonce,
- int *data_type,
- pj_str_t *data)
-{
- PJ_UNUSED_ARG(msg);
- PJ_UNUSED_ARG(pool);
- PJ_UNUSED_ARG(user_data);
-
- *realm = pj_str(g_realm);
- *username = pj_str(g_cred[0].username);
- *nonce = pj_str(THE_NONCE);
- *data_type = 0;
- *data = pj_str(g_cred[0].passwd);
-
- return PJ_SUCCESS;
-}
-
-
/*
* This function is called by pj_stun_verify_credential() when
* server needs to challenge the request with 401 response.
diff --git a/pjnath/src/pjturn-srv/auth.h b/pjnath/src/pjturn-srv/auth.h
index d0b5a0ec..db928051 100644
--- a/pjnath/src/pjturn-srv/auth.h
+++ b/pjnath/src/pjturn-srv/auth.h
@@ -61,18 +61,6 @@ PJ_DECL(pj_status_t) pj_turn_get_auth(void *user_data,
pj_str_t *nonce);
/**
- * Get credential.
- */
-PJ_DECL(pj_status_t) pj_turn_get_cred(const pj_stun_msg *msg,
- void *user_data,
- pj_pool_t *pool,
- pj_str_t *realm,
- pj_str_t *username,
- pj_str_t *nonce,
- int *data_type,
- pj_str_t *data);
-
-/**
* This function is called to get the password for the specified username.
* This function is also used to check whether the username is valid.
*
diff --git a/pjnath/src/pjturn-srv/server.c b/pjnath/src/pjturn-srv/server.c
index 11180dbf..b22cc53b 100644
--- a/pjnath/src/pjturn-srv/server.c
+++ b/pjnath/src/pjturn-srv/server.c
@@ -40,7 +40,7 @@ static pj_status_t on_tx_stun_msg( pj_stun_session *sess,
static pj_status_t on_rx_stun_request(pj_stun_session *sess,
const pj_uint8_t *pkt,
unsigned pkt_len,
- const pj_stun_msg *msg,
+ const pj_stun_rx_data *rdata,
const pj_sockaddr_t *src_addr,
unsigned src_addr_len);
@@ -147,7 +147,6 @@ PJ_DEF(pj_status_t) pj_turn_srv_create(pj_pool_factory *pf,
srv->core.cred.type = PJ_STUN_AUTH_CRED_DYNAMIC;
srv->core.cred.data.dyn_cred.user_data = srv;
srv->core.cred.data.dyn_cred.get_auth = &pj_turn_get_auth;
- srv->core.cred.data.dyn_cred.get_cred = &pj_turn_get_cred;
srv->core.cred.data.dyn_cred.get_password = &pj_turn_get_password;
srv->core.cred.data.dyn_cred.verify_nonce = &pj_turn_verify_nonce;
@@ -368,7 +367,8 @@ PJ_DEF(pj_status_t) pj_turn_srv_add_listener(pj_turn_srv *srv,
}
pj_stun_session_set_user_data(sess, lis);
- pj_stun_session_set_credential(sess, &srv->core.cred);
+ pj_stun_session_set_credential(sess, PJ_STUN_AUTH_LONG_TERM,
+ &srv->core.cred);
srv->core.stun_sess[index] = sess;
lis->id = index;
@@ -483,9 +483,8 @@ static pj_status_t on_tx_stun_msg( pj_stun_session *sess,
/* Respond to STUN request */
-static pj_status_t stun_respond(pj_turn_srv *srv,
- pj_stun_session *sess,
- const pj_stun_msg *req,
+static pj_status_t stun_respond(pj_stun_session *sess,
+ const pj_stun_rx_data *rdata,
unsigned code,
const char *errmsg,
pj_bool_t cache,
@@ -497,114 +496,17 @@ static pj_status_t stun_respond(pj_turn_srv *srv,
pj_stun_tx_data *tdata;
/* Create response */
- status = pj_stun_session_create_res(sess, req, code,
+ status = pj_stun_session_create_res(sess, rdata, code,
(errmsg?pj_cstr(&reason,errmsg):NULL),
&tdata);
if (status != PJ_SUCCESS)
return status;
- /* Store the credential for future lookup. */
- if (pj_stun_auth_valid_for_msg(tdata->msg)) {
- pj_turn_srv_put_cred(srv, req, tdata);
- }
-
/* Send the response */
return pj_stun_session_send_msg(sess, cache, dst_addr, addr_len, tdata);
}
-/*
- * Store the credential to put placed for the specified message for
- * future retrieval.
- */
-PJ_DEF(pj_status_t) pj_turn_srv_put_cred(pj_turn_srv *srv,
- const pj_stun_msg *req,
- pj_stun_tx_data *response)
-{
- pj_stun_username_attr *user;
- pj_stun_realm_attr *realm;
- pj_stun_nonce_attr *nonce;
- struct saved_cred *saved_cred;
- pj_status_t status;
-
- realm = (pj_stun_realm_attr*)
- pj_stun_msg_find_attr(req, PJ_STUN_ATTR_REALM, 0);
- PJ_ASSERT_RETURN(realm != NULL, PJ_EBUG);
-
- user = (pj_stun_username_attr*)
- pj_stun_msg_find_attr(req, PJ_STUN_ATTR_USERNAME, 0);
- PJ_ASSERT_RETURN(user != NULL, PJ_EBUG);
-
- nonce = (pj_stun_nonce_attr*)
- pj_stun_msg_find_attr(req, PJ_STUN_ATTR_NONCE, 0);
- PJ_ASSERT_RETURN(nonce != NULL, PJ_EBUG);
-
- saved_cred = PJ_POOL_ALLOC_T(response->pool, struct saved_cred);
-
- /* Lookup the password */
- status = pj_turn_get_password(response->msg, NULL, &realm->value,
- &user->value, response->pool,
- &saved_cred->data_type,
- &saved_cred->data);
- if (status != PJ_SUCCESS)
- return status;
-
- /* Store credential */
- pj_strdup(response->pool, &saved_cred->username, &user->value);
- pj_strdup(response->pool, &saved_cred->realm, &realm->value);
- pj_strdup(response->pool, &saved_cred->nonce, &nonce->value);
-
- pj_thread_local_set(srv->core.tls_key, response->msg);
- pj_thread_local_set(srv->core.tls_data, saved_cred);
-
- return PJ_SUCCESS;
-}
-
-
-/**
- * Retrieve previously stored credential for the specified message.
- */
-PJ_DEF(pj_status_t) pj_turn_srv_get_cred(const pj_stun_msg *msg,
- void *user_data,
- pj_pool_t *pool,
- pj_str_t *realm,
- pj_str_t *username,
- pj_str_t *nonce,
- int *data_type,
- pj_str_t *data)
-{
- pj_turn_srv *srv;
- const pj_stun_msg *saved_msg;
- struct saved_cred *saved_cred;
-
- PJ_UNUSED_ARG(pool);
-
- srv = (pj_turn_srv*)user_data;
-
- /* Lookup stored message and make sure it's for the same message */
- saved_msg = (const pj_stun_msg*)
- pj_thread_local_get(srv->core.tls_key);
- PJ_ASSERT_RETURN(saved_msg==msg, PJ_ENOTFOUND);
-
- /* Lookup saved credential */
- saved_cred = (struct saved_cred*)
- pj_thread_local_get(srv->core.tls_data);
- PJ_ASSERT_RETURN(saved_cred != NULL, PJ_ENOTFOUND);
-
-
- *realm = saved_cred->realm;
- *username = saved_cred->username;
- *nonce = saved_cred->nonce;
- *data_type = saved_cred->data_type;
- *data = saved_cred->data;
-
-
- /* Don't clear saved_cred as this may be called more than once */
-
- return PJ_SUCCESS;
-}
-
-
/* Callback from our own STUN session when incoming request arrives.
* This function is triggered by pj_stun_session_on_rx_pkt() call in
* pj_turn_srv_on_rx_pkt() function below.
@@ -612,11 +514,12 @@ PJ_DEF(pj_status_t) pj_turn_srv_get_cred(const pj_stun_msg *msg,
static pj_status_t on_rx_stun_request(pj_stun_session *sess,
const pj_uint8_t *pkt,
unsigned pkt_len,
- const pj_stun_msg *msg,
+ const pj_stun_rx_data *rdata,
const pj_sockaddr_t *src_addr,
unsigned src_addr_len)
{
pj_turn_listener *listener;
+ const pj_stun_msg *msg = rdata->msg;
pj_turn_srv *srv;
pj_turn_allocation *alloc;
pj_status_t status;
@@ -629,7 +532,7 @@ static pj_status_t on_rx_stun_request(pj_stun_session *sess,
/* Respond any requests other than ALLOCATE with 437 response */
if (msg->hdr.type != PJ_STUN_ALLOCATE_REQUEST) {
- stun_respond(srv, sess, msg, PJ_STUN_SC_ALLOCATION_MISMATCH,
+ stun_respond(sess, rdata, PJ_STUN_SC_ALLOCATION_MISMATCH,
NULL, PJ_FALSE, src_addr, src_addr_len);
return PJ_SUCCESS;
}
@@ -638,7 +541,7 @@ static pj_status_t on_rx_stun_request(pj_stun_session *sess,
* in this function.
*/
status = pj_turn_allocation_create(listener, src_addr, src_addr_len,
- msg, sess, &alloc);
+ rdata, sess, &alloc);
if (status != PJ_SUCCESS) {
/* STUN response has been sent, no need to reply here */
return PJ_SUCCESS;
diff --git a/pjnath/src/pjturn-srv/turn.h b/pjnath/src/pjturn-srv/turn.h
index 871db425..2eb99254 100644
--- a/pjnath/src/pjturn-srv/turn.h
+++ b/pjnath/src/pjturn-srv/turn.h
@@ -204,7 +204,7 @@ struct pj_turn_permission
PJ_DECL(pj_status_t) pj_turn_allocation_create(pj_turn_listener *listener,
const pj_sockaddr_t *src_addr,
unsigned src_addr_len,
- const pj_stun_msg *msg,
+ const pj_stun_rx_data *rdata,
pj_stun_session *srv_sess,
pj_turn_allocation **p_alloc);
/**
@@ -459,26 +459,5 @@ PJ_DECL(void) pj_turn_srv_on_rx_pkt(pj_turn_srv *srv,
pj_turn_pkt *pkt);
-/**
- * Store the credential to put placed for the specified message for
- * future retrieval.
- */
-PJ_DECL(pj_status_t) pj_turn_srv_put_cred(pj_turn_srv *srv,
- const pj_stun_msg *request,
- pj_stun_tx_data *response);
-
-/**
- * Retrieve previously stored credential for the specified message.
- */
-PJ_DECL(pj_status_t) pj_turn_srv_get_cred(const pj_stun_msg *msg,
- void *user_data,
- pj_pool_t *pool,
- pj_str_t *realm,
- pj_str_t *username,
- pj_str_t *nonce,
- int *data_type,
- pj_str_t *data);
-
-
#endif /* __PJ_TURN_SRV_TURN_H__ */