💾 Archived View for 80h.dev › jetforce_diagnostics.txt captured on 2020-11-07 at 00:33:01.
⬅️ Previous capture (2020-09-24)
-=-=-=-=-=-=-
Running gemini server diagnostics check against 80h.dev:1965 ... [IPv4Address] Establish a connection over an IPv4 address Looking up IPv4 address for '80h.dev' ✓ '134.122.13.37' Attempting to connect to 134.122.13.37:1965 ✓ Successfully established connection [IPv6Address] Establish a connection over an IPv6 address Looking up IPv6 address for '80h.dev' ✓ '2604:a880:800:c1::3c3:e001' Attempting to connect to [2604:a880:800:c1::3c3:e001]:1965 x [Errno 101] Network is unreachable [TLSVersion] Server must negotiate at least TLS v1.2, ideally TLS v1.3 Checking client library 'OpenSSL 1.1.1 11 Sep 2018' Determining highest supported TLS version Negotiated TLSv1.2 [TLSClaims] Certificate claims must be valid cryptography library not installed, skipping check [TLSVerified] Certificate should be self-signed or have a trusted issuer Connecting over verified SSL socket x [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076) [TLSRequired] Non-TLS requests should be refused Sending non-TLS request ✓ ConnectionResetError(104, 'Connection reset by peer') [ConcurrentConnections] Server should support concurrent connections Attempting to establish two connections Opening socket 1 Opening socket 2 Closing socket 2 Closing socket 1 ✓ Concurrent connections supported [Homepage] Request the gemini homepage Requesting URL 'gemini://80h.dev/\r\n' Response header '20\ttext/gemini\r\n' Status should return a success code (20 SUCCESS) ✓ Received status of '20' Mime type should be "text/gemini" ✓ 'text/gemini' Header should end with "\r\n" ✓ '\r\n' Body should be non-empty ✓ ' _ _ ___ ___ ' Body should terminate with a newline ✓ '\n' Body should use "\r\n" line endings x Invalid line ending ' _ _ ___ ___ _ \n' [HomepageRedirect] A URL with no trailing slash should redirect to the canonical resource Requesting URL 'gemini://80h.dev\r\n' Response header '31\tgemini://80h.dev/\r\n' Status should return code 31 (REDIRECT PERMANENT) ✓ '31' Meta should redirect to location "gemini://[hostname]/" ✓ 'gemini://80h.dev/' Header should end with "\r\n" ✓ '\r\n' Body should be empty ✓ '' [PageNotFound] Request a gemini URL that does not exist Requesting URL 'gemini://80h.dev/09pdsakjo73hjn12id78\r\n' Response header '51\tNot found!\r\n' Status should return code 51 (NOT FOUND) ✓ '51' Header should end with "\r\n" ✓ '\r\n' Body should be empty ✓ '' [RequestMissingCR] A request without a <CR> should timeout Requesting URL 'gemini://80h.dev/\n' Response header '20\ttext/gemini\r\n' No response should be received x '20' [URLIncludePort] Send the URL with the port explicitly defined Requesting URL 'gemini://80h.dev:1965/\r\n' Response header '20\ttext/gemini\r\n' Status should return a success code (20 SUCCESS) ✓ Received status of '20' [URLSchemeMissing] A URL without a scheme should be inferred as gemini Requesting URL '//80h.dev/\r\n' Response header '20\ttext/gemini\r\n' Status should return a success code (20 SUCCESS) ✓ Received status of '20' [URLByIPAddress] Send the URL using the IPv4 address Requesting URL 'gemini://134.122.13.37:1965/\r\n' Response header "53\tUrl doesn't match certificate!\r\n" Verify that the status matches your desired behavior '53' [URLInvalidUTF8Byte] Send a URL containing a non-UTF8 byte sequence Requesting URL 'gemini://80h.dev/\udcdc\r\n' Response header '59\tBad Request!\r\n' Connection should either drop, or return 59 (BAD REQUEST) ✓ '59' [URLMaxSize] Send a 1024 byte URL, the maximum allowed size Requesting URL 'gemini://80h.dev/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\r\n' Response header '51\tNot found!\r\n' Status should return code 51 (NOT FOUND) ✓ '51' [URLAboveMaxSize] Send a 1025 byte URL, above the maximum allowed size Requesting URL 'gemini://80h.dev/000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\r\n' Response header '51\tNot found!\r\n' Connection should either drop, or return 59 (BAD REQUEST) x '51' [URLWrongPort] A URL with an incorrect port number should be rejected Requesting URL 'gemini://80h.dev:443/\r\n' Response header '53\tWrong Port!\r\n' Status should return a failure code (53 PROXY REQUEST REFUSED) ✓ Received status of '53' [URLWrongHost] A URL with a foreign hostname should be rejected Requesting URL 'gemini://wikipedia.org/\r\n' Response header "53\tUrl doesn't match certificate!\r\n" Status should return a failure code (53 PROXY REQUEST REFUSED) ✓ Received status of '53' [URLSchemeHTTP] Send a URL with an HTTP scheme Requesting URL 'http://80h.dev/\r\n' Response header '53\tNot a gemini scheme!\r\n' Status should return a failure code (53 PROXY REQUEST REFUSED) ✓ Received status of '53' [URLSchemeHTTPS] Send a URL with an HTTPS scheme Requesting URL 'https://80h.dev/\r\n' Response header '53\tNot a gemini scheme!\r\n' Status should return a failure code (53 PROXY REQUEST REFUSED) ✓ Received status of '53' [URLSchemeGopher] Send a URL with a Gopher scheme Requesting URL 'gopher://80h.dev/\r\n' Response header '53\tNot a gemini scheme!\r\n' Status should return a failure code (53 PROXY REQUEST REFUSED) ✓ Received status of '53' [URLEmpty] Empty URLs should not be accepted by the server Requesting URL '\r\n' Response header '59\tBad Request!\r\n' Status should return a failure code (59 BAD REQUEST) ✓ Received status of '59' [URLRelative] Relative URLs should not be accepted by the server Requesting URL '/\r\n' Response header '59\tBad Request!\r\n' Status should return a failure code (59 BAD REQUEST) ✓ Received status of '59' [URLInvalid] Random text should not be accepted by the server Requesting URL 'Hello Gemini!\r\n' Response header '59\tBad Request!\r\n' Status should return a failure code (59 BAD REQUEST) ✓ Received status of '59' [URLDotEscape] A URL should not be able to escape the root using dot notation Requesting URL 'gemini://80h.dev/../../\r\n' Response header '20\ttext/gemini\r\n' Status should return a failure code (5X PERMANENT FAILURE) x Received status of '20' Done!