28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#import "socket_helpers.h"
/* Reference for static linking */
int _OFTCPSocket_SOCKS5_reference;
static void
send_or_exception(OFTCPSocket *self, of_socket_t socket, char *buffer,
int length)
{
#ifndef OF_WINDOWS
ssize_t bytesWritten;
#else
int bytesWritten;
#endif
if ((bytesWritten = send(socket, (const void *)buffer, length, 0)) < 0)
@throw [OFWriteFailedException
exceptionWithObject: self
requestedLength: length
bytesWritten: 0
errNo: of_socket_errno()];
if ((int)bytesWritten != length)
@throw [OFWriteFailedException exceptionWithObject: self
requestedLength: length
bytesWritten: bytesWritten
errNo: 0];
}
static void
recv_exact(OFTCPSocket *self, of_socket_t socket, char *buffer, int length)
{
while (length > 0) {
ssize_t ret = recv(socket, (void *)buffer, length, 0);
if (ret < 0)
@throw [OFReadFailedException
exceptionWithObject: self
requestedLength: length
errNo: of_socket_errno()];
|
|
|
|
|
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#import "socket_helpers.h"
/* Reference for static linking */
int _OFTCPSocket_SOCKS5_reference;
static void
send_or_exception(OFTCPSocket *self, of_socket_t sock, char *buffer,
int length)
{
#ifndef OF_WINDOWS
ssize_t bytesWritten;
#else
int bytesWritten;
#endif
if ((bytesWritten = send(sock, (const void *)buffer, length, 0)) < 0)
@throw [OFWriteFailedException
exceptionWithObject: self
requestedLength: length
bytesWritten: 0
errNo: of_socket_errno()];
if ((int)bytesWritten != length)
@throw [OFWriteFailedException exceptionWithObject: self
requestedLength: length
bytesWritten: bytesWritten
errNo: 0];
}
static void
recv_exact(OFTCPSocket *self, of_socket_t sock, char *buffer, int length)
{
while (length > 0) {
ssize_t ret = recv(sock, (void *)buffer, length, 0);
if (ret < 0)
@throw [OFReadFailedException
exceptionWithObject: self
requestedLength: length
errNo: of_socket_errno()];
|