summaryrefslogtreecommitdiff
path: root/pjnath
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-04-04 17:49:28 +0000
committerBenny Prijono <bennylp@teluu.com>2007-04-04 17:49:28 +0000
commit3881047a905d1da151fd84ae6c67ab20a45b0583 (patch)
tree6e9985e419e1e0e625490012a5dc89f48d151366 /pjnath
parent8149ac27024d5c49c2aed141bc850cce2a3cbee5 (diff)
Added PJ_STUN_NO_AUTHENTICATE option to disable authentication in STUN session
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1151 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjnath')
-rw-r--r--pjnath/include/pjnath/stun_msg.h9
-rw-r--r--pjnath/src/pjnath/stun_session.c15
-rw-r--r--pjnath/src/pjstun-client/client_main.c3
3 files changed, 20 insertions, 7 deletions
diff --git a/pjnath/include/pjnath/stun_msg.h b/pjnath/include/pjnath/stun_msg.h
index b9a0db29..c67779e1 100644
--- a/pjnath/include/pjnath/stun_msg.h
+++ b/pjnath/include/pjnath/stun_msg.h
@@ -1029,7 +1029,14 @@ enum pj_stun_decode_options
* message by calling pj_stun_msg_check() before starting to
* decode the packet.
*/
- PJ_STUN_CHECK_PACKET = 2
+ PJ_STUN_CHECK_PACKET = 2,
+
+ /**
+ * This option current is only valid for #pj_stun_session_on_rx_pkt().
+ * When specified, it tells the session NOT to authenticate the
+ * message.
+ */
+ PJ_STUN_NO_AUTHENTICATE = 4
};
diff --git a/pjnath/src/pjnath/stun_session.c b/pjnath/src/pjnath/stun_session.c
index 760aa76d..cb14da3c 100644
--- a/pjnath/src/pjnath/stun_session.c
+++ b/pjnath/src/pjnath/stun_session.c
@@ -956,11 +956,15 @@ PJ_DEF(pj_status_t) pj_stun_session_on_rx_pkt(pj_stun_session *sess,
goto on_return;
}
- /* Authenticate the message */
- status = authenticate_msg(sess, packet, pkt_size, msg, tmp_pool,
- src_addr, src_addr_len);
- if (status != PJ_SUCCESS) {
- goto on_return;
+ /* Authenticate the message, unless PJ_STUN_NO_AUTHENTICATE
+ * is specified in the option.
+ */
+ if ((options & PJ_STUN_NO_AUTHENTICATE) == 0) {
+ status = authenticate_msg(sess, packet, pkt_size, msg, tmp_pool,
+ src_addr, src_addr_len);
+ if (status != PJ_SUCCESS) {
+ goto on_return;
+ }
}
/* Handle message */
@@ -992,3 +996,4 @@ on_return:
}
+
diff --git a/pjnath/src/pjstun-client/client_main.c b/pjnath/src/pjstun-client/client_main.c
index 958c23cb..bca87a32 100644
--- a/pjnath/src/pjstun-client/client_main.c
+++ b/pjnath/src/pjstun-client/client_main.c
@@ -29,6 +29,7 @@
#define REQ_PORT_PROPS -1 /* -1 to disable */
#define REQ_IP NULL /* IP address string */
+#define OPTIONS PJ_STUN_NO_AUTHENTICATE
static struct global
{
@@ -156,7 +157,7 @@ static int worker_thread(void *unused)
if (pj_stun_msg_check(buffer, len, PJ_STUN_IS_DATAGRAM)==PJ_SUCCESS) {
rc = pj_stun_session_on_rx_pkt(g.sess, buffer, len,
- 0,
+ OPTIONS,
NULL, &addr, addrlen);
if (rc != PJ_SUCCESS)
my_perror("Error processing packet", rc);