Turns out it's easy to get errno for reals. Use it.
update_source returns a Bool now, to semantically mirror libmarquise's marquise_update_source()