Skip to content

Commit c1eb792

Browse files
committed
Construct valid dialog-info XML
1 parent 33deded commit c1eb792

File tree

1 file changed

+25
-15
lines changed

1 file changed

+25
-15
lines changed

pjsip/src/pjsip-simple/dialog_info.c

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ static void xml_init_node(pj_pool_t *pool, pj_xml_node *node,
5050
{
5151
pj_list_init(&node->attr_head);
5252
pj_list_init(&node->node_head);
53-
node->name = *name;
53+
54+
if (name) node->name = *name;
55+
else node->name.ptr=NULL, node->name.slen=0;
56+
5457
if (value) pj_strdup(pool, &node->content, value);
5558
else node->content.ptr=NULL, node->content.slen=0;
5659
}
@@ -68,12 +71,12 @@ static pj_xml_attr* xml_create_attr(pj_pool_t *pool, pj_str_t *name,
6871
PJ_DEF(void) pjsip_dlg_info_remote_construct(pj_pool_t *pool,
6972
pjsip_dlg_info_remote *remote)
7073
{
71-
pj_xml_node *node;
74+
//pj_xml_node *node;
7275

7376
xml_init_node(pool, remote, &REMOTE, NULL);
74-
node = PJ_POOL_ALLOC_T(pool, pj_xml_node);
75-
xml_init_node(pool, node, NULL, NULL);
76-
pj_xml_add_node(remote, node);
77+
//node = PJ_POOL_ALLOC_T(pool, pj_xml_node);
78+
//xml_init_node(pool, node, NULL, NULL);
79+
//pj_xml_add_node(remote, node);
7780
}
7881

7982
PJ_DEF(const pj_str_t *)
@@ -176,12 +179,12 @@ pjsip_dlg_info_remote_set_target_uri(pj_pool_t *pool,
176179
PJ_DEF(void) pjsip_dlg_info_local_construct(pj_pool_t *pool,
177180
pjsip_dlg_info_local *local)
178181
{
179-
pj_xml_node *node;
182+
//pj_xml_node *node;
180183

181184
xml_init_node(pool, local, &LOCAL, NULL);
182-
node = PJ_POOL_ALLOC_T(pool, pj_xml_node);
183-
xml_init_node(pool, node, NULL, NULL);
184-
pj_xml_add_node(local, node);
185+
//node = PJ_POOL_ALLOC_T(pool, pj_xml_node);
186+
//xml_init_node(pool, node, &EMPTY_STRING, &EMPTY_STRING);
187+
//pj_xml_add_node(local, node);
185188
}
186189

187190
PJ_DEF(const pj_str_t *)
@@ -290,8 +293,12 @@ pjsip_dlg_info_dialog_construct(pj_pool_t *pool,
290293
pjsip_dlg_info_remote *remote;
291294

292295
xml_init_node(pool, dialog, &DIALOG, NULL);
293-
attr = xml_create_attr(pool, &ID, id);
294-
pj_xml_add_attr(dialog, attr);
296+
297+
if (id) {
298+
attr = xml_create_attr(pool, &ID, id);
299+
pj_xml_add_attr(dialog, attr);
300+
}
301+
295302
local = PJ_POOL_ALLOC_T(pool, pjsip_dlg_info_local);
296303
pjsip_dlg_info_local_construct(pool, local);
297304
pj_xml_add_node(dialog, local);
@@ -521,15 +528,18 @@ pjsip_dlg_info_dialog_info_construct(pj_pool_t *pool,
521528
attr = xml_create_attr(pool, &VERSION, version);
522529
pj_xml_add_attr(dialog_info, attr);
523530

524-
attr = xml_create_attr(pool, &STATE, state);
525-
pj_xml_add_attr(dialog_info, attr);
526-
527531
attr = xml_create_attr(pool, &ENTITY, entity);
528532
pj_xml_add_attr(dialog_info, attr);
529533

530534
dialog = PJ_POOL_ALLOC_T(pool, pjsip_dlg_info_dialog);
531-
pjsip_dlg_info_local_construct(pool, dialog);
535+
pjsip_dlg_info_dialog_construct(pool, dialog, NULL);
532536
pj_xml_add_node(dialog_info, dialog);
537+
538+
pj_xml_node* node;
539+
node = PJ_POOL_ALLOC_T(pool, pj_xml_node);
540+
xml_init_node(pool, node, &STATE, state);
541+
pj_xml_add_node(dialog, node);
542+
533543
}
534544

535545
PJ_DEF(const pj_str_t *)

0 commit comments

Comments
 (0)