telnet用户登陆过程:
telnet下登陆主要在src/newmain_single.c里
void main_bbs(int convit, char *argv)函数先后调用
void login_query()和void user_login()函数这两个函数是对telnet登陆用户进行的主要操作,主要包括对用户的判断和一些数据的读写;之后是对ssh登陆用户的操作,这里并未加入ssh登陆;最后程序进入阻态,登陆用户进入用户主菜单,当用户在主菜单退出登陆时,程序跳出循环;退出登陆后,子进程结束。
void login_query()函数:
主要操作:
1、telnet连接时显示一些统计信息,入在线数目、最高、wwwguest数目等,ascii码画面及站点名称等,由另一个系统文件来控制
2、对new,guest与合法ID进行不同的操作对new,进行new_register();操作其定义包含在src/register.c文件中(在 注册过程 中介绍),并建立BBS用户主目录和邮件目录;对于guest,对其权限进行限制;对于合法ID,首先独取并判断口令,然后是进行 自定义登陆IP控制 的判断,最后是口令转换(只在转换系统后,如fb2kbs,的第一次登陆有效)。
void user_login()函数:
主要操作:
1、u_enter();主要是对user_info和userdata数据结构的读写,user_info数据结构可以进行修改,比如增加几个域,来完成对用户的更多的功能;用户自定义值,保存在这个结构中,因此可以对guest的用户自定义进行赋值,来达到guest登陆使用彩色、看活动看板的功能。
2、显示留言板、十大祝福、系统热点、近期热点、今日十大、全国十大(需开通转信)等信息。
3、对密码错误的处理。
4、check_register_info();操作(在 注册过程 中介绍)
5、load_mail_list(getCurrentUser(),&user_mail_list);操作
对了,对于是否达到系统定义最大上线数目也进行了判断,如果达到最大上线数目,将不能再有用户登陆。
【 在 Netac (朗科) 的大作中提到: 】
: telnet新用户注册及审批过程:
: 以new登陆时,由src/newmain_single.c中login_query()函数判断是否是new登陆,是,则调用src/register.c中的void new_register()函数处理。
: void new_register()函数:
: ...................
--
修改:Netac FROM 218.249.29.*
FROM 218.249.29.*