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 + -
显示快捷键?