77 lines
1.9 KiB
C
77 lines
1.9 KiB
C
#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;
|
||
}
|
||
|