diff options
author | irungentoo <irungentoo@gmail.com> | 2014-12-09 16:39:52 -0500 |
---|---|---|
committer | irungentoo <irungentoo@gmail.com> | 2014-12-09 16:39:52 -0500 |
commit | 7d27893f1a3c9b19a8c4effcb0eb357a9eedd174 (patch) | |
tree | 290838c5de60d2632c2b662bcdec52d0a11be062 | |
parent | 668ab80a49533f90ac9dc9bbb49b10a0ffdf8b27 (diff) | |
parent | d595a28b494ee2e3c06824f9263fec4dea408658 (diff) |
Merge branch 'more_consistent_custom_packet_handlers' of https://github.com/wrouesnel/toxcore
-rw-r--r-- | auto_tests/tox_test.c | 3 | ||||
-rw-r--r-- | toxav/rtp.c | 2 | ||||
-rw-r--r-- | toxcore/Messenger.c | 12 | ||||
-rw-r--r-- | toxcore/Messenger.h | 16 | ||||
-rw-r--r-- | toxcore/tox.c | 6 | ||||
-rw-r--r-- | toxcore/tox.h | 6 |
6 files changed, 29 insertions, 16 deletions
diff --git a/auto_tests/tox_test.c b/auto_tests/tox_test.c index 65364ea8..b99c5c57 100644 --- a/auto_tests/tox_test.c +++ b/auto_tests/tox_test.c | |||
@@ -70,7 +70,8 @@ void print_typingchange(Tox *m, int friendnumber, uint8_t typing, void *userdata | |||
70 | 70 | ||
71 | uint32_t custom_packet; | 71 | uint32_t custom_packet; |
72 | 72 | ||
73 | int handle_custom_packet(void *object, const uint8_t *data, uint32_t len) | 73 | int handle_custom_packet(Tox *m, uint32_t friend_num, const uint8_t *data, |
74 | uint32_t len, void *object) | ||
74 | { | 75 | { |
75 | uint8_t number = *((uint32_t *)object); | 76 | uint8_t number = *((uint32_t *)object); |
76 | 77 | ||
diff --git a/toxav/rtp.c b/toxav/rtp.c index 6eb61a81..2af89ebf 100644 --- a/toxav/rtp.c +++ b/toxav/rtp.c | |||
@@ -341,7 +341,7 @@ RTPMessage *msg_parse ( const uint8_t *data, int length ) | |||
341 | /** | 341 | /** |
342 | * Callback for networking core. | 342 | * Callback for networking core. |
343 | */ | 343 | */ |
344 | int rtp_handle_packet ( void *object, const uint8_t *data, uint32_t length ) | 344 | int rtp_handle_packet ( Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t length, void *object ) |
345 | { | 345 | { |
346 | RTPSession *session = object; | 346 | RTPSession *session = object; |
347 | RTPMessage *msg; | 347 | RTPMessage *msg; |
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index 704a34b4..7d93b2da 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -1441,13 +1441,15 @@ static int handle_custom_lossy_packet(void *object, int friend_num, const uint8_ | |||
1441 | 1441 | ||
1442 | if (m->friendlist[friend_num].lossy_packethandlers[packet[0] % PACKET_ID_LOSSY_RANGE_SIZE].function) | 1442 | if (m->friendlist[friend_num].lossy_packethandlers[packet[0] % PACKET_ID_LOSSY_RANGE_SIZE].function) |
1443 | return m->friendlist[friend_num].lossy_packethandlers[packet[0] % PACKET_ID_LOSSY_RANGE_SIZE].function( | 1443 | return m->friendlist[friend_num].lossy_packethandlers[packet[0] % PACKET_ID_LOSSY_RANGE_SIZE].function( |
1444 | m->friendlist[friend_num].lossy_packethandlers[packet[0] % PACKET_ID_LOSSY_RANGE_SIZE].object, packet, length); | 1444 | m, friend_num, packet, length, m->friendlist[friend_num].lossy_packethandlers[packet[0] % |
1445 | PACKET_ID_LOSSY_RANGE_SIZE].object); | ||
1445 | 1446 | ||
1446 | return 1; | 1447 | return 1; |
1447 | } | 1448 | } |
1448 | 1449 | ||
1449 | int custom_lossy_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, | 1450 | int custom_lossy_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, |
1450 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object) | 1451 | int (*packet_handler_callback)(Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
1452 | void *object) | ||
1451 | { | 1453 | { |
1452 | if (friend_not_valid(m, friendnumber)) | 1454 | if (friend_not_valid(m, friendnumber)) |
1453 | return -1; | 1455 | return -1; |
@@ -1490,13 +1492,15 @@ static int handle_custom_lossless_packet(void *object, int friend_num, const uin | |||
1490 | 1492 | ||
1491 | if (m->friendlist[friend_num].lossless_packethandlers[packet[0] % PACKET_ID_LOSSLESS_RANGE_SIZE].function) | 1493 | if (m->friendlist[friend_num].lossless_packethandlers[packet[0] % PACKET_ID_LOSSLESS_RANGE_SIZE].function) |
1492 | return m->friendlist[friend_num].lossless_packethandlers[packet[0] % PACKET_ID_LOSSLESS_RANGE_SIZE].function( | 1494 | return m->friendlist[friend_num].lossless_packethandlers[packet[0] % PACKET_ID_LOSSLESS_RANGE_SIZE].function( |
1493 | m->friendlist[friend_num].lossless_packethandlers[packet[0] % PACKET_ID_LOSSLESS_RANGE_SIZE].object, packet, length); | 1495 | m, friend_num, packet, length, m->friendlist[friend_num].lossless_packethandlers[packet[0] % |
1496 | PACKET_ID_LOSSLESS_RANGE_SIZE].object); | ||
1494 | 1497 | ||
1495 | return 1; | 1498 | return 1; |
1496 | } | 1499 | } |
1497 | 1500 | ||
1498 | int custom_lossless_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, | 1501 | int custom_lossless_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, |
1499 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object) | 1502 | int (*packet_handler_callback)(Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
1503 | void *object) | ||
1500 | { | 1504 | { |
1501 | if (friend_not_valid(m, friendnumber)) | 1505 | if (friend_not_valid(m, friendnumber)) |
1502 | return -1; | 1506 | return -1; |
diff --git a/toxcore/Messenger.h b/toxcore/Messenger.h index fd4646e9..ae6f54c6 100644 --- a/toxcore/Messenger.h +++ b/toxcore/Messenger.h | |||
@@ -189,6 +189,8 @@ enum { | |||
189 | FILECONTROL_RESUME_BROKEN | 189 | FILECONTROL_RESUME_BROKEN |
190 | }; | 190 | }; |
191 | 191 | ||
192 | typedef struct Messenger Messenger; | ||
193 | |||
192 | typedef struct { | 194 | typedef struct { |
193 | uint8_t client_id[crypto_box_PUBLICKEYBYTES]; | 195 | uint8_t client_id[crypto_box_PUBLICKEYBYTES]; |
194 | int friendcon_id; | 196 | int friendcon_id; |
@@ -222,18 +224,18 @@ typedef struct { | |||
222 | AVATAR_RECEIVEDATA *avatar_recv_data; // We are receiving avatar data from this friend. | 224 | AVATAR_RECEIVEDATA *avatar_recv_data; // We are receiving avatar data from this friend. |
223 | 225 | ||
224 | struct { | 226 | struct { |
225 | int (*function)(void *object, const uint8_t *data, uint32_t len); | 227 | int (*function)(Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object); |
226 | void *object; | 228 | void *object; |
227 | } lossy_packethandlers[PACKET_ID_LOSSY_RANGE_SIZE]; | 229 | } lossy_packethandlers[PACKET_ID_LOSSY_RANGE_SIZE]; |
228 | 230 | ||
229 | struct { | 231 | struct { |
230 | int (*function)(void *object, const uint8_t *data, uint32_t len); | 232 | int (*function)(Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object); |
231 | void *object; | 233 | void *object; |
232 | } lossless_packethandlers[PACKET_ID_LOSSLESS_RANGE_SIZE]; | 234 | } lossless_packethandlers[PACKET_ID_LOSSLESS_RANGE_SIZE]; |
233 | } Friend; | 235 | } Friend; |
234 | 236 | ||
235 | 237 | ||
236 | typedef struct Messenger { | 238 | struct Messenger { |
237 | 239 | ||
238 | Networking_Core *net; | 240 | Networking_Core *net; |
239 | Net_Crypto *net_crypto; | 241 | Net_Crypto *net_crypto; |
@@ -310,7 +312,7 @@ typedef struct Messenger { | |||
310 | void *msi_packet_userdata; | 312 | void *msi_packet_userdata; |
311 | 313 | ||
312 | Messenger_Options options; | 314 | Messenger_Options options; |
313 | } Messenger; | 315 | }; |
314 | 316 | ||
315 | /* Format: [client_id (32 bytes)][nospam number (4 bytes)][checksum (2 bytes)] | 317 | /* Format: [client_id (32 bytes)][nospam number (4 bytes)][checksum (2 bytes)] |
316 | * | 318 | * |
@@ -841,7 +843,8 @@ int m_msi_packet(const Messenger *m, int32_t friendnumber, const uint8_t *data, | |||
841 | * return 0 on success. | 843 | * return 0 on success. |
842 | */ | 844 | */ |
843 | int custom_lossy_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, | 845 | int custom_lossy_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, |
844 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object); | 846 | int (*packet_handler_callback)(Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
847 | void *object); | ||
845 | 848 | ||
846 | /* High level function to send custom lossy packets. | 849 | /* High level function to send custom lossy packets. |
847 | * | 850 | * |
@@ -859,7 +862,8 @@ int send_custom_lossy_packet(const Messenger *m, int32_t friendnumber, const uin | |||
859 | * return 0 on success. | 862 | * return 0 on success. |
860 | */ | 863 | */ |
861 | int custom_lossless_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, | 864 | int custom_lossless_packet_registerhandler(Messenger *m, int32_t friendnumber, uint8_t byte, |
862 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object); | 865 | int (*packet_handler_callback)(Messenger *m, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
866 | void *object); | ||
863 | 867 | ||
864 | /* High level function to send custom lossless packets. | 868 | /* High level function to send custom lossless packets. |
865 | * | 869 | * |
diff --git a/toxcore/tox.c b/toxcore/tox.c index 933f0f71..66587011 100644 --- a/toxcore/tox.c +++ b/toxcore/tox.c | |||
@@ -490,7 +490,8 @@ void tox_get_keys(Tox *tox, uint8_t *public_key, uint8_t *secret_key) | |||
490 | * return 0 on success. | 490 | * return 0 on success. |
491 | */ | 491 | */ |
492 | int tox_lossy_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, | 492 | int tox_lossy_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, |
493 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object) | 493 | int (*packet_handler_callback)(Messenger *tox, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
494 | void *object) | ||
494 | { | 495 | { |
495 | Messenger *m = tox; | 496 | Messenger *m = tox; |
496 | 497 | ||
@@ -527,7 +528,8 @@ int tox_send_lossy_packet(const Tox *tox, int32_t friendnumber, const uint8_t *d | |||
527 | * return 0 on success. | 528 | * return 0 on success. |
528 | */ | 529 | */ |
529 | int tox_lossless_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, | 530 | int tox_lossless_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, |
530 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object) | 531 | int (*packet_handler_callback)(Messenger *tox, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
532 | void *object) | ||
531 | { | 533 | { |
532 | Messenger *m = tox; | 534 | Messenger *m = tox; |
533 | 535 | ||
diff --git a/toxcore/tox.h b/toxcore/tox.h index 58d86a83..b956a38f 100644 --- a/toxcore/tox.h +++ b/toxcore/tox.h | |||
@@ -385,7 +385,8 @@ void tox_get_keys(Tox *tox, uint8_t *public_key, uint8_t *secret_key); | |||
385 | * return 0 on success. | 385 | * return 0 on success. |
386 | */ | 386 | */ |
387 | int tox_lossy_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, | 387 | int tox_lossy_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, |
388 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object); | 388 | int (*packet_handler_callback)(Tox *tox, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
389 | void *object); | ||
389 | 390 | ||
390 | /* Function to send custom lossy packets. | 391 | /* Function to send custom lossy packets. |
391 | * First byte of data must be in the range: 200-254. | 392 | * First byte of data must be in the range: 200-254. |
@@ -405,7 +406,8 @@ int tox_send_lossy_packet(const Tox *tox, int32_t friendnumber, const uint8_t *d | |||
405 | * return 0 on success. | 406 | * return 0 on success. |
406 | */ | 407 | */ |
407 | int tox_lossless_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, | 408 | int tox_lossless_packet_registerhandler(Tox *tox, int32_t friendnumber, uint8_t byte, |
408 | int (*packet_handler_callback)(void *object, const uint8_t *data, uint32_t len), void *object); | 409 | int (*packet_handler_callback)(Tox *tox, int32_t friendnumber, const uint8_t *data, uint32_t len, void *object), |
410 | void *object); | ||
409 | 411 | ||
410 | /* Function to send custom lossless packets. | 412 | /* Function to send custom lossless packets. |
411 | * First byte of data must be in the range: 160-191. | 413 | * First byte of data must be in the range: 160-191. |