diff options
Diffstat (limited to 'core/Messenger.c')
-rw-r--r-- | core/Messenger.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/core/Messenger.c b/core/Messenger.c index d58e895c..faa3cefc 100644 --- a/core/Messenger.c +++ b/core/Messenger.c | |||
@@ -530,6 +530,22 @@ static void doInbound() | |||
530 | } | 530 | } |
531 | } | 531 | } |
532 | 532 | ||
533 | /*Interval in seconds between LAN discovery packet sending*/ | ||
534 | #define LAN_DISCOVERY_INTERVAL 60 | ||
535 | |||
536 | static uint32_t last_LANdiscovery; | ||
537 | |||
538 | /*Send a LAN discovery packet every LAN_DISCOVERY_INTERVAL seconds*/ | ||
539 | static void LANdiscovery() | ||
540 | { | ||
541 | if(last_LANdiscovery + LAN_DISCOVERY_INTERVAL < unix_time()) | ||
542 | { | ||
543 | send_LANdiscovery(htons(PORT)); | ||
544 | last_LANdiscovery = unix_time(); | ||
545 | } | ||
546 | } | ||
547 | |||
548 | |||
533 | /* the main loop that needs to be run at least 200 times per second. */ | 549 | /* the main loop that needs to be run at least 200 times per second. */ |
534 | void doMessenger() | 550 | void doMessenger() |
535 | { | 551 | { |
@@ -541,7 +557,8 @@ void doMessenger() | |||
541 | #ifdef DEBUG | 557 | #ifdef DEBUG |
542 | /* if(rand() % 3 != 1) //simulate packet loss */ | 558 | /* if(rand() % 3 != 1) //simulate packet loss */ |
543 | /* { */ | 559 | /* { */ |
544 | if(DHT_handlepacket(data, length, ip_port) && LosslessUDP_handlepacket(data, length, ip_port) && friendreq_handlepacket(data, length, ip_port)) | 560 | if(DHT_handlepacket(data, length, ip_port) && LosslessUDP_handlepacket(data, length, ip_port) && |
561 | friendreq_handlepacket(data, length, ip_port) && LANdiscovery_handlepacket(data, length, ip_port)) | ||
545 | { | 562 | { |
546 | /* if packet is discarded */ | 563 | /* if packet is discarded */ |
547 | printf("Received unhandled packet with length: %u\n", length); | 564 | printf("Received unhandled packet with length: %u\n", length); |
@@ -556,6 +573,7 @@ void doMessenger() | |||
556 | DHT_handlepacket(data, length, ip_port); | 573 | DHT_handlepacket(data, length, ip_port); |
557 | LosslessUDP_handlepacket(data, length, ip_port); | 574 | LosslessUDP_handlepacket(data, length, ip_port); |
558 | friendreq_handlepacket(data, length, ip_port); | 575 | friendreq_handlepacket(data, length, ip_port); |
576 | LANdiscovery_handlepacket(data, length, ip_port); | ||
559 | #endif | 577 | #endif |
560 | 578 | ||
561 | } | 579 | } |
@@ -564,6 +582,7 @@ void doMessenger() | |||
564 | doNetCrypto(); | 582 | doNetCrypto(); |
565 | doInbound(); | 583 | doInbound(); |
566 | doFriends(); | 584 | doFriends(); |
585 | LANdiscovery(); | ||
567 | } | 586 | } |
568 | 587 | ||
569 | /* returns the size of the messenger data (for saving) */ | 588 | /* returns the size of the messenger data (for saving) */ |