Files
SeaWeb/src/returnRequest.c
2022-02-21 15:03:26 -05:00

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);
}