Yet Another Intercepting Proxy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

50 lines
1.2 KiB

#ifndef RESPONSE_H
#define RESPONSE_H
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "util.h"
#include "requestresponse.h"
/*
* A struct reperesenting an http request
*/
typedef struct {
// Common versions are: 0.9, 1.0, 1.1, 2.0
float version;
int statusCode;
char *statusMessage;
HeaderList *headers;
void *body;
unsigned int headerLength;
} Response;
Response* newResponse();
/*
* creates the minium viable valid response
*/
void responseBarebones(Response *rsp);
void connectionEstablished(Response *rsp);
char *responseToString(Response *rsp);
/* sets the body of a response to a string
* @param rsp the response
* @param string the string
* @param updateContentLength whether the content-length header should be auto-updated
* Note: if you want to set a binary body, use responseSetBodyRaw
*/
void responseSetBody(Response *rsp, char *string, bool updateContentLength);
// TODO:
//void responseSetBodyRaw(Response *rsp, void *body, size_t size, bool updateContentLength);
void responseAddHeader(Response *rsp, char header[]);
Response* newResponseFromSocket(int socket);
void responseFirstLine( Response *req, char line[] );
void freeResponse( Response *rsp );
#endif /* ifndef REQUEST_H */