goahead2.5 源码分析(4)

2018-12-05 21:23

-----------------------------------------------------------------------------------------------------------------

char_t *umGetFirstAccessLimit()

功能:获得第一个用户的访问限制路径 说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetNextAccessLimit(char_t *urlLast)

功能:获得指定访问限制路径的下一个访问限制路径 说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umAccessLimitExists(char_t *url) 功能:这个访问限制路径是否存在 说明:

-----------------------------------------------------------------------------------------------------------------

accessMeth_t umGetAccessLimitMethod(char_t *url) 功能:获得这个路径的访问方法 说明:typedef enum { AM_NONE = 0, AM_FULL, AM_BASIC, AM_DIGEST, AM_INVALID } accessMeth_t;

-----------------------------------------------------------------------------------------------------------------

int umSetAccessLimitMethod(char_t *url, accessMeth_t am) 功能:设置这个访问路径的方法 说明:

-----------------------------------------------------------------------------------------------------------------

short umGetAccessLimitSecure(char_t *url) 功能:获得这个访问路径的安全设置 说明:加密还是不加密

-----------------------------------------------------------------------------------------------------------------

int umSetAccessLimitSecure(char_t *url, short secure) 功能:设置访问路径的安全标志 说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetAccessLimitGroup(char_t *url) 功能:获得这个访问路径的组 说明:

-----------------------------------------------------------------------------------------------------------------

int umSetAccessLimitGroup(char_t *url, char_t *group) 功能:设置访问路径的组 说明:

-----------------------------------------------------------------------------------------------------------------

char_t *umGetAccessLimit(char_t *url)

功能:获得给定路径的所在的访问限制路径 说明:

-----------------------------------------------------------------------------------------------------------------

accessMeth_t umGetAccessMethodForURL(char_t *url) 功能:获得给定路径的所在的访问限制方法 说明:

-----------------------------------------------------------------------------------------------------------------

bool_t umUserCanAccessURL(char_t *user, char_t *url) 功能:判断这个路径用户是否能够访问 说明:1.用户要在 2.用户要能

3.用户组的权限要足够大,AM_READ,AM_WRITE,AM_ADMIN都可 4.用户组要使能

5.用户组访问限制的方法必须是AM_FULL、AM_BASIC、AM_DIGEST之一 6.在判断url是否属于访问限制路径,如果是,获得这个路径的访问方法和组,然后这个访问方法不能是AM_NONE,组必须和user的组一样。

-----------------------------------------------------------------------------------------------------------------

static bool_t umCheckName(char_t *name) 功能:检查字符串是否是有效的 说明:

-----------------------------------------------------------------------------------------------------------------

有两种方法: 一种是自己写:

static int initWebs(int demo) {

struct hostent *hp; struct in_addr intaddr;

char host[128], dir[128], webdir[128]; char *cp;

char_t wbuf[128]; /*

* Initialize the socket subsystem */

socketOpen();

#ifdef USER_MANAGEMENT_SUPPORT /*

* Initialize the User Management database */

umOpen();

umRestore(T(\

#endif

TABLE=users ROW=0

name=admin password=Uz

group=Administrator prot=1 disable=0 ROW=1 name=user password=Uz group=Guest prot=0 disable=0

TABLE=groups ROW=0

name=Administrator priv=4 method=3 prot=1 disable=0 ROW=1

name=Guest priv=1 method=3

prot=1 disable=0

TABLE=access ROW=0

name=/main.htm method=3 secure=0 group=Guest ROW=1

name=/eth.html method=3 secure=0 group=Guest ROW=2 name=/en/ method=3 secure=0

group=Administrator ROW=3 name=/cn/ method=3 secure=0

group=Administrator

另一种方法是:

移植好web服务器后,webs-2-5\\wwwdemo\%um\\savecfg.asp页面可以生成umconfig.txt

Emfdb.c(文件数据库)

数据库结构体

typedef struct dbTable_s { char_t *name; int nColumns;

char_t **columnNames; int *columnTypes; int nRows; int **rows; } dbTable_t;

每个table对应上面结构的一个变量。 Name是table的名字

nColumns是table有多少列 columnNames是各个列的名字

columnTypes是各个列中内容的类型,是字符串,还是整数 nRows是table有多少行

rows是:rows[n]指向各个行的指针,rows[n][m]是该行某个列整数的值或字符串的指针。

-----------------------------------------------------------------------------------------------------------------

int dbRegisterDBSchema(dbTable_t *pTableRegister) 功能:创建一个table框架 说明:

-----------------------------------------------------------------------------------------------------------------

int dbOpen(char_t *tablename, char_t *filename, int (*gettime)(int did), int flags) 功能:一些初始化 说明:

-----------------------------------------------------------------------------------------------------------------

void dbClose(int did)

功能:释放tables所在的内存 说明:

-----------------------------------------------------------------------------------------------------------------

void dbZero(int did)

功能:清空tables中的所有数据,释放内存。 说明:

-----------------------------------------------------------------------------------------------------------------

int dbSearchStr(int did, char_t *tablename, char_t *colName, char_t *value, int flags) 功能:根据表单名字、列名、列值,找到对应的row 说明:

-----------------------------------------------------------------------------------------------------------------

int dbAddRow(int did, char_t *tablename) 功能:向名字为tablename中添加一row 说明:

-----------------------------------------------------------------------------------------------------------------

int dbDeleteRow(int did, char_t *tablename, int row)


goahead2.5 源码分析(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:直译与意译

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: