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); }
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; }
/*********************************************************************** 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; } } }