Пример #1
0
static void setDevip(HttpConn *conn) {
    char str[16] = {0};
    cchar *role = getSessionVar("role");
    if(role == NULL){
        rendersts(str, 9);
        render(str);
        return;
    }
    if((strcmp(role, "root") !=0) && (strcmp(role, "admin") !=0)){
        rendersts(str, 5);//无权限设置Ip
        render(str);
        return;
    }
	cchar *param = espGetQueryString(conn);

	char newip[16] = {0};
	char newgatway[16] = {0};
	char submask[16] = {0};
	char* ptr = strchr(param, '&');
    int pos = ptr-param;
	substr(param, 0, pos, newip);
	char *ptr1 = strrchr (param, '&');
	int flag = ptr1 - param;
	substr(param, pos + 1, flag, newgatway);
	substr(param, flag + 1, strlen(param), submask);
	unsigned int vip = ntohl( inet_addr( newip ) );
	unsigned int tmpgatway = ntohl( inet_addr( newgatway ) );
	unsigned int tmpsubmask = ntohl( inet_addr( submask ) );
	if(0 == setIp(tmpip, vip)){
		setGateway(tmpip, tmpgatway);
		getSubMask(tmpip, tmpsubmask);
	}
	rendersts(str, 1);
	render(str);
	//add optlog
    Edi *db = ediOpen("db/muxnms.mdb", "mdb", EDI_AUTO_SAVE);
    EdiRec *optlog = ediCreateRec(db, "optlog");
    if(optlog == NULL){
       printf("================>>>optlog is NULL!!\n");
       return;
    }
    time_t curTime;
    time(&curTime);
    memset(optstr, 0, 256);
    sprintf(optstr, "{'user': '******', 'desc': '设备修改IP【IP:%s】.', 'level': '2', 'logtime':'%d'}", getSessionVar("userName"),newip, curTime);
    MprJson  *row = mprParseJson(optstr);
    if(ediSetFields(optlog, row) == 0){
       printf("================>>>ediSetFields Failed!!\n");
    }
    ediUpdateRec(db, optlog);
    //ediClose(db);
}
Пример #2
0
bool JPWiFly::createApModeNetwork(const char *ssid, int channel, const int port) {
	StCommand st(this);
	setJoin(WIFLY_WLAN_JOIN_APMODE);
	setChannel(channel);
	setSSID(ssid);
	setDHCP(WIFLY_DHCP_MODE_SERVER);
	setPort(port);
	setIP(PSTR("1.2.3.4"));
	setNetmask(PSTR("255.255.255.0"));
	setGateway(PSTR("1.2.3.4"));
	
	save();
	reboot();
	return true;
}
Пример #3
0
/***********************************************************************
		module		:	[WIFI]
		function	:	[WIFI网络设置子菜单]
  		return		:	[无]
		comment		:	[全局普通函数]
		machine		:	[EH-0818]
		language	:	[CHN]
 		keyword		:	[WIFI]
		date		:	[11/07/26]
 		author		:	[chen-zhengkai]
************************************************************************/
void wifinet_set()
{
	int select = -1;
	char db_menu_str[] =		"1. 设置本机IP  "
							"2. 设置子网掩码"
							"3. 设置网关    "
							"4. 设置服务器IP"
							"5. 设置端口    "
							"6. 设置ssid    "
							"7. 设置密码    "
							"8. 清空安全设置";

//	if ( adminPassword(0) ) {
//		return;
//	}
	BROWINFO	info;
	info.iStr = db_menu_str;		//浏览内容指针
	info.lPtr = 0;					//显示内容iStr的起始显示行
	info.cPtr = 0;					//当前选择行

	while (1) {
		//以下BROWINFO结构成员变量必须参与循环,有可能会被EXT_Brow_Select函数改变
		info.startLine = 0;				//在LCD上的显示起始行
		info.dispLines = 7;				//在LCD上的显示行数
		info.mInt = 8;					//显示内容的总行数
		info.lineMax = 15;				//每行最大字符数
		info.sFont = 0;					//7x9大字体显示
		info.numEnable = 0;				//是否允许数字键代替方向控制
		info.qEvent = EXIT_KEY_F1|EXIT_AUTO_QUIT|EXIT_KEY_POWER|EXIT_KEY_CANCEL;    //可导致函数退出的事件标志
		info.autoexit = 1200;			//自动退出的时间
		//菜单
		Disp_Clear();
		select = EXT_Brow_Select(&info);

		switch (select) {
			case 0:		//设置本机IP
				setIP();
				break;
			case 1:		//设置子网掩码
				setNetMask();
				break;
			case 2:		//设置网关
				setGateway();
				break;
			case 3:		//设置服务器IP
				setServerIP();
				break;
			case 4:		//设置端口
				setServerPort();
				break;
			case 5:		//设置SSID
				setServerSSID();
				break;
			case 6:		//设置密码
				setPassword();
				break;
			case 7:		//清空安全设置
				clearPSK();
				break;
			default:	//降低CPU占用率,降低能耗
				if (info.qEvent == EXIT_KEY_F1  || EXIT_AUTO_QUIT 
                                || EXIT_KEY_POWER || EXIT_KEY_CANCEL) { //返回上级菜单 
					return;
				}
				Sys_Power_Sleep(3);
				break;
		}
	}
}