ObjFW  Check-in [c658e97994]

Overview
Comment:Cast several socket-related arguments to void *

This is required to make it work on MorphOS with -noixemul, as socket
functions take UBYTE * arguments instead then, resulting in a warning
about signedness because char is signed.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c658e97994d676f06a9d2ce188b667c2099d65689fac59e6f855f27add549de4
User & Date: js on 2017-05-21 20:03:06
Other Links: manifest | tags
Context
2017-05-21
20:13
OFKernelEventObserver: #if HAVE_* -> #ifdef HAVE_* check-in: 32e8c1ee4c user: js tags: trunk
20:03
Cast several socket-related arguments to void * check-in: c658e97994 user: js tags: trunk
19:40
OFFileManager: Fix wrong #else check-in: a2711b2a01 user: js tags: trunk
Changes

Modified src/OFKernelEventObserver.m from [57631eb71f] to [75fadf5f06].

119
120
121
122
123
124
125
126


127
128
129
130
131
132
133
119
120
121
122
123
124
125

126
127
128
129
130
131
132
133
134







-
+
+








		if (_cancelFD[0] == INVALID_SOCKET)
			@throw [OFInitializationFailedException
			    exceptionWithClass: [self class]];

		_cancelAddr.sin_family = AF_INET;
		_cancelAddr.sin_port = 0;
		_cancelAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
		_cancelAddr.sin_addr.s_addr =
		    inet_addr((const void *)"127.0.0.1");
# ifdef OF_WII
		_cancelAddr.sin_len = 8;
# endif

# if !defined(OF_WII) && !defined(OF_NINTENDO_3DS)
		if (bind(_cancelFD[0], (struct sockaddr *)&_cancelAddr,
		    sizeof(_cancelAddr)) != 0)
407
408
409
410
411
412
413
414
415

416
417
418
419
420




421
422
423
424
408
409
410
411
412
413
414


415
416




417
418
419
420

421
422
423







-
-
+

-
-
-
-
+
+
+
+
-



	[self observeForTimeInterval: [date timeIntervalSinceNow]];
}

- (void)cancel
{
#ifdef OF_HAVE_PIPE
	OF_ENSURE(write(_cancelFD[1], "", 1) > 0);
#else
# ifndef OF_WII
#elif defined(OF_WII)
	OF_ENSURE(sendto(_cancelFD[1], "", 1, 0,
	    (struct sockaddr *)&_cancelAddr, sizeof(_cancelAddr)) > 0);
# else
	OF_ENSURE(sendto(_cancelFD[1], "", 1, 0,
	    (struct sockaddr *)&_cancelAddr, 8) > 0);
	    (struct sockaddr *)&_cancelAddr, 8) > 0);
#else
	OF_ENSURE(sendto(_cancelFD[1], (const void *)"", 1, 0,
	    (struct sockaddr *)&_cancelAddr, sizeof(_cancelAddr)) > 0);
# endif
#endif
}
@end

Modified src/OFKernelEventObserver_select.m from [e55d2ae955] to [ca3998cc6e].

179
180
181
182
183
184
185
186

187
188
189
190
191
192
193
179
180
181
182
183
184
185

186
187
188
189
190
191
192
193







-
+








	if (FD_ISSET(_cancelFD[0], &readFDs)) {
		char buffer;

#ifdef OF_HAVE_PIPE
		OF_ENSURE(read(_cancelFD[0], &buffer, 1) == 1);
#else
		OF_ENSURE(recvfrom(_cancelFD[0], &buffer, 1, 0, NULL,
		OF_ENSURE(recvfrom(_cancelFD[0], (void *)&buffer, 1, 0, NULL,
		    NULL) == 1);
#endif
	}

	objects = [_readObjects objects];
	count = [_readObjects count];

Modified src/OFTCPSocket+SOCKS5.m from [c2070c1b40] to [4fe5e359bb].

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
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







-
+










-
+







/* Reference for static linking */
int _OFTCPSocket_SOCKS5_reference;

static void
send_or_exception(OFTCPSocket *self, of_socket_t socket, char *buffer,
    int length)
{
	if (send(socket, buffer, length, 0) != length)
	if (send(socket, (const void *)buffer, length, 0) != length)
		@throw [OFWriteFailedException
		    exceptionWithObject: self
			requestedLength: length
				  errNo: of_socket_errno()];
}

static void
recv_exact(OFTCPSocket *self, of_socket_t socket, char *buffer, int length)
{
	while (length > 0) {
		ssize_t ret = recv(socket, buffer, length, 0);
		ssize_t ret = recv(socket, (void *)buffer, length, 0);

		if (ret < 0)
			@throw [OFReadFailedException
			    exceptionWithObject: self
				requestedLength: length
					  errNo: of_socket_errno()];

Modified src/resolver.m from [a07fe0ff30] to [9669c4a7c7].

139
140
141
142
143
144
145
146


147
148
149
150
151
152
153
139
140
141
142
143
144
145

146
147
148
149
150
151
152
153
154







-
+
+







		struct sockaddr_in *addrs, *addrsIter;

		/*
		 * If the host is an IP address, don't try resolving it. On the
		 * Wii for example, the resolver will return an error if you
		 * specify an IP address.
		 */
		if ((s_addr = inet_addr([host UTF8String])) != INADDR_NONE) {
		if ((s_addr = inet_addr((const void *)[host UTF8String])) !=
		    INADDR_NONE) {
			of_resolver_result_t *tmp;
			struct sockaddr_in *addr;

			if ((ret = calloc(2, sizeof(*ret))) == NULL)
				@throw [OFOutOfMemoryException
				    exceptionWithRequestedSize: 2 *
								sizeof(*ret)];
184
185
186
187
188
189
190
191
192


193
194
195
196
197
198
199
185
186
187
188
189
190
191


192
193
194
195
196
197
198
199
200







-
-
+
+








			ret[0] = tmp;
			ret[1] = NULL;

			return ret;
		}

		if ((he = gethostbyname([host UTF8String])) == NULL ||
		    he->h_addrtype != AF_INET)
		if ((he = gethostbyname((const void *)[host UTF8String])) ==
		    NULL || he->h_addrtype != AF_INET)
			@throw [OFAddressTranslationFailedException
			    exceptionWithHost: host
					error: h_errno];

		count = 0;
		for (ip = he->h_addr_list; *ip != NULL; ip++)
			count++;