55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <sys/socket.h>
|
|
#include <openssl/ssl.h>
|
|
|
|
#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);
|
|
}
|