Ejemplo n.º 1
0
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()
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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")