소스 검색

mtree: rpc reload without table name reloads all tables

- lost feature in rpc which was available in mi command
Daniel-Constantin Mierla 7 년 전
부모
커밋
c216abc532
1개의 변경된 파일13개의 추가작업 그리고 3개의 파일을 삭제
  1. 13 3
      src/modules/mtree/mtree_mod.c

+ 13 - 3
src/modules/mtree/mtree_mod.c

@@ -930,7 +930,8 @@ static const char* rpc_mtree_summary_doc[2] = {
 void rpc_mtree_reload(rpc_t* rpc, void* c)
 {
 	str tname = {0, 0};
-	m_tree_t *pt;
+	m_tree_t *pt = NULL;
+	int treloaded = 0;
 
 	if(db_table.len>0)
 	{
@@ -949,8 +950,13 @@ void rpc_mtree_reload(rpc_t* rpc, void* c)
 
 		/* read tree name */
 		if (rpc->scan(c, "S", &tname) != 1) {
-			rpc->fault(c, 500, "Failed to get table name parameter");
-			return;
+			tname.s = 0;
+			tname.len = 0;
+		} else {
+			if(*tname.s=='.') {
+				tname.s = 0;
+				tname.len = 0;
+			}
 		}
 
 		pt = mt_get_first_tree();
@@ -967,9 +973,13 @@ void rpc_mtree_reload(rpc_t* rpc, void* c)
 					LM_ERR("cannot re-load mtree from database\n");
 					goto error;
 				}
+				treloaded = 1;
 			}
 			pt = pt->next;
 		}
+		if(treloaded == 0) {
+			rpc->fault(c, 500, "No Mtree Name Matching");
+		}
 	}
 
 	return;