aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/socket.c10
-rw-r--r--src/socket.h5
-rw-r--r--src/socketstream.c16
3 files changed, 19 insertions, 12 deletions
diff --git a/src/socket.c b/src/socket.c
index 1716f19..e161f53 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -99,6 +99,16 @@ int SocketDisconnect(int sock)
return rc;
}
+int64_t SocketRecv(int sock, void *buf, size_t len, int flags)
+{
+ return recv(sock, buf, len, flags);
+}
+
+int64_t SocketSend(int sock, const void *buf, size_t len, int flags)
+{
+ return send(sock, buf, len, flags);
+}
+
int SocketSendAll(int sock, const char *buf, size_t *len)
{
size_t total = 0;
diff --git a/src/socket.h b/src/socket.h
index 0b9b099..e7b1a80 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -4,6 +4,7 @@
#include "config.h"
#include <stdlib.h>
+#include <stdint.h>
int SocketConnect(const char *host, short port);
@@ -19,4 +20,8 @@ enum
int SocketSelect(int sock, int *events, int timeout);
+int64_t SocketRecv(int sock, void *buf, size_t len, int flags);
+
+int64_t SocketSend(int sock, const void *buf, size_t len, int flags);
+
#endif
diff --git a/src/socketstream.c b/src/socketstream.c
index 73da239..cf7206d 100644
--- a/src/socketstream.c
+++ b/src/socketstream.c
@@ -1,22 +1,14 @@
#include "socketstream.h"
+#include "socket.h"
#include <assert.h>
#include <string.h>
-#if !defined(_WIN32)
-#include <arpa/inet.h>
-#else
-#include "win32.h"
-#endif
-
-/* close */
-#include <unistd.h>
-
static int SocketStreamClose(Stream *base)
{
int rv;
SocketStream *stream = (SocketStream *) base;
- rv = close(stream->sock);
+ rv = SocketDisconnect(stream->sock);
stream->sock = -1;
return rv;
}
@@ -30,7 +22,7 @@ static int64_t SocketStreamRead(void *ptr, size_t size, Stream *stream)
while (received < size)
{
char *p = ((char *) ptr) + received;
- ssize_t rv = recv(ss->sock, p, size - received, 0);
+ int64_t rv = SocketRecv(ss->sock, p, size - received, 0);
/* Error */
if (rv == -1)
return -1;
@@ -51,7 +43,7 @@ static int64_t SocketStreamWrite(const void *ptr, size_t size, Stream *stream)
while (written < size)
{
const char *p = ((char *) ptr) + written;
- ssize_t rv = send(ss->sock, p, size - written, 0);
+ int64_t rv = SocketSend(ss->sock, p, size - written, 0);
if (rv == -1)
return -1;
written += (size_t) rv;