#include #include #include #include #include #include "server.h" int returnRequest(int socket, char *message, int status, SSL *ssl) { if ( enableHTTPS ) { SSL_write(ssl, message, strlen(message)); SSL_get_fd(ssl); SSL_free(ssl); } else { send(socket, message, strlen(message), 0); } return 0; } int return200Request(int socket, unsigned char *content, SSL *ssl) { char *message = ""; message = calloc(strlen((char *)content) + 128, sizeof(unsigned char)); sprintf(message, "HTTP/1.1 200 OK\nContent-Length: %zu\nConnection: close\n\n%s\n", strlen((char *)content), content); return returnRequest(socket, message, 200, ssl); } int return201Request(int socket, unsigned char *content, SSL *ssl) { char *message = ""; message = calloc(strlen((char *)content) + 128, sizeof(unsigned char)); sprintf(message, "HTTP/1.1 201 Created\nContent-Length: %zu\nConnection: close\n\n%s\n", strlen((char *)content), content); return returnRequest(socket, message, 201, ssl); } int return404Request(int socket, SSL *ssl) { char *message = "HTTP/1.1 404 Not Found\nContent-Length: 12\nConnection: close\n\n404 Request\n"; return returnRequest(socket, message, 404, ssl); } int return400Request(int socket, SSL *ssl) { char *message = "HTTP/1.1 400 HTTP Request Not Valid\nContent-Length: 0\nConnection: close\n\n"; return returnRequest(socket, message, 400, ssl); } int return500Request(int socket, SSL *ssl) { char *message = "HTTP/1.1 500 Internal Server Error\nContent-Length: 0\nConnection: close\n\n"; return returnRequest(socket, message, 500, ssl); } int return501Request(int socket, SSL *ssl) { char *message = "HTTP/1.1 501 Not Implemented\nContent-Length: 0\nConnection: close\n\n"; return returnRequest(socket, message, 501, ssl); }