system_ctl.c
上传用户:sxdewei
上传日期:2014-06-02
资源大小:67k
文件大小:6k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <fcntl.h>
  5. #include <getopt.h>
  6. #include <errno.h>
  7. #include <sys/ioctl.h>
  8. #include <linux/config.h>
  9. #include <netinet/in.h>
  10. #include <arpa/inet.h>
  11. #include "cgivars.h"
  12. #include "htmllib.h"
  13. #include "config_phase.h"
  14. #include "sysconf.h"
  15. #define DEBUG        0
  16. #define ID_CAM_NTID                         18
  17. #define ID_CAM_NTPD                        19
  18. #define ID_CAM_NTSER                      20
  19. #define ID_SAF_MOD                          25
  20. static config_item ** items;
  21. static int config_list[] = {18,19,20,25};         //for system_ctl
  22. char java[]="
  23. <!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN">rn
  24. <HTML><HEAD><TITLE>System Status</TITLE>
  25. <META http-equiv=Expires content="Tue, 1 Jan 1980 2:00:00 GMT">
  26. <META http-equiv=Pragma content=no-cache>
  27. <META http-equiv=Cache-Control content="no-cache,must revalidate">
  28. <META http-equiv=Content-Type content="text/html; charset=gb2312">
  29. <SCRIPT language=JavaScript src="js/javascript.js"></SCRIPT>
  30. <STYLE type=text/css>BODY {
  31. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  32. }
  33. TD {
  34. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  35. }
  36. FORM {
  37. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  38. }
  39. OPTION {
  40. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  41. }
  42. TEXTAREA {
  43. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  44. }
  45. P {
  46. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  47. }
  48. OL {
  49. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  50. }
  51. INPUT {
  52. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  53. }
  54. SELECT {
  55. FONT-SIZE: 10pt; FONT-FAMILY: Arial
  56. }
  57. .style1 {
  58. FONT-WEIGHT: bold; FONT-SIZE: 14pt
  59. }
  60. .style3 {
  61. COLOR: #999999
  62. }
  63. </STYLE>
  64. <META content="MSHTML 6.00.6000.16414" name=GENERATOR></HEAD>";
  65. void system_ctl(char **postvars, int form_method)
  66. {
  67. int config_num = sizeof(config_list)/sizeof(int);
  68. int i;
  69. int temp_int;
  70. int r_fd, w_fd;
  71. char *CAM_NTPD;
  72. char *SAF_MOD;
  73. items = init_config_item(items, config_num, config_list);
  74. //r_fd = open_read_fifo();
  75. printf("%sn", java);
  76. DEBUGMSG(0, ("form_method=%d: %s, %sn", form_method, postvars[0], postvars[1]));
  77. if(form_method == POST)
  78. {
  79. DEBUGMSG(0, ("<body><center><BR><font style="font-size:12pt" face="Arial">"));
  80. GetConfValues(config_list, items, config_num);
  81. for (i=0; postvars[i]; i+= 2)
  82. {
  83. DEBUGMSG(0, ("DEBUG: [%s] = [%s]<br>", postvars[i], postvars[i+1]));
  84. if(!strcmp(postvars[i], "CAM_NTPD"))
  85. item_update(ID_CAM_NTPD, items, config_num, postvars[i+1]);
  86. if(!strcmp(postvars[i], "SAF_MOD"))
  87. {
  88. item_update(ID_SAF_MOD, items, config_num, postvars[i+1]);
  89. }
  90. }
  91. if(SaveTempConfig(config_num, items))
  92. {
  93. /*
  94. w_fd = open_write_fifo();
  95. notify_config(w_fd);
  96. close_write_fifo(w_fd);
  97. read_fifo(r_fd);
  98. */
  99. }
  100. }
  101. GetConfValues(config_list, items, config_num);
  102. printf("<BODY class=bodyBg bgColor=white leftMargin=30 topMargin=24 rightMargin=30>n");
  103. printf("<P class=style1>系统设置</P>n");
  104. //printf("<FORM name=system_ctl action="/system_ctl.cgi" method=post target=msgFrame onsubmit="return CheckForm()">n");
  105. printf("<FORM name=system_ctl action="/system_ctl.cgi" method=post target=msgFrame>n");
  106. printf("<TABLE width="100%"><TBODY>n");
  107. printf("<TR><TD><TABLE borderColor=#dae3eb cellSpacing=0 cellPadding=2 width="100%" border=1>n");
  108. printf("<TBODY><TR bgColor=#cccccc><TD class=topTitle vAlign=top noWrap colSpan=2><DIV align=left>n");
  109. printf("<STRONG>系统信息</STRONG></DIV></TD></TR>n");
  110. //18 ID_CAM_NTID
  111. printf("<TR><TD width="24%">入网ID</TD><TD width="76%"> %s </TD></TR>n", getdata(ID_CAM_NTID, items, config_num));
  112. //20 ID_CAM_NTSER
  113. printf("<TR><TD>入网服务器(注册服务器)地址</TD><TD>%s</TD></TR>n", getdata(ID_CAM_NTSER, items, config_num));
  114. //19 ID_CAM_NTPD
  115. CAM_NTPD = getdata(19, items, config_num);
  116. printf(" <TR><TD>入网Password</td><td>n");
  117. printf("<input type=password name=CAM_NTPD size=15 maxlength=15 value=%s></TD></TR>n", CAM_NTPD);
  118. //25 ID_SAF_MOD
  119. printf("<TR><TD><P>安全模式</P></TD>n");
  120. printf("<TD><SELECT  name=SAF_MOD>n");
  121. if(SAF_MOD = getdata(ID_SAF_MOD, items, config_num))
  122. {
  123. //temp_int = atoi(SAF_MOD);
  124. if(!strcmp(SAF_MOD, "1"))
  125. {
  126. printf("<option  value="1" selected>安全模式n");
  127. printf("<option  value="0">普通模式n");
  128. }
  129. else
  130. {
  131. printf("<option  value="1">安全模式n");
  132. printf("<option  value="0" selected>普通模式n");
  133. }
  134. }
  135. printf("</select></td></tr></TBODY></TABLE>n");
  136. printf("<P align=left>n");
  137. //printf("<input type=submit onclick="return CheckForm();" class=button value="应用">n");
  138. printf("<input type=submit class=button onclick="return CheckForm();" value="应用"  >n");
  139. printf("<input type=reset class=button value="清除"></p>n");
  140. printf("</TD></TR></TBODY></TABLE></FORM></BODY></HTML>n");
  141. // javascript layout
  142. {
  143. char jsp[]="
  144. <script language=JavaScript> 
  145. <!--  
  146. function CheckForm()
  147. {
  148. if(document.system_ctl.CAM_NTPD.value==""||document.system_ctl.CAM_NTPD.value==null){
  149. alert("入网Password不能为空!");
  150. document.system_ctl.CAM_NTPD.focus();
  151. return false;
  152. }
  153. }
  154. //--> 
  155. </script>";
  156. printf("%sn", jsp);
  157. }
  158. free_config_item(items, config_num);
  159. //close_read_fifo();
  160. }
  161. ////////////////////////////////////////////////////////////////////////////
  162. // Function: main
  163. ////////////////////////////////////////////////////////////////////////////
  164. int main(void)
  165. {
  166.     char **postvars = NULL;  // POST request data repository
  167.     char **getvars = NULL;   // GET request data repository
  168.     int form_method;         // POST = 1, GET = 0
  169.     // CGI part start here
  170.     adminCheck();
  171.     form_method = getRequestMethod();
  172.     if(form_method == POST)
  173.     {
  174.        // getvars = getGETvars();
  175.         postvars = getPOSTvars();
  176.     }
  177.     else if(form_method == GET)
  178.     {
  179.         getvars = getGETvars();
  180.     }
  181.     // CGI start here, set COM port
  182.     system_ctl(postvars, form_method);
  183.     //htmlFooter();
  184.     cleanUp(form_method, getvars, postvars);
  185.     fflush(stdout);
  186.     exit(0);
  187. }  // end of main