Differences From Artifact [765c53f8f8]:
- File src/OFStreamObserver.m — part of check-in [3798cbd7ce] at 2013-05-30 08:56:42 on branch trunk — OFStreamObserver: Add missing include on Win32. (user: js, size: 8740) [annotate] [blame] [check-ins using]
To Artifact [ec4b8afafc]:
- File
src/OFStreamObserver.m
— part of check-in
[ffb91daffe]
at
2013-06-11 23:33:16
on branch trunk
— Initial sockets support for the Wii.
Not functional yet due to bugs in the SDK.
Bugs found so far:* Binding to port 0 fails instead of choosing a free port.
* gethostbyname() does not work for IPs.
* getsockname() is missing.
* struct sockaddr_storage is missing.I have not decided yet whether I fix those bugs in the SDK (I already
implemented getsockname() and added struct sockaddr_stroage and it seems
to work) or if I work around them in ObjFW. This will mainly depend on
how cooperative the developers of the Wii SDK are. (user: js, size: 9186) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
36 37 38 39 40 41 42 | # import "OFMutex.h" #endif #import "OFDate.h" #ifdef HAVE_KQUEUE # import "OFStreamObserver_kqueue.h" #endif | | > > > > > > > > > > > | 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 | # import "OFMutex.h" #endif #import "OFDate.h" #ifdef HAVE_KQUEUE # import "OFStreamObserver_kqueue.h" #endif #if defined(HAVE_POLL_H) || defined(__wii__) # import "OFStreamObserver_poll.h" #endif #if defined(HAVE_SYS_SELECT_H) || defined(_WIN32) # import "OFStreamObserver_select.h" #endif #ifdef _WIN32 # include <ws2tcpip.h> #endif #import "OFInitializationFailedException.h" #import "OFOutOfRangeException.h" #import "autorelease.h" #import "macros.h" #ifdef __wii__ # define BOOL OGC_BOOL # include <network.h> # undef BOOL # define bind(sock, addr, addrlen) net_bind(sock, addr, addrlen) # define getsockname(sock, addr, addrlen) net_getsockname(sock, addr, addrlen) # define sendto(sock, buf, len, flags, addr, addrlen) \ net_sendto(sock, buf, len, flags, addr, addrlen) # define socket(domain, type, proto) net_socket(domain, type, proto) #endif enum { QUEUE_ADD = 0, QUEUE_REMOVE = 1, QUEUE_READ = 0, QUEUE_WRITE = 2 }; |
︙ | ︙ | |||
75 76 77 78 79 80 81 | + alloc { if (self == [OFStreamObserver class]) return [OFStreamObserver_kqueue alloc]; return [super alloc]; } | | | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | + alloc { if (self == [OFStreamObserver class]) return [OFStreamObserver_kqueue alloc]; return [super alloc]; } #elif defined(HAVE_POLL_H) || defined(__wii__) + alloc { if (self == [OFStreamObserver class]) return [OFStreamObserver_poll alloc]; return [super alloc]; } |
︙ | ︙ |