ObjFW  Diff

Differences From Artifact [c1844d2c7e]:

To Artifact [9b225aa65d]:

  • File src/exceptions/OFAddressTranslationFailedException.m — part of check-in [8d2a5052fd] at 2014-01-25 17:39:13 on branch trunk — Generalize stream / socket related exceptions

    This is in preparation for adding UDP sockets, as UDP sockets and TCP
    sockets have no common superclass, as one is stream-oriented while the
    other is packet-oriented.

    Read and write exceptions are for any object now, as they are useful for
    a lot more than just for streams, while the others (bind, listen, etc.)
    are for any socket now (the type is id in this case, though, as there is
    no common superclass). (user: js, size: 2976) [annotate] [blame] [check-ins using]


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
 * file.
 */

#include "config.h"

#import "OFAddressTranslationFailedException.h"
#import "OFString.h"
#import "OFTCPSocket.h"

#import "common.h"
#import "macros.h"

@implementation OFAddressTranslationFailedException
+ (instancetype)exceptionWithSocket: (OFTCPSocket*)socket
{
	return [[[self alloc] initWithSocket: socket] autorelease];
}

+ (instancetype)exceptionWithHost: (OFString*)host
{
	return [[[self alloc] initWithHost: host] autorelease];
}

+ (instancetype)exceptionWithHost: (OFString*)host
			   socket: (OFTCPSocket*)socket
{
	return [[[self alloc] initWithHost: host
				    socket: socket] autorelease];
}

- init
{
	OF_INVALID_INIT_METHOD
}

- initWithSocket: (OFTCPSocket*)socket
{
	return [self initWithHost: nil
			   socket: socket];
}

- initWithHost: (OFString*)host
{
	return [self initWithHost: host
			   socket: nil];
}

- initWithHost: (OFString*)host
	socket: (OFTCPSocket*)socket
{
	self = [super init];

	@try {
		_host   = [host copy];
		_socket = [socket retain];
		_errNo  = GET_AT_ERRNO;







<





|










|










|












|







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
 * file.
 */

#include "config.h"

#import "OFAddressTranslationFailedException.h"
#import "OFString.h"


#import "common.h"
#import "macros.h"

@implementation OFAddressTranslationFailedException
+ (instancetype)exceptionWithSocket: (id)socket
{
	return [[[self alloc] initWithSocket: socket] autorelease];
}

+ (instancetype)exceptionWithHost: (OFString*)host
{
	return [[[self alloc] initWithHost: host] autorelease];
}

+ (instancetype)exceptionWithHost: (OFString*)host
			   socket: (id)socket
{
	return [[[self alloc] initWithHost: host
				    socket: socket] autorelease];
}

- init
{
	OF_INVALID_INIT_METHOD
}

- initWithSocket: (id)socket
{
	return [self initWithHost: nil
			   socket: socket];
}

- initWithHost: (OFString*)host
{
	return [self initWithHost: host
			   socket: nil];
}

- initWithHost: (OFString*)host
	socket: (id)socket
{
	self = [super init];

	@try {
		_host   = [host copy];
		_socket = [socket retain];
		_errNo  = GET_AT_ERRNO;
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
}

- (OFString*)host
{
	OF_GETTER(_host, true)
}

- (OFTCPSocket*)socket
{
	OF_GETTER(_socket, true)
}

- (int)errNo
{
#ifdef _WIN32
	return of_wsaerr_to_errno(_errNo);
#else
	return _errNo;
#endif
}
@end







|













111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
}

- (OFString*)host
{
	OF_GETTER(_host, true)
}

- (id)socket
{
	OF_GETTER(_socket, true)
}

- (int)errNo
{
#ifdef _WIN32
	return of_wsaerr_to_errno(_errNo);
#else
	return _errNo;
#endif
}
@end