本文整理汇总了C++中pj_strcmp2函数的典型用法代码示例。如果您正苦于以下问题:C++ pj_strcmp2函数的具体用法?C++ pj_strcmp2怎么用?C++ pj_strcmp2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pj_strcmp2函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: pjmedia_sdp_session_clone
static pjmedia_sdp_session *create_answer(int call_num, pj_pool_t *pool,
const pjmedia_sdp_session *offer)
{
const char* dir_attrs[] = { "sendrecv", "sendonly", "recvonly", "inactive" };
const char *ice_attrs[] = {"ice-pwd", "ice-ufrag", "candidate"};
pjmedia_sdp_session *answer = pjmedia_sdp_session_clone(pool, offer);
pjmedia_sdp_attr *sess_dir_attr = NULL;
unsigned mi;
PJ_LOG(3,(THIS_FILE, "Call %d: creating answer:", call_num));
answer->name = pj_str("sipecho");
sess_dir_attr = find_remove_sdp_attrs(&answer->attr_count, answer->attr,
PJ_ARRAY_SIZE(dir_attrs),
dir_attrs);
for (mi=0; mi<answer->media_count; ++mi) {
pjmedia_sdp_media *m = answer->media[mi];
pjmedia_sdp_attr *m_dir_attr;
pjmedia_sdp_attr *dir_attr;
const char *our_dir = NULL;
pjmedia_sdp_conn *c;
/* Match direction */
m_dir_attr = find_remove_sdp_attrs(&m->attr_count, m->attr,
PJ_ARRAY_SIZE(dir_attrs),
dir_attrs);
dir_attr = m_dir_attr ? m_dir_attr : sess_dir_attr;
if (dir_attr) {
if (pj_strcmp2(&dir_attr->name, "sendonly")==0)
our_dir = "recvonly";
else if (pj_strcmp2(&dir_attr->name, "inactive")==0)
our_dir = "inactive";
else if (pj_strcmp2(&dir_attr->name, "recvonly")==0)
our_dir = "inactive";
if (our_dir) {
dir_attr = PJ_POOL_ZALLOC_T(pool, pjmedia_sdp_attr);
dir_attr->name = pj_str((char*)our_dir);
m->attr[m->attr_count++] = dir_attr;
}
}
/* Remove ICE attributes */
find_remove_sdp_attrs(&m->attr_count, m->attr, PJ_ARRAY_SIZE(ice_attrs), ice_attrs);
/* Done */
c = m->conn ? m->conn : answer->conn;
PJ_LOG(3,(THIS_FILE, " Media %d, %.*s: %s <--> %.*s:%d",
mi, (int)m->desc.media.slen, m->desc.media.ptr,
(our_dir ? our_dir : "sendrecv"),
(int)c->addr.slen, c->addr.ptr, m->desc.port));
}
return answer;
}
开发者ID:xhook,项目名称:asterisk-v11,代码行数:57,代码来源:sipecho.c
示例2: parse_dtls_attrib
static int parse_dtls_attrib(struct ast_sip_session_media *session_media,
const struct pjmedia_sdp_media *stream)
{
int i;
struct ast_rtp_engine_dtls *dtls = ast_rtp_instance_get_dtls(session_media->rtp);
for (i = 0; i < stream->attr_count; i++) {
pjmedia_sdp_attr *attr = stream->attr[i];
pj_str_t *value;
if (!attr->value.ptr) {
continue;
}
value = pj_strtrim(&attr->value);
if (!pj_strcmp2(&attr->name, "setup")) {
if (!pj_stricmp2(value, "active")) {
dtls->set_setup(session_media->rtp, AST_RTP_DTLS_SETUP_ACTIVE);
} else if (!pj_stricmp2(value, "passive")) {
dtls->set_setup(session_media->rtp, AST_RTP_DTLS_SETUP_PASSIVE);
} else if (!pj_stricmp2(value, "actpass")) {
dtls->set_setup(session_media->rtp, AST_RTP_DTLS_SETUP_ACTPASS);
} else if (!pj_stricmp2(value, "holdconn")) {
dtls->set_setup(session_media->rtp, AST_RTP_DTLS_SETUP_HOLDCONN);
} else {
ast_log(LOG_WARNING, "Unsupported setup attribute value '%*s'\n", (int)value->slen, value->ptr);
}
} else if (!pj_strcmp2(&attr->name, "connection")) {
if (!pj_stricmp2(value, "new")) {
dtls->reset(session_media->rtp);
} else if (!pj_stricmp2(value, "existing")) {
/* Do nothing */
} else {
ast_log(LOG_WARNING, "Unsupported connection attribute value '%*s'\n", (int)value->slen, value->ptr);
}
} else if (!pj_strcmp2(&attr->name, "fingerprint")) {
char hash_value[256], hash[32];
char fingerprint_text[value->slen + 1];
ast_copy_pj_str(fingerprint_text, value, sizeof(fingerprint_text));
if (sscanf(fingerprint_text, "%31s %255s", hash, hash_value) == 2) {
if (!strcasecmp(hash, "sha-1")) {
dtls->set_fingerprint(session_media->rtp, AST_RTP_DTLS_HASH_SHA1, hash_value);
} else if (!strcasecmp(hash, "sha-256")) {
dtls->set_fingerprint(session_media->rtp, AST_RTP_DTLS_HASH_SHA256, hash_value);
} else {
ast_log(LOG_WARNING, "Unsupported fingerprint hash type '%s'\n",
hash);
}
}
}
}
ast_set_flag(session_media->srtp, AST_SRTP_CRYPTO_OFFER_OK);
return 0;
}
开发者ID:huangjingpei,项目名称:asterisk,代码行数:57,代码来源:res_pjsip_sdp_rtp.c
示例3: validate_sdp_conn
/* Validate SDP connetion info. */
static pj_status_t validate_sdp_conn(const pjmedia_sdp_conn *c)
{
CHECK( c, PJ_EINVAL);
CHECK( pj_strcmp2(&c->net_type, "IN")==0, PJMEDIA_SDP_EINCONN);
CHECK( pj_strcmp2(&c->addr_type, "IP4")==0 ||
pj_strcmp2(&c->addr_type, "IP6")==0,
PJMEDIA_SDP_EINCONN);
CHECK( c->addr.slen != 0, PJMEDIA_SDP_EINCONN);
return PJ_SUCCESS;
}
开发者ID:tibastral,项目名称:symphonie,代码行数:12,代码来源:sdp.c
示例4: check_content_type
/*!
* \internal
* \brief Checks to make sure the request has the correct content type.
*
* \details This module supports the following media types: "text/plain".
* Return unsupported otherwise.
*
* \param rdata The SIP request
*/
static enum pjsip_status_code check_content_type(const pjsip_rx_data *rdata)
{
int res;
if (rdata->msg_info.msg->body && rdata->msg_info.msg->body->len) {
res = ast_sip_is_content_type(
&rdata->msg_info.msg->body->content_type, "text", "plain");
} else {
res = rdata->msg_info.ctype &&
!pj_strcmp2(&rdata->msg_info.ctype->media.type, "text") &&
!pj_strcmp2(&rdata->msg_info.ctype->media.subtype, "plain");
}
return res ? PJSIP_SC_OK : PJSIP_SC_UNSUPPORTED_MEDIA_TYPE;
}
开发者ID:duguruiyuan,项目名称:asterisk,代码行数:23,代码来源:res_pjsip_messaging.c
示例5: multihomed_rewrite_sdp
/*! \brief Helper function which determines if the address within SDP should be rewritten */
static int multihomed_rewrite_sdp(struct pjmedia_sdp_session *sdp)
{
if (!sdp->conn) {
return 0;
}
/* If the host address is used in the SDP replace it with the address of what this is going out on */
if ((!pj_strcmp2(&sdp->conn->addr_type, "IP4") && !pj_strcmp2(&sdp->conn->addr, host_ipv4)) ||
(!pj_strcmp2(&sdp->conn->addr_type, "IP6") && !pj_strcmp2(&sdp->conn->addr, host_ipv6))) {
return 1;
}
return 0;
}
开发者ID:TheSeanBrady,项目名称:crtc.bcs.versa,代码行数:15,代码来源:res_pjsip_multihomed.c
示例6: add_arg_node
/**
* This method is to parse and add the argument attribute to command structure.
**/
static pj_status_t add_arg_node(pj_cli_t *cli,
pj_xml_node *xml_node,
pj_cli_cmd_spec *cmd,
pj_cli_arg_spec *arg,
pj_cli_get_dyn_choice get_choice)
{
pj_xml_attr *attr;
pj_status_t status = PJ_SUCCESS;
pj_xml_node *sub_node = xml_node;
if (cmd->arg_cnt >= PJ_CLI_MAX_ARGS)
return PJ_CLI_ETOOMANYARGS;
pj_bzero(arg, sizeof(*arg));
attr = sub_node->attr_head.next;
arg->optional = PJ_FALSE;
arg->validate = PJ_TRUE;
while (attr != &sub_node->attr_head) {
if (!pj_stricmp2(&attr->name, "name")) {
pj_strassign(&arg->name, &attr->value);
} else if (!pj_stricmp2(&attr->name, "id")) {
arg->id = pj_strtol(&attr->value);
} else if (!pj_stricmp2(&attr->name, "type")) {
if (!pj_stricmp2(&attr->value, "text")) {
arg->type = PJ_CLI_ARG_TEXT;
} else if (!pj_stricmp2(&attr->value, "int")) {
arg->type = PJ_CLI_ARG_INT;
} else if (!pj_stricmp2(&attr->value, "choice")) {
/* Get choice value */
add_choice_node(cli, xml_node, arg, get_choice);
}
} else if (!pj_stricmp2(&attr->name, "desc")) {
pj_strassign(&arg->desc, &attr->value);
} else if (!pj_stricmp2(&attr->name, "optional")) {
if (!pj_strcmp2(&attr->value, "1")) {
arg->optional = PJ_TRUE;
}
} else if (!pj_stricmp2(&attr->name, "validate")) {
if (!pj_strcmp2(&attr->value, "1")) {
arg->validate = PJ_TRUE;
} else {
arg->validate = PJ_FALSE;
}
}
attr = attr->next;
}
cmd->arg_cnt++;
return status;
}
开发者ID:ClearwaterCore,项目名称:pjsip-upstream,代码行数:52,代码来源:cli.c
示例7: PJ_DEF
PJ_DEF(pj_status_t) pjmedia_sdp_attr_get_fmtp( const pjmedia_sdp_attr *attr,
pjmedia_sdp_fmtp *fmtp)
{
const char *p = attr->value.ptr;
const char *end = attr->value.ptr + attr->value.slen;
pj_str_t token;
PJ_ASSERT_RETURN(pj_strcmp2(&attr->name, "fmtp")==0, PJ_EINVALIDOP);
/* fmtp BNF:
* a=fmtp:<format> <format specific parameter>
*/
/* Get format. */
token.ptr = (char*)p;
while (pj_isdigit(*p) && p!=end)
++p;
token.slen = p - token.ptr;
if (token.slen == 0)
return PJMEDIA_SDP_EINFMTP;
fmtp->fmt = token;
/* Expecting space after format. */
if (*p != ' ') return PJMEDIA_SDP_EINFMTP;
/* Get space. */
++p;
/* Set the remaining string as fmtp format parameter. */
fmtp->fmt_param.ptr = (char*)p;
fmtp->fmt_param.slen = end - p;
return PJ_SUCCESS;
}
开发者ID:tibastral,项目名称:symphonie,代码行数:35,代码来源:sdp.c
示例8: setup_sdes_srtp
static int setup_sdes_srtp(struct ast_sip_session_media *session_media,
const struct pjmedia_sdp_media *stream)
{
int i;
for (i = 0; i < stream->attr_count; i++) {
pjmedia_sdp_attr *attr;
RAII_VAR(char *, crypto_str, NULL, ast_free);
/* check the stream for the required crypto attribute */
attr = stream->attr[i];
if (pj_strcmp2(&attr->name, "crypto")) {
continue;
}
crypto_str = ast_strndup(attr->value.ptr, attr->value.slen);
if (!crypto_str) {
return -1;
}
if (setup_srtp(session_media)) {
return -1;
}
if (!ast_sdp_crypto_process(session_media->rtp, session_media->srtp, crypto_str)) {
/* found a valid crypto attribute */
return 0;
}
ast_debug(1, "Ignoring crypto offer with unsupported parameters: %s\n", crypto_str);
}
/* no usable crypto attributes found */
return -1;
}
开发者ID:popsodav,项目名称:asterisk,代码行数:35,代码来源:res_pjsip_sdp_rtp.c
示例9: server_get_password
static pj_status_t server_get_password( const pj_stun_msg *msg,
void *user_data,
const pj_str_t *realm,
const pj_str_t *username,
pj_pool_t *pool,
pj_stun_passwd_type *data_type,
pj_str_t *data)
{
PJ_UNUSED_ARG(msg);
PJ_UNUSED_ARG(user_data);
PJ_UNUSED_ARG(pool);
if (server->auth_type == PJ_STUN_AUTH_SHORT_TERM) {
if (realm && realm->slen) {
PJ_LOG(4,(THIS_FILE, " server expecting short term"));
return -1;
}
} else {
if (realm==NULL || realm->slen==0) {
PJ_LOG(4,(THIS_FILE, " realm not present"));
return -1;
}
}
if (pj_strcmp2(username, USERNAME) != 0) {
PJ_LOG(4,(THIS_FILE, " wrong username"));
return -1;
}
*data_type = PJ_STUN_PASSWD_PLAIN;
*data = pj_str(PASSWORD);
return PJ_SUCCESS;
}
开发者ID:Antares84,项目名称:asuswrt-merlin,代码行数:34,代码来源:sess_auth.c
示例10: my_on_rx_request
static pj_bool_t my_on_rx_request(pjsip_rx_data *rdata)
{
/* Check that this is our request. */
if (pj_strcmp2(&rdata->msg_info.cid->id, CALL_ID_HDR) == 0) {
/* It is! */
/* Send response. */
pjsip_tx_data *tdata;
pjsip_response_addr res_addr;
pj_status_t status;
status = pjsip_endpt_create_response( endpt, rdata, 200, NULL, &tdata);
if (status != PJ_SUCCESS) {
recv_status = status;
return PJ_TRUE;
}
status = pjsip_get_response_addr( tdata->pool, rdata, &res_addr);
if (status != PJ_SUCCESS) {
recv_status = status;
pjsip_tx_data_dec_ref(tdata);
return PJ_TRUE;
}
status = pjsip_endpt_send_response( endpt, &res_addr, tdata, NULL, NULL);
if (status != PJ_SUCCESS) {
recv_status = status;
pjsip_tx_data_dec_ref(tdata);
return PJ_TRUE;
}
return PJ_TRUE;
}
/* Not ours. */
return PJ_FALSE;
}
开发者ID:Jopie64,项目名称:pjsip,代码行数:33,代码来源:transport_test.c
示例11: my_on_rx_response
static pj_bool_t my_on_rx_response(pjsip_rx_data *rdata)
{
if (pj_strcmp2(&rdata->msg_info.cid->id, CALL_ID_HDR) == 0) {
pj_get_timestamp(&my_recv_time);
recv_status = PJ_SUCCESS;
return PJ_TRUE;
}
return PJ_FALSE;
}
开发者ID:Jopie64,项目名称:pjsip,代码行数:9,代码来源:transport_test.c
示例12: verify_part
static int verify_part(pjsip_multipart_part *part,
char *h_content_type,
char *h_content_subtype,
char *boundary,
int h_content_length,
const char *body)
{
pjsip_ctype_hdr *ctype_hdr = NULL;
pjsip_clen_hdr *clen_hdr = NULL;
pjsip_hdr *hdr;
pj_str_t the_body;
hdr = part->hdr.next;
while (hdr != &part->hdr) {
if (hdr->type == PJSIP_H_CONTENT_TYPE)
ctype_hdr = (pjsip_ctype_hdr*)hdr;
else if (hdr->type == PJSIP_H_CONTENT_LENGTH)
clen_hdr = (pjsip_clen_hdr*)hdr;
hdr = hdr->next;
}
if (h_content_type) {
pjsip_media_type mt;
if (ctype_hdr == NULL)
return -10;
init_media_type(&mt, h_content_type, h_content_subtype, boundary);
if (pjsip_media_type_cmp(&ctype_hdr->media, &mt, 2) != 0)
return -20;
} else {
if (ctype_hdr)
return -30;
}
if (h_content_length >= 0) {
if (clen_hdr == NULL)
return -50;
if (clen_hdr->len != h_content_length)
return -60;
} else {
if (clen_hdr)
return -70;
}
the_body.ptr = (char*)part->body->data;
the_body.slen = part->body->len;
if (pj_strcmp2(&the_body, body) != 0)
return -90;
return 0;
}
开发者ID:carlosdelfino,项目名称:WorkshopTelefoniaAutomacao,代码行数:55,代码来源:multipart_test.c
示例13: PJ_DEF
PJ_DEF(pj_status_t) pjmedia_sdp_attr_get_rtcp(const pjmedia_sdp_attr *attr,
pjmedia_sdp_rtcp_attr *rtcp)
{
pj_scanner scanner;
pj_str_t token;
pj_status_t status = -1;
PJ_USE_EXCEPTION;
PJ_ASSERT_RETURN(pj_strcmp2(&attr->name, "rtcp")==0, PJ_EINVALIDOP);
init_sdp_parser();
/* fmtp BNF:
* a=rtcp:<port> [nettype addrtype address]
*/
pj_scan_init(&scanner, (char*)attr->value.ptr, attr->value.slen,
PJ_SCAN_AUTOSKIP_WS, &on_scanner_error);
/* Init */
rtcp->net_type.slen = rtcp->addr_type.slen = rtcp->addr.slen = 0;
/* Parse */
PJ_TRY {
/* Get the port */
pj_scan_get(&scanner, &cs_token, &token);
rtcp->port = pj_strtoul(&token);
/* Have address? */
if (!pj_scan_is_eof(&scanner)) {
/* Get network type */
pj_scan_get(&scanner, &cs_token, &rtcp->net_type);
/* Get address type */
pj_scan_get(&scanner, &cs_token, &rtcp->addr_type);
/* Get the address */
pj_scan_get(&scanner, &cs_token, &rtcp->addr);
}
status = PJ_SUCCESS;
}
PJ_CATCH_ANY {
status = PJMEDIA_SDP_EINRTCP;
}
PJ_END;
pj_scan_fini(&scanner);
return status;
}
开发者ID:AGProjects,项目名称:python-sipsimple,代码行数:54,代码来源:sdp.c
示例14: format_test
static int format_test(void)
{
pj_str_t s = pj_str(ADDRESS);
unsigned char *p;
pj_in_addr addr;
char zero[64];
pj_sockaddr_in addr2;
const pj_str_t *hostname;
PJ_LOG(3,("test", "...format_test()"));
/* pj_inet_aton() */
if (pj_inet_aton(&s, &addr) != 1)
return -10;
/* Check the result. */
p = (unsigned char*)&addr;
if (p[0]!=A0 || p[1]!=A1 || p[2]!=A2 || p[3]!=A3) {
PJ_LOG(3,("test", " error: mismatched address. p0=%d, p1=%d, "
"p2=%d, p3=%d", p[0] & 0xFF, p[1] & 0xFF,
p[2] & 0xFF, p[3] & 0xFF));
return -15;
}
/* pj_inet_ntoa() */
p = (unsigned char*) pj_inet_ntoa(addr);
if (!p)
return -20;
if (pj_strcmp2(&s, (char*)p) != 0)
return -30;
/* Test that pj_sockaddr_in_init() initialize the whole structure,
* including sin_zero.
*/
pj_sockaddr_in_init(&addr2, 0, 1000);
pj_bzero(zero, sizeof(zero));
if (pj_memcmp(addr2.sin_zero, zero, sizeof(addr2.sin_zero)) != 0)
return -35;
/* pj_gethostname() */
hostname = pj_gethostname();
if (!hostname || !hostname->ptr || !hostname->slen)
return -40;
PJ_LOG(3,("test", "....hostname is %.*s",
(int)hostname->slen, hostname->ptr));
/* pj_gethostaddr() */
return 0;
}
开发者ID:tibastral,项目名称:symphonie,代码行数:53,代码来源:sock.c
示例15: RAII_VAR
static struct ast_sip_aor *find_aor(struct ast_sip_endpoint *endpoint, pjsip_uri *uri)
{
char *configured_aors, *aor_name;
pjsip_sip_uri *sip_uri;
char *domain_name;
RAII_VAR(struct ast_str *, id, NULL, ast_free);
if (ast_strlen_zero(endpoint->aors)) {
return NULL;
}
sip_uri = pjsip_uri_get_uri(uri);
domain_name = ast_alloca(sip_uri->host.slen + 1);
ast_copy_pj_str(domain_name, &sip_uri->host, sip_uri->host.slen + 1);
configured_aors = ast_strdupa(endpoint->aors);
/* Iterate the configured AORs to see if the user or the user+domain match */
while ((aor_name = strsep(&configured_aors, ","))) {
struct ast_sip_domain_alias *alias = NULL;
if (!pj_strcmp2(&sip_uri->user, aor_name)) {
break;
}
if (!id && !(id = ast_str_create(sip_uri->user.slen + sip_uri->host.slen + 2))) {
return NULL;
}
ast_str_set(&id, 0, "%.*[email protected]", (int)sip_uri->user.slen, sip_uri->user.ptr);
if ((alias = ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "domain_alias", domain_name))) {
ast_str_append(&id, 0, "%s", alias->domain);
ao2_cleanup(alias);
} else {
ast_str_append(&id, 0, "%s", domain_name);
}
if (!strcmp(aor_name, ast_str_buffer(id))) {
ast_free(id);
break;
}
}
if (ast_strlen_zero(aor_name)) {
return NULL;
}
return ast_sip_location_retrieve_aor(aor_name);
}
开发者ID:auntieNeo,项目名称:asterisk,代码行数:49,代码来源:res_pjsip_path.c
示例16: digest_lookup
/*!
* \brief Lookup callback for authentication verification
*
* This function is called when we call pjsip_auth_srv_verify(). It
* expects us to verify that the realm and account name from the
* Authorization header is correct. We are then supposed to supply
* a password or MD5 sum of credentials.
*
* \param pool A memory pool we can use for allocations
* \param realm The realm from the Authorization header
* \param acc_name the user from the Authorization header
* \param[out] info The credentials we need to fill in
* \retval PJ_SUCCESS Successful authentication
* \retval other Unsuccessful
*/
static pj_status_t digest_lookup(pj_pool_t *pool, const pj_str_t *realm,
const pj_str_t *acc_name, pjsip_cred_info *info)
{
RAII_VAR(struct ast_sip_auth *, auth, get_auth(), ao2_cleanup);
if (!auth) {
return PJSIP_SC_FORBIDDEN;
}
if (auth->type == AST_SIP_AUTH_TYPE_ARTIFICIAL) {
return PJSIP_SC_FORBIDDEN;
}
if (pj_strcmp2(realm, auth->realm)) {
return PJSIP_SC_FORBIDDEN;
}
if (pj_strcmp2(acc_name, auth->auth_user)) {
return PJSIP_SC_FORBIDDEN;
}
pj_strdup2(pool, &info->realm, auth->realm);
pj_strdup2(pool, &info->username, auth->auth_user);
switch (auth->type) {
case AST_SIP_AUTH_TYPE_USER_PASS:
pj_strdup2(pool, &info->data, auth->auth_pass);
info->data_type = PJSIP_CRED_DATA_PLAIN_PASSWD;
break;
case AST_SIP_AUTH_TYPE_MD5:
pj_strdup2(pool, &info->data, auth->md5_creds);
info->data_type = PJSIP_CRED_DATA_DIGEST;
break;
default:
return PJSIP_SC_FORBIDDEN;
}
return PJ_SUCCESS;
}
开发者ID:aderbas,项目名称:asterisk,代码行数:51,代码来源:res_pjsip_authenticator_digest.c
示例17: find_challenge
static int find_challenge(const pjsip_rx_data *rdata, const struct ast_sip_auth *auth)
{
struct pjsip_authorization_hdr *auth_hdr = (pjsip_authorization_hdr *) &rdata->msg_info.msg->hdr;
int challenge_found = 0;
char nonce[64];
while ((auth_hdr = (pjsip_authorization_hdr *) pjsip_msg_find_hdr(rdata->msg_info.msg, PJSIP_H_AUTHORIZATION, auth_hdr->next))) {
ast_copy_pj_str(nonce, &auth_hdr->credential.digest.nonce, sizeof(nonce));
if (check_nonce(nonce, rdata, auth) && !pj_strcmp2(&auth_hdr->credential.digest.realm, auth->realm)) {
challenge_found = 1;
break;
}
}
return challenge_found;
}
开发者ID:aderbas,项目名称:asterisk,代码行数:16,代码来源:res_pjsip_authenticator_digest.c
示例18: server_verify_nonce
static pj_bool_t server_verify_nonce(const pj_stun_msg *msg,
void *user_data,
const pj_str_t *realm,
const pj_str_t *username,
const pj_str_t *nonce)
{
PJ_UNUSED_ARG(msg);
PJ_UNUSED_ARG(user_data);
PJ_UNUSED_ARG(realm);
PJ_UNUSED_ARG(username);
if (pj_strcmp2(nonce, NONCE) != 0)
return PJ_FALSE;
return PJ_TRUE;
}
开发者ID:Antares84,项目名称:asuswrt-merlin,代码行数:16,代码来源:sess_auth.c
示例19: msg_supports_extension
/// Checks whether the supplied message contains the extension in the
/// Supported header.
pj_bool_t PJUtils::msg_supports_extension(pjsip_msg* msg, const char* extension)
{
pjsip_supported_hdr* supported_hdr = (pjsip_supported_hdr*)pjsip_msg_find_hdr(msg, PJSIP_H_SUPPORTED, NULL);
if (!supported_hdr)
{
return PJ_FALSE;
}
for (unsigned ii = 0; ii < supported_hdr->count; ++ii)
{
if (pj_strcmp2(&supported_hdr->values[ii], extension) == 0)
{
return PJ_TRUE;
}
}
return PJ_FALSE;
}
开发者ID:telecore-ivan,项目名称:sprout,代码行数:18,代码来源:pjutils.cpp
示例20: t38_reinvite_sdp_cb
/*! \brief Callback for when T.38 reinvite SDP is created */
static int t38_reinvite_sdp_cb(struct ast_sip_session *session, pjmedia_sdp_session *sdp)
{
int stream;
/* Move the image media stream to the front and have it as the only stream, pjmedia will fill in
* dummy streams for the rest
*/
for (stream = 0; stream < sdp->media_count++; ++stream) {
if (!pj_strcmp2(&sdp->media[stream]->desc.media, "image")) {
sdp->media[0] = sdp->media[stream];
sdp->media_count = 1;
break;
}
}
return 0;
}
开发者ID:cfhb,项目名称:vlink-cti,代码行数:18,代码来源:res_pjsip_t38.c
注:本文中的pj_strcmp2函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论