The delimiter has to be " \r\n", otherwise some parts will be concatenated
// Parse the request
char *token;
const char delimiter[6] = " \r\n";
token = strtok(buffer, delimiter);
method = token;
printf("Method: %s\n", method);
token = strtok(NULL, delimiter);
filename = token;
printf("Filename: %s\n", filename);
token = strtok(NULL, delimiter);
version = token;
printf("Version: %s\n", version);
while (token != NULL) {
if (strstr(token, "Host:") != NULL) {
token = strtok(NULL, delimiter);
client_hostname = token;
break;
}
token = strtok(NULL, delimiter);
}
printf("Client hostname: %s\n", client_hostname);