We can't do low-level splice() since we don't have access to the raw socket in the TLS case. This should work for clients though (maybe not for sources).