diff options
Diffstat (limited to 'toxcore/Messenger.c')
-rw-r--r-- | toxcore/Messenger.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index 60fcc0ba..5ed94bb7 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -1091,7 +1091,7 @@ int file_control(Messenger *m, int friendnumber, uint8_t send_receive, uint8_t f | |||
1091 | } | 1091 | } |
1092 | } | 1092 | } |
1093 | 1093 | ||
1094 | 1094 | #define MIN_SLOTS_FREE 4 | |
1095 | /* Send file data. | 1095 | /* Send file data. |
1096 | * | 1096 | * |
1097 | * return 1 on success | 1097 | * return 1 on success |
@@ -1108,6 +1108,10 @@ int file_data(Messenger *m, int friendnumber, uint8_t filenumber, uint8_t *data, | |||
1108 | if (m->friendlist[friendnumber].file_sending[filenumber].status != FILESTATUS_TRANSFERRING) | 1108 | if (m->friendlist[friendnumber].file_sending[filenumber].status != FILESTATUS_TRANSFERRING) |
1109 | return 0; | 1109 | return 0; |
1110 | 1110 | ||
1111 | /* Prevent file sending from filling up the entire buffer preventing messages from being sent. */ | ||
1112 | if (crypto_num_free_sendqueue_slots(m->net_crypto, m->friendlist[friendnumber].crypt_connection_id) < MIN_SLOTS_FREE) | ||
1113 | return 0; | ||
1114 | |||
1111 | uint8_t packet[MAX_DATA_SIZE]; | 1115 | uint8_t packet[MAX_DATA_SIZE]; |
1112 | packet[0] = filenumber; | 1116 | packet[0] = filenumber; |
1113 | memcpy(packet + 1, data, length); | 1117 | memcpy(packet + 1, data, length); |