diff options
Diffstat (limited to 'toxcore/Messenger.c')
-rw-r--r-- | toxcore/Messenger.c | 57 |
1 files changed, 4 insertions, 53 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index 8cae2914..cdbb95f1 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -38,8 +38,6 @@ | |||
38 | static void set_friend_status(Messenger *m, int32_t friendnumber, uint8_t status); | 38 | static void set_friend_status(Messenger *m, int32_t friendnumber, uint8_t status); |
39 | static int write_cryptpacket_id(Messenger *m, int32_t friendnumber, uint8_t packet_id, uint8_t *data, uint32_t length); | 39 | static int write_cryptpacket_id(Messenger *m, int32_t friendnumber, uint8_t packet_id, uint8_t *data, uint32_t length); |
40 | 40 | ||
41 | static IP_Port get_friend_ipport(Messenger *m, int32_t friendnumber); | ||
42 | |||
43 | // friend_not_valid determines if the friendnumber passed is valid in the Messenger object | 41 | // friend_not_valid determines if the friendnumber passed is valid in the Messenger object |
44 | static uint8_t friend_not_valid(Messenger *m, int32_t friendnumber) | 42 | static uint8_t friend_not_valid(Messenger *m, int32_t friendnumber) |
45 | { | 43 | { |
@@ -51,27 +49,6 @@ static int add_online_friend(Messenger *m, int32_t friendnumber) | |||
51 | if (friend_not_valid(m, friendnumber)) | 49 | if (friend_not_valid(m, friendnumber)) |
52 | return -1; | 50 | return -1; |
53 | 51 | ||
54 | IP_Port temp_ip_port = get_friend_ipport(m, friendnumber); | ||
55 | |||
56 | if (temp_ip_port.port == 0) | ||
57 | return -1; | ||
58 | |||
59 | uint32_t i; | ||
60 | |||
61 | for (i = 0; i < m->numonline_friends; ++i) { | ||
62 | if (m->online_friendlist[i].friend_num == (uint32_t)friendnumber) | ||
63 | return 0; | ||
64 | } | ||
65 | |||
66 | Online_Friend *temp; | ||
67 | temp = realloc(m->online_friendlist, sizeof(Online_Friend) * (m->numonline_friends + 1)); | ||
68 | |||
69 | if (temp == NULL) | ||
70 | return -1; | ||
71 | |||
72 | m->online_friendlist = temp; | ||
73 | m->online_friendlist[m->numonline_friends].friend_num = friendnumber; | ||
74 | m->online_friendlist[m->numonline_friends].ip_port = temp_ip_port; | ||
75 | ++m->numonline_friends; | 52 | ++m->numonline_friends; |
76 | return 0; | 53 | return 0; |
77 | } | 54 | } |
@@ -79,37 +56,11 @@ static int add_online_friend(Messenger *m, int32_t friendnumber) | |||
79 | 56 | ||
80 | static int remove_online_friend(Messenger *m, int32_t friendnumber) | 57 | static int remove_online_friend(Messenger *m, int32_t friendnumber) |
81 | { | 58 | { |
82 | uint32_t i; | 59 | if (friend_not_valid(m, friendnumber)) |
83 | Online_Friend *temp; | 60 | return -1; |
84 | |||
85 | for (i = 0; i < m->numonline_friends; ++i) { | ||
86 | /* Equal */ | ||
87 | if (m->online_friendlist[i].friend_num == (uint32_t)friendnumber) { | ||
88 | --m->numonline_friends; | ||
89 | |||
90 | if (m->numonline_friends != i) { | ||
91 | memcpy( &m->online_friendlist[i], | ||
92 | &m->online_friendlist[m->numonline_friends], | ||
93 | sizeof(Online_Friend) ); | ||
94 | } | ||
95 | |||
96 | if (m->numonline_friends == 0) { | ||
97 | free(m->online_friendlist); | ||
98 | m->online_friendlist = NULL; | ||
99 | return 0; | ||
100 | } | ||
101 | |||
102 | temp = realloc(m->online_friendlist, sizeof(Online_Friend) * (m->numonline_friends)); | ||
103 | |||
104 | if (temp == NULL) | ||
105 | return -1; | ||
106 | |||
107 | m->online_friendlist = temp; | ||
108 | return 0; | ||
109 | } | ||
110 | } | ||
111 | 61 | ||
112 | return -1; | 62 | --m->numonline_friends; |
63 | return 0; | ||
113 | } | 64 | } |
114 | /* Set the size of the friend list to numfriends. | 65 | /* Set the size of the friend list to numfriends. |
115 | * | 66 | * |