#include <sys/socket.h>
#ifdef _AIX
#include <sys/socketvar.h>
#endif
#include <netinet/in.h>
#ifdef hpux
#include <sys/file.h>
#define index(a,b) strchr(a,b)
#endif
#define MAX_TEXT 2048
#define MAX_SOCKET_PACKET_SIZE 1024 /* Wild guess. */
#define DESIRED_SOCKET_PACKET_SIZE 800
#define MESSAGE_FLUSH ((char*)NULL)
struct interactive {
unsigned closing:1; /* True when closing this socket. */
unsigned do_close:1; /* This is to be closed down. */
unsigned silent_close:1; /* Close connection with no further output */
unsigned noecho:1; /* Don't echo lines */
#ifdef PORTALS
unsigned from_portal:1;/*True if this player has arrived through a portal */
unsigned out_portal:1; /* True if going out through a portal. */
#endif
char text[MAX_TEXT];
char trace_level;
struct sockaddr_in addr;
int socket;
int text_end; /* first free char in buffer */
int text_start; /* where we are up to in player cmd buffer */
int last_time; /* Time of last command executed */
#ifdef PORTALS
int portal_socket; /*All messages should go through this socket, if open */
#endif
char *trace_prefix;
char *prompt;
struct object *ob; /* Points to the associated object */
struct sentence *input_to; /* To be called with next input line ! */
struct interactive *snoop_on, *snoop_by;
struct ed_buffer *ed_buffer;
#ifdef ACCESS_RESTRICTED
void *access_class;
#endif
int message_length;
char message_buf[DESIRED_SOCKET_PACKET_SIZE+1];
struct object *next_player_for_flush, *previous_player_for_flush;
#ifdef MUDWHO
int login_time;
#endif
};
#define L_WAITING_FOR_NAME 1
#define L_LOGGED_ON 2
#define BACKEND_IN_BACKGROUND
#define HOST_NAME "worf.tamu.edu"
#define MAX_SOCKET_PACKET_SIZE 1024 /* Wild guess. */
#define ULTRASNOOP 0