secgateway/Platform/user/configm/config-server/jumppage_config/jumppage.c

77 lines
1.9 KiB
C
Raw Normal View History

#include "../../../../common/rpc/rpc.h"
#include "../include/parsefile.h"
#include "../include/configm.h"
#include "../../../netlink_uapi/libnetlinku.h"
#include "../include/jumppage.h"
#include <cjson/cJSON.h>
#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;
}