diff options
Diffstat (limited to '')
-rw-r--r-- | src/director/director-connection.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/director/director-connection.h b/src/director/director-connection.h new file mode 100644 index 0000000..2b8bf0f --- /dev/null +++ b/src/director/director-connection.h @@ -0,0 +1,47 @@ +#ifndef DIRECTOR_CONNECTION_H +#define DIRECTOR_CONNECTION_H + +struct director_connection_status { + uoff_t bytes_read, bytes_sent; + size_t bytes_buffered, peak_bytes_buffered; + struct timeval last_input, last_output; + unsigned int last_ping_msecs; + + unsigned int handshake_users_received; + unsigned int handshake_users_sent; +}; + +struct director_host; +struct director; + +struct director_connection * +director_connection_init_in(struct director *dir, int fd, + const struct ip_addr *ip); +struct director_connection * +director_connection_init_out(struct director *dir, int fd, + struct director_host *host); +void director_connection_deinit(struct director_connection **conn, + const char *remote_reason); + +void director_connection_send(struct director_connection *conn, + const char *data); +void director_connection_set_synced(struct director_connection *conn, + bool synced); +void director_connection_ping(struct director_connection *conn); + +const char *director_connection_get_name(struct director_connection *conn); +struct director_host * +director_connection_get_host(struct director_connection *conn); +bool director_connection_is_handshaked(struct director_connection *conn); +bool director_connection_is_synced(struct director_connection *conn); +bool director_connection_is_incoming(struct director_connection *conn); +unsigned int +director_connection_get_minor_version(struct director_connection *conn); + +void director_connection_cork(struct director_connection *conn); +void director_connection_uncork(struct director_connection *conn); + +void director_connection_get_status(struct director_connection *conn, + struct director_connection_status *status_r); + +#endif |