From 04c0615aba26bb815ab326c70c0ac9e58a0283d3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 17 Jun 2016 04:51:35 -0300 Subject: [PATCH] test --- iguana/iguana_rpc.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/iguana/iguana_rpc.c b/iguana/iguana_rpc.c index 5c52a5647..1e2fb5124 100755 --- a/iguana/iguana_rpc.c +++ b/iguana/iguana_rpc.c @@ -820,9 +820,9 @@ cJSON *SuperNET_urlconv(char *value,int32_t bufsize,char *urlstr) char *SuperNET_rpcparse(struct supernet_info *myinfo,char *retbuf,int32_t bufsize,int32_t *jsonflagp,int32_t *postflagp,char *urlstr,char *remoteaddr,char *filetype,uint16_t port) { - cJSON *tokens,*argjson,*json = 0; long filesize; + cJSON *tokens,*argjson,*origargjson,*json = 0; long filesize; char symbol[16],buf[4096],urlmethod[16],*data,url[1024],*retstr,*filestr,*token = 0; int32_t i,j,n,num=0; - printf("rpcparse.(%s)\n",urlstr); + //printf("rpcparse.(%s)\n",urlstr); for (i=0; i 1 ) jaddstr(argjson,"method",jstri(tokens,1)); - printf("urlstr.(%s)\n",urlstr+n); + //printf("urlstr.(%s)\n",urlstr+n); if ( (json= SuperNET_urlconv(retbuf,bufsize,urlstr+n)) != 0 ) { jadd(json,"tokens",tokens); @@ -1007,14 +1007,17 @@ char *SuperNET_rpcparse(struct supernet_info *myinfo,char *retbuf,int32_t bufsiz } } printf("after urlconv.(%s) argjson.(%s)\n",jprint(json,0),jprint(argjson,0)); + origargjson = argjson; + if ( is_cJSON_Array(argjson) != 0 && cJSON_GetArraySize(argjson) == 0 ) + argjson = jitem(argjson,0); if ( jstr(argjson,"method") == 0 ) { - free_json(argjson); + free_json(origargjson); return(0); } retstr = SuperNET_JSON(myinfo,argjson,remoteaddr,port); printf("(%s) {%s} -> (%s) postflag.%d (%s)\n",urlstr,jprint(argjson,0),cJSON_Print(json),*postflagp,retstr); - free_json(argjson); + free_json(origargjson); return(retstr); } *jsonflagp = 1;