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

#ifndef NETIO_PRIVATE_H
#define NETIO_PRIVATE_H

extern int server_running;
extern SOCKET 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;
  SOCKET 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);
#endif /* !NETIO_PRIVATE_H */