0

I have just finished the 4 functions from Pset 6 (server.c). Well, everything works "fine". If I request /cat.html it returns HTTP/1.1 200 OK and if request cat.exe it returns the most famous server response 404 Not found. Also if I request cat.jpg it return the happy cat! And so on... But when I run check50 2015.fall.pset6.server1 server.c, says that :( Two spaces after GET returns error code and :( Two spaces before HTTP/1.1 returns error code if you want to take a look at the output: https://sandbox.cs50.net/checks/8ee5760bad0f44c580b97b9efee6956c. Well I've spent some hours trying to debug it, trying to find out what does that errors mean, but I think it's time to ask for help! I think that the problem may rely on my parse function. My parse function: Am I touching memory that is not supposed to be accesed? Am I properly null-terminate string? I've tried different approaches but with no success so far. Thank you very much for your help. Greetings.

1 Answer 1

0

Your program may work properly, however it doesn't adhere to the specs. As per the RFC document cited in the pset instructions (emphasis added):

A request-line begins with a method token, followed by a single space (SP), the request-target, another single space (SP), the protocol version, and ends with CRLF.

According to man strtok:

... a sequence of two or more contiguous delimiter bytes in the parsed string is considered to be a single delimiter,

Those two factors are at the heart of the check50 failures.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .