X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=client.h;fp=client.h;h=8f7b9a5dc1b47d4783da5ead2274cd87607a296f;hb=4b16f9ed84133d5c475eaeb887df6475ab0091bc;hp=0000000000000000000000000000000000000000;hpb=bc3ab35d42d4bb321f984806c43b7b991e973716;p=paraslash.git diff --git a/client.h b/client.h new file mode 100644 index 00000000..8f7b9a5d --- /dev/null +++ b/client.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 1997-2006 Andre Noll + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + */ + +/** \file client.h common client functions and exported symbols from client_common.c */ + +#include +enum { + CL_CONNECTED, + CL_RECEIVED_WELCOME, + CL_SENT_AUTH, + CL_RECEIVED_CHALLENGE, + CL_SENT_CH_RESPONSE, + CL_RECEIVED_PROCEED, + CL_SENT_COMMAND, + CL_SENDING_STDIN, + CL_RECEIVING_SERVER_OUTPUT +}; + +#define CLIENT_BUFSIZE 8192 + +struct private_client_data { + int status; + int fd; + struct client_args_info conf; + char *config_file; + char *key_file; + char *user; + RC4_KEY rc4_recv_key; + RC4_KEY rc4_send_key; + struct task task; + int eof; + char buf[CLIENT_BUFSIZE]; + size_t loaded; + int check_r; + int check_w; + long unsigned challenge_nr; + /* only used if stdin gets sent to para_server */ + char *inbuf; + size_t *in_loaded; + int *in_eof; +}; + +int client_open(struct private_client_data *pcd); +void client_close(struct private_client_data *pcd); +int client_parse_config(int argc, char *argv[], + struct private_client_data **pcd_ptr); +void client_pre_select(struct sched *s, struct task *t); +void client_post_select(struct sched *s, struct task *t);