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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? form.c

?? 開發(fā)板bios源碼 開發(fā)板bios源碼
?? 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.2 2001/12/06 16:28:24 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"));
}

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级女性全黄久久生活片免费| 日韩av不卡一区二区| 亚洲成人中文在线| 国产999精品久久久久久| 欧美精品三级日韩久久| 国产精品久久久久久久第一福利| 日本最新不卡在线| 欧美三级三级三级爽爽爽| 欧美国产成人精品| 久久成人免费网站| 欧美麻豆精品久久久久久| 亚洲精品自拍动漫在线| 成人一道本在线| 精品福利一二区| 日本aⅴ亚洲精品中文乱码| 日本高清不卡在线观看| 国产精品高潮久久久久无| 韩国女主播成人在线| 7777精品伊人久久久大香线蕉超级流畅| 国产精品嫩草影院com| 国产最新精品免费| 亚洲精品在线观| 久久91精品国产91久久小草| 91精品一区二区三区久久久久久| 亚洲小说欧美激情另类| 日本久久电影网| 亚洲精品中文在线影院| 91蜜桃传媒精品久久久一区二区| 国产精品福利一区二区| 99免费精品视频| 中文字幕制服丝袜一区二区三区| 成人小视频免费观看| 国产精品视频线看| 99久久精品国产精品久久| 国产精品初高中害羞小美女文| 成人蜜臀av电影| 国产精品夫妻自拍| 色综合婷婷久久| 亚洲自拍偷拍麻豆| 欧美日韩一区不卡| 免费看欧美女人艹b| 日韩免费电影网站| 国产成人在线视频网址| 欧美激情一区三区| 97se狠狠狠综合亚洲狠狠| 亚洲欧美日韩一区| 717成人午夜免费福利电影| 奇米影视7777精品一区二区| 欧美tickle裸体挠脚心vk| 国产精品夜夜嗨| 中文字幕一区二区三| 欧美色视频一区| 久久er99精品| 国产精品无遮挡| 在线免费观看不卡av| 天堂一区二区在线| 久久久影院官网| 日本韩国精品一区二区在线观看| 日韩中文欧美在线| 久久精品亚洲精品国产欧美 | 亚洲免费观看视频| 欧美色国产精品| 国产一区二区在线观看视频| 国产三区在线成人av| 色88888久久久久久影院按摩| 日韩电影在线免费观看| 国产亚洲综合色| 欧美少妇bbb| 国产高清不卡二三区| 亚洲国产精品欧美一二99| 久久久久久夜精品精品免费| 欧美在线三级电影| 国产麻豆成人传媒免费观看| 亚洲一区二区三区四区五区黄 | 国产一区二区按摩在线观看| 一区二区三区中文在线| 久久精品视频一区二区| 欧美日韩激情一区二区三区| 国产成人免费在线视频| 亚洲午夜精品在线| 国产精品乱子久久久久| 91精品中文字幕一区二区三区| 99视频在线精品| 国产美女精品在线| 天天综合网天天综合色| 亚洲视频网在线直播| 久久久久免费观看| 欧美一区二区三区性视频| 91免费看`日韩一区二区| 国产美女娇喘av呻吟久久| 午夜成人免费电影| 亚洲乱码中文字幕| 中文字幕免费一区| 日韩欧美成人一区| 884aa四虎影成人精品一区| 91美女视频网站| 成人午夜视频在线| 国产综合色精品一区二区三区| 爽好久久久欧美精品| 亚洲精品成人在线| 中文字幕在线不卡一区| 久久久久久久久岛国免费| 日韩欧美亚洲国产另类| 欧美日韩国产a| 欧美色综合影院| 91国偷自产一区二区三区成为亚洲经典 | 中文字幕一区在线| 国产精品视频yy9299一区| 久久精品夜色噜噜亚洲a∨| 精品福利一二区| 久久久久久久久久看片| 久久精品一区二区| 久久精品视频一区| 中文成人av在线| 亚洲色图.com| 亚洲一区二区三区视频在线| 一区二区三区在线观看欧美| 亚洲精品国产精品乱码不99 | 蜜臀久久99精品久久久久宅男 | 337p日本欧洲亚洲大胆色噜噜| 日韩欧美一区在线观看| 日韩免费视频一区| 精品理论电影在线观看| 久久精品在线免费观看| 国产精品区一区二区三| 亚洲欧美在线aaa| 亚洲日本在线a| 亚洲一区二区三区视频在线| 婷婷综合另类小说色区| 美国欧美日韩国产在线播放| 国产精品一卡二卡在线观看| 成人开心网精品视频| 色婷婷av一区| 欧美电影影音先锋| 久久亚洲综合av| 国产精品欧美经典| 性做久久久久久久免费看| 麻豆极品一区二区三区| 成人精品视频一区| 欧美优质美女网站| 欧美zozozo| 亚洲裸体xxx| 免费观看在线色综合| 成人午夜视频福利| 欧美亚男人的天堂| 26uuu欧美| 一区二区三区高清不卡| 久久爱另类一区二区小说| 99国产欧美另类久久久精品| 欧美久久久久久久久久| 亚洲国产成人午夜在线一区| 亚洲午夜电影在线| 国产99久久久国产精品潘金网站| 在线欧美日韩国产| 久久精品人人做| 亚洲高清在线视频| 成人一区在线看| 日韩一级大片在线| 亚洲精品乱码久久久久久| 国产中文字幕一区| 欧美视频在线播放| 国产精品成人在线观看| 久久精品国产亚洲a| 91福利国产精品| 国产欧美综合在线观看第十页 | 国产99久久久久| 欧美一激情一区二区三区| 中文字幕亚洲电影| 久久99精品久久久久婷婷| 欧美伊人精品成人久久综合97| 国产精品天天看| 精油按摩中文字幕久久| 欧美日韩久久久一区| 亚洲精品欧美综合四区| 懂色av一区二区三区免费观看| 日韩亚洲欧美在线| 婷婷久久综合九色国产成人| 99精品欧美一区二区三区综合在线| 精品捆绑美女sm三区| 免费一区二区视频| 欧美久久久久久久久| 亚洲一区二区三区四区五区黄 | 久久精品视频一区| 久久 天天综合| 日韩视频在线一区二区| 日韩激情视频在线观看| 在线观看日韩国产| 亚洲视频在线一区二区| 成人av电影在线网| 中国av一区二区三区| 国产成人av电影在线| 久久夜色精品国产噜噜av| 国产在线观看一区二区| 精品国产一区二区三区久久影院| 日韩中文字幕亚洲一区二区va在线| 欧美日韩综合在线| 三级不卡在线观看| 欧美一区欧美二区| 极品少妇一区二区| 久久精品一区四区|