Henry's Notebook
Many strange things
搜索
菜单
导航
首页
最近更改
随机页面
帮助
Henry's Home
个人资料
个人资料
创建账户
登录
消息
目前您没有通知。请访问您的
讨论页
以查看过去消息。
页面工具
内容页面
讨论
查看源代码
历史
首页
»
页面s
查看“BBS 用户信息”的源代码
←
BBS 用户信息
页面上次由
HenryHu
编辑于12年前
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:emailconfirmed
您可以查看与复制此页面的源代码。
[[Category:BBS 代码分析]] == User Record == 一个用户的信息,所有登录共用的。 <source lang="c"> struct userec { /* Structure used to hold information in */ char userid[IDLEN + 2]; /* PASSFILE */ char flags; /*一些标志,戒网,版面排序之类的*/ unsigned char title; /*用户级别*/ time_t firstlogin; char lasthost[16]; unsigned int numlogins; unsigned int numposts; #ifdef CONV_PASS char passwd[OLDPASSLEN]; char unused_padding[2]; #endif char username[NAMELEN]; unsigned int club_read_rights[MAXCLUB>>5]; unsigned int club_write_rights[MAXCLUB>>5]; unsigned char md5passwd[MD5PASSLEN]; unsigned userlevel; time_t lastlogin; time_t stay; int signature; unsigned int userdefine[2]; time_t notedate; int noteline; int notemode; time_t exittime; /* 生日数据转移到 userdata 结构中 */ unsigned int usedspace; /* used space of user's mailbox, in bytes */ #ifdef HAVE_USERMONEY int money; int score; char unused[20]; #endif }; struct UCACHE { ucache_hashtable hashtable; ucache_hashtable hashusage; int hashhead[UCACHE_HASHSIZE + 1]; int next[MAXUSERS]; time_t uptime; int number; #ifdef HAVE_CUSTOM_USER_TITLE char user_title[255][USER_TITLE_LEN]; //定义用户的称号字符串。 #endif struct userec passwd[MAXUSERS]; }; static struct UCACHE *uidshm = NULL; </source> == ucache.c == ; ucache_lock ; ucache_unlock [(int fd)] === Hash相关 === ucache_hashinit ucache_hash_deep [(const char *userid)] ; ucache_hash [(const char *userid)] * UCache.Hash() === ucache初始化 === fillucache [(struct userec *uentp, int *number, int *prev)] flush_ucache load_ucache ; resolve_ucache * UCache.Init() detach_ucache === 用户ID相关 === ; getuserid [(char *userid, int uid)] * UserRecord.GetUserId() setuserid_internal [(int num, const char *userid)] setuserid2 [(int num, const char *userid)] setuserid [(int num, const char *userid)] searchnewuser ; searchuser [(const char *userid)] * UCache.SearchUser() ; getuser [(const char *userid, struct userec **user)] * UCache.GetUser() getuserid2 [(int uid)] u_namearray [(char buf[][IDLEN + 1], int *pnum, char *tag)] getnewuserid3 [(char *userid)] getnewuserid2 [(char *userid)] ; getuserbynum [(int num)] * UCache.GetUserByUid() getnewuserid [(char *userid)] update_user [(struct userec *user, int num, int all)] apply_users [(int (*fptr) (struct userec *, char *), char *arg)] get_giveupinfo [(char* userid,int* basicperm,int s[10][2])] save_giveupinfo [(struct userec* lookupuser,int lcount,int s[10][2])] setcachehomefile [(char* path,const char* user,int unum,char* file)] === TMPFS相关 === init_cachedata [(const char* userid,int unum)] flush_cachedata [(const char* userid)] clean_cachedata [(const char* userid,int unum)] === 登录/注销 === ; do_after_login [(struct userec* user,int unum,int mode)] : 不使用TMPFS时可以忽略 ; do_after_logout [(struct userec* user,struct user_info* userinfo,int unum,int mode)] * UCache.DoAfterLogout() '''尚未实现''' : 清理工作 === 自定义User Title相关 === load_user_title flush_user_title get_user_title [(unsigned char titleidx)] set_user_title [(unsigned char titleidx,char* newtitle)] === WWW相关 === longlock [(int signo)] www_guest_lock www_guest_unlock [(int fd)] resolve_guest_table
返回至
BBS 用户信息
。