diff --git a/src/cip.h b/src/cip.h index 3e53b24..d916aac 100644 --- a/src/cip.h +++ b/src/cip.h @@ -33,25 +33,26 @@ class CIp { public: // constructors - CIp(); + CIp(const int af = AF_INET); //CIp(uint8, uint8, uint8, uint8); - CIp(const struct sockaddr_in *); + CIp(const struct sockaddr_storage *, socklen_t); CIp(const char *); CIp(const CIp &); + CIp(const CIp &, uint16); // destructor virtual ~CIp() {}; // sockaddr - void SetSockAddr(struct sockaddr_in *); - struct sockaddr_in *GetSockAddr(void) { return &m_Addr; } + void SetSockAddr(struct sockaddr_storage *, socklen_t); + struct sockaddr_storage *GetSockAddr(socklen_t &); // get - uint32 GetAddr(void) const { return m_Addr.sin_addr.s_addr; } - uint16 GetPort(void) const { return m_Addr.sin_port; } + uint32 GetAddr(void) const; + uint16 GetPort(void) const; // set - void SetPort(uint16 port) { m_Addr.sin_port = port; } + void SetPort(uint16 port); // operator bool operator ==(const CIp &) const; diff --git a/src/creflector.h b/src/creflector.h index 98dccf8..8a59144 100644 --- a/src/creflector.h +++ b/src/creflector.h @@ -58,9 +58,9 @@ public: // settings void SetCallsign(const CCallsign &callsign) { m_Callsign = callsign; } const CCallsign &GetCallsign(void) const { return m_Callsign; } - void SetListenIp(const CIp &ip) { m_Ip = ip; UpdateListenMac(); } + void SetListenIp(int i, const CIp &ip) { m_Ip[i] = ip; UpdateListenMac(); } void SetTranscoderIp(const CIp &ip) { m_AmbedIp = ip; } - const CIp &GetListenIp(void) const { return m_Ip; } + const CIp &GetListenIp(int i = 0) const { return m_Ip[i]; } const uint8 *GetListenMac(void) const { return (const uint8 *)m_Mac; } const CIp &GetTranscoderIp(void) const { return m_AmbedIp; } @@ -124,7 +124,7 @@ protected: protected: // identity CCallsign m_Callsign; - CIp m_Ip; + CIp m_Ip[UDP_SOCKET_MAX]; uint8 m_Mac[6]; CIp m_AmbedIp; diff --git a/src/main.h b/src/main.h index 309005f..3752ea7 100644 --- a/src/main.h +++ b/src/main.h @@ -39,8 +39,11 @@ #include #include #include +#include #include #include +#include +#include #include ////////////////////////////////////////////////////////////////////////////////////////