markparticle / WebServer

C++ Linux WebServer服务器
Apache License 2.0
3.49k stars 730 forks source link

为什么每次登录或注册后日志会报一个error #67

Open CedricYin opened 2 years ago

CedricYin commented 2 years ago

日志的一部分:

2022-09-05 21:52:26.966223 [info] : Client[19] in! 2022-09-05 21:52:26.967184 [info] : Verify name:admin pwd:123 2022-09-05 21:52:26.969072 [error]: RequestLine Error 2022-09-05 21:52:26.969642 [info] : Client[18] quit!

CedricYin commented 2 years ago

解决了,因为处理了一条空行,直接改成modEpollfd那个函数就好了(算是一个小bug?)

jade1998 commented 1 year ago

应该是因为body后不是\r\n结束,然后执行if(lineEnd == buff.BeginWrite()) break, 没有将readbuff清空导致的吧

SamsonHe commented 1 year ago

是的,就是因为body结尾的问题。

1962401791 commented 1 year ago
    if(lineEnd == buff.BeginWrite()) { 
      //当方法体为POST的时候,此时会导致lineEnd已经到写端写的位置,提前退出而没有偏移readpos_
        if(method_=="POST"&&state_==FINISH){
           buff.RetrieveUntil(lineEnd);
        }
      break;
       }

//search函数在没找到子序列的时候会直接找到末尾的地址,所以后续不需要加2了

JehanRio commented 1 year ago

解决了,因为处理了一条空行,直接改成modEpollfd那个函数就好了(算是一个小bug?)

请问有修改后的代码吗,咋改的 @yesanyou

CedricYin commented 1 year ago

解决了,因为处理了一条空行,直接改成modEpollfd那个函数就好了(算是一个小bug?)

请问有修改后的代码吗,咋改的 @yesanyou

可以看我repo的webserver项目

JehanRio commented 1 year ago

解决了,因为处理了一条空行,直接改成modEpollfd那个函数就好了(算是一个小bug?)

请问有修改后的代码吗,咋改的 @yesanyou

可以看我repo的webserver项目

改了,但好像也有一点bug,每一次的登录/注册的日志输出,都需要下一次操作,才会打印出来,请问你有这个问题吗