mirror of
https://github.com/status-im/status-go.git
synced 2025-02-02 09:56:52 +00:00
e65760ca85
This commit adds basic syncing capabilities with peers if they are both online. It updates the work done on MVDS, but I decided to create the code in status-go instead, since it's very tight to the application (similarly the code that was the inspiration for mvds, bramble, is all tight together at the database level). I reused parts of the protobufs. The flow is: 1) An OFFER message is sent periodically with a bunch of message-ids and group-ids. 2) Anyone can REQUEST some of those messages if not present in their database. 3) The peer will then send over those messages. It's disabled by default, but I am planning to add a way to set up the flags.
46 lines
1.0 KiB
C
46 lines
1.0 KiB
C
#ifndef _NETINET_IGMP_H
|
|
#define _NETINET_IGMP_H
|
|
|
|
#include <stdint.h>
|
|
#include <netinet/in.h>
|
|
|
|
struct igmp {
|
|
uint8_t igmp_type;
|
|
uint8_t igmp_code;
|
|
uint16_t igmp_cksum;
|
|
struct in_addr igmp_group;
|
|
};
|
|
|
|
#define IGMP_MINLEN 8
|
|
|
|
#define IGMP_MEMBERSHIP_QUERY 0x11
|
|
#define IGMP_V1_MEMBERSHIP_REPORT 0x12
|
|
#define IGMP_V2_MEMBERSHIP_REPORT 0x16
|
|
#define IGMP_V2_LEAVE_GROUP 0x17
|
|
|
|
#define IGMP_DVMRP 0x13
|
|
#define IGMP_PIM 0x14
|
|
#define IGMP_TRACE 0x15
|
|
|
|
#define IGMP_MTRACE_RESP 0x1e
|
|
#define IGMP_MTRACE 0x1f
|
|
|
|
#define IGMP_MAX_HOST_REPORT_DELAY 10
|
|
#define IGMP_TIMER_SCALE 10
|
|
|
|
#define IGMP_DELAYING_MEMBER 1
|
|
#define IGMP_IDLE_MEMBER 2
|
|
#define IGMP_LAZY_MEMBER 3
|
|
#define IGMP_SLEEPING_MEMBER 4
|
|
#define IGMP_AWAKENING_MEMBER 5
|
|
|
|
#define IGMP_v1_ROUTER 1
|
|
#define IGMP_v2_ROUTER 2
|
|
|
|
#define IGMP_HOST_MEMBERSHIP_QUERY IGMP_MEMBERSHIP_QUERY
|
|
#define IGMP_HOST_MEMBERSHIP_REPORT IGMP_V1_MEMBERSHIP_REPORT
|
|
#define IGMP_HOST_NEW_MEMBERSHIP_REPORT IGMP_V2_MEMBERSHIP_REPORT
|
|
#define IGMP_HOST_LEAVE_MESSAGE IGMP_V2_LEAVE_GROUP
|
|
|
|
#endif
|