/* Copyright (c) 1993 Stephen F. White */

extern int	errno;
extern int	server_running;
extern int	yo_sock;

typedef struct Player Player;

struct Player {
    Playerid			id;
    int				connected : 1;
    int				isprogramming : 1;
    int				parsing : 1;
    char		        progfilename[MAX_PATH_LEN];
    FILE		       *progfile;
    void		       *progwhat;
    void		       *pcb;
    int				fd;
    long			addr;
    short			port;
    Buf				input;
    Buf				output;
    char		       *dangling_input;
    int				quota;
    Player		       *prev;
    Player		       *next;
};

extern Player	*players;

/*
 * from netio.c
 */
extern void	remove_player(Player *p);

/*
 * from serverio.c
 */
extern void	connect_to_servers(void);
extern void	disconnect_from_servers(void);
extern void	server_command(struct sockaddr_in *from, char *cmd);

/*
 * from playerio.c
 */

extern void	queue_player_commands(struct timeval cur_time,
						struct timeval *timeout);
extern void	parse_connect (char *msg, char **command, char **user,
				char **pass);