+ // If the TLS library wants to write anything to this client,
+ // output it. Returns true if the processing should go to sleep
+ // (an error, or lack of outgoing buffer space).
+ bool send_pending_tls_data(Client *client);
+
+ // Reads regular data fro ma socket. Returns -1 if the processing
+ // should go to sleep (an error, or no data available yet), otherwise
+ // the number of bytes read.
+ int read_nontls_data(Client *client, char *buf, size_t max_size);
+
+ // Reads (decrypted) data from a TLS socket. Returns -1 if the processing
+ // should go to sleep (an error, or no data available yet), otherwise
+ // the number of bytes read. The buffer will be used as scratch space
+ // for TLS data, so it can be overwritten by more bytes than what is returned.
+ int read_tls_data(Client *client, char *buf, size_t max_size);
+