static void InitParameters(void) { char cfg[128]; char ip[4][16]; char wifiippass[128]; int i; unsigned int addr = 0; unsigned int mask = 0; unsigned int gateway = 0; memset(cfg, 0x00, sizeof(cfg)); if (my_ssid[0]) { SetWindowText(WifiWnd[0], my_ssid); } else if (LoadStr("SSID", cfg)) { SetWindowText(WifiWnd[0], cfg); } LoadStr("wifipasswd", wifiippass); SetWindowText(WifiWnd[1], wifiippass); memset(oldip, 0, sizeof(oldip)); memset(newip, 0, sizeof(newip)); if (gOptions.wifidhcpfunon) { dhcpswitch(1); if (wireless_is_online()) { //printf("_____%s%d\n", __FILE__, __LINE__); unsigned char ip[4]; memset(ip, 0, sizeof(ip)); wireless_get_ipaddr(&addr); str2ip((char*)ipaddr_to_string(addr), (BYTE*)ip); sprintf((char*)oldip[0], "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); printf("dynaic wifi: %d:%d:%d:%d\n", ip[0], ip[1], ip[2], ip[3]); memset(ip, 0, sizeof(ip)); wireless_get_mask(&mask); str2ip(ipaddr_to_string(mask), (BYTE*)ip); sprintf((char*)oldip[1], "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); memset(ip, 0, sizeof(ip)); wireless_get_default_route(&gateway); str2ip(ipaddr_to_string(gateway), (BYTE*)ip); sprintf((char*)oldip[2], "%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); } } else { LoadStr("wifiip", (char*)oldip[0]); LoadStr("wifimask", (char*)oldip[1]); LoadStr("wifigateway", (char*)oldip[2]); } memcpy(newip, oldip, sizeof(oldip)); //set ip if(ParseIP(newip[0],ip[0],ip[1],ip[2],ip[3])){ for(i=0;i<4;i++){ if (strlen(ip[i])>0) { SetWindowText(WifiWnd[3+i],ip[i]); } else { SetWindowText(WifiWnd[3+i],"0"); } } } //set sub mask if(ParseIP(newip[1],ip[0],ip[1],ip[2],ip[3])){ for(i=0;i<4;i++){ SetWindowText(WifiWnd[7+i],ip[i]); } } //set Gate Way if(ParseIP(newip[2],ip[0],ip[1],ip[2],ip[3])){ for(i=0;i<4;i++){ SetWindowText(WifiWnd[11+i],ip[i]); } } }
void IpAddrSetBuild(char *addr, IpAddrSet *ret, int neg_list) { char *tok, *end, *tmp; int neg_ip; while(*addr) { /* Skip whitespace and leading commas */ for(; *addr && (isspace((int)*addr) || *addr == ','); addr++) ; /* Handle multiple negations (such as if someone negates variable that * contains a negated IP */ neg_ip = 0; for(; *addr == '!'; addr++) neg_ip = !neg_ip; /* Find end of this token */ for(end = addr+1; *end && !isspace((int)*end) && *end != ']' && *end != ','; end++) ; tok = SnortStrndup(addr, end - addr); if(!tok) { FatalError("%s(%d) => Failed to allocate memory for parsing '%s'\n", file_name, file_line, addr); } if(*addr == '[') { int brack_count = 0; char *list_tok; /* Find corresponding ending bracket */ for(end = addr; *end; end++) { if(*end == '[') brack_count++; else if(*end == ']') brack_count--; if(!brack_count) break; } if(!*end) { FatalError("%s(%d) => Unterminated IP List '%s'\n", file_name, file_line, addr); } addr++; list_tok = SnortStrndup(addr, end - addr); if(!list_tok) { FatalError("%s(%d) => Failed to allocate memory for parsing '%s'\n", file_name, file_line, addr); } IpAddrSetBuild(list_tok, ret, neg_ip ^ neg_list); free(list_tok); } else if(*addr == '$') { if((tmp = VarGet(tok + 1)) == NULL) { FatalError("%s(%d) => Undefined variable %s\n", file_name, file_line, addr); } IpAddrSetBuild(tmp, ret, neg_list ^ neg_ip); } else if(*addr == ']') { if(!(*(addr+1))) { /* Succesfully reached the end of this list */ free(tok); return; } FatalError("%s(%d) => Mismatched bracket in '%s'\n", file_name, file_line, addr); } else { /* Skip leading commas */ for(; *addr && (*addr == ',' || isspace((int)*addr)); addr++) ; ParseIP(tok, ret, neg_list ^ neg_ip); if(ret->iplist && !ret->iplist->ip_addr && !ret->iplist->netmask) ret->iplist->addr_flags |= ANY_SRC_IP; /* Note: the neg_iplist is not checked for '!any' here since * ParseIP should have already FatalError'ed on it. */ } free(tok); if(*end) addr = end + 1; else break; } return; }
static void InitModemWin(HWND hWnd) { int rows = 0; int item = 0; HWND tmpstatic[9]; char ipaddr[4][4]; char staticbuf[20]; module_type = LoadInteger("ModemModule", MODEM_MODULE_Q24PL); memset(ModemAPN, 0x00, sizeof(ModemAPN)); memset(ModemDialNumber, 0x00, sizeof(ModemDialNumber)); memset(ModemUserName, 0x00, sizeof(ModemUserName)); memset(ModemPassWord, 0x00, sizeof(ModemPassWord)); memset(HeartBeatServer, 0x00, sizeof(HeartBeatServer)); if (module_type != MODEM_MODULE_EM660) { LoadStr("APN", ModemAPN); } LoadStr("ModemDialNumber", ModemDialNumber); LoadStr("ModemUserName", ModemUserName); LoadStr("ModemPassword", ModemPassWord); LoadStr("HeartBeatServer", HeartBeatServer); //tmpstatic[0] = CreateWindow(CTRL_STATIC, LoadStrByID(1192), WS_VISIBLE | SS_LEFT, 0xbf, 10, rows * 30 + 12, 100, 23, hWnd, 0); tmpstatic[0] = CreateWindow(CTRL_STATIC, LoadStrByID(MID_GPRS_CONNECT), WS_VISIBLE | SS_LEFT, 0xbf, 10, rows * 30 + 12, 100, 23, hWnd, 0); ModemWnd[0] = CreateWindow(CTRL_COMBOBOX, "", WS_VISIBLE | CBS_READONLY | CBS_SPINLIST | CBS_SPINARROW_LEFTRIGHT | CBS_AUTOFOCUS, 0xd0, 115, rows * 30 + 6, 55, 23, hWnd, 0); SendMessage(ModemWnd[0], CB_ADDSTRING, 0, (LPARAM)LoadStrByID(HID_NO)); SendMessage(ModemWnd[0], CB_ADDSTRING, 0, (LPARAM)LoadStrByID(HID_YES)); SendMessage(ModemWnd[0], CB_SETCURSEL, gOptions.ModemEnable, 0); rows++; if (module_type != MODEM_MODULE_EM660){ tmpstatic[1] = CreateWindow(CTRL_STATIC, LoadStrByID(MID_GPRS_APN), WS_VISIBLE | SS_LEFT, 0xc0, 10, rows * 30 + 12, 100, 23, hWnd, 0); ModemWnd[1] = CreateWindow(CTRL_SLEDIT, ModemAPN, WS_VISIBLE | ES_AUTOSELECT | ES_BASELINE | WS_BORDER, 0xd0, 115, rows * 30 + 8, 120, 24, hWnd, 0); SendMessage(ModemWnd[1], MAX_NUM_LEN, 0, 0); rows++; } tmpstatic[2] = CreateWindow(CTRL_STATIC, LoadStrByID(MID_GPRS_NMB), WS_VISIBLE | SS_LEFT, 0xc1, 10, rows * 30 + 12, 100, 23, hWnd, 0); ModemWnd[2] = CreateWindow(CTRL_SLEDIT, ModemDialNumber, WS_VISIBLE | ES_AUTOSELECT | ES_BASELINE | WS_BORDER, 0xd1, 115, rows*30 + 8, 120, 24, hWnd, 0); SendMessage(ModemWnd[2], MAX_NUM_LEN, 0, 0); rows++; tmpstatic[3] = CreateWindow(CTRL_STATIC, LoadStrByID(MID_GPRS_USER), WS_VISIBLE | SS_LEFT, 0xc2, 10, rows * 30 + 12, 100, 23, hWnd, 0); ModemWnd[3] = CreateWindow(CTRL_SLEDIT, ModemUserName, WS_VISIBLE | ES_AUTOSELECT | ES_BASELINE | WS_BORDER, 0xd2, 115, rows * 30 + 8, 120, 24, hWnd, 0); SendMessage(ModemWnd[3], MAX_NUM_LEN, 0, 0); rows++; tmpstatic[4] = CreateWindow(CTRL_STATIC, LoadStrByID(MID_GPRS_PWD), WS_VISIBLE | SS_LEFT, 0xc3, 10, rows * 30 + 12, 100, 23, hWnd, 0); ModemWnd[4] = CreateWindow(CTRL_SLEDIT, ModemPassWord, WS_VISIBLE | ES_AUTOSELECT | ES_BASELINE | WS_BORDER, 0xd3, 115, rows * 30 + 8, 120, 24, hWnd, 0); SendMessage(ModemWnd[4], MAX_NUM_LEN, 0, 0); rows++; tmpstatic[5] = CreateWindow(CTRL_STATIC, LoadStrByID(MID_MODEM_HTSERVER), WS_VISIBLE | SS_LEFT, 0xc4, 10, rows * 30 + 12, 100, 23, hWnd, 0); ModemWnd[5] = CreateWindow(CTRL_SLEDIT, "", WS_VISIBLE | ES_AUTOSELECT| ES_BASELINE | WS_BORDER, 0xd4, 115, rows * 30 + 8, 35, 24, hWnd, 0); SendMessage(ModemWnd[rows + item], 3, 0, 0); tmpstatic[6] = CreateWindow(CTRL_STATIC, ".", WS_VISIBLE | SS_LEFT, 0xc5, 150, rows * 30 + 12, 10, 23, hWnd, 0); ModemWnd[6] = CreateWindow(CTRL_SLEDIT, "", WS_VISIBLE | ES_AUTOSELECT | ES_BASELINE | WS_BORDER, 0xd5, 160, rows * 30 + 8, 35, 24, hWnd, 0); SendMessage(ModemWnd[rows + item], 3, 0, 0); tmpstatic[7] = CreateWindow(CTRL_STATIC, ".", WS_VISIBLE | SS_LEFT, 0xc6, 195, rows * 30 + 12, 10, 23, hWnd, 0); ModemWnd[7] = CreateWindow(CTRL_SLEDIT, "", WS_VISIBLE | ES_AUTOSELECT | ES_BASELINE | WS_BORDER, 0xd6, 205, rows * 30 + 8, 35, 24, hWnd, 0); SendMessage(ModemWnd[rows + item], 3, 0, 0); tmpstatic[8] = CreateWindow(CTRL_STATIC, ".", WS_VISIBLE | SS_LEFT, 0xc7, 245, rows * 30 + 12, 10, 23, hWnd, 0); ModemWnd[8] = CreateWindow(CTRL_SLEDIT, "", WS_VISIBLE | ES_AUTOSELECT | ES_BASELINE | WS_BORDER, 0xd7, 250, rows * 30 + 8, 35, 24, hWnd, 0); SendMessage(ModemWnd[rows + item], 3, 0, 0); rows++; if(ParseIP(HeartBeatServer, ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3])){ SetWindowText(ModemWnd[5], ipaddr[0]); SetWindowText(ModemWnd[6], ipaddr[1]); SetWindowText(ModemWnd[7], ipaddr[2]); SetWindowText(ModemWnd[8], ipaddr[3]); } SendMessage(ModemWnd[5],EM_LIMITTEXT,3,0); SendMessage(ModemWnd[6],EM_LIMITTEXT,3,0); SendMessage(ModemWnd[7],EM_LIMITTEXT,3,0); SendMessage(ModemWnd[8],EM_LIMITTEXT,3,0); sprintf(staticbuf, "%s", LoadStrByID(1504)); ModemWnd[9] = CreateWindow(CTRL_BUTTON, LoadStrByID(HIT_OK), WS_VISIBLE | BS_DEFPUSHBUTTON, IDOK, 5, 185, 85, 23, hWnd, 0); ModemWnd[10] = CreateWindow(CTRL_BUTTON, LoadStrByID(HIT_CANCEL), WS_VISIBLE | BS_DEFPUSHBUTTON, IDCANCEL, 103+gOptions.ControlOffset, 185, 85, 23, hWnd, 0); ModemWnd[11] = CreateWindow(CTRL_BUTTON, staticbuf, WS_VISIBLE | BS_DEFPUSHBUTTON, IDCANCEL, 202+gOptions.ControlOffset, 185, 115, 23, hWnd, 0); }