ObjFW  Check-in [39cdae41f8]

Overview
Comment:Fix GCC 4.6 and AmigaOS build
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 39cdae41f8a0b266374b16c22d8f8ee4ede43c7c73dd10d6bd1f32ff160413f2
User & Date: js on 2020-05-01 13:58:28
Other Links: manifest | tags
Context
2020-05-02
15:25
OFSPXSocket: Make async connect work check-in: 6a6f7fb146 user: js tags: trunk
2020-05-01
13:58
Fix GCC 4.6 and AmigaOS build check-in: 39cdae41f8 user: js tags: trunk
11:09
OFSPXSocketTests: Handle IPX but not SPX support check-in: 13de836451 user: js tags: trunk
Changes

Modified src/OFTCPSocket.m from [ef285e844b] to [aa9ac8bab1].

682
683
684
685
686
687
688

689

690
691
692
693
694
695
696
682
683
684
685
686
687
688
689

690
691
692
693
694
695
696
697







+
-
+








- (bool)of_connectSocketToAddress: (const of_socket_address_t *)address
			    errNo: (int *)errNo
{
	if (_socket == INVALID_SOCKET)
		@throw [OFNotOpenException exceptionWithObject: self];

	/* Cast needed for AmigaOS, where the argument is declared non-const */
	if (connect(_socket, &address->sockaddr.sockaddr,
	if (connect(_socket, (struct sockaddr *)&address->sockaddr.sockaddr,
	    address->length) != 0) {
		*errNo = of_socket_errno();
		return false;
	}

	return true;
}

Modified src/exceptions/OFConnectionFailedException.m from [d44715253f] to [7c382ce8cb].

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
88
89
90
91
92
93

94
95
96
97
98
99
100
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
88
89
90
91
92

93
94
95
96
97
98
99
100







-
+




-
+






-
+





-
+










-
+







-
+












-
+








-
+







+ (instancetype)exception
{
	OF_UNRECOGNIZED_SELECTOR
}

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

+ (instancetype)exceptionWithNode: (unsigned char [IPX_NODE_LEN])node
			  network: (uint32_t)network
			     port: (uint16_t)port
			   socket: (id)socket
			   socket: (id)sock
			    errNo: (int)errNo
{
	return [[[self alloc] initWithNode: node
				   network: network
				      port: port
				    socket: socket
				    socket: sock
				     errNo: errNo] autorelease];
}

- (instancetype)init
{
	OF_INVALID_INIT_METHOD
}

- (instancetype)initWithHost: (OFString *)host
			port: (uint16_t)port
		      socket: (id)socket
		      socket: (id)sock
		       errNo: (int)errNo
{
	self = [super init];

	@try {
		_host = [host copy];
		_port = port;
		_socket = [socket retain];
		_socket = [sock retain];
		_errNo = errNo;
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (instancetype)initWithNode: (unsigned char [IPX_NODE_LEN])node
		     network: (uint32_t)network
			port: (uint16_t)port
		      socket: (id)socket
		      socket: (id)sock
		       errNo: (int)errNo
{
	self = [super init];

	@try {
		memcpy(_node, node, IPX_NODE_LEN);
		_network = network;
		_port = port;
		_socket = [socket retain];
		_socket = [sock retain];
		_errNo = errNo;
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;