亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? form.c

?? 在嵌入式移動設備上實現動態網頁
?? C
字號:
/*
 * form.c -- Form processing (in-memory CGI) for the GoAhead Web server
 *
 * Copyright (c) GoAhead Software Inc., 1995-2000. All Rights Reserved.
 *
 * See the file "license.txt" for usage and redistribution license requirements
 *
 * $Id: form.c,v 1.3 2002/10/24 14:44:50 bporter Exp $
 */

/********************************** Description *******************************/

/*
 *	This module implements the /goform handler. It emulates CGI processing
 *	but performs this in-process and not as an external process. This enables
 *	a very high performance implementation with easy parsing and decoding 
 *	of query strings and posted data.
 */

/*********************************** Includes *********************************/

#include	"wsIntrn.h"

/************************************ Locals **********************************/

static sym_fd_t	formSymtab = -1;			/* Symbol table for form handlers */

/************************************* Code ***********************************/
/*
 *	Process a form request. Returns 1 always to indicate it handled the URL
 */

int websFormHandler(webs_t wp, char_t *urlPrefix, char_t *webDir, int arg, 
	char_t *url, char_t *path, char_t *query)
{
	sym_t		*sp;
	char_t		formBuf[FNAMESIZE];
	char_t		*cp, *formName;
	int			(*fn)(void *sock, char_t *path, char_t *args);

	a_assert(websValid(wp));
	a_assert(url && *url);
	a_assert(path && *path == '/');

	websStats.formHits++;

/*
 *	Extract the form name
 */
	gstrncpy(formBuf, path, TSZ(formBuf));
	if ((formName = gstrchr(&formBuf[1], '/')) == NULL) {
		websError(wp, 200, T("Missing form name"));
		return 1;
	}
	formName++;
	if ((cp = gstrchr(formName, '/')) != NULL) {
		*cp = '\0';
	}

/*
 *	Lookup the C form function first and then try tcl (no javascript support 
 *	yet).
 */
	sp = symLookup(formSymtab, formName);
	if (sp == NULL) {
		websError(wp, 200, T("Form %s is not defined"), formName);
	} else {
		fn = (int (*)(void *, char_t *, char_t *)) sp->content.value.integer;
		a_assert(fn);
		if (fn) {
/*
 *			For good practice, forms must call websDone()
 */
			(*fn)((void*) wp, formName, query);

/*
 *			Remove the test to force websDone, since this prevents
 *			the server "push" from a form>
 */
#if 0 /* push */
			if (websValid(wp)) {
				websError(wp, 200, T("Form didn't call websDone"));
			}
#endif /* push */
		}
	}
	return 1;
}

/******************************************************************************/
/*
 *	Define a form function in the "form" map space.
 */

int websFormDefine(char_t *name, void (*fn)(webs_t wp, char_t *path, 
	char_t *query))
{
	a_assert(name && *name);
	a_assert(fn);

	if (fn == NULL) {
		return -1;
	}

	symEnter(formSymtab, name, valueInteger((int) fn), (int) NULL);
	return 0;
}

/******************************************************************************/
/*
 *	Open the symbol table for forms.
 */

void websFormOpen()
{
	formSymtab = symOpen(WEBS_SYM_INIT);
}

/******************************************************************************/
/*
 *	Close the symbol table for forms.
 */

void websFormClose()
{
	if (formSymtab != -1) {
		symClose(formSymtab);
		formSymtab = -1;
	}
}

/******************************************************************************/
/*
 *	Write a webs header. This is a convenience routine to write a common
 *	header for a form back to the browser.
 */

void websHeader(webs_t wp)
{
	a_assert(websValid(wp));

	websWrite(wp, T("HTTP/1.0 200 OK\n"));

/*
 *	By license terms the following line of code must not be modified
 */
	websWrite(wp, T("Server: %s\r\n"), WEBS_NAME);

	websWrite(wp, T("Pragma: no-cache\n"));
	websWrite(wp, T("Cache-control: no-cache\n"));
	websWrite(wp, T("Content-Type: text/html\n"));
	websWrite(wp, T("\n"));
	websWrite(wp, T("<html>\n"));
}

/******************************************************************************/
/*
 *	Write a webs footer
 */

void websFooter(webs_t wp)
{
	a_assert(websValid(wp));

	websWrite(wp, T("</html>\n"));
}

