main.h
author viric@llimona
Thu, 27 Sep 2007 00:25:54 +0200
changeset 58 2cf8c513d18f
parent 43 625794738afc
child 60 18c24be2b1a6
permissions -rw-r--r--
added authors.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
     1
enum Transport
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
     2
{
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
     3
    UNIX,
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
     4
    TCP,
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
     5
    ETHERNET
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
     6
};
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
     7
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
     8
struct Command_line {
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
     9
    int is_server;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    10
    char *unix_path; /* path or 0 if not to be used */
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    11
    int tcp_port;
43
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    12
    char *eth_device;
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    13
    struct {
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    14
        int serve_tcp; /* yes/no */
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    15
        int serve_unix; /* yes/no */
43
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    16
        int serve_eth; /* yes/no */
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    17
        int max_served; /* how many */
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    18
        char run_in_subterminal; /* use opentty */
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    19
        char echo_in_local_terminal;
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    20
        char use_blocking_sockets;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    21
        char send_xterm_resize;
23
b3e6c6ffc69c Moving the client out.
viric@llimona
parents: 21
diff changeset
    22
        char client_may_close_app_stdin;
32
df110f784648 Added read-only clients, added stdin-close option to clients.
lbatlle@npdl268.bpo.hp.com
parents: 29
diff changeset
    23
        char client_can_write;
41
954941c6e40a Added 'nohup' option -n.
viric@llimona
parents: 36
diff changeset
    24
        char nohup; /* detach from terminal as nohup */
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    25
        char **command; /* ordono por exec */
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    26
    } s_param;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    27
    struct {
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    28
        enum Transport transport;
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    29
        unsigned int wait_until_char; /* -1, don't wait. */
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    30
        char raw_mode; /* bool. else cooked */
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    31
        char * server_address;
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    32
    } c_param;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    33
    int buffer_size;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    34
};
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    35
0
3bbacfe6797a Something bare.
viric@llimona
parents:
diff changeset
    36
3bbacfe6797a Something bare.
viric@llimona
parents:
diff changeset
    37
/* error.c */
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    38
void not_implemented(const char *msg, ...);
14
286b248e402a Adding better error messages and a README.
viric@llimona
parents: 7
diff changeset
    39
void error(const char *msg, ...);
26
96920c3707b3 Unix sockets version works! Well, signals don't. :)
viric@llimona
parents: 24
diff changeset
    40
void finish(int ret);
0
3bbacfe6797a Something bare.
viric@llimona
parents:
diff changeset
    41
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    42
/* signals.c */
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    43
void install_signal_forwarders();
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    44
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    45
/* main.c */
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    46
extern int app_stdin;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    47
extern int app_stdout;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    48
extern int app_stderr;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    49
extern struct Command_line command_line;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    50
int max(int a, int b);
43
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    51
int min(int a, int b);
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    52
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    53
/* gen_sockets.c */
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    54
extern char *stream_buffer;
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    55
extern int stream_buffer_size;
34
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents: 32
diff changeset
    56
extern char *ostream_buffer;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents: 32
diff changeset
    57
extern int ostream_buffer_size;
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents: 32
diff changeset
    58
void init_stream_buffers();
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    59
void welcome_new_client_socket(int s);
21
a82c88322eb5 Big change, from stdinmix to multiterminal.
viric@llimona
parents: 14
diff changeset
    60
23
b3e6c6ffc69c Moving the client out.
viric@llimona
parents: 21
diff changeset
    61
/* server.c */
29
91286c3ecebc Added getopt, and some things got based on parameters.
viric@llimona
parents: 26
diff changeset
    62
int server();
23
b3e6c6ffc69c Moving the client out.
viric@llimona
parents: 21
diff changeset
    63
b3e6c6ffc69c Moving the client out.
viric@llimona
parents: 21
diff changeset
    64
/* client.c */ 
b3e6c6ffc69c Moving the client out.
viric@llimona
parents: 21
diff changeset
    65
int client();
24
03ddd5ab560b Moving to modules.
viric@llimona
parents: 23
diff changeset
    66
03ddd5ab560b Moving to modules.
viric@llimona
parents: 23
diff changeset
    67
/* app_term.c */
03ddd5ab560b Moving to modules.
viric@llimona
parents: 23
diff changeset
    68
int fork_app(char * const command[]);
26
96920c3707b3 Unix sockets version works! Well, signals don't. :)
viric@llimona
parents: 24
diff changeset
    69
96920c3707b3 Unix sockets version works! Well, signals don't. :)
viric@llimona
parents: 24
diff changeset
    70
/* server_term.c */
96920c3707b3 Unix sockets version works! Well, signals don't. :)
viric@llimona
parents: 24
diff changeset
    71
void prepare_user_terminal();
96920c3707b3 Unix sockets version works! Well, signals don't. :)
viric@llimona
parents: 24
diff changeset
    72
void restore_user_terminal();
34
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents: 32
diff changeset
    73
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    74
/* xterm.c */
34
7486e269b794 Added filter engine, xterm resize.
viric@mandarina
parents: 32
diff changeset
    75
char * get_xterm_resize_string();
36
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    76
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    77
/* dump.c */
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    78
void hex_dump(const char *head, const unsigned char *data, int len);
da427c23d755 Added dumps, telnet_filter, applied filters in tm, improved telnet experience.
viric@llimona
parents: 34
diff changeset
    79
void dump_line(const char *msg, ...);
43
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    80
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    81
/* eth_proto.c */
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    82
void eth_proto_init();
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    83
int eth_proto_open();
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    84
int eth_proto_recv(char *data, int size);
625794738afc Added first attempt for an ethernet protocol. Even not tried.
viric@llimona
parents: 41
diff changeset
    85
int eth_proto_send(const char *data, int size);