Always write out all data gnutls requested
Always write out all data gnutls requested

Because of a bug in the gnutls backend our outgoing stream would get
stalled if we couldn't write enough data as _try_operation doesn't
properly check what caused GNUTLS_E_AGAIN.

Unfortunately if we fix that, we trigger bugs in GnuTLS (now fixed in
gnutls git), which break the invariants of the push function. To keep
compatibility with older gnutls, simply make our backend always try to
write out all data gnutls asked us for. Doing so guarantees that
GNUTLS_E_AGAIN will never be caused by a partial write.

noonien-d/wocky,noonien-d/wocky,freedesktop-unofficial-mirror/wocky,noonien-d/wocky,freedesktop-unofficial-mirror/wocky,freedesktop-unofficial-mirror/wocky