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.
 
 
 
 

42 lines
852 B

#pragma once
#include "webserv.hpp"
typedef std::map< string, std::vector< string > > request_t;
class Client {
int _fd;
ip_port_t _ip_port;
Master *_parent;
string _method;
string _uri;
string _host;
int _len;
int _last_len;
Server *_server;
Route *_route;
string _header;
string _body;
request_t _request;
public:
Client(int fd, ip_port_t ip_port, Master *parent);
~Client(void);
void clean(void);
bool parseHeader(Env *env);
string header_pick(string key, size_t id);
void answer();
bool check_method();
void create_file(string path);
void send_cgi(string cgi, string path);
void send_cgi_redir(string cgi, string path);
void send_error(int error_code);
void send_answer(string msg);
bool getHeader(Env *env, string paquet);
bool getBody(string paquet);
friend class Master;
};