/* conn.h */
#include "config.h"
/*
* This file is part of TeenyMUD II.
* Copyright(C) 1993, 1994, 1995 by Jason Downs.
* All rights reserved.
*
* TeenyMUD II is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* TeenyMUD II is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program (see the file 'COPYING'); if not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*
*/
#ifndef __CONN_H
#define __CONN_H
/* a typical connection. */
struct conn {
short flags; /* connection status flags */
#define CONN_ERROR 0x01 /* something bad has happened- kill it */
#define CONN_KILL 0x02 /* flush it, then kill it */
int fd; /* file descriptor */
int player; /* player number, if logged in */
int port; /* remote port number */
short lwrap; /* conn. screen width if wrap enabled */
short lcrnl; /* conn. screen cr/nl mode */
#define CONN_CRNL 0
#define CONN_CR 1
#define CONN_NL 2
#define CONN_NLCR 3
short html_ext; /* type of HTML extension */
#ifndef HTML_NONE
#define HTML_NONE 0
#endif
#ifndef HTML_PUEBLO
#define HTML_PUEBLO 1
#endif
time_t connect; /* when first connected */
time_t last; /* last input */
int cc; /* input command count this second */
int bcc; /* number of times blown command count */
int ibyte; /* input byte count, total */
int obyte; /* output byte count, total */
VOID (*handler)(); /* input handler for this connection */
char *host; /* remote host name */
char *user; /* remote user name */
char *doing; /* for the who list */
char *outputprefix;
char *outputsuffix;
struct conn *prev;
struct conn *next;
#ifdef __TCPIP_C
/* buffers come last! */
struct buffer *ibuff;
struct buffer *obuff;
#endif /* __TCPIP_C */
};
extern struct conn *connlist;
/* from interface.c */
extern const char *const stty_nlmodekey[];
extern const int stty_nlmodeval[];
extern const char *const stty_nlmodes[];
/* This must always be smaller than medbuffsiz! */
#define NETINPUT_BUFFSIZ MEDBUFFSIZ/3
/* prototypes. */
extern void conn_close _ANSI_ARGS_((struct conn *));
extern int conn_put _ANSI_ARGS_((struct conn *, char *));
extern int conn_put_raw _ANSI_ARGS_((struct conn *, char *));
extern int conn_logoff _ANSI_ARGS_((struct conn *));
extern void rwho_login _ANSI_ARGS_((int));
extern void rwho_ping _ANSI_ARGS_((void));
extern VOID handle_input _ANSI_ARGS_((struct conn *, char *));
extern VOID handle_login _ANSI_ARGS_((struct conn *, char *));
extern void conn_greet _ANSI_ARGS_((struct conn *));
extern int conn_dump_file _ANSI_ARGS_((struct conn *, char *));
extern void log_disconnect _ANSI_ARGS_((struct conn *));
extern void log_connect _ANSI_ARGS_((struct conn *));
extern void stty_restore _ANSI_ARGS_((struct conn *));
#endif /* __CONN_H */