| | 29 | |
| | 30 | |
| | 31 | === revision 1 (bonefish) - [Haiku] === |
| | 32 | |
| | 33 | ==== Changes ([source:BePorts/trunk/net-misc/neon/neon-0.25.x.diff patch]) ==== |
| | 34 | |
| | 35 | {{{src/ne_openssl.c}}}: |
| | 36 | - OpenSSL's {{{ASN1_TIME_print()}}} does not null-terminate the printed buffer, hence the caller has to do that when wanting to use the result as a C string. |
| | 37 | {{{src/ne_socket.c}}}: |
| | 38 | - Avoid BeOS work-around on Haiku (as in previous patch version). |
| | 39 | {{{test/common/child.c}}}: |
| | 40 | - Fixes a race condition between client and server. |
| | 41 | {{{test/common/tests.c}}}: |
| | 42 | - Don't include non-standard <sys/signal.h> (as in previous patch version). |
| | 43 | {{{test/run.sh}}}: |
| | 44 | - Haiku's bash doesn't support ulimit "-c" and "-v" ATM. Non-upstreamable change. |
| | 45 | |
| | 46 | ==== Configuring/Building ==== |
| | 47 | {{{ |
| | 48 | libtoolize --force |
| | 49 | aclocal |
| | 50 | #autoreconf |
| | 51 | CPPFLAGS="-I/boot/home/config/include -I/boot/home/config/include/apr-0" CFLAGS="-O2" LDFLAGS="-L/boot/home/config/lib -lnetwork" ./configure --prefix=/boot/home/config --with-ssl --enable-shared |
| | 52 | make |
| | 53 | }}} |
| | 54 | |
| | 55 | - neon 0.25.4 is unfortunately so old, that running a current auto[re]conf will break the build system. Not running it means the old {{{configure}}} is used, which doesn't recognize that Haiku supports shared libraries, even with {{{--enable-shared}}}. Since this version of neon is only used by subversion that doesn't matter much, though. |
| | 56 | |
| | 57 | ==== Tests ==== |
| | 58 | {{{ |
| | 59 | -> running `request': |
| | 60 | [...] |
| | 61 | 24. persist_timeout....... bind failed: Address already in use |
| | 62 | server child failed: |
| | 63 | FAIL (0 of 2, request failed: Could not connect to server: Connection refused) |
| | 64 | |
| | 65 | -> running `socket-ssl': |
| | 66 | [...] |
| | 67 | 28. ssl_closure........... |
| | 68 | }}} |
| | 69 | |
| | 70 | - Several tests fail from time to time with an "Address already in use" when bind()ing the server socket. That is very likely a race condition that is completely legal according to the standards. A socket can exist and keep the address it is bound to a while after close(), until the TCP close procedure is fully through. For local connections close() could theoretically wait, but this is not implemented in Haiku !r25537. |
| | 71 | - {{{persist_timeout}}} fails reproducibly. This might have the same cause as the occasionally failing tests, or it could be a bug in Haiku's TCP implementation. |
| | 72 | - {{{ssl_closure}}} hangs. It is waiting in a write() on a closed TCP socket. This is very likely a TCP implementation bug. |