diff --git a/CronosAgent.c b/CronosAgent.c index 7a2f34e..fdf1c90 100644 --- a/CronosAgent.c +++ b/CronosAgent.c @@ -347,17 +347,10 @@ int main(int argc, const char* argv[]) socketOptionValue = IPTOS_LOWDELAY; proxySocketAddress.sin_port = 0; mediaHandle = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); -<<<<<<< HEAD if ((mediaHandle < 0) || (bind(mediaHandle, (struct sockaddr*)&proxySocketAddress, proxySocketLength) < 0) || (getsockname(mediaHandle, (struct sockaddr*)&proxySocketAddress, &proxySocketLength) < 0) || (setsockopt(mediaHandle, IPPROTO_IP, IP_TOS, &socketOptionValue, sizeof(socketOptionValue)) < 0)) -======= - if((mediaHandle < 0) || - (bind(mediaHandle, (struct sockaddr*)&proxySocketAddress, proxySocketLength) < 0) || - (getsockname(mediaHandle, (struct sockaddr*)&proxySocketAddress, &proxySocketLength) < 0) || - (setsockopt(mediaHandle, IPPROTO_IP, IP_TOS, &socketOptionValue, sizeof(socketOptionValue)) < 0)) ->>>>>>> cdc3d16a18388a7244bf6f7b603ede735329266a { print("Error opening port for External Server\n"); return EXIT_FAILURE; diff --git a/Rewind.h b/Rewind.h index 0bf23b2..41cc47d 100644 --- a/Rewind.h +++ b/Rewind.h @@ -19,9 +19,12 @@ extern "C" #define REWIND_CLASS_REWIND_CONTROL 0x0000 #define REWIND_CLASS_SYSTEM_CONSOLE 0x0100 #define REWIND_CLASS_SERVER_NOTICE 0x0200 -#define REWIND_CLASS_KAIROS_DATA 0x0800 +#define REWIND_CLASS_DEVICE_DATA 0x0800 #define REWIND_CLASS_APPLICATION 0x0900 +#define REWIND_CLASS_KAIROS_DATA (REWIND_CLASS_DEVICE_DATA + 0x00) +#define REWIND_CLASS_TELLUS_DATA (REWIND_CLASS_DEVICE_DATA + 0x10) + #define REWIND_TYPE_KEEP_ALIVE (REWIND_CLASS_REWIND_CONTROL + 0) #define REWIND_TYPE_CLOSE (REWIND_CLASS_REWIND_CONTROL + 1) #define REWIND_TYPE_CHALLENGE (REWIND_CLASS_REWIND_CONTROL + 2) @@ -31,11 +34,16 @@ extern "C" #define REWIND_TYPE_BUSY_NOTICE (REWIND_CLASS_SERVER_NOTICE + 0) #define REWIND_TYPE_ADDRESS_NOTICE (REWIND_CLASS_SERVER_NOTICE + 1) +#define REWIND_TYPE_BINDING_NOTICE (REWIND_CLASS_SERVER_NOTICE + 2) #define REWIND_TYPE_EXTERNAL_SERVER (REWIND_CLASS_KAIROS_DATA + 0) #define REWIND_TYPE_REMOTE_CONTROL (REWIND_CLASS_KAIROS_DATA + 1) #define REWIND_TYPE_SNMP_TRAP (REWIND_CLASS_KAIROS_DATA + 2) +#define REWIND_TYPE_PEER_DATA (REWIND_CLASS_TELLUS_DATA + 0) +#define REWIND_TYPE_RDAC_DATA (REWIND_CLASS_TELLUS_DATA + 1) +#define REWIND_TYPE_MEDIA_DATA (REWIND_CLASS_TELLUS_DATA + 2) + #define REWIND_TYPE_SUBSCRIPTION (REWIND_CLASS_APPLICATION + 0x00) #define REWIND_TYPE_DMR_DATA_BASE (REWIND_CLASS_APPLICATION + 0x10) #define REWIND_TYPE_DMR_AUDIO_FRAME (REWIND_CLASS_APPLICATION + 0x20) @@ -49,7 +57,8 @@ extern "C" #define REWIND_ROLE_APPLICATION 0x20 #define REWIND_SERVICE_CRONOS_AGENT (REWIND_ROLE_REPEATER_AGENT + 0) -#define REWIND_SERVICE_SIMPLE_APPLICATION (REWIND_ROLE_APPLICATION + 0) +#define REWIND_SERVICE_TELLUS_AGENT (REWIND_ROLE_REPEATER_AGENT + 1) +#define REWIND_SERVICE_SIMPLE_APPLICATION (REWIND_ROLE_APPLICATION + 0) struct RewindVersionData { @@ -64,6 +73,11 @@ struct RewindAddressData uint16_t port; }; +struct RewindBindingData +{ + uint16_t ports[0]; +}; + struct RewindSubscriptionData { uint32_t type;