I fixed it,
i did a full rewrite of the server's http sys (glad i confined it to one header file).
it works now and is much simpler!
The issue was that for some reason accept wrote to the sockethandle instead of the clienthandle.
Because i didn't compile with debug tokens gdb didn't see it,
i did and is showed me that send() got a sigpipe causing a silent fail, but with a value in the return.
so my error handler didn't catch it either.
So i tried to output the value of every var which is able to cause the sigpipe.
It showed that my client var was empty.
Which is only used in accept and send().
So i tried to write a simple socket server and it worked.
After that i refreshed my linux socket knowledge with this page:
http://www.yolinux.com/TUTORIALS/Sockets.html
I think it just became to complicated and i must have dropped something in the code.
Oh, about the last reply, i already said that the server completely ignores headers/urls send by the browser and always reply's the same (or at least that wat is should do, but as i said it for some reason wrote to the socket handle instead of the clienthandle (what's so weird is that it does it correct when you use no path, but fails when you do use one while it doesn't even read the socket)).
Bye.