ws: Recover from interruptions during read
ws: Recover from interruptions during read

Reading crucial information needs to recover from interrupted and
partial reads.

Closes #3650
Reviewed-by: Stef Walter <8a7fbf0f15d3ad982af54ef28f5c117d2494b76c@redhat.com>

Scribery/cockpit,stefwalter/cockpit,harishanand95/cockpit,dperpeet/cockpit,andreasn/cockpit,mareklibra/cockpit,harishanand95/cockpit,arilivigni/cockpit,deryni/cockpit,cockpit-project/cockpit,cockpit-project/cockpit,michalskrivanek/cockpit,SotolitoLabs/cockpit,dperpeet/cockpit,deryni/cockpit,larskarlitski/cockpit,jscotka/cockpit,stefwalter/cockpit,harishanand95/cockpit,xhad/cockpit,petervo/cockpit,xhad/cockpit,stefwalter/cockpit,petervo/cockpit,cockpituous/cockpit,harishanand95/cockpit,Scribery/cockpit,garrett/cockpit,cockpituous/cockpit,michalskrivanek/cockpit,andreasn/cockpit,matobet/cockpit,michalskrivanek/cockpit,larskarlitski/cockpit,petervo/cockpit,cockpit-project/cockpit,SotolitoLabs/cockpit,sgallagher/cockpit,harishanand95/cockpit,Scribery/cockpit,larskarlitski/cockpit,michalskrivanek/cockpit,garrett/cockpit,arilivigni/cockpit,xhad/cockpit,mareklibra/cockpit,larskarlitski/cockpit,vanloswang/cockpit,arilivigni/cockpit,arilivigni/cockpit,andreasn/cockpit,larskarlitski/cockpit,arilivigni/cockpit,moraleslazaro/cockpit,moraleslazaro/cockpit,vanloswang/cockpit,martinpitt/cockpit,larsu/cockpit,mvollmer/cockpit,Scribery/cockpit,jscotka/cockpit,andreasn/cockpit,matobet/cockpit,mvollmer/cockpit,sgallagher/cockpit,cockpit-project/cockpit,mareklibra/cockpit,mareklibra/cockpit,petervo/cockpit,dperpeet/cockpit,larsu/cockpit,garrett/cockpit,cockpituous/cockpit,SotolitoLabs/cockpit,dperpeet/cockpit,petervo/cockpit,michalskrivanek/cockpit,garrett/cockpit,moraleslazaro/cockpit,cockpituous/cockpit,moraleslazaro/cockpit,larskarlitski/cockpit,SotolitoLabs/cockpit,sgallagher/cockpit,matobet/cockpit,dperpeet/cockpit,SotolitoLabs/cockpit,larsu/cockpit,matobet/cockpit,mvollmer/cockpit,andreasn/cockpit,xhad/cockpit,stefwalter/cockpit,cockpit-project/cockpit,sgallagher/cockpit,mareklibra/cockpit,dperpeet/cockpit,matobet/cockpit,mvollmer/cockpit,petervo/cockpit,stefwalter/cockpit,stefwalter/cockpit,larsu/cockpit,larskarlitski/cockpit,martinpitt/cockpit,vanloswang/cockpit,harishanand95/cockpit,michalskrivanek/cockpit,garrett/cockpit,arilivigni/cockpit,sgallagher/cockpit,dperpeet/cockpit,petervo/cockpit,vanloswang/cockpit,sgallagher/cockpit,vanloswang/cockpit,jscotka/cockpit,deryni/cockpit,arilivigni/cockpit,martinpitt/cockpit,SotolitoLabs/cockpit,deryni/cockpit,andreasn/cockpit,stefwalter/cockpit,moraleslazaro/cockpit,larsu/cockpit,moraleslazaro/cockpit,deryni/cockpit,michalskrivanek/cockpit,xhad/cockpit,xhad/cockpit,andreasn/cockpit,sgallagher/cockpit,Scribery/cockpit,xhad/cockpit,Scribery/cockpit,deryni/cockpit,jscotka/cockpit,matobet/cockpit,vanloswang/cockpit,Scribery/cockpit,jscotka/cockpit,mareklibra/cockpit,martinpitt/cockpit,mvollmer/cockpit,harishanand95/cockpit,cockpituous/cockpit,jscotka/cockpit,SotolitoLabs/cockpit,deryni/cockpit,larsu/cockpit,moraleslazaro/cockpit,mareklibra/cockpit,cockpituous/cockpit,martinpitt/cockpit,vanloswang/cockpit