Overview
Comment: | Disable UNIX datagram sockets on Hurd |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
7de187fbded06cb450eeb6da59cf16cd |
User & Date: | js on 2024-08-16 21:50:33 |
Other Links: | manifest | tags |
Context
2024-08-16
| ||
22:13 | runtime: Hide symbols for mutex / once / TLS key check-in: 304dad64b4 user: js tags: trunk | |
21:50 | Disable UNIX datagram sockets on Hurd check-in: 9d10d73fcf user: js tags: 1.1 | |
21:50 | Disable UNIX datagram sockets on Hurd check-in: 7de187fbde user: js tags: trunk | |
21:40 | OFSubarray: Remove unused method check-in: d2b7c93cd8 user: js tags: trunk | |
Changes
Modified src/OFUNIXDatagramSocket.m from [86033fc2cb] to [bf02eb42d7].
︙ | ︙ | |||
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | */ #include "config.h" #ifdef HAVE_FCNTL_H # include <fcntl.h> #endif #import "OFUNIXDatagramSocket.h" #import "OFSocket.h" #import "OFSocket+Private.h" #import "OFString.h" #import "OFAlreadyOpenException.h" #import "OFBindUNIXSocketFailedException.h" @implementation OFUNIXDatagramSocket @dynamic delegate; - (OFSocketAddress)bindToPath: (OFString *)path { OFSocketAddress address; | > > > | | | | > > > > > > > > > > | 18 19 20 21 22 23 24 25 26 27 28 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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | */ #include "config.h" #ifdef HAVE_FCNTL_H # include <fcntl.h> #endif #include <errno.h> #import "OFUNIXDatagramSocket.h" #import "OFSocket.h" #import "OFSocket+Private.h" #import "OFString.h" #import "OFAlreadyOpenException.h" #import "OFBindUNIXSocketFailedException.h" @implementation OFUNIXDatagramSocket @dynamic delegate; - (OFSocketAddress)bindToPath: (OFString *)path { #ifndef OF_HURD OFSocketAddress address; # if SOCK_CLOEXEC == 0 && defined(HAVE_FCNTL_H) && defined(FD_CLOEXEC) int flags; # endif if (_socket != OFInvalidSocketHandle) @throw [OFAlreadyOpenException exceptionWithObject: self]; if (path != nil) address = OFSocketAddressMakeUNIX(path); else { address.family = OFSocketAddressFamilyUnknown; address.length = 0; } if ((_socket = socket(AF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0)) == OFInvalidSocketHandle) @throw [OFBindUNIXSocketFailedException exceptionWithPath: path socket: self errNo: _OFSocketErrNo()]; _canBlock = true; # if SOCK_CLOEXEC == 0 && defined(HAVE_FCNTL_H) && defined(FD_CLOEXEC) if ((flags = fcntl(_socket, F_GETFD, 0)) != -1) fcntl(_socket, F_SETFD, flags | FD_CLOEXEC); # endif if (path != nil) { if (bind(_socket, (struct sockaddr *)&address.sockaddr, address.length) != 0) { int errNo = _OFSocketErrNo(); closesocket(_socket); _socket = OFInvalidSocketHandle; @throw [OFBindUNIXSocketFailedException exceptionWithPath: path socket: self errNo: errNo]; } } return address; #else /* * Datagram UNIX sockets on Hurd are broken and don't return the sender * correctly when using recvfrom(). */ @throw [OFBindUNIXSocketFailedException exceptionWithPath: path socket: self errNo: EAFNOSUPPORT]; #endif } @end |