// File: mbourand[P]webserv/srcs/tcp-server.cpp
// Function: handle_client_request(Client&)
bool	handle_client_request(Client &client)
{
	std::string	data;
	try
	{
		*client.sckt >> data;
		if (g_webserv.debug && !client.req->_header_section_finished)
			hexdump_str(data, 24);
		client.req->append(data);
	}
	catch(ServerSocket::ServerSocketException &e)
	{
		return (Logger::print(e.what(), true, ERROR, NORMAL));
	}
	catch(std::invalid_argument &e)
	{
		// Si error_code est set on considère que ce n'est pas une erreur étant donné qu'on va pouvoir répondre avec _error_code de la request
		return (Logger::print(e.what(), (client.req->_error_code == 0), ERROR, NORMAL));
	}
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x98c0
movq -0xa8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x1be90
jmp 0x571d4
testb $0x1, 0x38546(%rip)     # 0x8f721
je 0x5738a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
testb $0x1, 0x190(%rax)
jne 0x5738a
leaq -0x30(%rbp), %rdi
movl $0x18, %esi
callq 0x56f90
jmp 0x57206
jmp 0x5738a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl %eax, -0xac(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x572d1
movq -0x38(%rbp), %rdi
callq 0x92a0
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0xc0(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x9b10
movq -0xc0(%rbp), %rsi
movq -0xb8(%rbp), %rdx
leaq -0x98(%rbp), %rdi
callq 0xa780
jmp 0x5727d
leaq -0x98(%rbp), %rdi
movl $0x3, %edx
movl $0x1, %ecx
movl %ecx, %esi
callq 0x5bdc0
movb %al, -0xc1(%rbp)
jmp 0x5729d
movb -0xc1(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x9c98
leaq -0x99(%rbp), %rdi
callq 0x9700
movl $0x1, -0x70(%rbp)
callq 0x9a40
jmp 0x57420
movl -0xac(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x57446
movq -0x38(%rbp), %rdi
callq 0x92a0
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0xd8(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x9b10
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0xa780
jmp 0x5732e
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x188(%rax), %eax
testl %eax, %eax
sete %al
movzbl %al, %esi
leaq -0x68(%rbp), %rdi
movl $0x3, %edx
movl $0x1, %ecx
callq 0x5bdc0
movb %al, -0xd9(%rbp)
jmp 0x5735f
movb -0xd9(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x9c98
leaq -0x69(%rbp), %rdi
callq 0x9700
movl $0x1, -0x70(%rbp)
callq 0x9a40
jmp 0x573d5
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq -0x30(%rbp), %rsi
callq 0x5dc10
jmp 0x5739d
jmp 0x57424
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x573c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x9c98
leaq -0x69(%rbp), %rdi
callq 0x9700
callq 0x9a40
jmp 0x573e5
jmp 0x5742f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x57446
jmp 0x57446
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x5740d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x9c98
leaq -0x99(%rbp), %rdi
callq 0x9700
callq 0x9a40
jmp 0x57422
jmp 0x5742f
jmp 0x57446
movb $0x0, -0x1(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x9c98
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xe0, %rsp
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x9c98
movq -0x38(%rbp), %rdi
callq 0x9af0
movq %rax, %rdi
callq 0xaa90