ObjFW  History of src/OFUDPSocket.m of be8865bcd2fb86eb

History of the file that is called src/OFUDPSocket.m at check-in be8865bcd2fb86eb

2024-04-03
02:16
[d9b5e328f7] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 5009) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[a826172472] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 4801) [annotate] [blame] [check-ins using] [diff]
2023-05-21
10:04
[c3dd64f929] part of check-in [65154c2576] OFUDPSocket: Return socket address bound to (check-in: [65154c2576] user: js, branch: trunk, size: 4801) [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
[bb467c718b] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 5109) [annotate] [blame] [check-ins using] [diff]
2022-12-27
13:58
[2ed8120a61] part of check-in [29a41e5a78] Rename OFAlready{Connected -> Open}Exception (check-in: [29a41e5a78] user: js, branch: trunk, size: 5109) [annotate] [blame] [check-ins using] [diff]
2022-10-22
18:51
[67c55bc52f] part of check-in [64fc4f6344] Fix overlooked OFSocketAddress(Set)Port (check-in: [64fc4f6344] user: js, branch: trunk, size: 5119) [annotate] [blame] [check-ins using] [diff]
18:41
[f8c53776df] part of check-in [a54730b88f] OFSocket: Don't combine port for IP and IPX

While it works for those two protocols, it's a bad precedent as other
protocols have different types for ports. (check-in: [a54730b88f] user: js, branch: trunk, size: 5117) [annotate] [blame] [check-ins using] [diff]

16:00
[fd8f9dff29] part of check-in [72db6b3c6f] Split OFBindSocketFailedException into subclasses (check-in: [72db6b3c6f] user: js, branch: trunk, size: 5099) [annotate] [blame] [check-ins using] [diff]
15:07
[080326bc21] part of check-in [35b565d369] Rename OFBind{ -> Socket}FailedException (check-in: [35b565d369] user: js, branch: trunk, size: 5085) [annotate] [blame] [check-ins using] [diff]
2022-08-06
21:14
[61fa5cfa02] part of check-in [25adea9a23] Don't use struct sockaddr in OFSocketAddress

struct sockaddr can contain a variable length array, which breaks the
union. (check-in: [25adea9a23] user: js, branch: trunk, size: 5043) [annotate] [blame] [check-ins using] [diff]

