diff options
author | Benny Prijono <bennylp@teluu.com> | 2007-04-04 17:49:28 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2007-04-04 17:49:28 +0000 |
commit | 3881047a905d1da151fd84ae6c67ab20a45b0583 (patch) | |
tree | 6e9985e419e1e0e625490012a5dc89f48d151366 /pjnath | |
parent | 8149ac27024d5c49c2aed141bc850cce2a3cbee5 (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.h | 9 | ||||
-rw-r--r-- | pjnath/src/pjnath/stun_session.c | 15 | ||||
-rw-r--r-- | pjnath/src/pjstun-client/client_main.c | 3 |
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); |