#include "../../../../common/rpc/rpc.h" #include "../include/parsefile.h" #include "../include/configm.h" #include "../../../netlink_uapi/libnetlinku.h" #include "../include/jumppage.h" #include #include "../../../../../Common/s2j/s2j.h" #include "../../../../../Common/commuapinl.h" /*全局变量,存放用户跳转的页面 */ char *jumpurl = NULL; /*系统管理模块将数据内容(URL地址)发送给web server */ /*input格式:"{\"type\":0,\"url\":\"http://www.baidu.com\"}"*/ ret_code jumppage_config_proc(uint source, uint config_type, pointer input, int input_len, pointer output, int *output_len) { ret_code ret = RET_OK; cJSON *cjson, *url, *res; char * ret_char = NULL; char * jump_url; /*JSON字符串到JSON格式 */ cjson = cJSON_Parse(input); if(!cjson) { ret = RET_INPUTERR; ASSERT_RET(ret); return ret; } /*获取键值内容 */ url= cJSON_GetObjectItem(cjson , "url"); if(!url) { ret = RET_INPUTERR; ASSERT_RET(ret); cJSON_Delete(cjson); return ret; } rpc_log_info("jumppage configure: url %s\n", url->valuestring); char i = url->valuestring; jump_url = &i; cJSON_Delete(cjson); /*将配置信息发送到web server 发送结果int表示,0表示发送成功,-1表示发送失败*/ int r; /*创建json对象 */ res = cJSON_CreateObject(); if(!res) { ret = RET_ERR; ASSERT_RET(ret); return ret; } cJSON_AddNumberToObject(res, "result", r); /*将json对象转换成json字符串 */ ret_char = cJSON_PrintUnformatted(res); memcpy(output, ret_char, sizeof(ret_char)+1); cJSON_Delete(res); return RET_OK; /*把本地Portal server的配置信息存入全局变量 */ jumpurl = jump_url; return RET_OK; }