diff options
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia-audiodev/alsa_dev.c | 2 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/g711.c | 5 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/rtcp.c | 3 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/rtp.c | 2 | ||||
-rw-r--r-- | pjmedia/src/pjmedia/transport_srtp.c | 52 |
5 files changed, 46 insertions, 18 deletions
diff --git a/pjmedia/src/pjmedia-audiodev/alsa_dev.c b/pjmedia/src/pjmedia-audiodev/alsa_dev.c index 5bcdedf0..efda3190 100644 --- a/pjmedia/src/pjmedia-audiodev/alsa_dev.c +++ b/pjmedia/src/pjmedia-audiodev/alsa_dev.c @@ -232,7 +232,7 @@ static pj_status_t add_dev (struct alsa_factory *af, const char *dev_name) pj_bzero(adi, sizeof(*adi)); /* Set device name */ - strcpy(adi->name, dev_name); + strncpy(adi->name, dev_name, sizeof(adi->name)); /* Check the number of playback channels */ adi->output_count = (pb_result>=0) ? 1 : 0; diff --git a/pjmedia/src/pjmedia/g711.c b/pjmedia/src/pjmedia/g711.c index 33f6eac6..c7bd26bc 100644 --- a/pjmedia/src/pjmedia/g711.c +++ b/pjmedia/src/pjmedia/g711.c @@ -330,7 +330,8 @@ static pj_status_t g711_alloc_codec( pjmedia_codec_factory *factory, #if !PLC_DISABLED /* Create PLC, always with 10ms ptime */ - status = pjmedia_plc_create(g711_factory.pool, 8000, 80, + status = pjmedia_plc_create(g711_factory.pool, 8000, + SAMPLES_PER_FRAME, 0, &codec_priv->plc); if (status != PJ_SUCCESS) { pj_mutex_unlock(g711_factory.mutex); @@ -340,7 +341,7 @@ static pj_status_t g711_alloc_codec( pjmedia_codec_factory *factory, /* Create VAD */ status = pjmedia_silence_det_create(g711_factory.pool, - 8000, 80, + 8000, SAMPLES_PER_FRAME, &codec_priv->vad); if (status != PJ_SUCCESS) { pj_mutex_unlock(g711_factory.mutex); diff --git a/pjmedia/src/pjmedia/rtcp.c b/pjmedia/src/pjmedia/rtcp.c index 52274155..f45b8a60 100644 --- a/pjmedia/src/pjmedia/rtcp.c +++ b/pjmedia/src/pjmedia/rtcp.c @@ -752,7 +752,8 @@ static void parse_rtcp_bye(pjmedia_rtcp_session *sess, /* Check and get BYE reason */ if (size > 8) { - reason.slen = *((pj_uint8_t*)pkt+8); + reason.slen = PJ_MIN(sizeof(sess->stat.peer_sdes_buf_), + *((pj_uint8_t*)pkt+8)); pj_memcpy(sess->stat.peer_sdes_buf_, ((pj_uint8_t*)pkt+9), reason.slen); reason.ptr = sess->stat.peer_sdes_buf_; diff --git a/pjmedia/src/pjmedia/rtp.c b/pjmedia/src/pjmedia/rtp.c index 62c0d656..5a19c37e 100644 --- a/pjmedia/src/pjmedia/rtp.c +++ b/pjmedia/src/pjmedia/rtp.c @@ -118,8 +118,6 @@ PJ_DEF(pj_status_t) pjmedia_rtp_encode_rtp( pjmedia_rtp_session *ses, int payload_len, int ts_len, const void **rtphdr, int *hdrlen ) { - PJ_UNUSED_ARG(payload_len); - /* Update timestamp */ ses->out_hdr.ts = pj_htonl(pj_ntohl(ses->out_hdr.ts)+ts_len); diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c index 76bd1518..1a5df765 100644 --- a/pjmedia/src/pjmedia/transport_srtp.c +++ b/pjmedia/src/pjmedia/transport_srtp.c @@ -37,7 +37,7 @@ /* Maximum size of packet */ #define MAX_RTP_BUFFER_LEN 1500 #define MAX_RTCP_BUFFER_LEN 1500 -#define MAX_KEY_LEN 32 +#define MAX_KEY_LEN 128 /* Initial value of probation counter. When probation counter > 0, * it means SRTP is in probation state, and it may restart when @@ -611,19 +611,47 @@ PJ_DEF(pj_status_t) pjmedia_transport_srtp_start( /* Declare SRTP session initialized */ srtp->session_inited = PJ_TRUE; - PJ_LOG(5, (srtp->pool->obj_name, "TX: %s key=%s", srtp->tx_policy.name.ptr, - octet_string_hex_string(tx->key.ptr, tx->key.slen))); - if (srtp->tx_policy.flags) { - PJ_LOG(5,(srtp->pool->obj_name,"TX: disable%s%s", (cr_tx_idx?"":" enc"), - (au_tx_idx?"":" auth"))); - } + /* Logging stuffs */ +#if PJ_LOG_MAX_LEVEL >= 5 + { + char b64[PJ_BASE256_TO_BASE64_LEN(MAX_KEY_LEN)]; + int b64_len; - PJ_LOG(5, (srtp->pool->obj_name, "RX: %s key=%s", srtp->rx_policy.name.ptr, - octet_string_hex_string(rx->key.ptr, rx->key.slen))); - if (srtp->rx_policy.flags) { - PJ_LOG(5,(srtp->pool->obj_name,"RX: disable%s%s", (cr_rx_idx?"":" enc"), - (au_rx_idx?"":" auth"))); + /* TX crypto and key */ + b64_len = sizeof(b64); + status = pj_base64_encode((pj_uint8_t*)tx->key.ptr, tx->key.slen, + b64, &b64_len); + if (status != PJ_SUCCESS) + b64_len = pj_ansi_sprintf(b64, "--key too long--"); + else + b64[b64_len] = '\0'; + + PJ_LOG(5, (srtp->pool->obj_name, "TX: %s key=%s", + srtp->tx_policy.name.ptr, b64)); + if (srtp->tx_policy.flags) { + PJ_LOG(5,(srtp->pool->obj_name, "TX: disable%s%s", + (cr_tx_idx?"":" enc"), + (au_tx_idx?"":" auth"))); + } + + /* RX crypto and key */ + b64_len = sizeof(b64); + status = pj_base64_encode((pj_uint8_t*)rx->key.ptr, rx->key.slen, + b64, &b64_len); + if (status != PJ_SUCCESS) + b64_len = pj_ansi_sprintf(b64, "--key too long--"); + else + b64[b64_len] = '\0'; + + PJ_LOG(5, (srtp->pool->obj_name, "RX: %s key=%s", + srtp->rx_policy.name.ptr, b64)); + if (srtp->rx_policy.flags) { + PJ_LOG(5,(srtp->pool->obj_name,"RX: disable%s%s", + (cr_rx_idx?"":" enc"), + (au_rx_idx?"":" auth"))); + } } +#endif on_return: pj_lock_release(srtp->mutex); |