ceph/branches/sage/cephmds2/msg/tcp.h
sageweil c80eca7fce sage mds branch
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1019 29311d96-e01e-0410-9327-a35deaab8ce9
2007-01-19 19:48:59 +00:00

38 lines
938 B
C++

#ifndef __TCP_H
#define __TCP_H
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
typedef struct sockaddr_in tcpaddr_t;
using std::ostream;
inline ostream& operator<<(ostream& out, const tcpaddr_t &a)
{
unsigned char addr[4];
memcpy((char*)addr, (char*)&a.sin_addr.s_addr, 4);
out << (unsigned)addr[0] << "."
<< (unsigned)addr[1] << "."
<< (unsigned)addr[2] << "."
<< (unsigned)addr[3] << ":"
<< (int)a.sin_port;
return out;
}
extern bool tcp_read(int sd, char *buf, int len);
extern int tcp_write(int sd, char *buf, int len);
extern int tcp_hostlookup(char *str, tcpaddr_t& ta);
inline bool operator==(const tcpaddr_t& a, const tcpaddr_t& b) {
return strncmp((const char*)&a, (const char*)&b, sizeof(a)) == 0;
}
inline bool operator!=(const tcpaddr_t& a, const tcpaddr_t& b) {
return strncmp((const char*)&a, (const char*)&b, sizeof(a)) != 0;
}
#endif