Overview
Comment: | Workaround for binding to port 0 on HP-UX |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
d1bd191ac76f276925587239e745fcf4 |
User & Date: | js on 2021-01-01 22:19:07 |
Other Links: | manifest | tags |
Context
2021-01-01
| ||
22:27 | Workaround for binding to UDP port 0 on HP-UX check-in: c98b667229 user: js tags: trunk | |
22:19 | Workaround for binding to port 0 on HP-UX check-in: d1bd191ac7 user: js tags: trunk | |
22:15 | Exclude HP-UX from 0x test for -[doubleValue] check-in: 142f0d1242 user: js tags: trunk | |
Changes
Modified src/OFTCPSocket.m from [dc32b6d4c9] to [c69f54d1cd].
︙ | ︙ | |||
338 339 340 341 342 343 344 | if ((flags = fcntl(_socket, F_GETFD, 0)) != -1) fcntl(_socket, F_SETFD, flags | FD_CLOEXEC); #endif setsockopt(_socket, SOL_SOCKET, SO_REUSEADDR, (char *)&one, (socklen_t)sizeof(one)); | | | | 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 | if ((flags = fcntl(_socket, F_GETFD, 0)) != -1) fcntl(_socket, F_SETFD, flags | FD_CLOEXEC); #endif setsockopt(_socket, SOL_SOCKET, SO_REUSEADDR, (char *)&one, (socklen_t)sizeof(one)); #if defined(OF_HPUX) || defined(OF_WII) || defined(OF_NINTENDO_3DS) if (port != 0) { #endif if (bind(_socket, &address.sockaddr.sockaddr, address.length) != 0) { int errNo = of_socket_errno(); closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port socket: self errNo: errNo]; } #if defined(OF_HPUX) || defined(OF_WII) || defined(OF_NINTENDO_3DS) } else { for (;;) { uint16_t rnd = 0; int ret; while (rnd < 1024) rnd = (uint16_t)rand(); |
︙ | ︙ | |||
391 392 393 394 395 396 397 | #endif objc_autoreleasePoolPop(pool); if (port > 0) return port; | | | 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 | #endif objc_autoreleasePoolPop(pool); if (port > 0) return port; #if !defined(OF_HPUX) && !defined(OF_WII) && !defined(OF_NINTENDO_3DS) memset(&address, 0, sizeof(address)); address.length = (socklen_t)sizeof(address.sockaddr); if (of_getsockname(_socket, &address.sockaddr.sockaddr, &address.length) != 0) { int errNo = of_socket_errno(); |
︙ | ︙ |