Commit Briefs
don't pause the request in gemini_parse_reply()
a parse routine shouldn't interfere with the handling of the events; pulling this into the caller makes the logic simpler to follow.
decouple bufio from ev
more a matter of cleanliness than a strong reason, but this allows to reuse bufio without ev (if wanted to.)
move imsgev & co to their own file
This avoids bringing the dependency on ev on telescope-identity(1) and the tests as well.
net: re-enable asr_run
Make asr_run() work on top of ev. While here, rename the function names and add real error checking.
add missing return
otherwise we try to reschedule the socket we've just closed.
convert telescope to use ev instead of libevent
libevent is a very cool library, I like the APIs and enjoy using it. However, telescope is not as large and doesn't have as many file descriptor, so libevent is quite ``too big'' for our needs. ev started as a small event loop on top of poll(2) for amused, and can be used here too, it just needed to grow the ability to handle several timers, as we need quite some on telescope (in fact, we use more timers than fds!)
net: improve handling of connect(2) failures
If we succeed to make a socket(2) but fail to connect(2), still attempt to reconnect using the other results from getaddrinfo(3).