📄 connvar.lst
字号:
C51 COMPILER V7.50 CONNVAR 10/12/2006 15:31:41 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CONNVAR
OBJECT MODULE PLACED IN .\Release\Connvar.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\lib\httpserver\Connvar.c LARGE OPTIMIZE(9,SIZE) BROWSE ORDER MODDP2 I
-NCDIR(..\..\inc\) DEBUG OBJECTEXTEND PRINT(.\Release\Connvar.lst) OBJECT(.\Release\Connvar.obj)
line level source
1 /*
2 *
3 * Connvar.c
4 *
5 * Part of the Myson Century CS620X demo program.
6 *
7 * Authors: LY Lin, WM Wang, IJ Chen, WH Lee
8 *
9 * Connvar.c contains HTTP connection variable routines.
10 *
11 * This program was developed using the Keil 8051 C uVision 2 system.
12 * The Keil compiler MUST be used if working with Myson Century supplied
13 * firmware.
14 *
15 *
16 *
17 */
18 #include <stdio.h>
19 #include <ctype.h>
20 #include <stdlib.h>
21 #include <string.h>
22
23 #include "hpserver.h"
24 #include "timer.h"
25 #include "ether.h"
26 #include "netutil.h"
27 #include "net.h"
28 #include "ip.h"
29 #include "tcp.h"
30 #include "config.h"
31 #include "http.h"
32 #include "strutil.h"
33
34
35 /************************************************************************
36 /* Function Name : put_connvar *
37 /* *
38 /* Arguments : *
39 /* TSOCK xdata *ts: Point to TSOCK. *
40 /* char xdata *name: The name to be put. *
41 /* char xdata *val: The value to be put. *
42 /* *
43 /* Return : *
44 /* Return 1 if success. *
45 /* Return 0 if no room. *
46 /* *
47 /* Comment : *
48 /* Add a variable to the connection variable space. *
49 /* *
50 /************************************************************************/
51 int put_connvar(TSOCK xdata *ts, char xdata *name, char xdata *val)
52 {
53 1 return(put_connvarlen(ts, name, strlen(name), val, strlen(val)));
54 1 }
C51 COMPILER V7.50 CONNVAR 10/12/2006 15:31:41 PAGE 2
55
56 /************************************************************************
57 /* Function Name : put_connvarlen *
58 /* *
59 /* Arguments : *
60 /* TSOCK xdata *ts: Point to TSOCK. *
61 /* char xdata *name: The name to be put. *
62 /* int namlen:The length of 'name'. *
63 /* char xdata *val: The value to be put. *
64 /* int valen:The length of 'val'. *
65 /* *
66 /* Return : *
67 /* Return 1 if success. *
68 /* Return 0 if no room. *
69 /* *
70 /* Comment : *
71 /* Add a variable to the connection variable space. *
72 /* *
73 /************************************************************************/
74 int put_connvarlen(TSOCK xdata *ts, char xdata *name, int namlen, char xdata *val, int valen)
75 {
76 1 int ok=0;
77 1 APPDATA *adp;
78 1
79 1 adp = (APPDATA *)ts->app;
80 1 if (adp->vlen+namlen+valen+3<http_varspace &&
81 1 namlen<http_max_eginame && valen<http_max_egival)
82 1 {
83 2 adp->vars[adp->vlen++] = (char)(namlen | 0x80);
84 2 strncpy(&adp->vars[adp->vlen], name, namlen);
85 2 adp->vlen += namlen;
86 2 adp->vars[adp->vlen++] = 0;
87 2 strncpy(&adp->vars[adp->vlen], val, valen);
88 2 adp->vlen += valen;
89 2 adp->vars[adp->vlen++] = 0;
90 2 }
91 1 return(ok);
92 1 }
93
94 /************************************************************************
95 /* Function Name : get_connvar *
96 /* *
97 /* Arguments : *
98 /* TSOCK xdata *ts: Point to TSOCK. *
99 /* char xdata *name: Point to name string. *
100 /* *
101 /* Return : *
102 /* Point to variable or *
103 /* NULL if fail. *
104 /* *
105 /* Comment : *
106 /* Get variable from the connection space. *
107 /* *
108 /************************************************************************/
109 char *get_connvar(TSOCK xdata *ts, char xdata *name)
110 {
111 1 int n, len;
112 1 APPDATA *adp;
113 1 char *s=0, *end;
114 1
115 1 adp = (APPDATA *)ts->app;
116 1 end = &adp->vars[adp->vlen];
C51 COMPILER V7.50 CONNVAR 10/12/2006 15:31:41 PAGE 3
117 1 n = strlen(name);
118 1 if (n < http_max_eginame)
119 1 {
120 2 s = memchr(adp->vars, (char)(n | 0x80), adp->vlen-3);
121 2 while (s && strncmp(s+1, name, n) && (len=(int)(end-s))>3)
122 2 s = memchr(s+1, (char)(n | 0x80), len);
123 2 }
124 1 return(s ? s+n+2 : "");
125 1 }
126
127 /************************************************************************
128 /* Function Name : find_connvar *
129 /* *
130 /* Arguments : *
131 /* TSOCK xdata *ts: Point to TSOCK. *
132 /* char xdata *name: Point to name string. *
133 /* *
134 /* Return : *
135 /* Point to variable or *
136 /* NULL if fail. *
137 /* *
138 /* Comment : *
139 /* Find variable in the connection space, by matching first *
140 /* few chars. *
141 /* *
142 /************************************************************************/
143 char *find_connvar(TSOCK xdata *ts, unsigned char *name)
144 {
145 1 int n;
146 1 APPDATA *adp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -