Differences From Artifact [b0c771eac2]:
- File
src/OFKernelEventObserver.m
— part of check-in
[4cecf82254]
at
2015-10-04 11:11:28
on branch trunk
— Special cases for the Wii's weird network stack
This fixes the tests on Wii. (user: js, size: 8177) [annotate] [blame] [check-ins using] [more...]
To Artifact [23a24b058b]:
- File
src/OFKernelEventObserver.m
— part of check-in
[ed4549ddd3]
at
2015-10-17 10:59:15
on branch trunk
— Add a port registry for the Wii
This is necessary as the Wii does not allow picking a random free port,
and thus we need to track which ports are used. (user: js, size: 8179) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
59 60 61 62 63 64 65 | QUEUE_ADD = 0, QUEUE_REMOVE = 1, QUEUE_READ = 0, QUEUE_WRITE = 2 }; #define QUEUE_ACTION (QUEUE_ADD | QUEUE_REMOVE) | < < < < < | 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | QUEUE_ADD = 0, QUEUE_REMOVE = 1, QUEUE_READ = 0, QUEUE_WRITE = 2 }; #define QUEUE_ACTION (QUEUE_ADD | QUEUE_REMOVE) @implementation OFKernelEventObserver + (void)initialize { if (self != [OFKernelEventObserver class]) return; if (!of_socket_init()) |
︙ | ︙ | |||
131 132 133 134 135 136 137 | _cancelAddr.sin_family = AF_INET; _cancelAddr.sin_port = 0; _cancelAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); # ifdef __wii__ _cancelAddr.sin_len = 8; /* The Wii does not accept port 0 as "choose any free port" */ | | | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | _cancelAddr.sin_family = AF_INET; _cancelAddr.sin_port = 0; _cancelAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); # ifdef __wii__ _cancelAddr.sin_len = 8; /* The Wii does not accept port 0 as "choose any free port" */ _cancelAddr.sin_port = of_socket_port_find(SOCK_DGRAM); # endif if (bind(_cancelFD[0], (struct sockaddr*)&_cancelAddr, sizeof(_cancelAddr))) @throw [OFInitializationFailedException exceptionWithClass: [self class]]; |
︙ | ︙ | |||
164 165 166 167 168 169 170 171 172 173 174 175 176 177 | } - (void)dealloc { close(_cancelFD[0]); if (_cancelFD[1] != _cancelFD[0]) close(_cancelFD[1]); [_readObjects release]; [_writeObjects release]; [_queue release]; [_queueActions release]; #ifdef OF_HAVE_THREADS [_mutex release]; | > > > > | 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | } - (void)dealloc { close(_cancelFD[0]); if (_cancelFD[1] != _cancelFD[0]) close(_cancelFD[1]); #ifdef __wii__ of_socket_port_free(_cancelAddr.sin_port, SOCK_DGRAM); #endif [_readObjects release]; [_writeObjects release]; [_queue release]; [_queueActions release]; #ifdef OF_HAVE_THREADS [_mutex release]; |
︙ | ︙ |