def connected(client, addr, servidor): ''' Função que recebe a conexão Trata o protobuf recebido com base nos valores dele (ex: "GET /") :param client: Socket de conexão do cliente :param addr: Endereço IP e Porta do cliente ''' keyClient = 43501 #key_exchange(client) KeyServidor = 43501 #key_exchange(servidor) while True: message = communication.recvMessage(client) if message: message['signature'] = signature = communication.hmacFromRequest( message, keyClient) communication.sendMessage(servidor, message) logging.info("[Cliente]Mensagem enviada para o servidor") responseFromServer = communication.recvMessage(servidor) if responseFromServer: communication.sendMessage(client, responseFromServer) logging.info("[Servidor]Mensagem enviada para o cliente") client.close()
def connected(client, addr): ''' Função que recebe a conexão Trata o protobuf recebido com base nos valores dele (ex: "GET /") :param client: Socket de conexão do cliente :param addr: Endereço IP e Porta do cliente ''' key=43501#key_exchange(client) while True: message = communication.recvMessage(client) if message: signature = communication.hmacFromRequest(message, key) if signature == message['signature']: print('aqui') if message['command'] == "GET": response = getMethod(message['url'], message['clientId'], message['clientInfo'], key) communication.sendMessage(client, response) elif message['command'] == "POST": response = postMethod(message['url'], message['clientId'], message['clientInfo'], message['content'], key) communication.sendMessage(client, response) elif message['command'] == "DELETE": response = deleteMethod(message['url'], message['clientId'], message['clientInfo'], key) communication.sendMessage(client, response) else: response = unknownMethod(key) communication.sendMessage(client, response) client.close()
def getResponse(communication, message, sock, key, flag): responseFromServer = communication.recvMessage(sock) if responseFromServer: signature = communication.hmacFromResponse(responseFromServer, key) if signature == responseFromServer['signature']: print("\n######## RESPOSTA DO SERVIDOR ########") if message['command'] == "GET": print("STATUS:", responseFromServer['status']) if ("OK" in responseFromServer['status']): print("CONTEUDO:") print(responseFromServer['content']) if flag: if not os.path.exists("contents"): os.makedirs("contents") if (responseFromServer['url'] in ["/", ""]): archive = open("./contents/index.html", 'w') archive.write(responseFromServer['content']) archive.close() else: archive = open( "./contents/{}".format( responseFromServer['url'].split('/')[-1]), 'w') archive.write(responseFromServer['content']) archive.close() else: print("Arquivo não encontrado") elif message['command'] == "POST": print("STATUS:", responseFromServer['status']) if ("OK" in responseFromServer['status']): print("Arquivo {0} criado com sucesso!".format( responseFromServer['url'])) else: print("Falha ao criar o arquivo!") elif message['command'] == "DELETE": print("STATUS:", responseFromServer['status']) if ("OK" in responseFromServer['status']): print("Arquivo {0} deletado com sucesso!".format( responseFromServer['url'])) else: print("Falha ao deletar o arquivo!") else: print("STATUS:", responseFromServer['status']) print("Comando Desconhecido") return responseFromServer
def getResponse(communication, message, sock,key): responseFromServer = communication.recvMessage(sock, response.Response) if responseFromServer: signature = communication.hmacFromResponse(responseFromServer, key) if signature == responseFromServer.signature: print("\n######## RESPOSTA DO SERVIDOR ########") if message.command == "GET": print("STATUS:", responseFromServer.status) if("OK" in responseFromServer.status): print("CONTEUDO:") print(responseFromServer.content) if(responseFromServer.url in ["/", ""]): archive = open("index.html", 'w') archive.write(responseFromServer.content) archive.close() else: archive = open(responseFromServer.url, 'w') archive.write(responseFromServer.content) archive.close() else: print("Arquivo não encontrado") elif message.command == "POST": print("STATUS:", responseFromServer.status) if("OK" in responseFromServer.status): print("Arquivo {0} criado com sucesso!".format(responseFromServer.url)) else: print("Falha ao criar o arquivo!") elif message.command == "DELETE": print("STATUS:", responseFromServer.status) if("OK" in responseFromServer.status): print("Arquivo {0} deletado com sucesso!".format(responseFromServer.url)) else: print("Falha ao deletar o arquivo!") else: print("STATUS:", responseFromServer.status) print("Comando Desconhecido")