summaryrefslogtreecommitdiff
path: root/core/Messenger.c
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2013-07-26 10:24:56 -0400
committerirungentoo <irungentoo@gmail.com>2013-07-26 10:24:56 -0400
commit3d1c77dc57687b7ae995dc1aeaf65bdee96341c6 (patch)
tree3a48a66c2d3b26a28aec11031170b185a5fb24a7 /core/Messenger.c
parent8c70b7c11d6d5acc08e234554f187b18876fd5d3 (diff)
Added basic Local/LAN discovery.
Diffstat (limited to 'core/Messenger.c')
-rw-r--r--core/Messenger.c21
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
536static uint32_t last_LANdiscovery;
537
538/*Send a LAN discovery packet every LAN_DISCOVERY_INTERVAL seconds*/
539static 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. */
534void doMessenger() 550void 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) */