summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2010-12-01 08:53:52 +0000
committerNanang Izzuddin <nanang@teluu.com>2010-12-01 08:53:52 +0000
commitc269854b4f908fe8fb03590cb1dc217d4d518db4 (patch)
tree90c1bcd26cfd210e5237b998fe0067182a1ffff6
parenta8e98c468d836b37bd202d356626a22a0a8863ea (diff)
Misc (re #1151): fixed pjsua_acc_config_dup(), some fields, i.e: contact_params, contact_uri_params, and auth_pref, were not duplicated properly (thanks Roman Grachev for the report and the patch).
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3377 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjsip/include/pjsip/sip_auth.h12
-rw-r--r--pjsip/src/pjsip/sip_auth_client.c8
-rw-r--r--pjsip/src/pjsua-lib/pjsua_acc.c8
3 files changed, 27 insertions, 1 deletions
diff --git a/pjsip/include/pjsip/sip_auth.h b/pjsip/include/pjsip/sip_auth.h
index eb835d27..c24f6ff0 100644
--- a/pjsip/include/pjsip/sip_auth.h
+++ b/pjsip/include/pjsip/sip_auth.h
@@ -206,6 +206,18 @@ typedef struct pjsip_auth_clt_pref
/**
+ * Duplicate a client authentication preference setting.
+ *
+ * @param pool The memory pool.
+ * @param dst Destination client authentication preference.
+ * @param src Source client authentication preference.
+ */
+PJ_DECL(void) pjsip_auth_clt_pref_dup(pj_pool_t *pool,
+ pjsip_auth_clt_pref *dst,
+ const pjsip_auth_clt_pref *src);
+
+
+/**
* This structure describes client authentication sessions. It keeps
* all the information needed to authorize the client against all downstream
* servers.
diff --git a/pjsip/src/pjsip/sip_auth_client.c b/pjsip/src/pjsip/sip_auth_client.c
index df904e4f..546c5ab0 100644
--- a/pjsip/src/pjsip/sip_auth_client.c
+++ b/pjsip/src/pjsip/sip_auth_client.c
@@ -110,6 +110,14 @@ on_return:
return result;
}
+PJ_DEF(void) pjsip_auth_clt_pref_dup( pj_pool_t *pool,
+ pjsip_auth_clt_pref *dst,
+ const pjsip_auth_clt_pref *src)
+{
+ pj_memcpy(dst, src, sizeof(pjsip_auth_clt_pref));
+ pj_strdup_with_null(pool, &dst->algorithm, &src->algorithm);
+}
+
/* Transform digest to string.
* output must be at least PJSIP_MD5STRLEN+1 bytes.
diff --git a/pjsip/src/pjsua-lib/pjsua_acc.c b/pjsip/src/pjsua-lib/pjsua_acc.c
index 6ebd3bd9..1cf273f3 100644
--- a/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -86,8 +86,12 @@ PJ_DEF(void) pjsua_acc_config_dup( pj_pool_t *pool,
pj_strdup_with_null(pool, &dst->id, &src->id);
pj_strdup_with_null(pool, &dst->reg_uri, &src->reg_uri);
pj_strdup_with_null(pool, &dst->force_contact, &src->force_contact);
+ pj_strdup_with_null(pool, &dst->contact_params, &src->contact_params);
+ pj_strdup_with_null(pool, &dst->contact_uri_params,
+ &src->contact_uri_params);
pj_strdup_with_null(pool, &dst->pidf_tuple_id, &src->pidf_tuple_id);
- pj_strdup_with_null(pool, &dst->rfc5626_instance_id, &src->rfc5626_instance_id);
+ pj_strdup_with_null(pool, &dst->rfc5626_instance_id,
+ &src->rfc5626_instance_id);
pj_strdup_with_null(pool, &dst->rfc5626_reg_id, &src->rfc5626_reg_id);
dst->proxy_cnt = src->proxy_cnt;
@@ -112,6 +116,8 @@ PJ_DEF(void) pjsua_acc_config_dup( pj_pool_t *pool,
}
}
+ pjsip_auth_clt_pref_dup(pool, &dst->auth_pref, &src->auth_pref);
+
dst->ka_interval = src->ka_interval;
pj_strdup(pool, &dst->ka_data, &src->ka_data);
}