24 #if defined(__solaris__) || defined(__sgi__)
27 #define DtRead ((DtU8) 0x01)
29 #define DtWrite ((DtU8) 0x02)
31 #define DtReadWrite (DtRead | DtWrite)
34 #define DtBindToDestAddr ((DtU8) 0x08)
36 #define DtQuiet ((DtU8) 0x10)
41 #ifdef DtUSE_UTILITIES_NAMESPACE
42 namespace DtUSE_UTILITIES_NAMESPACE
100 virtual int sendTo(caddr_t packet,
size_t size,
DtIpv4Addr addr);
104 virtual int DtRecv(caddr_t* buffptr,
int* status = NULL);
108 virtual int DtRecv(caddr_t buff,
size_t);
114 virtual void DtBecomeNonBlocking(
void);
123 virtual void setBundling(
int maxBundleSize,
bool enableUnbundling,
124 int minPacketSize,
int sizeOffset,
int sizeLength,
bool testDisHeader );
127 virtual void setBundling(
int maxBundleSize);
133 virtual void setUnbundling(
int onOff);
134 virtual int isUnbundling();
141 virtual int minPacketSize();
142 virtual void setMinPacketSize(
int size );
149 virtual int sizeOffset();
150 virtual void setSizeOffset(
int offset );
157 virtual int sizeLength();
158 virtual void setSizeLength(
int length );
167 virtual bool testDisHeader();
168 virtual void enableDisHeaderTest(
bool shouldTest );
174 virtual int readFd();
175 virtual int writeFd();
179 virtual bool isOk()
const;
184 virtual int listenToMulticastGroup(
186 virtual int dropMulticastGroup(
191 virtual int setMcastTtl(
int ttl);
195 virtual void setMcastDevice(
DtIpv4Addr devAddr);
199 virtual void setFilterPort(
const int& port);
201 virtual void setSendPort(
const int& port);
209 static int enableBroadcast(
int sockfd);
212 static void makeNonBlocking(
int sockfd);
215 static int makeReusable(
int sockfd);
219 static void setRetryOnSend(
unsigned int numRetries,
double waitPeriod);
222 static DtIpv4Addr inetBroadcastOfDevice(
const char *device = NULL);
223 static DtIpv4Addr inetAddrOfDevice(
const char *device = NULL);
224 static DtIpv4Addr netMaskOfDevice(
const char *device = NULL);
228 static void setInetAddr(sockaddr_in &s, u_long addr,
int port);
236 static void netMaskFromReg(
char* tszNetMask);
252 virtual int dataLeftInCurrentBundle();
255 virtual int retrySendTo( caddr_t packet,
size_t size, sockaddr_in& dest );
261 virtual int recvWithStatus(caddr_t* buffptr,
int* status);
266 virtual int recvFromNet(caddr_t* buffptr);
272 virtual int recvWithUnbundling(caddr_t* buffptr);
285 virtual int privateListenToMulticastGroup(
DtIpv4Addr multicastAddr,
292 virtual void findNextPacket();
298 virtual unsigned int getNextPacketSize();
301 virtual unsigned int currentHeaderMatchesFirstInBundle();
307 static ifreq* findIfr(
308 const char* device,
int sock, ifconf* ifc);
311 static DtIpv4Addr netMaskOfIfr(ifreq *ifr,
int sock);
312 static DtIpv4Addr inetAddrOfIfr(ifreq *ifr,
int sock);
313 static DtIpv4Addr inetBroadcastOfIfr(ifreq *ifr,
int sock);
314 static bool capableOfIpBroadcast(ifreq* ifr,
int sock);
372 #ifdef DtUSE_UTILITIES_NAMESPACE