Medo42/Gang-Garrison-2 — pull request #163 by TazeTSchnitzel (2013-08-25 01:59:13+00:00)
Title: Implemented HTTP/1.0 in GML with Faucet Net to replace Hobbel DM entirely

The API's nice. The code's (mostly) quite good, with lots of error checks. It has all these things!:

* Step function you call yourself (non-threaded)
* Three states you can check for: Not Done, Done and Errored
* Function returning error strings
* Supports sending and receiving custom HTTP headers
* Supports some subset of HTTP/1.1, including:
* 301 and 302 redirect handling where URL is absolute or has absolute path
* Host: header
* URL parsing! Where not IPv6 and no authentication
* Send and receive headers with `ds_map`s
* Find out size and amount downloaded of response body - makes nice, smooth progress bars
* Find out response status codes and "reason phrases"
* Get response body as a Faucet Networking buffer

All this, plus it doesn't randomly stop working like Hobbel's Download Manager, nor does it freeze when there's no internet connection (unless you do a while() loop waiting for "done" and not for "error" too, but nowhere in the code is this done).

Oh, and it's GPL, with no extra extensions. In fact, -1 extension, since I removed Hobbel's DM, and the reference to it in the readme. I kept the licensing thing though, since I'm pretty sure I can't change the terms - anyone is free to link Hobbel's DM in future, sadly.