save.c
来自「这是我自己写的用于嵌入式设备的CGI程序」· C语言 代码 · 共 162 行
C
162 行
/*-----------------------------------------------------------------------------G1 CGI Modulelan.c:Local Network Settings* Description :*Created by KevinModification History:001. 09.19.2007: Created.-----------------------------------------------------------------------------*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include "cgic.h"#include "cgi_config.h"#include "session.h"#include "multi-language.h"void handle_lan();#define M_LAN 1int getutime() //取得微秒级时间{ struct timeval tv; gettimeofday(&tv,NULL); return (int)tv.tv_sec * 1000000 + tv.tv_usec;}int cgiMain(){ char cur_session_id[24]; char cusername[20]; int language_selected=0; int module = 0; char redirect_url[30]; char osdtimer[5]; char cookie_session_id[24]; int result; int auth=0; char msg1[72], msg2[72], msg3[72], msg4[72]; //sessionCheckOnHead( cur_session_id ); result = cgiCookieString("COOKIE_SESSION_ID",cookie_session_id,24); if ( result != cgiFormSuccess ) { read_prev_selectd (&language_selected); strcpy ( msg1, language_section_public [ language_selected -1 ][ L_ID_PUBLIC_NOT_EXIST ]); alert_redirect ( msg1, "login.cgi"); return 0; } strcpy ( cur_session_id, cookie_session_id ); get_user_authority ( cur_session_id, &auth ); if ( get_current_user ( cur_session_id, cusername ) !=0 ) strcpy ( cusername, "system" ); if ( 0!= get_language_selected ( cur_session_id, &language_selected )) language_selected = EN; if ( auth <3 ) { strcpy ( msg2, language_section_public [ language_selected -1 ][ L_ID_PUBLIC_AUTH_MSG ]); alert_redirect ( msg2, "logout.cgi"); return 0; } cgiFormIntegerBounded("module", &module, 0, 20, 0); cgiFormStringNoNewlines("redirect_url", redirect_url, 30); cgiHeaderContentType("text/html"); strcpy ( msg3, language_section_public [ language_selected -1 ][ L_ID_PUBLIC_OKMSG ]); strcpy ( msg4, language_section_public [ language_selected -1 ][ L_ID_PUBLIC_REBOOT_MSG ]); switch ( module ) { case M_LAN : handle_lan(); send_log_msg( OPT_LAN_SET, OPT_LOG, cusername ); alert_redirect ( msg4, redirect_url); break; //case M_WLAN : // handle_wlan(); // send_log_msg( OPT_WLAN_SET, OPT_LOG, cusername ); // send_command("FStarter restart"); // alert_redirect ( msg3, redirect_url); // break; default : alert_redirect ( "Error!", "index.cgi");; } //printf("module:%d\n", module); //printf("redirect_url:%s\n", redirect_url); return 0;}void handle_lan(){ char ip_addr[24], net_mask[24], gw_addr[24], dns1[24], dns2[24]; int network_type; FILE *fd; if ((fd = fopen(NET_CONFIG_PATH, "r")) == NULL) { fd = fopen(NET_CONFIG_PATH, "w"); fprintf(fd,"WIPADDR NULL\nWNetMask NULL\nWGateWay NULL\nWDHCP 0\n"); fprintf(fd,"EIPADDR 192.168.1.131\n"); fprintf(fd,"ENetMask 255.255.255.0\n"); fprintf(fd,"EGateWay 192.168.1.1\n"); fprintf(fd,"EDHCP 0\n"); fprintf(fd,"DNS1 140.96.254.102\n"); fprintf(fd,"DNS2 140.96.254.100\n"); fprintf(fd,"UPnp 0\n"); fprintf(fd,"HostName bloom-tech\n"); fclose(fd); }else fclose(fd); cgiFormInteger("net_type", &network_type, 0); if (network_type == 1) { cgiFormStringNoNewlines("ip", ip_addr, 24); cgiFormStringNoNewlines("netmask", net_mask, 24); cgiFormStringNoNewlines("gateway", gw_addr, 24); cgiFormStringNoNewlines("dns1", dns1, 24); cgiFormStringNoNewlines("dns2", dns2, 24); set_var_to_file(NET_CONFIG_PATH, "EIPADDR", ip_addr); set_var_to_file(NET_CONFIG_PATH, "ENetMask", net_mask); set_var_to_file(NET_CONFIG_PATH, "EGateWay", gw_addr); set_var_to_file(NET_CONFIG_PATH, "DNS1", dns1); set_var_to_file(NET_CONFIG_PATH, "DNS2", dns2); set_var_to_file(NET_CONFIG_PATH, "EDHCP", "0"); } else if (network_type == 2) { set_var_to_file(NET_CONFIG_PATH, "EDHCP", "1"); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?