浏览代码

dmq: more efficient find_dmq_node_uri

No need to build a complete dmq_node, only host and port are needed.
Can be done on the stack.
Alex Hermann 11 年之前
父节点
当前提交
65c9174d4e
共有 1 个文件被更改,包括 7 次插入5 次删除
  1. 7 5
      modules/dmq/dmqnode.c

+ 7 - 5
modules/dmq/dmqnode.c

@@ -228,12 +228,14 @@ error:
  */
 dmq_node_t* find_dmq_node_uri(dmq_node_list_t* list, str* uri)
 {
-	dmq_node_t *ret, *find;
-	find =  build_dmq_node(uri, 0);
-	if(find==NULL)
+	dmq_node_t *ret, find;
+
+	memset(&find, 0, sizeof(find));
+	if(parse_uri(uri->s, uri->len, &find.uri) < 0) {
+		LM_ERR("error parsing uri\n");
 		return NULL;
-	ret = find_dmq_node(list, find);
-	destroy_dmq_node(find, 0);
+	}
+	ret = find_dmq_node(list, &find);
 	return ret;
 }