/******************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区色| 色老综合老女人久久久| 亚洲国产一区视频| 国产精品第一页第二页第三页| 欧美精品一区视频| 精品国产91乱码一区二区三区| 欧美一区二区视频免费观看| 日韩一级免费一区| 精品国产一区二区三区久久影院| 日韩精品中午字幕| 久久久久久久久伊人| 欧美激情在线看| 国产精品美女久久福利网站| 综合久久国产九一剧情麻豆| 亚洲成人免费在线观看| 亚洲最新视频在线播放| 亚洲国产综合色| 日本视频在线一区| 国产精品99久| 色哟哟精品一区| 欧美日韩的一区二区| 久久综合九色综合97婷婷女人| 国产视频一区在线观看 | **网站欧美大片在线观看| 亚洲日本在线天堂| 日韩精品亚洲专区| 国产乱国产乱300精品| 从欧美一区二区三区| 一本到不卡精品视频在线观看| 欧美色手机在线观看| 91精品国产福利在线观看| 久久久噜噜噜久久中文字幕色伊伊| 欧美激情中文字幕一区二区| 一区二区视频在线| 日日夜夜免费精品视频| www.66久久| 欧美精品粉嫩高潮一区二区| 久久久久久**毛片大全| 亚洲综合丝袜美腿| 国产精品18久久久久久久久| 91视频一区二区| 久久五月婷婷丁香社区| 综合欧美亚洲日本| 国内成+人亚洲+欧美+综合在线| 99re这里只有精品视频首页| 日韩欧美在线综合网| 亚洲丝袜另类动漫二区| 蜜桃精品视频在线| 99re66热这里只有精品3直播| 日韩一卡二卡三卡四卡| 亚洲免费观看高清| 国产一区二区电影| 91精品国产综合久久精品麻豆| 婷婷综合另类小说色区| 欧美激情在线免费观看| 成人黄动漫网站免费app| 成人午夜激情在线| 欧美一级黄色录像| 亚洲一区二区在线观看视频| 国产成人在线视频网站| 欧美成人猛片aaaaaaa| 亚洲国产视频一区二区| 色就色 综合激情| 亚洲欧美在线另类| 成人国产在线观看| 日本一区二区三区久久久久久久久不| 奇米四色…亚洲| 欧美三级电影在线看| 亚洲视频一二三区| 国产成人激情av| 日韩欧美在线一区二区三区| 亚洲狠狠爱一区二区三区| 成人免费毛片app| 久久色视频免费观看| 免费av成人在线| 91精品国产综合久久精品app| 久久综合综合久久综合| 国产精品一区在线| 日韩精品自拍偷拍| 男男gaygay亚洲| 7777精品伊人久久久大香线蕉的| 天天综合网 天天综合色| 欧美日韩高清影院| 午夜精品aaa| 欧美日韩精品一区二区三区| 亚洲第一久久影院| 欧美性生活久久| 怡红院av一区二区三区| 欧美最猛黑人xxxxx猛交| 亚洲精品一二三四区| 91日韩在线专区| 夜夜精品浪潮av一区二区三区| 色88888久久久久久影院按摩| 一区二区三区在线观看欧美| 色婷婷久久久久swag精品| 亚洲精品v日韩精品| 成人av在线网站| 亚洲一区av在线| 精品国产乱码久久久久久闺蜜 | 精品日韩av一区二区| 久久99蜜桃精品| 久久久精品黄色| av在线免费不卡| 夜夜揉揉日日人人青青一国产精品| 欧美区视频在线观看| 狠狠色伊人亚洲综合成人| 国产精品热久久久久夜色精品三区 | 亚洲欧美另类久久久精品| 在线观看视频91| 久久精品99久久久| 亚洲精品一二三四区| 日韩午夜在线观看视频| 粉嫩aⅴ一区二区三区四区| 一区二区三区精品在线| 精品国产乱码久久久久久图片 | 国产激情一区二区三区桃花岛亚洲| 国产精品久久久久永久免费观看| 一本色道综合亚洲| 奇米精品一区二区三区在线观看一| 日韩精品中文字幕一区二区三区| 成人激情av网| 日韩av高清在线观看| 亚洲色图19p| 国产性做久久久久久| 欧洲精品视频在线观看| 狠狠色丁香婷婷综合| 亚洲综合免费观看高清完整版 | 国产高清久久久| 日韩二区三区在线观看| 国产精品卡一卡二卡三| 精品国产一区二区三区久久影院| 欧美在线999| 成人精品高清在线| 青青草视频一区| 亚洲精品欧美综合四区| 在线不卡一区二区| 欧美亚洲动漫制服丝袜| 不卡的av电影| 成人a级免费电影| 国产福利一区二区三区视频在线 | 懂色中文一区二区在线播放| 亚洲高清免费观看| 亚洲精品久久久蜜桃| 久久久久国产精品人| 日韩欧美一级特黄在线播放| 欧美日韩精品一区二区三区蜜桃 | 国产老肥熟一区二区三区| 欧美a一区二区| 日韩电影在线看| 午夜精品福利在线| 亚洲国产综合视频在线观看| 亚洲视频 欧洲视频| 国产精品国产三级国产| 国产亚洲人成网站| 精品处破学生在线二十三| 欧美xxx久久| 精品嫩草影院久久| 国产性做久久久久久| 欧美激情一区二区三区不卡| 中文字幕va一区二区三区| 国产拍欧美日韩视频二区| 日本一区二区三区四区在线视频| 欧美激情自拍偷拍| 一区二区三区欧美视频| 亚洲高清久久久| 日韩不卡一区二区| 精品一区二区免费视频| 国产mv日韩mv欧美| 色中色一区二区| 91精品国产91久久久久久最新毛片| 日韩亚洲电影在线| 日本一区二区三区高清不卡| 亚洲视频在线观看三级| 天天爽夜夜爽夜夜爽精品视频| 免费成人在线视频观看| 高清不卡在线观看av| 色狠狠色狠狠综合| 7777女厕盗摄久久久| 亚洲精品在线免费观看视频| 自拍偷拍亚洲欧美日韩| 天天综合天天综合色| 国产麻豆91精品| 欧美性受极品xxxx喷水| 欧美精品一区二区久久久| 综合久久给合久久狠狠狠97色| 天天影视网天天综合色在线播放 | 日本一区二区三区在线观看| 一级日本不卡的影视| 蜜臀av性久久久久蜜臀av麻豆| 国产·精品毛片| 欧美日韩黄色影视| 国产日本欧洲亚洲| 亚洲一区电影777| 国产一区美女在线| 91麻豆精东视频| 精品国产99国产精品| 亚洲国产精品麻豆| 成人污污视频在线观看| 欧美日韩国产三级| 亚洲视频一区二区在线|