diff --git a/core/friend_requests.c b/core/friend_requests.c index a524797f..d1b0da57 100644 --- a/core/friend_requests.c +++ b/core/friend_requests.c @@ -34,29 +34,27 @@ int send_friendrequest(uint8_t * public_key, uint8_t * data, uint32_t length) { uint8_t packet[MAX_DATA_SIZE]; int len = create_request(packet, public_key, data, length, 32); /* 32 is friend request packet id */ + if(len == -1) - { return -1; - } + IP_Port ip_port = DHT_getfriendip(public_key); + if(ip_port.ip.i == 1) - { return -1; - } + if(ip_port.ip.i != 0) { if(sendpacket(ip_port, packet, len) != -1) - { return 0; - } return -1; } int num = route_tofriend(public_key, packet, len); + if(num == 0) - { return -1; - } + return num; } @@ -83,9 +81,7 @@ static uint16_t recieved_requests_index; static void addto_recievedlist(uint8_t * client_id) { if(recieved_requests_index >= MAX_RECIEVED_STORED) - { recieved_requests_index = 0; - } memcpy(recieved_requests[recieved_requests_index], client_id, crypto_box_PUBLICKEYBYTES); ++recieved_requests_index; @@ -96,13 +92,11 @@ static void addto_recievedlist(uint8_t * client_id) static int request_recieved(uint8_t * client_id) { uint32_t i; + for(i = 0; i < MAX_RECIEVED_STORED; ++i) - { if(memcmp(recieved_requests[i], client_id, crypto_box_PUBLICKEYBYTES) == 0) - { return 1; - } - } + return 0; } @@ -114,36 +108,27 @@ int friendreq_handlepacket(uint8_t * packet, uint32_t length, IP_Port source) { if(length <= crypto_box_PUBLICKEYBYTES * 2 + crypto_box_NONCEBYTES + 1 + ENCRYPTION_PADDING && length > MAX_DATA_SIZE + ENCRYPTION_PADDING) - { return 1; - } - if(memcmp(packet + 1, self_public_key, crypto_box_PUBLICKEYBYTES) == 0)//check if request is for us. + if(memcmp(packet + 1, self_public_key, crypto_box_PUBLICKEYBYTES) == 0) /* check if request is for us. */ { if(handle_friendrequest_isset == 0) - { return 1; - } + uint8_t public_key[crypto_box_PUBLICKEYBYTES]; uint8_t data[MAX_DATA_SIZE]; int len = handle_request(public_key, data, packet, length); + if(len == -1) - { return 1; - } if(request_recieved(public_key)) - { return 1; - } + addto_recievedlist(public_key); (*handle_friendrequest)(public_key, data, len); } - else//if request is not for us, try routing it. - { + else /* if request is not for us, try routing it. */ if(route_packet(packet + 1, packet, length) == length) - { return 0; - } - } } return 1; -} \ No newline at end of file +}