diff options
Diffstat (limited to 'mDNSResponder/mDNSMacOSX/BonjourTop/source/bjsocket.h')
-rw-r--r-- | mDNSResponder/mDNSMacOSX/BonjourTop/source/bjsocket.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/mDNSResponder/mDNSMacOSX/BonjourTop/source/bjsocket.h b/mDNSResponder/mDNSMacOSX/BonjourTop/source/bjsocket.h new file mode 100644 index 00000000..c85e3841 --- /dev/null +++ b/mDNSResponder/mDNSMacOSX/BonjourTop/source/bjsocket.h @@ -0,0 +1,88 @@ +// +// bjsocket.h +// TestTB +// +// Created by Terrin Eager on 10/24/12. +// +// + +#ifndef __TestTB__bjsocket__ +#define __TestTB__bjsocket__ + +#include <iostream> + +#include <sys/socket.h> + +#include "bjtypes.h" +#include "bjIPAddr.h" +#include "bjstring.h" + +#include "Frame.h" + + +class BJSocket +{ +public: + + BJSocket(); + virtual ~BJSocket(); + + bool Init(); + + bool CreateListenerIPv4(BJString interfaceName); + bool CreateListenerIPv6(BJString interfaceName); + + bool Close(); + + int Read(); + + Frame m_CurrentFrame; + + bool IsMulticastPacket(); + + int GetSockectHandle(); + + BJ_UINT8* GetBuffer(); + BJIPAddr* GetSrcAddr(); + BJIPAddr* GetDestAddr(); + +private: + void JoinMulticastv4(BJString interfaceName); + void JoinMulticastv6(BJString interfaceName); + + bool CheckInterface(); + + BJ_UINT32 interfaceID; + + int socketHandle; + BJ_UINT8* buffer; + + + int IPVersion; + BJIPAddr sourceAddr; + BJIPAddr destAddr; + + struct msghdr socketMsghdr; + sockaddr_storage peerAddr; + struct iovec socketIovec[1]; + struct cmsghdr socketCmsghdr[10]; + +}; + +class BJSelect +{ +public: + BJSelect(); + + bool Add(BJSocket& s); + int Wait(int sec); + + bool IsReady(BJSocket& s); + +private: + fd_set socketSet; + int maxSocket; + +}; + +#endif /* defined(__TestTB__bjsocket__) */ |