close();
}
-bool TSocket::isOpen() {
+bool TSocket::isOpen() {
return (socket_ >= 0);
}
int r = recv(socket_, &buf, 1, MSG_PEEK);
if (r == -1) {
int errno_copy = errno;
- GlobalOutput("TSocket::peek()");
+ string errStr = "TSocket::peek() " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::UNKNOWN, "recv()", errno_copy);
}
return (r > 0);
if (isOpen()) {
throw TTransportException(TTransportException::ALREADY_OPEN);
}
-
+
socket_ = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (socket_ == -1) {
int errno_copy = errno;
- GlobalOutput("TSocket::open() socket");
+ string errStr = "TSocket::open() socket " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::NOT_OPEN, "socket()", errno_copy);
}
if (errno != EINPROGRESS) {
int errno_copy = errno;
- char buff[1024];
- sprintf(buff, "TSocket::open() connect %s %d", host_.c_str(), port_);
- GlobalOutput(buff);
-
+ string errStr = "TSocket::open() connect " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::NOT_OPEN, "connect()", errno_copy);
}
int ret2 = getsockopt(socket_, SOL_SOCKET, SO_ERROR, (void *)&val, &lon);
if (ret2 == -1) {
int errno_copy = errno;
- GlobalOutput("TSocket::open() getsockopt SO_ERROR");
+ string errStr = "TSocket::open() getsockopt SO_ERROR " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::NOT_OPEN, "open()", errno_copy);
}
if (val == 0) {
goto done;
}
int errno_copy = errno;
- GlobalOutput("TSocket::open() SO_ERROR was set");
+ string errStr = "TSocket::open() SO_ERROR was set " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::NOT_OPEN, "open()", errno_copy);
} else if (ret == 0) {
int errno_copy = errno;
- GlobalOutput("TSocket::open() timed out");
+ string errStr = "TSocket::open() timed out " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::NOT_OPEN, "open()", errno_copy);
} else {
int errno_copy = errno;
- GlobalOutput("TSocket::open() select error");
+ string errStr = "TSocket::open() select error " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::NOT_OPEN, "open()", errno_copy);
}
}
// Now it's not a try again case, but a real probblez
- GlobalOutput("TSocket::read()");
+ string errStr = "TSocket::read() " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
// If we disconnect with no linger time
if (errno == ECONNRESET) {
}
int errno_copy = errno;
- GlobalOutput("TSocket::write() send < 0");
+ string errStr = "TSocket::write() send < 0 " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
throw TTransportException(TTransportException::UNKNOWN, "send", errno_copy);
}
struct linger l = {(lingerOn_ ? 1 : 0), lingerVal_};
int ret = setsockopt(socket_, SOL_SOCKET, SO_LINGER, &l, sizeof(l));
if (ret == -1) {
- GlobalOutput("TSocket::setLinger()");
+ string errStr = "TSocket::setLinger() " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
}
}
int v = noDelay_ ? 1 : 0;
int ret = setsockopt(socket_, IPPROTO_TCP, TCP_NODELAY, &v, sizeof(v));
if (ret == -1) {
- GlobalOutput("TSocket::setNoDelay()");
+ string errStr = "TSocket::setNoDelay() " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
}
}
struct timeval r = recvTimeval_;
int ret = setsockopt(socket_, SOL_SOCKET, SO_RCVTIMEO, &r, sizeof(r));
if (ret == -1) {
- GlobalOutput("TSocket::setRecvTimeout()");
+ string errStr = "TSocket::setRecvTimeout() " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
}
}
(int)((sendTimeout_%1000)*1000)};
int ret = setsockopt(socket_, SOL_SOCKET, SO_SNDTIMEO, &s, sizeof(s));
if (ret == -1) {
- GlobalOutput("TSocket::setSendTimeout()");
+ string errStr = "TSocket::setSendTimeout() " + getSocketInfo();
+ GlobalOutput(errStr.c_str());
}
}
maxRecvRetries_ = maxRecvRetries;
}
+string TSocket::getSocketInfo() {
+ std::ostringstream oss;
+ oss << "<Host: " << host_ << " Port: " << port_ << ">";
+ return oss.str();
+}
+
}}} // facebook::thrift::transport