2022-02-12
07:46
[b89b6c4724] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 5004) [annotate] [blame] [check-ins using] [diff]
2021-10-15
16:15
[bb035d1ec6] part of check-in [50641eb716] OFUDPSocket: Fix compiling for HP-UX / Wii / 3DS (check-in: [50641eb716] user: js, branch: trunk, size: 5004) [annotate] [blame] [check-ins using] [diff]
2021-04-18
23:18
[5d65cff83a] part of check-in [4b587c8874] INVALID_SOCKET -> OFInvalidSocketHandle (check-in: [4b587c8874] user: js, branch: new-naming-convention, size: 5033) [annotate] [blame] [check-ins using] [diff]
22:56
[36850f3267] part of check-in [e73c65a849] Rename all symbols marked extern (check-in: [e73c65a849] user: js, branch: new-naming-convention, size: 4984) [annotate] [blame] [check-ins using] [diff]
20:51
[c0ef3d326a] part of check-in [35de667566] Rename everything in several smaller files (check-in: [35de667566] user: js, branch: new-naming-convention, size: 4995) [annotate] [blame] [check-ins using] [diff]
15:55
[24f3c5b76d] part of check-in [7392685ffc] Rename all functions in macros.h (check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 4992) [annotate] [blame] [check-ins using] [diff]
2021-04-17
13:58
[b4763512f7] part of check-in [e3c5bb70dd] of_socket_address_t -> OFSocketAddress (check-in: [e3c5bb70dd] user: js, branch: new-naming-convention, size: 4990) [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
[ab91d5347a] part of check-in [1b82d3bf4f] *.m: Fold methods into one line where it fits (check-in: [1b82d3bf4f] user: js, branch: trunk, size: 5043) [annotate] [blame] [check-ins using] [diff]
2021-01-14
02:29
[26835c8d41] part of check-in [1833194867] Define _HPUX_ALT_XOPEN_SOCKET_API where necessary

There is a nasty bug in HP-UX: When using the proper socket APIs that
take a socklen_t (which is 64 bit in LP64 mode), it still calls into
methods that expect an int - so there is a type mismatch between the
headers and the compiled system libraries. This leads to all socklen_t
being interpreted as 0 (due to big endian). Defining
_HPUX_ALT_XOPEN_SOCKET_API makes it use the correct symbols in the
system libraries instead. (check-in: [1833194867] user: js, branch: trunk, size: 5054) [annotate] [blame] [check-ins using] [diff]

2021-01-02
22:06
[44b93ee23f] part of check-in [27b401c7c2] Update copyright (check-in: [27b401c7c2] user: js, branch: amiga-library, size: 4887) [annotate] [blame] [check-ins using] [diff]
22:04
[284e645ef0] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 4948) [annotate] [blame] [check-ins using] [diff]
2021-01-01
22:27
[19321c5f2d] part of check-in [c98b667229] Workaround for binding to UDP port 0 on HP-UX (check-in: [c98b667229] user: js, branch: trunk, size: 5037) [annotate] [blame] [check-ins using] [diff]
2020-06-28
15:03
[8b135fcca2] part of check-in [b6cb3addd0] Use OF_DIRECT(_MEMBERS) where appropriate (check-in: [b6cb3addd0] user: js, branch: trunk, size: 4976) [annotate] [blame] [check-ins using] [diff]
2020-05-06
00:32
[851b1788ef] part of check-in [bc67e98833] Improve names of several properties (check-in: [bc67e98833] user: js, branch: trunk, size: 4966) [annotate] [blame] [check-ins using] [diff]
2020-04-26
16:21
[2b709ddc80] part of check-in [e5b2ee56ff] Add OFSequencedPacketSocket

This is intended for SCTP and SPX. (check-in: [e5b2ee56ff] user: js, branch: trunk, size: 4966) [annotate] [blame] [check-ins using] [diff]

2020-04-25
17:05
[62f6a25c2d] part of check-in [b02c4b05bb] Add OFDatagramSocket as base class for OFUDPSocket

This makes it easier to reuse code for other datagram sockets, namely
IPX. (check-in: [b02c4b05bb] user: js, branch: trunk, size: 4891) [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
[c8408c9960] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 11926) [annotate] [blame] [check-ins using] [diff]
2019-10-07
00:07
[de0f80ba6e] part of check-in [ee592cf603] OFDNSResolver: Major refactor

This temporarily doesn't use the search domains anymore and makes CNAMEs
slightly more inefficient. The next commits will fix both. (check-in: [ee592cf603] user: js, branch: trunk, size: 11923) [annotate] [blame] [check-ins using] [diff]

2019-08-09
23:44
[e6c74d7c76] part of check-in [3dec8ecf2e] Support sockets on AmigaOS 3 (check-in: [3dec8ecf2e] user: js, branch: trunk, size: 11928) [annotate] [blame] [check-ins using] [diff]
2019-01-07
22:59
[08c14deedf] part of check-in [ab89c47f42] Partially fix sockets on Nintendo 3DS/Wii

This does not fully fix it yet, but at least the socket tests in the
test suite pass on 3DS now. (check-in: [ab89c47f42] user: js, branch: trunk, size: 11896) [annotate] [blame] [check-ins using] [diff]

2019-01-03
19:13
[20728b2787] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 11865) [annotate] [blame] [check-ins using] [diff]
2018-12-18
21:17
[83f1dff89c] part of check-in [0f3ae90eef] Use OFData instead of a buffer for async UDP sends

This avoids the entire problem of keeping the buffer alive until the
send finished. (check-in: [0f3ae90eef] user: js, branch: trunk, size: 11859) [annotate] [blame] [check-ins using] [diff]

17:10
[9559b91b20] part of check-in [3501205f07] Slightly decrease binary size (check-in: [3501205f07] user: js, branch: trunk, size: 12072) [annotate] [blame] [check-ins using] [diff]
2018-12-08
18:55
[a173a95dac] part of check-in [da2dd2dde5] OFUDPSocket: Use a delegate for async operations (check-in: [da2dd2dde5] user: js, branch: trunk, size: 11927) [annotate] [blame] [check-ins using] [diff]
2018-11-04
18:40
[c73a7a1b74] part of check-in [605634184d] Sandbox ofdns (check-in: [605634184d] user: js, branch: trunk, size: 12457) [annotate] [blame] [check-ins using] [diff]
2018-10-27
21:14
[11089b6c20] part of check-in [0036c4c22e] Fix compilation with newer MinGW-w64 versions (check-in: [0036c4c22e] user: js, branch: trunk, size: 12394) [annotate] [blame] [check-ins using] [diff]
2018-10-07
02:06
[073268c5ca] part of check-in [6e9ee122eb] Remove resolver.m

Instead, OFDNSResolver is used for everything now. (check-in: [6e9ee122eb] user: js, branch: trunk, size: 12389) [annotate] [blame] [check-ins using] [diff]

2018-09-29
14:45
[e0fb2ac475] part of check-in [b90d4055a1] OFUDPSocket: Allow specifying the run loop mode (check-in: [b90d4055a1] user: js, branch: trunk, size: 15948) [annotate] [blame] [check-ins using] [diff]
2018-09-24
00:13
[a374d3e9ed] part of check-in [3fb96dff3c] OFRunLoop: Add support for modes (check-in: [3fb96dff3c] user: js, branch: trunk, size: 14477) [annotate] [blame] [check-ins using] [diff]
2018-08-26
18:39
[06139f0b65] part of check-in [bed2db0fd3] Fix compilation for Wii

This pretends that net_getsockopt() exists, which it does not yet. As
soon as it lands in libogc, this will work again. (check-in: [bed2db0fd3] user: js, branch: trunk, size: 14277) [annotate] [blame] [check-ins using] [diff]

2018-08-11
21:53
[22a70e2ff3] part of check-in [9a494f183b] Fix build on 3DS and Wii (check-in: [9a494f183b] user: js, branch: trunk, size: 14274) [annotate] [blame] [check-ins using] [diff]
14:00
[1e4bb48119] part of check-in [8f810ecb7e] Change the layout of of_socket_address_t

Instead of containing a struct sockaddr_storage - which does not exist
on all supported platforms - it now contains a union of all struct
sockaddr_* types.

Additionally, if struct sockaddr_in6 does not exist, it is defined so
that an IPv6 can be stored even if the system does not support IPv6. (check-in: [8f810ecb7e] user: js, branch: trunk, size: 14217) [annotate] [blame] [check-ins using] [diff]

2018-08-04
16:23
[6cab00e4d5] part of check-in [7de9d67be9] Support for non-blocking UDP sockets (check-in: [7de9d67be9] user: js, branch: trunk, size: 13776) [annotate] [blame] [check-ins using] [diff]
15:35
[6754e57a6e] part of check-in [e36455441d] Use OF_HAVE_IPV6 instead of HAVE_IPV6

This has always been wrong. (check-in: [e36455441d] user: js, branch: trunk, size: 12961) [annotate] [blame] [check-ins using] [diff]

2018-07-28
20:21
[df2fd645d0] part of check-in [8aeee6680a] Add of_socket_address_ip_string()

This replaces of_address_to_string_and_port(). (check-in: [8aeee6680a] user: js, branch: trunk, size: 12952) [annotate] [blame] [check-ins using] [diff]

17:38
[a0a08f26fb] part of check-in [b16f2b9e25] Rename of_{udp_ -> }socket_address (check-in: [b16f2b9e25] user: js, branch: trunk, size: 13188) [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
[f99cdecba3] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 16016) [annotate] [blame] [check-ins using] [diff]
2017-10-22
15:05
[488e7d77d9] part of check-in [a06354b42a] Make Apple GCC with -Wshadow happy (check-in: [a06354b42a] user: js, branch: trunk, size: 15993) [annotate] [blame] [check-ins using] [diff]
14:09
[fdfc6330cc] part of check-in [31c0f5b89e] Make Apple GCC with -Wshadow happy (check-in: [31c0f5b89e] user: js, branch: 0.90, size: 14929) [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
[8a3b636da1] part of check-in [2f4e0df8be] Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. (check-in: [2f4e0df8be] user: js, branch: trunk, size: 15924) [annotate] [blame] [check-ins using] [diff]

2017-09-24
17:35
[35a4b455a8] part of check-in [842c55dd83] OFUDPSocket: Add support for async sending (check-in: [842c55dd83] user: js, branch: trunk, size: 15814) [annotate] [blame] [check-ins using] [diff]
11:24
[971c30a9d2] part of check-in [f8498bb114] Change type for async exceptions to id (check-in: [f8498bb114] user: js, branch: trunk, size: 15069) [annotate] [blame] [check-ins using] [diff]
2017-09-23
22:07
[c1cf4f8ea1] part of check-in [958da109d3] Support for passing a context to async IO handlers (check-in: [958da109d3] user: js, branch: trunk, size: 15111) [annotate] [blame] [check-ins using] [diff]
2017-06-12
22:29
[c8e3c83553] part of check-in [2ae01218ef] OFWriteFailedException: Add -[bytesWritten]

This allows retrieving the number of bytes already written before the
write failed, allowing to retry without writing data that has already
been written. (check-in: [2ae01218ef] user: js, branch: trunk, size: 14860) [annotate] [blame] [check-ins using] [diff]

2017-05-22
23:31
[a9d215ce51] part of check-in [1287e77e04] Make includes of unistd.h and fcntl.h conditional (check-in: [1287e77e04] user: js, branch: trunk, size: 14577) [annotate] [blame] [check-ins using] [diff]
2017-05-21
23:57
[83754f70d8] part of check-in [b4cd87cd81] Use closesocket() instead of close()

Previously, socket_helpers.h would just define close() to whatever is
needed to close a socket. However, this makes it possible to
accidentally call a socket-specific close on something that is not a
socket. Having to explicitly call closesocket() (and defining it to
close() on platforms where it's the same) prevents this. (check-in: [b4cd87cd81] user: js, branch: trunk, size: 14549) [annotate] [blame] [check-ins using] [diff]

21:28
[06ff6d8241] part of check-in [6b77a5dd8b] Prefix private methods with of_ instead of OF_

This matches Apple's style. (check-in: [6b77a5dd8b] user: js, branch: trunk, size: 14519) [annotate] [blame] [check-ins using] [diff]

2017-05-07
20:10
[f67659d08d] part of check-in [4af49a13c3] Small code style change

Casts are now written like types in variable declarations. (check-in: [4af49a13c3] user: js, branch: trunk, size: 14519) [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
[7e2210cd91] part of check-in [44f45c2e35] Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. (check-in: [44f45c2e35] user: js, branch: trunk, size: 14478) [annotate] [blame] [check-ins using] [diff]

2016-05-06
20:54
[bc2dead81f] part of check-in [e840997cc8] Make GCC happy with -Wsign-compare (check-in: [e840997cc8] user: js, branch: trunk, size: 14472) [annotate] [blame] [check-ins using] [diff]
2016-03-27
23:10
[ad50b942db] part of check-in [12b8a7552e] Add socket support for Nintendo 3DS

This removes the port registry that existed for the Wii and instead
tries binding to random ports in a loop until it succeeds or errno is
not EADDRINUSE. This is done for the Wii and Nintendo 3DS now.

This also includes several other socket-related cleanups. (check-in: [12b8a7552e] user: js, branch: trunk, size: 14423) [annotate] [blame] [check-ins using] [diff]

2016-02-21
15:37
[40c5efdd20] part of check-in [e0b9167693] Make use of C99-style for loops (check-in: [e0b9167693] user: js, branch: trunk, size: 13796) [annotate] [blame] [check-ins using] [diff]
2016-01-03
00:43
[966fc51bdc] part of check-in [cec0f072f8] Update copyright

While at it, also update the mail address. (check-in: [cec0f072f8] user: js, branch: 0.8, size: 13305) [annotate] [blame] [check-ins using] [diff]

00:41
[0280b236b8] part of check-in [2a27cf3000] Update copyright

While at it, also update the mail address. (check-in: [2a27cf3000] user: js, branch: trunk, size: 13800) [annotate] [blame] [check-ins using] [diff]

2015-10-19
22:15
[3db951aa5f] part of check-in [1ba08eebc5] Add platform.h & make platform defines consistent (check-in: [1ba08eebc5] user: js, branch: trunk, size: 13796) [annotate] [blame] [check-ins using] [diff]
2015-10-17
10:59
[b7f838da94] part of check-in [ed4549ddd3] 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. (check-in: [ed4549ddd3] user: js, branch: trunk, size: 13789) [annotate] [blame] [check-ins using] [diff]

2015-10-04
11:30
[3c90c2bfad] part of check-in [fc73801932] Better length checks for write / send calls (check-in: [fc73801932] user: js, branch: trunk, size: 13301) [annotate] [blame] [check-ins using] [diff]
11:11
[182b0b3dfd] part of check-in [4cecf82254] Special cases for the Wii's weird network stack

This fixes the tests on Wii. (check-in: [4cecf82254] user: js, branch: trunk, size: 13205) [annotate] [blame] [check-ins using] [diff]

2015-09-14
13:50
[b3ff5858a7] part of check-in [605fc10fad] OFUDPSocket: More constness (check-in: [605fc10fad] user: js, branch: trunk, size: 12968) [annotate] [blame] [check-ins using] [diff]
2015-06-28
16:16
[c798b7ff61] part of check-in [1b1db13483] Extremely minor API inconsistency fix (check-in: [1b1db13483] user: js, branch: trunk, size: 12962) [annotate] [blame] [check-ins using] [diff]
2015-05-14
09:58
[1641047e8d] part of check-in [b37fdafac1] Clean up a few file and socket related checks (check-in: [b37fdafac1] user: js, branch: trunk, size: 12966) [annotate] [blame] [check-ins using] [diff]
2015-05-06
20:18
[4e13070b06] part of check-in [ff759684e2] OFNotConnectedException -> OFNotOpenException (check-in: [ff759684e2] user: js, branch: trunk, size: 12946) [annotate] [blame] [check-ins using] [diff]
2015-03-22
11:42
[5a2d407327] part of check-in [099e939079] Abstract int vs SOCKET as of_socket_t (check-in: [099e939079] user: js, branch: trunk, size: 12966) [annotate] [blame] [check-ins using] [diff]
2015-02-18
22:56
[455c967f24] part of check-in [f18615e057] Add of_getsockname() and make use of it

of_getsockname() calls getsockname() after acquiring a mutex. This is
necessary as some implementations of getsockname() are not thread-safe. (check-in: [f18615e057] user: js, branch: trunk, size: 12874) [annotate] [blame] [check-ins using] [diff]

2015-02-16
08:39
[3c38516b1b] part of check-in [62e2de30b9] Explicitly pass errno to exceptions

The old behaviour where the exception would access errno directly on
creation of the exception was very fragile. The two main problems with
it were that sometimes it would pick up an errno even though none had
been set and in other cases that when the exception was created errno
had already been overridden.

This also greatly increases errno handling on Win32, especially in
conjunction with sockets. It can still be improved further, though. (check-in: [62e2de30b9] user: js, branch: trunk, size: 12842) [annotate] [blame] [check-ins using] [diff]

2015-01-17
18:39
[386cfc0afe] part of check-in [8b0caeabde] Fix compilation on Win32 (check-in: [8b0caeabde] user: js, branch: trunk, size: 12521) [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
[195d7f3dac] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 12429) [annotate] [blame] [check-ins using] [diff]
2014-12-13
16:52
[a6f8078486] part of check-in [06d2de4571] Use CLOEXEC for files and sockets (check-in: [06d2de4571] user: js, branch: trunk, size: 12423) [annotate] [blame] [check-ins using] [diff]
2014-06-21
21:43
[2b1705fa68] part of check-in [13ee56edf3] Move all macros from OFObject.h to macros.h

This means that OFObject.h imports macros.h now, making it unnecessary
to manually import macros.h in almost every file. And while at it, also
import autorelease.h in OFObject.h, so that this doesn't need to be
manually imported in almost every file as well. (check-in: [13ee56edf3] user: js, branch: trunk, size: 12231) [annotate] [blame] [check-ins using] [diff]

2014-04-26
00:40
[473e259227] part of check-in [4e59d2692f] Fix a few issues on LLP64 and Win64

LLP64 was mostly fast enumeration using an unsigned long for the state,
which can't store a pointer or a size_t on LLP64. This is now solved by
either throwing an OFOutOfRangeException if the value of the size_t is
bigger than ULONG_MAX or storing the pointer in the extra field (copied
using memcpy, as it's an array of unsigned long, which again would be
too small to store a pointer).

Win64 was mostly Microsoft not being able to decide whether a length is
a size_t, a DWORD, an int or an unsigned int (thus the different types
in places that seem to be almost the same). But since that would not be
confusing enough, a file descriptor is an int if it's for a file, but a
long long if it is for a socket. But of course, for ReadFile and friends
it's a DWORD instead of an int then. (check-in: [4e59d2692f] user: js, branch: trunk, size: 12274) [annotate] [blame] [check-ins using] [diff]

2014-04-14
00:45
[9fe4ea7a6f] part of check-in [9da9b2b64c] Coding style

No functional change intended. (check-in: [9da9b2b64c] user: js, branch: trunk, size: 11390) [annotate] [blame] [check-ins using] [diff]

2014-02-21
17:17
[aca7fe3ad4] part of check-in [3fa37632f9] Cast return of sizeof() to socklen_t

It caused a warning about an implicit cast on OS X/PPC64. (check-in: [3fa37632f9] user: js, branch: trunk, size: 11385) [annotate] [blame] [check-ins using] [diff]

2014-02-04
21:45
[19a4211bbd] part of check-in [f836f5e65d] OFUDPSocket: Conform to OFCopying (check-in: [f836f5e65d] user: js, branch: trunk, size: 11363) [annotate] [blame] [check-ins using] [diff]
2014-02-03
14:43
[e488747830] part of check-in [414c87ec13] Move socket initialization to a single place (check-in: [414c87ec13] user: js, branch: trunk, size: 11324) [annotate] [blame] [check-ins using] [diff]
2014-01-31
13:07
[851d26fee8] part of check-in [60cb25ab50] Minor fixes (missing ifdefs, etc.) (check-in: [60cb25ab50] user: js, branch: trunk, size: 11111) [annotate] [blame] [check-ins using] [diff]
2014-01-30
22:02
[4a64bf06a1] part of check-in [ff3c507941] OFUDPSocket: Add async resolve / receive (check-in: [ff3c507941] user: js, branch: trunk, size: 11111) [annotate] [blame] [check-ins using] [diff]
12:26
[584c86fff6] part of check-in [fb590316ba] Rename +[UDPSocket hostForAddress:port:]

It is now called +[getHost:andPort:forAddress:]. This makes it much
clearer from the selector alone what it actually does. (check-in: [fb590316ba] user: js, branch: trunk, size: 6996) [annotate] [blame] [check-ins using] [diff]

2014-01-29
15:59
[e5e2000892] part of check-in [c4f36e3692] OFUDPSocket: Add observing (check-in: [c4f36e3692] user: js, branch: trunk, size: 6964) [annotate] [blame] [check-ins using] [diff]
2014-01-27
22:01
Added: [72deb2c0c0] part of check-in [5025cba435] Add OFUDPSocket

Async operations will follow later. (check-in: [5025cba435] user: js, branch: trunk, size: 6856) [annotate] [blame] [check-ins using]