Implement client-server feature negotiation.
[paraslash.git] / client.h
index 8490b72..a423406 100644 (file)
--- a/client.h
+++ b/client.h
@@ -32,6 +32,10 @@ struct client_task {
        int status;
        /** The file descriptor and the session keys. */
        struct stream_cipher_context scc;
        int status;
        /** The file descriptor and the session keys. */
        struct stream_cipher_context scc;
+       /** True if this connections uses the sideband API. */
+       bool use_sideband;
+       /** The sideband context, ignored if \a use_sideband is false. */
+       struct sb_context *sbc;
        /** The configuration (including the command). */
        struct client_args_info conf;
        /** The config file for client options. */
        /** The configuration (including the command). */
        struct client_args_info conf;
        /** The config file for client options. */
@@ -44,6 +48,8 @@ struct client_task {
        struct task task;
        /** The buffer tree node of the client task. */
        struct btr_node *btrn;
        struct task task;
        /** The buffer tree node of the client task. */
        struct btr_node *btrn;
+       /** List of features supported by the server. */
+       char **features;
 };
 
 void client_disconnect(struct client_task *ct);
 };
 
 void client_disconnect(struct client_task *ct);