通过建立用户当前连接记录表的全局结构,在线程模式下加入对用户名密码验证下的连接数限制
修改的文件
ss5main.h
加入结构
struct _OpenDevCurrConnNode
加入结构数组
struct _OpenDevCurrConnNode *OpenDevCurrConnList[MAXAUTHCACHELIST];
修改结构
struct _S5AuthCacheNode
加入互斥锁
pthread_mutex_t ODConnMutex;
加入函数指针
S5RetCode (*FreeCurrConnList)( struct _OpenDevCurrConnNode **node );
SS5Mod_authentication.h
修改函数声明
S5RetCode UpdateAuthCach(....);
S5RetCode AddAuthCache
S5RetCode GetAuthCache
加入函数声明
int OpenDevGetCurrConn(char *u);
S5RetCode OpenDevUpdateCurrConn(char *u, int modiConn);
S5RetCode OpenDevFreeCurrConnList( struct _OpenDevCurrConnNode **node );
S5RetCode OpenDevBrowseCurrConnList( struct _OpenDevCurrConnNode *node );
inline S5Limit OpenDevConnListHash( char *u );
SS5Mod_authentication.c
修改函数
S5RetCode Authentication(...)
S5RetCode UpdateAuthCach(char *u, char *p , int *connlimit);
S5RetCode AddAuthCache(char *u, char *p , int *connlimit);
S5RetCode GetAuthCache(char *u, char *p , int connlimit);
加入函数
int OpenDevGetCurrConn(char *u);
S5RetCode OpenDevUpdateCurrConn(char *u, int modiConn);
S5RetCode OpenDevFreeCurrConnList( struct _OpenDevCurrConnNode **node );
S5RetCode OpenDevBrowseCurrConnList( struct _OpenDevCurrConnNode *node );
inline S5Limit OpenDevConnListHash( char *u );
SS5Util.c
修改函数
S5FreeConfData 加入处理释放当前连接数列表OpenDevConnList
转载于:https://www.cnblogs.com/ardar/archive/2006/03/26/359222.html