瀏覽代碼

- changed the meaning of rpc_scan* functions, they return the number of
parameters found, in case of an error they return the number of parameters
successfuly converted as negative number

Jan Janak 20 年之前
父節點
當前提交
e46483c885
共有 1 個文件被更改,包括 21 次插入14 次删除
  1. 21 14
      core_cmd.c

+ 21 - 14
core_cmd.c

@@ -88,7 +88,10 @@ static void system_methodHelp(rpc_t* rpc, void* c)
 	rpc_export_t* ptr;
 	char* name;
 
-	if (rpc->scan(c, "s", &name) < 0) return;
+	if (rpc->scan(c, "s", &name) < 0) {
+		rpc->fault(c, 400, "Method Name Expected");
+		return;
+	}
 
 	for(t = modules; t; t = t->next) {
 		for(ptr = t->exports->rpc_methods; ptr && ptr->name; ptr++) {
@@ -102,7 +105,6 @@ static void system_methodHelp(rpc_t* rpc, void* c)
 			}
 		}
 	}
-	rpc->fault(c, 500, "Method Not Implemented");
 }
 
 
@@ -111,11 +113,11 @@ static const char* core_prints_doc[] = {
 	0                                           /* Method signature(s) */
 };
 
+
 static void core_prints(rpc_t* rpc, void* c)
 {
-	char* string;
-
-	if (rpc->scan(c, "s", &string) < 0) return;
+	char* string = 0;
+	rpc->scan(c, "s", &string);
 	rpc->add(c, "s", string);
 }
 
@@ -221,27 +223,32 @@ static const char* core_kill_doc[] = {
 
 static void core_kill(rpc_t* rpc, void* c)
 {
-	int sig_no;
-	if (rpc->scan(c, "d", &sig_no) < 0) return;
+	int sig_no = 15;
+	rpc->scan(c, "d", &sig_no);
 	rpc->send(c);
 	kill(0, sig_no);
 }
 
+static const char* core_test_doc[] = {
+	"Sends the given signal to SER.",  /* Documentation string */
+	0                                  /* Method signature(s) */
+};
+
 
 /* 
  * RPC Methods exported by this module 
  */
 rpc_export_t core_rpc_methods[] = {
 	{"system.listMethods",     system_listMethods,     system_listMethods_doc,     RET_ARRAY},
-	{"system.methodSignature", system_methodSignature, system_methodSignature_doc, RET_VALUE},
-	{"system.methodHelp",      system_methodHelp,      system_methodHelp_doc,      RET_VALUE},
-	{"core.prints",            core_prints,            core_prints_doc,            RET_VALUE},
-	{"core.version",           core_version,           core_version_doc,           RET_VALUE},
-	{"core.uptime",            core_uptime,            core_uptime_doc,            RET_VALUE},
+	{"system.methodSignature", system_methodSignature, system_methodSignature_doc, 0        },
+	{"system.methodHelp",      system_methodHelp,      system_methodHelp_doc,      0        },
+	{"core.prints",            core_prints,            core_prints_doc,            0        },
+	{"core.version",           core_version,           core_version_doc,           0        },
+	{"core.uptime",            core_uptime,            core_uptime_doc,            0        },
 	{"core.ps",                core_ps,                core_ps_doc,                RET_ARRAY},
-	{"core.pwd",               core_pwd,               core_pwd_doc,               RET_VALUE},
+	{"core.pwd",               core_pwd,               core_pwd_doc,               RET_ARRAY},
 	{"core.arg",               core_arg,               core_arg_doc,               RET_ARRAY},
-	{"core.kill",              core_kill,              core_kill_doc,              RET_VALUE},
+	{"core.kill",              core_kill,              core_kill_doc,              0        },
 	{0, 0, 0, 0}
 };