summaryrefslogtreecommitdiff
path: root/src/SocketCore.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-14 14:26:35 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-14 14:26:35 +0000
commit8687877139a39b4f8ddb2aba707d879c187443a1 (patch)
tree0d90b49ef9d247f6d54d334765859cc847a589f8 /src/SocketCore.cc
parent72da43e47f66ac75050768ef8b2d9fa0bba94e3d (diff)
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the function to get error message from socket. * src/SocketCore.cc * src/SocketCore.h
Diffstat (limited to 'src/SocketCore.cc')
-rw-r--r--src/SocketCore.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/SocketCore.cc b/src/SocketCore.cc
index 5c7802fe..65f66f85 100644
--- a/src/SocketCore.cc
+++ b/src/SocketCore.cc
@@ -768,4 +768,19 @@ ssize_t SocketCore::readDataFrom(char* data, size_t len,
return r;
}
+std::string SocketCore::getSocketError() const
+{
+ int error;
+ SOCKOPT_T optlen = sizeof(error);
+ if(getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, &optlen) == -1) {
+ throw DlAbortEx(StringFormat("Failed to get socket error: %s",
+ errorMsg()).str());
+ }
+ if(error != 0) {
+ return strerror(error);
+ } else {
+ return "";
+ }
+}
+
} // namespace aria2