📄 history.txt
字号:
修改http.h中的RequestData结构,增加客户端IP记录项。
修改thread:WebChild将/cmd?[command]的处理程序,转移至func模块。
修改web:login.js将OnRegister中的连接指向register.htm,并建立register.htm文件,使用post方式向服务器提交/cmd?Register指令完成注册。
[2001/07/02] 目前的源程序包(开发版0.1.2):schat-2001-06-05.zip
修改http:GetRequestInfo的读取数据部分,增加函数Recv用于读取数据,Recv读取数据具有超时检测功能。
修改system, roomuser使用新的数据库封装库。
修改mysqlfunc对MySQL连接库进行再次包装,对数据库连接长时间不通信出现连接关闭等问题增加了处理程序。
修改http:GetRequestData的Check POST Data部分对慢速网络数据延迟做了处理,在300s后放弃处理。
[2001/06/05] 目前的源程序包(开发版0.1.1):schat-2001-06-05.zip
修改thread:WebChild在/cmd?Enter部分一时疏忽if( up1->status && 0x4000 )多写了一个&,登陆页面上的包厢开关不起作用。
修改http:GetRequestData在Check POST Data中strncpy(form,buf,length)处理之后又增加了form[length]='\0',提高代码的可靠性,如果不这样做在某些系统上会出现错误。
修改thread:WebChild在Logout部分把parent.close()改成了top.close();
修改thread:WebChild对Normal GET和POST的处理部分做了修改可以处理test.html?abc=def这样的请求格式了。
[2001/06/03] 目前的源程序包(稳定版0.1.0):schat-2001-06-04.zip
增加testform.htm用于测试系统处理表单的状况。
修改database.txt增加了几个用于测试的账号test1 -- test9,密码与用户名相同。
修改thread:WebChild预留了查找,在线列表,注册的接口。
增加func部分,用于扩展功能:注册,查找,在线列表,踢人等。
修改http:GetRequestData的Check POST Data部分,在执行strncpy(form,buf,length)时,由于buf中的最后可能含有不属于数据的换行符号,超过了数据长度length,从而造成溢出。
修改thread:WebChild增加对RDp的非空判断,增加一点提示信息。
修改http:GetRequestInfo对从浏览器发来的请求数据按照行分割后,再删除'\r',增加一个处理语句(两个地方)del_ch(sp1->msg,'\r')。
修改http:GetRequestData增加对p->Request的非空判断。
[2001/06/03] 目前的源程序包(开发版0.0.9):schat-2001-06-03.zip
增加mysqlfunc:MyDB数据结构,但是没有使用,考虑到mysql连接长时间没有数据通信可能会断掉,目前没有遇到这个问题,所以预留接口。
修改mysqlfunc:MySqlQuery增加调试信息。
扩展roomuser:USERINFO结构中的数组一个字节,用于存储字符串结束符:'\0'。
扩展roomuser:ROOMINFO结构中的数组一个字节,用于存储字符串结束符:'\0'。
扩展roomuser:CHATMSG结构中的数组一个字节,用于存储字符串结束符:'\0'。
修改socketfunc:IncSocketBuf把sysinfo.SocketLeftWarning改为sysinfo.SocketLeftWarning*2
修改msg:AddWords对printf("Roomid: %d, ID=......",......);进行了简单的修改,输出调试信息。
修改socketfunc:GetSocketIP把addrlen=MAXSOCKADDR;改成addrlen=sizeof(struct sockaddr_in);解决在Solaris下内存溢出的问题。
增加roomuser:GenUID用来生成SessionID,加密用户的连接密码
修改roomuser:GetRN的型参类型char *id改成int id
修改roomuser:GetRP的型参类型char *id改成int id
修改thread:webchild将/cmd?Login分成两部分:/cmd?Login和/cmd?Enter,引入SessionID用于用户认证。
增加thread:WriteRedirct负责发送重定向http头
[2001/05/18] 目前的源程序包(开发版0.0.8):schat-2001-05-18.zip
修改say.htm,chatmain.htm,msg.c:AddWords增加清屏操作。
修改say.htm修正了察看历史记录的bug。
修改say.htm,chatmain.htm支持滚屏控制。
修改socketchat.c把schat.pid放在web目录的上一级,兼容*nix操作系统。
增加http.h:DefaultHTML方便对缺省请求的设置#define DefaultHTML "login.htm"。
修改thread.c:WebChild的部分支持缺省请求的设置。
修改http.c:GetFormVarValue和GetQueryVarValue,以后这两个函数将直接返回在RequestData链表中的数据,不再另外申请内存,返回数据。
把处理浏览器请求信息的程序,独立出来,增加了几个处理函数(http.c),同时增加了相应的数据结构:RequestData和RequestInfo,下面是新增函数列表:
RequestInfo *GetRequestInfo(int ,char *);
char * GetRIVarValue(RequestInfo *,char *);
RequestInfo * FreeRI(RequestInfo *);
RequestData * GetRequestData(int);
RequestData * FreeRD(RequestData *);
增加base.c:StrLen,Strcmp和StrnCmp几个函数壳,修改所有的代码,使用这几个壳,不再直接使用原有系统函数。
修正database.txt错误,现在可以直接使用mysql -u root -p[password] < database.txt命令建立数据库了!
[2001/04/11] 目前的源程序包(开发版0.0.7):schat-2001-04-11.zip
感谢zzjie制作了FreeBSD下的安装说明。
修改say.htm 将saywhat[i]=waywhat[i+1];改为saywhat[i]=saywhat[i+1];
修改msg.c:AddWords将javascript:SelectUser改为javascript:parent.SelectUser
修改msg.c:WebChild里的logout部分,一些小的修改。
修改socketfunc:AntiTimeOut 有人掉线的话,强制输出信息
修改msg:SendData 区分发往不同房间的信息,支持私聊
修改roomuser:OutPutUserList 输出用户在线列表时区分房间
修改socketfunc:AddSocket 增加控制语句,正常显示最高在线人数
修改http:GetFormData 修正发言中的“=”后面的信息没有输出的错误,同时对应修改thread:WebChild表单处理部分
修改thread:WebChild里的表单处理部分,对于a2c()的过滤位置进行了修正
修改msg:AddWords 增加了对“<”“>”的过滤和转换
[2001/03/07] 目前的源程序包(开发版0.0.6):schat-2001-03-07.zip
增加文档 <HTTP 1.1状态代码及其含义>
修改了thread.h文件,解决宏定义PTHREAD_THREADS_MAX的未定义问题,支持在Solaris下的编译
修改了thread.c文件,把线程锁变量mlock改名为acclock,避免在Solaris下的冲突
修改了socketchat.h文件,解决宏定义SIGCLD的未定义问题,支持在System V和FreeBSD下的编译
修改了login.htm,chatmain.htm,say.htm三个模版
在roomuser中增加了logout(),outputuserlist(),outputroomlist()函数
在socketfunc中增加了delsocket清理退出用户的socket连接
修改了cache模块中的GetFileData,增加返回数据长度的功能
重写了msg中的AddWords。
还有其它一些小的改进,这次的程序变动比较大,请大家仔细的把程序看一下,多提意见和建议。
版本0.0.5因功能不完善,没有发布。
[2001/02/11] 目前的源程序包(开发版0.0.4):schat-2001-02-11.zip
为了以后开发的方便,把schat.c进行了拆分,分成11个模块
完善了缓存机制(Cache模块),增加了存储文件长度的变量和记录文件最后更新时间的变量,根据最后更新时间判断是否刷新缓存
使用MySql数据库,存储房间,用户数据。
对right.htm做了修改,进入房间后,在right.htm的头部显示相应的房间名称
[2001/02/05] 目前的源程序包(开发版0.0.3):schat-2001-02-05.zip
更详细的开发文档(Word2000格式)。
修正了bugs。
[2001/01/10] 目前的源程序包(开发版0.0.2):schat-2001-01-10.zip
增加了简单的开发文档。
解决了判断用户端关闭了浏览器的问题。
修改了线程创建函数(不知道在Solaris下的问题解决没有,请大家帮忙测试)
整理了一下源代码,增加了更多的注释
[2001/01/04] 目前的源程序包(开发版0.0.1):schat-2001-01-04.zip
源代码没有进行整理,比较乱,有时间我会整理一下的。
编译方法:解开文件,chmod +x r然后./r就ok
系统主体采用多线程设计,采用C语言编写,在linux2.2.16下开发调试。
已经完成了WebServer支持部分,HTML页面设计部分。
设计了简单的用户数据存储结构,今后要改为MySQL接口。
能够进行登陆认证了。
到了处理用户关闭浏览器的时候卡住了,该歇歇了。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -