ObjFW  History of src/socket.m of 66c1192d9416b47d

History of the file that is called src/socket.m at checkin 66c1192d9416b47d

2021-04-25
20:25
Minor style fix file: [25a9151924] check-in: [05dbd482bf] user: js, branch: unix-sockets, size: 23161 [annotate] [blame] [check-ins using] [diff]
20:22
Renamed src/socket.m → src/OFSocket.m. Merge trunk into branch "unix-sockets" file: [a17f72fec0] check-in: [fb40f7048d] user: js, branch: unix-sockets, size: 23163 [annotate] [blame] [check-ins using] [diff]
2021-04-18
22:56
Rename all symbols marked extern file: [941bbd3cbe] check-in: [e73c65a849] user: js, branch: new-naming-convention, size: 20528 [annotate] [blame] [check-ins using] [diff]
20:51
Renamed src/socket.m → src/OFSocket.m. Rename everything in several smaller files file: [3ac6ff523b] check-in: [35de667566] user: js, branch: new-naming-convention, size: 20570 [annotate] [blame] [check-ins using] [diff]
15:55
Rename all functions in macros.h file: [7a2fb62340] check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 20563 [annotate] [blame] [check-ins using] [diff]
2021-04-17
16:29
of_spinlock_t -> OFSpinlock file: [1838fee786] check-in: [fabf53041a] user: js, branch: new-naming-convention, size: 20578 [annotate] [blame] [check-ins using] [diff]
16:13
of_once_t -> OFOnceControl file: [88d75056c4] check-in: [26aa88fc9b] user: js, branch: new-naming-convention, size: 20580 [annotate] [blame] [check-ins using] [diff]
15:45
of_tlskey_t -> OFTLSKey file: [36cae0ca62] check-in: [cc3a4a7b43] user: js, branch: new-naming-convention, size: 20567 [annotate] [blame] [check-ins using] [diff]
14:05
Minor fixes for last commit file: [35ea54e031] check-in: [c45a108585] user: js, branch: new-naming-convention, size: 20589 [annotate] [blame] [check-ins using] [diff]
13:58
of_socket_address_t -> OFSocketAddress file: [b7f2de7d48] check-in: [e3c5bb70dd] user: js, branch: new-naming-convention, size: 20617 [annotate] [blame] [check-ins using] [diff]
12:30
of_socket_t -> OFSocketHandle file: [debecc65de] check-in: [c4ae62dd34] user: js, branch: new-naming-convention, size: 21019 [annotate] [blame] [check-ins using] [diff]
01:24
OF_NOT_FOUND -> OFNotFound file: [d3698b60b2] check-in: [83dc0fe6e5] user: js, branch: new-naming-convention, size: 21016 [annotate] [blame] [check-ins using] [diff]
2021-04-05
16:30
Add support for UNIX socket addresses file: [70908a62f5] check-in: [1db6618bb9] user: js, branch: unix-sockets, size: 23686 [annotate] [blame] [check-ins using] [diff]
2021-01-14
02:29
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. file: [21df00d3c4] check-in: [1833194867] user: js, branch: trunk, size: 21022 [annotate] [blame] [check-ins using] [diff]

2021-01-13
23:01
Wrap _XOPEN_SOURCE_EXTENDED define in #ifndef file: [12ec02f9d9] check-in: [430d54e2a9] user: js, branch: trunk, size: 20987 [annotate] [blame] [check-ins using] [diff]
19:16
Define _XOPEN_SOURCE_EXTENDED where necessary file: [67f21d5ed8] check-in: [d55b73f38e] user: js, branch: trunk, size: 20948 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [2d1d9f46b4] check-in: [374e1a1bfa] user: js, branch: trunk, size: 20916 [annotate] [blame] [check-ins using] [diff]
2020-12-21
21:29
Don't send messages in destructors

In our tests, we call objc_exit() using atexit(), so the runtime is
already gone by the time any destructors get called. file: [d886e134b6] check-in: [9cedc18bb3] user: js, branch: trunk, size: 21005 [annotate] [blame] [check-ins using] [diff]

00:36
Add destructors for global mutexes file: [f216b06c37] check-in: [68214158ee] user: js, branch: trunk, size: 20947 [annotate] [blame] [check-ins using] [diff]
2020-12-20
21:26
Return error instead of using errno for threading

errno is problematic for Amiga libraries and is also not thread-safe on
some systems, even though it should. file: [7f38594dbe] check-in: [5b37fbeb82] user: js, branch: trunk, size: 21102 [annotate] [blame] [check-ins using] [diff]

2020-12-06
17:49
Use a single global socket base on MorphOS

MorphOS allows sharing a single socket base between tasks, so having a
per-task socket base is unnecessary. file: [d03343d8fd] check-in: [b45a563f2b] user: js, branch: trunk, size: 21070 [annotate] [blame] [check-ins using] [diff]

2020-11-22
00:33
socket.m: Fix #ifdef chaos file: [3d8eb3c453] check-in: [23ab7988f9] user: js, branch: trunk, size: 20794 [annotate] [blame] [check-ins using] [diff]
2020-11-01
11:35
OFString: Add -[substring{From,To}Index:] file: [2544d0730b] check-in: [4bbac7ab17] user: js, branch: trunk, size: 20774 [annotate] [blame] [check-ins using] [diff]
2020-10-10
14:27
OFObject: Change type of -[hash] to unsigned long

The internal hash is still 32 bit in most places, but this way, it is at
least not baked into the API and ABI and can be upgraded later, should
that ever be necessary. file: [4343bc563f] check-in: [aeb403a1ed] user: js, branch: trunk, size: 20842 [annotate] [blame] [check-ins using] [diff]

2020-09-27
00:57
Work around bugs in Apple GCC 4.2.1 file: [e490baa3be] check-in: [cbc09c6e26] user: js, branch: trunk, size: 20837 [annotate] [blame] [check-ins using] [diff]
2020-08-11
19:45
OFString: Rework number parsing API

This solves the old signed vs. unsigned problem and allows for more
bases than just 8, 10 and 16, as well as auto-detection of the base (if
base is 0). file: [0757bca949] check-in: [b6ee372b98] user: js, branch: trunk, size: 20789 [annotate] [blame] [check-ins using] [diff]

2020-05-02
15:25
OFSPXSocket: Make async connect work file: [fb89efec65] check-in: [6a6f7fb146] user: js, branch: trunk, size: 20756 [annotate] [blame] [check-ins using] [diff]
2020-04-26
10:56
Replace of_socket_address_ipx_get()

Instead, provide getters and setters for the various address parts. file: [b25bff7c1b] check-in: [2ff4218405] user: js, branch: trunk, size: 20756 [annotate] [blame] [check-ins using] [diff]

2020-04-25
23:02
Add OFIPXSocket file: [685346fedf] check-in: [4a5822e7c0] user: js, branch: trunk, size: 19913 [annotate] [blame] [check-ins using] [diff]
2020-04-18
10:10
socket.m: Remove a TODO

Supporting other styles of IPv4 is non-standard and is a BSD legacy. file: [41dfcc5d04] check-in: [66c1192d94] user: js, branch: trunk, size: 17463 [annotate] [blame] [check-ins using] [diff]

2020-01-16
01:23
Fix compilation on MorphOS file: [353f4118f9] check-in: [7f83956d3e] user: js, branch: trunk, size: 17525 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [a70c769a92] check-in: [c7f0229795] user: js, branch: trunk, size: 17490 [annotate] [blame] [check-ins using] [diff]
2019-10-07
00:23
Fix of_socket_address_parse_ipv6() file: [8c4ab8f800] check-in: [d98af41d84] user: js, branch: trunk, size: 17487 [annotate] [blame] [check-ins using] [diff]
2019-08-11
18:56
Support sockets in multiple threads on AmigaOS file: [b18a1905f9] check-in: [a40f3fc829] user: js, branch: trunk, size: 17487 [annotate] [blame] [check-ins using] [diff]
2019-08-09
23:44
Support sockets on AmigaOS 3 file: [54314146cb] check-in: [3dec8ecf2e] user: js, branch: trunk, size: 15355 [annotate] [blame] [check-ins using] [diff]
2019-08-01
20:14
Split threading.[hm] into multiple files

This allows the runtime to only link against the parts it needs, without
pulling in unnecessary parts like thread spawning, TLS and conditions. file: [2f5d16033d] check-in: [5358e9ea6a] user: js, branch: trunk, size: 14637 [annotate] [blame] [check-ins using] [diff]

2019-03-08
00:35
Use dot syntax file: [b2488d7024] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 14749 [annotate] [blame] [check-ins using] [diff]
2019-01-07
22:59
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. file: [e7074a55dd] check-in: [ab89c47f42] user: js, branch: trunk, size: 14769 [annotate] [blame] [check-ins using] [diff]

2019-01-03
19:13
Update copyright file: [4c91a4fb68] check-in: [0509d7a844] user: js, branch: trunk, size: 14670 [annotate] [blame] [check-ins using] [diff]
2018-12-18
21:17
Use OFData instead of a buffer for async UDP sends

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

2018-10-28
11:57
Fix compilation on OpenIndiana file: [fd66b3751b] check-in: [23b09a2f41] user: js, branch: trunk, size: 14634 [annotate] [blame] [check-ins using] [diff]
2018-10-07
02:06
Remove resolver.m

Instead, OFDNSResolver is used for everything now. file: [00380c738c] check-in: [6e9ee122eb] user: js, branch: trunk, size: 14578 [annotate] [blame] [check-ins using] [diff]

2018-08-27
23:21
socket.m: Clean up #ifdefs file: [72b93f58cf] check-in: [fa952c4c48] user: js, branch: trunk, size: 14219 [annotate] [blame] [check-ins using] [diff]
2018-08-26
21:06
socket.m: Set the sin_len field on Wii file: [6e3f77394d] check-in: [8386b52824] user: js, branch: trunk, size: 14289 [annotate] [blame] [check-ins using] [diff]
2018-08-11
21:53
Fix build on 3DS and Wii file: [83494e19e7] check-in: [9a494f183b] user: js, branch: trunk, size: 14192 [annotate] [blame] [check-ins using] [diff]
14:29
OFDNSResourceRecord: Use of_socket_address_t

This avoids unnecessary string construction and parsing and removes
duplicate code to convert an address into a string. file: [62a31a2fc1] check-in: [75d2d3ba01] user: js, branch: trunk, size: 14194 [annotate] [blame] [check-ins using] [diff]

14:00
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. file: [23b837d278] check-in: [8f810ecb7e] user: js, branch: trunk, size: 14200 [annotate] [blame] [check-ins using] [diff]

2018-08-06
22:34
socket.m: Replace inet_{ntop,pton} with own impl

Not all OSes supported by ObjFW provide them. file: [2650e52f57] check-in: [ab9810ef69] user: js, branch: trunk, size: 13826 [annotate] [blame] [check-ins using] [diff]

2018-08-05
20:00
Add a few missing casts file: [06c3fc8fe2] check-in: [4f49f55859] user: js, branch: trunk, size: 9819 [annotate] [blame] [check-ins using] [diff]
2018-08-04
15:35
Use OF_HAVE_IPV6 instead of HAVE_IPV6

This has always been wrong. file: [93c697cb3c] check-in: [e36455441d] user: js, branch: trunk, size: 9786 [annotate] [blame] [check-ins using] [diff]

2018-07-29
14:41
socket.m: Rename sin to addrIn

This avoids shadowing sin(). file: [fac7286c11] check-in: [2f73172fd6] user: js, branch: trunk, size: 9757 [annotate] [blame] [check-ins using] [diff]

2018-07-28
20:21
Add of_socket_address_ip_string()

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

18:45
Rename OFLocalization -> OFLocale file: [2bd834cec4] check-in: [aa0384d1bf] user: js, branch: trunk, size: 8408 [annotate] [blame] [check-ins using] [diff]
18:29
Add of_socket_address_parse_ip() file: [17b33daff7] check-in: [2a1546da86] user: js, branch: trunk, size: 8426 [annotate] [blame] [check-ins using] [diff]
17:38
Rename of_{udp_ -> }socket_address file: [d4a188ba53] check-in: [b16f2b9e25] user: js, branch: trunk, size: 6952 [annotate] [blame] [check-ins using] [diff]
2018-03-18
01:01
socket.m: Minor cleanup

This should make the init behavior the same for --enable-threads and
--disable-threads. file: [d3a737b015] check-in: [885d84a1a7] user: js, branch: trunk, size: 4180 [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
Update copyright notice file: [07290bee4c] check-in: [7e5c81e186] user: js, branch: trunk, size: 4109 [annotate] [blame] [check-ins using] [diff]
2017-10-22
14:09
Make Apple GCC with -Wshadow happy file: [ac7909760b] check-in: [31c0f5b89e] user: js, branch: 0.90, size: 4086 [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
Small code style change

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

2017-01-09
17:36
Update copyright

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

2016-03-28
19:50
socket.m: Remove leftover from port registry file: [46181077da] check-in: [9394805757] user: js, branch: trunk, size: 4091 [annotate] [blame] [check-ins using] [diff]
2016-03-27
23:10
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. file: [1832892042] check-in: [12b8a7552e] user: js, branch: trunk, size: 4219 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
Update copyright

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

00:41
Update copyright

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

2015-10-19
22:15
Add platform.h & make platform defines consistent file: [34bd39e695] check-in: [1ba08eebc5] user: js, branch: trunk, size: 5415 [annotate] [blame] [check-ins using] [diff]
2015-10-17
10:59
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. file: [ebf56cad93] check-in: [ed4549ddd3] user: js, branch: trunk, size: 5411 [annotate] [blame] [check-ins using] [diff]

2015-03-22
11:42
Abstract int vs SOCKET as of_socket_t file: [a318aca5b3] check-in: [099e939079] user: js, branch: trunk, size: 3608 [annotate] [blame] [check-ins using] [diff]
2015-02-18
22:56
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. file: [a024642fe6] check-in: [f18615e057] user: js, branch: trunk, size: 3600 [annotate] [blame] [check-ins using] [diff]

2015-02-16
08:39
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. file: [f110c9fc59] check-in: [62e2de30b9] user: js, branch: trunk, size: 3012 [annotate] [blame] [check-ins using] [diff]

2015-01-03
20:57
Update copyright file: [32dd0de4f8] check-in: [cfd374b906] user: js, branch: trunk, size: 1084 [annotate] [blame] [check-ins using] [diff]
2014-02-28
00:38
threading.h: Add of_once() file: [e7e7f50976] check-in: [ba5e756264] user: js, branch: trunk, size: 1078 [annotate] [blame] [check-ins using] [diff]
2014-02-03
14:43
Added: Move socket initialization to a single place file: [75d8ae44e0] check-in: [414c87ec13] user: js, branch: trunk, size: 888 [annotate] [blame] [check-ins using]