main.h
author viric@llimona
Mon, 24 Sep 2007 13:59:40 +0200
changeset 38 f1e581c862d5
parent 36 da427c23d755
child 41 954941c6e40a
permissions -rw-r--r--
Improved help. Moving to 0.2.

enum Transport
{
    UNIX,
    TCP,
    ETHERNET
};

struct Command_line {
    int is_server;
    char *unix_path; /* path or 0 if not to be used */
    int tcp_port;
    struct {
        int serve_tcp; /* yes/no */
        int serve_unix; /* yes/no */
        int max_served; /* how many */
        char run_in_subterminal; /* use opentty */
        char echo_in_local_terminal;
        char use_blocking_sockets;
        char send_xterm_resize;
        char client_may_close_app_stdin;
        char client_can_write;
        int detach; /* detach from terminal as nohup */
        char **command; /* ordono por exec */
    } s_param;
    struct {
        enum Transport transport;
        unsigned int wait_until_char; /* -1, don't wait. */
        char raw_mode; /* bool. else cooked */
        char * server_address;
    } c_param;
    int buffer_size;
};


/* error.c */
void not_implemented(const char *msg, ...);
void error(const char *msg, ...);
void finish(int ret);

/* signals.c */
void install_signal_forwarders();

/* main.c */
extern int app_stdin;
extern int app_stdout;
extern int app_stderr;
extern struct Command_line command_line;
int max(int a, int b);

/* gen_sockets.c */
extern char *stream_buffer;
extern int stream_buffer_size;
extern char *ostream_buffer;
extern int ostream_buffer_size;
void init_stream_buffers();
void welcome_new_client_socket(int s);

/* server.c */
int server();

/* client.c */ 
int client();

/* app_term.c */
int fork_app(char * const command[]);

/* server_term.c */
void prepare_user_terminal();
void restore_user_terminal();

/* xterm.c */
char * get_xterm_resize_string();

/* dump.c */
void hex_dump(const char *head, const unsigned char *data, int len);
void dump_line(const char *msg, ...);