def sendMessage(data, communication, clientId, sock, key): message = request.Request() message = setDefaultClient(message) message.command = data message.url = input("Url => ") message.clientId = clientId message.clientInfo = socket.gethostname().upper() if ((message.command == "GET") or (message.command == "DELETE")): message.content = "" elif (message.command == "POST"): try: archive = open(message.url, 'r') message.content += archive.read() archive.close() except: print("Arquivo não localizado!") exit(1) else: pass message.signature = communication.hmacFromRequest(message, key) communication.sendMessage(sock, message) return message
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 sendMessage(data, communication, clientId, sock, key, flag, url): message = {} message = setDefaultClient(message) message['command'] = data if flag: message['url'] = input("Url => ") else: message['url'] = url message['clientId'] = clientId message['clientInfo'] = socket.gethostname().upper() if ((message['command'] == "GET") or (message['command'] == "DELETE")): message['content'] = "" elif (message['command'] == "POST"): try: archive = open(message['url'], 'r') message['content'] += archive.read() archive.close() except: print("Arquivo não localizado!") exit(1) message['signature'] = communication.hmacFromRequest(message, key) communication.sendMessage(sock, message) return message
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()