X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fhttp%2Fserver.cpp;h=04bae0b4d8c24f7f9e72177c923c19fc2234083c;hb=0cd8309240cd48fdc16d9cc433297e33a0a2cdd0;hp=066fabe39218a47fe5a58de05450c696c110888d;hpb=ede42d5bb352841e2e425972e12b8ef31ddf2123;p=libs%2Fnet.git diff --git a/source/http/server.cpp b/source/http/server.cpp index 066fabe..04bae0b 100644 --- a/source/http/server.cpp +++ b/source/http/server.cpp @@ -1,3 +1,4 @@ +#include "server.h" #include #include #include @@ -9,7 +10,6 @@ #include #include "request.h" #include "response.h" -#include "server.h" using namespace std; @@ -146,7 +146,7 @@ void Server::client_data_available(Client &cl) cl.request = make_unique(Request::parse(cl.in_buf)); string addr_str = cl.sock->get_peer_address().str(); - string::size_type colon = addr_str.find(':'); + string::size_type colon = addr_str.find(':', (addr_str[0]=='[' ? addr_str.find(']')+1 : 0)); cl.request->set_header("-Client-Host", addr_str.substr(0, colon)); if(cl.request->get_method()!="GET" && cl.request->get_method()!="POST")