Overview
Context
Changes
Modified src/OFFile.m
from [dfa9456896]
to [941019ae14].
︙ | | |
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
|
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
|
+
+
-
+
+
-
+
+
-
+
+
|
- (size_t)_readNBytes: (size_t)size
intoBuffer: (char*)buf
{
size_t ret;
if (fd == -1 || eos)
@throw [OFReadFailedException newWithClass: isa
stream: self
requestedSize: size];
if ((ret = read(fd, buf, size)) == 0)
eos = YES;
return ret;
}
- (size_t)_writeNBytes: (size_t)size
fromBuffer: (const char*)buf
{
size_t ret;
if (fd == -1 || eos || (ret = write(fd, buf, size)) < size)
@throw [OFWriteFailedException newWithClass: isa
stream: self
requestedSize: size];
return ret;
}
- (void)_seekToOffset: (off_t)offset
{
if (lseek(fd, offset, SEEK_SET) == -1)
@throw [OFSeekFailedException newWithClass: isa];
@throw [OFSeekFailedException newWithClass: isa
stream: self];
}
- (off_t)_seekForwardWithOffset: (off_t)offset
{
off_t ret;
if ((ret = lseek(fd, offset, SEEK_CUR)) == -1)
@throw [OFSeekFailedException newWithClass: isa];
@throw [OFSeekFailedException newWithClass: isa
stream: self];
return ret;
}
- (off_t)_seekToOffsetRelativeToEnd: (off_t)offset
{
off_t ret;
if ((ret = lseek(fd, offset, SEEK_END)) == -1)
@throw [OFSeekFailedException newWithClass: isa];
@throw [OFSeekFailedException newWithClass: isa
stream: self];
return ret;
}
- (int)fileDescriptor
{
return fd;
|
︙ | | |
Modified src/OFStream.m
from [d42d9a7020]
to [d928d7a5b3].
︙ | | |
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
|
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
|
-
+
+
-
+
+
|
{
#ifndef _WIN32
int flags;
isBlocking = enable;
if ((flags = fcntl([self fileDescriptor], F_GETFL)) == -1)
@throw [OFSetOptionFailedException newWithClass: isa];
@throw [OFSetOptionFailedException newWithClass: isa
stream: self];
if (enable)
flags &= ~O_NONBLOCK;
else
flags |= O_NONBLOCK;
if (fcntl([self fileDescriptor], F_SETFL, flags) == -1)
@throw [OFSetOptionFailedException newWithClass: isa];
@throw [OFSetOptionFailedException newWithClass: isa
stream: self];
#else
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
#endif
}
- (int)fileDescriptor
|
︙ | | |
Modified src/OFStreamSocket.m
from [60c85e14ca]
to [e1ff8d6e4c].
︙ | | |
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
+
+
|
@throw [OFNotConnectedException newWithClass: isa
socket: self];
if (eos) {
OFReadFailedException *e;
e = [OFReadFailedException newWithClass: isa
stream: self
requestedSize: size];
#ifndef _WIN32
e->errNo = ENOTCONN;
#else
e->errNo = WSAENOTCONN;
#endif
@throw e;
}
if ((ret = recv(sock, buf, size, 0)) < 0)
@throw [OFReadFailedException newWithClass: isa
stream: self
requestedSize: size];
if (ret == 0)
eos = YES;
return ret;
}
|
︙ | | |
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
+
+
-
+
+
|
@throw [OFNotConnectedException newWithClass: isa
socket: self];
if (eos) {
OFWriteFailedException *e;
e = [OFWriteFailedException newWithClass: isa
stream: self
requestedSize: size];
#ifndef _WIN32
e->errNo = ENOTCONN;
#else
e->errNo = WSAENOTCONN;
#endif
@throw e;
}
if ((ret = send(sock, buf, size, 0)) == -1)
@throw [OFWriteFailedException newWithClass: isa
stream: self
requestedSize: size];
/* This is safe, as we already checked for -1 */
return ret;
}
#ifdef _WIN32
- (void)setBlocking: (BOOL)enable
{
u_long v = enable;
isBlocking = enable;
if (ioctlsocket(sock, FIONBIO, &v) == SOCKET_ERROR)
@throw [OFSetOptionFailedException newWithClass: isa];
@throw [OFSetOptionFailedException newWithClass: isa
stream: stream];
}
#endif
- (int)fileDescriptor
{
return sock;
}
|
︙ | | |
Modified src/OFTCPSocket.m
from [c2279eed1e]
to [f3c6437253].
︙ | | |
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
|
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
|
-
+
+
|
}
- (void)setKeepAlivesEnabled: (BOOL)enable
{
int v = enable;
if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char*)&v, sizeof(v)))
@throw [OFSetOptionFailedException newWithClass: isa];
@throw [OFSetOptionFailedException newWithClass: isa
stream: self];
}
- (OFString*)remoteAddress
{
if (sockAddr == NULL || sockAddrLen == 0)
@throw [OFInvalidArgumentException newWithClass: isa
selector: _cmd];
|
︙ | | |
Modified src/exceptions/OFAcceptFailedException.m
from [12e9aaa538]
to [7e7f947ee7].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
+
+
+
+
+
+
+
+
+
+
|
*/
#include "config.h"
#import "OFAcceptFailedException.h"
#import "OFString.h"
#import "OFNotImplementedException.h"
#import "common.h"
@implementation OFAcceptFailedException
+ newWithClass: (Class)class_
socket: (OFTCPSocket*)socket
{
return [[self alloc] initWithClass: class_
socket: socket];
}
- initWithClass: (Class)class_
{
Class c = isa;
[self release];
@throw [OFNotImplementedException newWithClass: c
selector: _cmd];
}
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket_
{
self = [super initWithClass: class_];
@try {
|
︙ | | |
Modified src/exceptions/OFAlreadyConnectedException.m
from [865fb79629]
to [8f294af99b].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
+
+
+
+
+
+
+
+
+
+
|
* file.
*/
#include "config.h"
#import "OFAlreadyConnectedException.h"
#import "OFString.h"
#import "OFNotImplementedException.h"
@implementation OFAlreadyConnectedException
+ newWithClass: (Class)class_
socket: (OFTCPSocket*)socket
{
return [[self alloc] initWithClass: class_
socket: socket];
}
- initWithClass: (Class)class_
{
Class c = isa;
[self release];
@throw [OFNotImplementedException newWithClass: c
selector: _cmd];
}
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket_
{
self = [super initWithClass: class_];
@try {
|
︙ | | |
Modified src/exceptions/OFNotConnectedException.m
from [25504636c1]
to [ba0d7f211d].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
+
+
+
+
+
+
+
+
+
+
|
* file.
*/
#include "config.h"
#import "OFNotConnectedException.h"
#import "OFString.h"
#import "OFNotImplementedException.h"
@implementation OFNotConnectedException
+ newWithClass: (Class)class_
socket: (OFStreamSocket*)socket
{
return [[self alloc] initWithClass: class_
socket: socket];
}
- initWithClass: (Class)class_
{
Class c = isa;
[self release];
@throw [OFNotImplementedException newWithClass: c
selector: _cmd];
}
- initWithClass: (Class)class_
socket: (OFStreamSocket*)socket_
{
self = [super initWithClass: class_];
@try {
|
︙ | | |
Modified src/exceptions/OFReadOrWriteFailedException.h
from [046030975c]
to [6e14e8add8].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
70
71
72
73
74
|
+
+
+
-
+
-
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
@class OFStream;
/**
* \brief An exception indicating a read or write to a stream failed.
*/
@interface OFReadOrWriteFailedException: OFException
{
OFStream *stream;
size_t requestedSize;
size_t requestedSize;
@public
int errNo;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, nonatomic) OFStream *stream;
@property (readonly) size_t requestedSize;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param stream The stream which caused the read or write failed exception
* \param size The requested size of the data that couldn't be read / written
* \return A new open file failed exception
*/
+ newWithClass: (Class)class_
stream: (OFStream*)stream
requestedSize: (size_t)size;
/**
* Initializes an already allocated read or write failed exception.
*
* \param class_ The class of the object which caused the exception
* \param stream The stream which caused the read or write failed exception
* \param size The requested size of the data that couldn't be read / written
* \return A new open file failed exception
*/
- initWithClass: (Class)class_
stream: (OFStream*)stream
requestedSize: (size_t)size;
/**
* \return The errno from when the exception was created
* \return The stream which caused the read or write failed exception
*/
- (int)errNo;
- (OFStream*)stream;
/**
* \return The requested size of the data that couldn't be read / written
*/
- (size_t)requestedSize;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFReadOrWriteFailedException.m
from [a76983b7b0]
to [e499bb5a9d].
︙ | | |
22
23
24
25
26
27
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
|
22
23
24
25
26
27
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
|
#import "OFNotImplementedException.h"
#import "common.h"
@implementation OFReadOrWriteFailedException
+ newWithClass: (Class)class_
stream: (OFStream*)stream
requestedSize: (size_t)size
{
return [[self alloc] initWithClass: class_
stream: stream
requestedSize: size];
}
- initWithClass: (Class)class_
{
Class c = isa;
[self release];
@throw [OFNotImplementedException newWithClass: c
selector: _cmd];
}
- initWithClass: (Class)class_
stream: (OFStream*)stream_
requestedSize: (size_t)size
{
self = [super initWithClass: class_];
@try {
stream = [stream_ retain];
requestedSize = size;
requestedSize = size;
if ([class_ isSubclassOfClass: [OFStreamSocket class]])
errNo = GET_SOCK_ERRNO;
else
errNo = GET_ERRNO;
if ([class_ isSubclassOfClass: [OFStreamSocket class]])
errNo = GET_SOCK_ERRNO;
else
errNo = GET_ERRNO;
} @catch (id e) {
return e;
}
return self;
}
- (void)dealloc
{
[stream release];
- (int)errNo
{
return errNo;
[super dealloc];
}
- (OFStream*)stream
{
return stream;
}
- (size_t)requestedSize
{
return requestedSize;
}
- (int)errNo
{
return errNo;
}
@end
|
Modified src/exceptions/OFSeekFailedException.h
from [b2cc5cbfa4]
to [e0877600fb].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
|
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
@class OFSeekableStream;
/**
* \brief An exception indicating that seeking in a stream failed.
*/
@interface OFSeekFailedException: OFException
{
OFSeekableStream *stream;
int errNo;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, nonatomic) OFSeekableStream *stream;
@property (readonly) int errNo;
#endif
/**
* \param stream The stream for which seeking failed
* \return A new seek failed exception
*/
+ newWithClass: (Class)class_
stream: (OFSeekableStream*)stream;
/**
* Initializes an already allocated seek failed exception.
*
* \param stream The stream for which seeking failed
* \return An initialized seek failed exception
*/
- initWithClass: (Class)class_
stream: (OFSeekableStream*)stream;
/**
* \return The stream for which seeking failed
*/
- (OFSeekableStream*)stream;
/**
* \return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFSeekFailedException.m
from [f136f958cb]
to [22f9ab7eaa].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
15
16
17
18
19
20
21
22
23
24
25
26
27
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
*/
#include "config.h"
#import "OFSeekFailedException.h"
#import "OFString.h"
#import "OFNotImplementedException.h"
#import "common.h"
@implementation OFSeekFailedException
+ newWithClass: (Class)class_
stream: (OFSeekableStream*)stream
{
return [[self alloc] initWithClass: class_
stream: stream];
}
- initWithClass: (Class)class_
{
Class c = isa;
[self release];
@throw [OFNotImplementedException newWithClass: c
selector: _cmd];
}
- initWithClass: (Class)class_
stream: (OFSeekableStream*)stream_
{
self = [super initWithClass: class_];
@try {
stream = [stream_ retain];
errNo = GET_ERRNO;
errNo = GET_ERRNO;
} @catch (id e) {
[self release];
@throw e;
}
return self;
}
- (void)dealloc
{
[stream release];
[super dealloc];
}
- (OFString*)description
{
if (description != nil)
return description;
description = [[OFString alloc] initWithFormat:
@"Seeking failed in class %@! " ERRFMT, inClass, ERRPARAM];
return description;
}
- (OFSeekableStream*)stream
{
return stream;
}
- (int)errNo
{
return errNo;
}
@end
|
Modified src/exceptions/OFSetOptionFailedException.h
from [2231035311]
to [0409392fd7].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
|
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
@class OFStream;
/**
* \brief An exception indicating that setting an option failed.
* \brief An exception indicating that setting an option for a stream failed.
*/
@interface OFSetOptionFailedException: OFException
{
OFStream *stream;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, nonatomic) OFStream *stream;
#endif
/**
* \param stream The stream for which the option could not be set
* \return A new set option failed exception
*/
+ newWithClass: (Class)class_
stream: (OFStream*)stream;
/**
* Initializes an already allocated set option failed exception.
*
* \param stream The stream for which the option could not be set
* \return An initialized set option failed exception
*/
- initWithClass: (Class)class_
stream: (OFStream*)stream;
/**
* \return The stream for which the option could not be set
*/
- (OFStream*)stream;
@end
|
Modified src/exceptions/OFSetOptionFailedException.m
from [7f4c316959]
to [dcdd902585].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
70
71
72
73
74
75
76
77
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
* file.
*/
#include "config.h"
#import "OFSetOptionFailedException.h"
#import "OFString.h"
#import "OFNotImplementedException.h"
@implementation OFSetOptionFailedException
+ newWithClass: (Class)class_
stream: (OFStream*)stream
{
return [[self alloc] initWithClass: class_
stream: stream];
}
- initWithClass: (Class)class_
{
Class c = isa;
[self release];
@throw [OFNotImplementedException newWithClass: c
selector: _cmd];
}
- initWithClass: (Class)class_
stream: (OFStream*)stream_
{
self = [super initWithClass: class_];
@try {
stream = [stream_ retain];
} @catch (id e) {
[self release];
@throw e;
}
return self;
}
- (void)dealloc
{
[stream release];
[super dealloc];
}
- (OFString*)description
{
if (description != nil)
return description;
description = [[OFString alloc] initWithFormat:
@"Setting an option in class %@ failed!", inClass];
return description;
}
- (OFStream*)stream
{
return stream;
}
@end
|