projects
/
oweals
/
minetest.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Mgfractal: Add 3D and 4D fractals
[oweals/minetest.git]
/
src
/
socket.cpp
diff --git
a/src/socket.cpp
b/src/socket.cpp
index df9c57c5f9223a06d511e83e2b2e1551ebd706dd..17fa1924dd217491ad308daa777866bf1747a2b6 100644
(file)
--- a/
src/socket.cpp
+++ b/
src/socket.cpp
@@
-32,7
+32,6
@@
with this program; if not, write to the Free Software Foundation, Inc.,
#include "debug.h"
#include "settings.h"
#include "log.h"
#include "debug.h"
#include "settings.h"
#include "log.h"
-#include "main.h" // for g_settings
#ifdef _WIN32
#ifndef WIN32_LEAN_AND_MEAN
#ifdef _WIN32
#ifndef WIN32_LEAN_AND_MEAN
@@
-45,11
+44,9
@@
with this program; if not, write to the Free Software Foundation, Inc.,
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
- #ifdef _MSC_VER
- #pragma comment(lib, "ws2_32.lib")
- #endif
-typedef SOCKET socket_t;
-typedef int socklen_t;
+ #define LAST_SOCKET_ERR() WSAGetLastError()
+ typedef SOCKET socket_t;
+ typedef int socklen_t;
#else
#include <sys/types.h>
#include <sys/socket.h>
#else
#include <sys/types.h>
#include <sys/socket.h>
@@
-58,7
+55,8
@@
typedef int socklen_t;
#include <netdb.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <arpa/inet.h>
-typedef int socket_t;
+ #define LAST_SOCKET_ERR() (errno)
+ typedef int socket_t;
#endif
// Set to true to enable verbose debug output
#endif
// Set to true to enable verbose debug output
@@
-155,7
+153,7
@@
void Address::Resolve(const char *name)
struct addrinfo *resolved, hints;
memset(&hints, 0, sizeof(hints));
struct addrinfo *resolved, hints;
memset(&hints, 0, sizeof(hints));
-
+
// Setup hints
hints.ai_socktype = 0;
hints.ai_protocol = 0;
// Setup hints
hints.ai_socktype = 0;
hints.ai_protocol = 0;
@@
-169,7
+167,7
@@
void Address::Resolve(const char *name)
{
hints.ai_family = AF_INET;
}
{
hints.ai_family = AF_INET;
}
-
+
// Do getaddrinfo()
int e = getaddrinfo(name, NULL, &hints, &resolved);
if(e != 0)
// Do getaddrinfo()
int e = getaddrinfo(name, NULL, &hints, &resolved);
if(e != 0)
@@
-343,7
+341,8
@@
bool UDPSocket::init(bool ipv6, bool noExceptions)
if (noExceptions) {
return false;
} else {
if (noExceptions) {
return false;
} else {
- throw SocketException("Failed to create socket");
+ throw SocketException(std::string("Failed to create socket: error ")
+ + itos(LAST_SOCKET_ERR()));
}
}
}
}
@@
-515,7
+514,7
@@
int UDPSocket::Receive(Address & sender, void *data, int size)
dstream << (int) m_handle << " <- ";
sender.print(&dstream);
dstream << ", size=" << received;
dstream << (int) m_handle << " <- ";
sender.print(&dstream);
dstream << ", size=" << received;
-
+
// Print packet contents
dstream << ", data=";
for(int i = 0; i < received && i < 20; i++) {
// Print packet contents
dstream << ", data=";
for(int i = 0; i < received && i < 20; i++) {
@@
-526,7
+525,7
@@
int UDPSocket::Receive(Address & sender, void *data, int size)
}
if(received > 20)
dstream << "...";
}
if(received > 20)
dstream << "...";
-
+
dstream << std::endl;
}
dstream << std::endl;
}
@@
-575,9
+574,8
@@
bool UDPSocket::WaitData(int timeout_ms)
int e = WSAGetLastError();
dstream << (int) m_handle << ": WSAGetLastError()="
<< e << std::endl;
int e = WSAGetLastError();
dstream << (int) m_handle << ": WSAGetLastError()="
<< e << std::endl;
- if(e == 10004 /* = WSAEINTR */ || e == 10009 /*WSAEBADF*/)
- {
- dstream << "WARNING: Ignoring WSAEINTR/WSAEBADF." << std::endl;
+ if (e == 10004 /* WSAEINTR */ || e == 10009 /* WSAEBADF */) {
+ infostream << "Ignoring WSAEINTR/WSAEBADF." << std::endl;
return false;
}
#endif
return false;
}
#endif
@@
-587,7
+585,7
@@
bool UDPSocket::WaitData(int timeout_ms)
// No data
return false;
}
// No data
return false;
}
-
+
// There is data
return true;
}
// There is data
return true;
}