README - hurl - Gopher/HTTP/HTTPS file grabber (HTM) git clone git://git.codemadness.org/hurl (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- README (1583B) --- 1 hurl 2 ---- 3 4 Relatively simple HTTP, HTTPS and Gopher client/file grabber. 5 6 7 Why? 8 ---- 9 10 Sometimes (or most of the time?) you just want to fetch a file via the HTTP, 11 HTTPS or Gopher protocol. 12 13 The focus of this tool is only this. 14 15 16 Dependencies 17 ------------ 18 19 - C compiler (C99). 20 - libc + some BSD functions like err() and strlcat(). 21 - LibreSSL(-portable) 22 - libtls (part of LibreSSL). 23 24 25 Optional dependencies 26 --------------------- 27 28 - POSIX make(1) (for Makefile). 29 - mandoc for documentation: https://mdocml.bsd.lv/ 30 31 32 Features 33 -------- 34 35 - Uses OpenBSD pledge(2) and unveil(2). Allow no filesystem access (writes to 36 stdout). 37 - Impose time-out and maximum size limits. 38 - Use well-defined exitcodes for reliable scripting (curl sucks at this). 39 - Send as little information as possible (no User-Agent etc by default). 40 41 42 Anti-features 43 ------------- 44 45 - No HTTP byte range support. 46 - No HTTP User-Agent. 47 - No HTTP If-Modified-Since/If-* support. 48 - No HTTP auth support. 49 - No HTTP/2+ support. 50 - No HTTP keep-alive. 51 - No HTTP chunked-encoding support. 52 - No HTTP redirect support. 53 - No (GZIP) compression support. 54 - No cookie-jar or cookie parsing support. 55 56 - No Gopher text handling (".\r\n"). 57 58 - ... etc... 59 60 61 Get self-signed certificates of a host 62 -------------------------------------- 63 64 To show the certificates of a host the following openssl command can be used. 65 This can be used to create a CA file also, useful for self-signed certificates: 66 67 openssl s_client -showcerts -connect "codemadness.org:443" </dev/null | \ 68 sed -n '/^-----BEGIN CERTIFICATE-----/,/^-----END CERTIFICATE-----/p'