Exemplo n.º 1
0
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
Exemplo n.º 2
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()
Exemplo n.º 3
0
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()