cs-3516-assignment-1/server/status_codes.c

75 lines
1.9 KiB
C

#include "status_codes.h"
#include <stdlib.h>
const char *STATUS_CODES_100[] = {
"Continue",
"Switching Protocols"
};
const char *STATUS_CODES_200[] = {
"OK",
"Created",
"Accepted",
"Non-Authoritative Information",
"No Content",
"Reset Content",
"Partial Content",
};
const char *STATUS_CODES_300[] = {
"Multiple Choices",
"Moved Permanently",
"Found",
"See Other",
"Not Modified",
"Use Proxy",
NULL, // There is no status code 306
"Temporary Redirect",
};
const char *STATUS_CODES_400[] = {
"Bad Request",
"Unauthorized",
"Payment Required",
"Forbidden",
"Not Found",
"Method Not Allowed",
"Not Acceptable",
"Proxy Authentication Required",
"Request Time-out",
"Conflict",
"Gone",
"Length Required",
"Precondition Failed",
"Request Entity Too Large",
"Request-URI Too Large",
"Unsupported Media Type",
"Requested range not satisfiable",
"Expectation Failed",
};
const char *STATUS_CODES_500[] = {
"Internal Server Error",
"Not Implemented",
"Bad Gateway",
"Service Unavailable",
"Gateway Time-out",
"HTTP Version not supported",
};
const char *get_message_from_status_code(int status_code) {
if (status_code >= 100 && status_code < 100 + NUM_100_STATUS_CODES) {
return STATUS_CODES_100[status_code - 100];
} else if (status_code >= 200 && status_code < 200 + NUM_200_STATUS_CODES) {
return STATUS_CODES_200[status_code - 200];
} else if (status_code >= 300 && status_code < 300 + NUM_300_STATUS_CODES) {
return STATUS_CODES_300[status_code - 300];
} else if (status_code >= 400 && status_code < 400 + NUM_400_STATUS_CODES) {
return STATUS_CODES_400[status_code - 400];
} else if (status_code >= 500 && status_code < 500 + NUM_500_STATUS_CODES) {
return STATUS_CODES_500[status_code - 500];
}
return NULL;
}