⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umui.c

📁 嵌入式服务器源码 可执行动态页,可以自由修改
💻 C
📖 第 1 页 / 共 2 页
字号:
				group);		}	}	websMsgEnd(wp);	websFooter(wp);	websDone(wp, 200);}/******************************************************************************//* *  Delete a group */static void formDeleteGroup(webs_t wp, char_t *path, char_t *query){	char_t	*group, *ok;	a_assert(wp);	group = websGetVar(wp, T("group"), T("")); 	ok = websGetVar(wp, T("ok"), T("")); 	websHeader(wp);	websMsgStart(wp);	if (gstricmp(ok, T("ok")) != 0) {		websWrite(wp, T("Delete Group Cancelled."));	} else if ((group == NULL) || (*group == '\0')) {		websWrite(wp, T("ERROR: No group was selected."));	} else if (umGetGroupProtected(group)) {		websWrite(wp, T("ERROR: Group, \"%s\" is delete-protected."), group);	} else if (umGetGroupInUse(group)) {		websWrite(wp, T("ERROR: Group, \"%s\" is being used."),	group);	} else if (umDeleteGroup(group) != 0) {		websWrite(wp, T("ERROR: Unable to delete group, \"%s\" "), group);	} else {		websWrite(wp, T("Group, \"%s\" was successfully deleted."), group);	}	websMsgEnd(wp);	websFooter(wp);	websDone(wp, 200);}/******************************************************************************//* *  Generate HTML to create a list box containing the groups */static int aspGenerateGroupList(int eid, webs_t wp, int argc, char_t **argv){	char_t	*group;	int		row, nBytesSent, nBytes;	a_assert(wp);	row = 0;	nBytesSent = 0;	nBytes = websWrite(wp, 		T("<SELECT NAME=\"group\" SIZE=\"3\" TITLE=\"Select a Group\">"));/* *  Add a special "<NONE>" element to allow de-selection */	nBytes = websWrite(wp, T("<OPTION VALUE=\"\">[NONE]\n"));	group = umGetFirstGroup();	while (group && (nBytes > 0)) {		nBytes = websWrite(wp, T("<OPTION VALUE=\"%s\">%s\n"), group, group);		group = umGetNextGroup(group);		nBytesSent += nBytes;	}	nBytesSent += websWrite(wp, T("</SELECT>"));	return nBytesSent;}/******************************************************************************//* *  Add an access limit */static void formAddAccessLimit(webs_t wp, char_t *path, char_t *query){	char_t			*url, *method, *group, *secure, *ok;	int				nCheck;	accessMeth_t	am;	short			nSecure;	a_assert(wp);	url = websGetVar(wp, T("url"), T("")); 	group = websGetVar(wp, T("group"), T("")); 	method = websGetVar(wp, T("method"), T("")); 	secure = websGetVar(wp, T("secure"), T("")); 	ok = websGetVar(wp, T("ok"), T("")); 	websHeader(wp);	websMsgStart(wp);	if (gstricmp(ok, T("ok")) != 0) {		websWrite(wp, T("Add Access Limit Cancelled."));	} else if ((url == NULL) || (*url == 0)) {		websWrite(wp, T("ERROR:  No URL was entered."));	} else if (umAccessLimitExists(url)) {		websWrite(wp, T("ERROR:  An Access Limit for [%s] already exists."),			url);	} else {		if (method && *method) {			am = (accessMeth_t) gatoi(method);		} else {			am = AM_FULL;		}		if (secure && *secure) {			nSecure = (short) gatoi(secure);		} else {			nSecure = 0;		}		nCheck = umAddAccessLimit(url, am, nSecure, group);		if (nCheck != 0) {			websWrite(wp, T("Unable to add Access Limit for [%s]"),	url);		} else {			websWrite(wp, T("Access limit for [%s], was successfully added."),				url);		}	}	websMsgEnd(wp);	websFooter(wp);	websDone(wp, 200);}/******************************************************************************//* *  Delete an Access Limit */static void formDeleteAccessLimit(webs_t wp, char_t *path, char_t *query){	char_t	*url, *ok;	a_assert(wp);	url = websGetVar(wp, T("url"), T("")); 	ok = websGetVar(wp, T("ok"), T("")); 	websHeader(wp);	websMsgStart(wp);	if (gstricmp(ok, T("ok")) != 0) {		websWrite(wp, T("Delete Access Limit Cancelled"));	} else if (umDeleteAccessLimit(url) != 0) {		websWrite(wp, T("ERROR: Unable to delete Access Limit for [%s]"), 			url);	} else {		websWrite(wp, T("Access Limit for [%s], was successfully deleted."), 			url);	}	websMsgEnd(wp);	websFooter(wp);	websDone(wp, 200);}/******************************************************************************//* *  Generate HTML to create a list box containing the access limits */static int aspGenerateAccessLimitList(int eid, webs_t wp, 									  int argc, char_t **argv){	char_t	*url;	int		row, nBytesSent, nBytes;	a_assert(wp);	row = nBytesSent = 0;	url = umGetFirstAccessLimit();	nBytes = websWrite(wp, 		T("<SELECT NAME=\"url\" SIZE=\"3\" TITLE=\"Select a URL\">"));	while (url && (nBytes > 0)) {		nBytes = websWrite(wp, T("<OPTION VALUE=\"%s\">%s\n"), url, url);		url = umGetNextAccessLimit(url);		nBytesSent += nBytes;	}	nBytesSent += websWrite(wp, T("</SELECT>"));	return nBytesSent;}/******************************************************************************//* *  Generate HTML to create a list box containing the access methods */static int aspGenerateAccessMethodList(int eid, webs_t wp, 									   int argc, char_t **argv){	int		nBytes;	a_assert(wp);	nBytes = websWrite(wp, 		T("<SELECT NAME=\"method\" SIZE=\"3\" TITLE=\"Select a Method\">"));	nBytes += websWrite(wp, T("<OPTION VALUE=\"%d\">FULL ACCESS\n"), 		AM_FULL);	nBytes += websWrite(wp, T("<OPTION VALUE=\"%d\">BASIC ACCESS\n"), 		AM_BASIC);	nBytes += websWrite(wp, T("<OPTION VALUE=\"%d\" SELECTED>DIGEST ACCESS\n"), 		AM_DIGEST);	nBytes += websWrite(wp, T("<OPTION VALUE=\"%d\">NO ACCESS\n"), 		AM_NONE);	nBytes += websWrite(wp, T("</SELECT>"));	return nBytes;}/******************************************************************************//* *  Generate HTML to create a list box containing privileges */static int aspGeneratePrivilegeList(int eid, webs_t wp, 									int argc, char_t **argv){	int		nBytes;	a_assert(wp);	nBytes = websWrite(wp, T("<SELECT NAME=\"privilege\" SIZE=\"3\" "));	nBytes += websWrite(wp, T("MULTIPLE TITLE=\"Choose Privileges\">"));	nBytes += websWrite(wp, T("<OPTION VALUE=\"%d\">READ\n"), PRIV_READ);	nBytes += websWrite(wp, T("<OPTION VALUE=\"%d\">EXECUTE\n"), PRIV_WRITE);	nBytes += websWrite(wp, T("<OPTION VALUE=\"%d\">ADMINISTRATE\n"), 		PRIV_ADMIN);	nBytes += websWrite(wp, T("</SELECT>"));	return nBytes;}/******************************************************************************//* *  Save the user management configuration to a file */static void formSaveUserManagement(webs_t wp, char_t *path, char_t *query){	char_t	*ok;	a_assert(wp);	ok = websGetVar(wp, T("ok"), T("")); 	websHeader(wp);	websMsgStart(wp);	if (gstricmp(ok, T("ok")) != 0) {		websWrite(wp, T("Save Cancelled."));	} else if (umCommit(NULL) != 0) {		websWrite(wp, T("ERROR: Unable to save user configuration."));	} else {		websWrite(wp, T("User configuration was saved successfully."));	}	websMsgEnd(wp);	websFooter(wp);	websDone(wp, 200);}/******************************************************************************//* *  Load the user management configuration from a file */static void formLoadUserManagement(webs_t wp, char_t *path, char_t *query){	char_t	*ok;	a_assert(wp);	ok = websGetVar(wp, T("ok"), T("")); 	websHeader(wp);	websMsgStart(wp);	if (gstricmp(ok, T("ok")) != 0) {		websWrite(wp, T("Load Cancelled."));	} else if (umRestore(NULL) != 0) {		websWrite(wp, T("ERROR: Unable to load user configuration."));	} else {		websWrite(wp, T("User configuration was re-loaded successfully."));	}	websMsgEnd(wp);	websFooter(wp);	websDone(wp, 200);}/******************************************************************************//* *  Message start and end convenience functions */static void	websMsgStart(webs_t wp){	websWrite(wp, MSG_START);}static void	websMsgEnd(webs_t wp){	websWrite(wp, MSG_END);}/******************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -