From e658892793c42b2d058eed0937025ef2ddaaa372 Mon Sep 17 00:00:00 2001 From: jin-eld Date: Sun, 4 Aug 2013 15:10:37 +0300 Subject: Rename core directory because of autoconf name clash While doing the checks configure might generate "core" files and will then try to remove them. Having a "core" directory generates an error while runing the configure script. There's no workaround but to rename the core directory. --- toxcore/friend_requests.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 toxcore/friend_requests.h (limited to 'toxcore/friend_requests.h') diff --git a/toxcore/friend_requests.h b/toxcore/friend_requests.h new file mode 100644 index 00000000..2ebd557b --- /dev/null +++ b/toxcore/friend_requests.h @@ -0,0 +1,70 @@ +/* friend_requests.h + * + * Handle friend requests. + * + * Copyright (C) 2013 Tox project All Rights Reserved. + * + * This file is part of Tox. + * + * Tox is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tox is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tox. If not, see . + * + */ + +#ifndef FRIEND_REQUESTS_H +#define FRIEND_REQUESTS_H + +#include "DHT.h" +#include "net_crypto.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + uint32_t nospam; + void (*handle_friendrequest)(uint8_t *, uint8_t *, uint16_t, void *); + uint8_t handle_friendrequest_isset; + void *handle_friendrequest_userdata; + + /*NOTE: the following is just a temporary fix for the multiple friend requests received at the same time problem + TODO: Make this better (This will most likely tie in with the way we will handle spam.)*/ + +#define MAX_RECEIVED_STORED 32 + + uint8_t received_requests[MAX_RECEIVED_STORED][crypto_box_PUBLICKEYBYTES]; + uint16_t received_requests_index; +} Friend_Requests; + +/* Try to send a friendrequest to peer with public_key + data is the data in the request and length is the length. */ +int send_friendrequest(DHT *dht, uint8_t *public_key, uint32_t nospam_num, uint8_t *data, uint32_t length); +/* + * Set and get the nospam variable used to prevent one type of friend request spam + */ +void set_nospam(Friend_Requests *fr, uint32_t num); +uint32_t get_nospam(Friend_Requests *fr); + +/* set the function that will be executed when a friend request for us is received. + function format is function(uint8_t * public_key, uint8_t * data, uint16_t length) */ +void callback_friendrequest(Friend_Requests *fr, void (*function)(uint8_t *, uint8_t *, uint16_t, void *), + void *userdata); + +/* sets up friendreq packet handlers */ +void friendreq_init(Friend_Requests *fr, Net_Crypto *c); + +#ifdef __cplusplus +} +#endif + +#endif -- cgit v1.2.3