X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=client.h;h=92e14b15eabc686b95a077d0097598f99b3f97a6;hp=2d63c4109460764d4fa5e3a6aa9c694044775afb;hb=9d75ded33ce6664156acb07e311f51d55970bbea;hpb=e4db7671a91a7552c642acc979f0eb278f8d467f diff --git a/client.h b/client.h index 2d63c410..92e14b15 100644 --- a/client.h +++ b/client.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1997-2011 Andre Noll + * Copyright (C) 1997-2013 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -12,8 +12,10 @@ enum { CL_CONNECTED, /** Server sends the welcome message. */ CL_RECEIVED_WELCOME, - /** Client sends the authentification request. */ + /** Client sends the authentication request. */ CL_SENT_AUTH, + /** Server sends encrypted challenge. */ + CL_RECEIVED_CHALLENGE, /** Client solves the challenge and sends the result. */ CL_SENT_CH_RESPONSE, /** Server accepts this authentication. */ @@ -32,6 +34,12 @@ struct client_task { 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 hash value of the decrypted challenge. */ + unsigned char *challenge_hash; /** The configuration (including the command). */ struct client_args_info conf; /** The config file for client options. */ @@ -42,9 +50,18 @@ struct client_task { char *user; /** The client task structure. */ 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_close(struct client_task *ct); +int client_parse_config(int argc, char *argv[], struct client_task **ct_ptr, + int *loglevel); +int client_connect(struct client_task *ct, struct sched *s, + struct btr_node *parent, struct btr_node *child); int client_open(int argc, char *argv[], struct client_task **ct_ptr, - int *loglevel, struct btr_node *parent, struct btr_node *child); + int *loglevel, struct btr_node *parent, struct btr_node *child, + struct sched *sched);