mars-nwe/include/nwserv.h

110 lines
3.9 KiB
C

/* nwserv.h 17-Jul-97 */
/* (C)opyright (C) 1993,1995 Martin Stover, Marburg, Germany
*
* This program 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.
*
* This program 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; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _M_NWSERV_H_
#define _M_NWSERV_H_
extern uint32 internal_net; /* NETWORKNUMMER INTERN (SERVER) */
extern int no_internal; /* no use of internal net */
extern int auto_detect_interfaces;
extern ipxAddr_t my_server_adr; /* Address of this server */
extern char my_nwname[50]; /* Name of this server */
extern int print_route_tac; /* every x broadcasts print it */
extern int print_route_mode; /* append */
extern char *pr_route_info_fn; /* filename */
extern int wdogs_till_tics;
extern time_t acttime_stamp;
typedef struct {
char *devname; /* "eth0" or "isdnX" or ?? */
int frame; /* frametyp */
int ticks; /* ether:ticks=1, isdn:ticks=7 */
uint32 net; /* NETWORK NUMBER */
int is_up; /* Is this device up ? */
int wildmask; /* wildmask, 1=name, 2=frame, 4=net */
time_t updated_time;
int needs_update;
} NW_NET_DEVICE;
/* <========== DEVICES ==========> */
extern int count_net_devices;
extern int max_net_devices;
extern NW_NET_DEVICE **net_devices;
/* <======== SOCKETS =========> */
#if !IN_NWROUTED
# define WDOG_SLOT 0 /* Watchdog send + recv */
# if SOCK_EXTERN
# define EXTERN_SLOT (WDOG_SLOT+1)
# ifdef _MAR_TESTS_1
# define PSERVER_SLOT (EXTERN_SLOT+1)
# define SAP_SLOT (PSERVER_SLOT+1)
# else
# define SAP_SLOT (EXTERN_SLOT+1)
# endif
# else
# ifdef _MAR_TESTS_1
# define PSERVER_SLOT (WDOG_SLOT+1)
# define SAP_SLOT (PSERVER_SLOT+1)
# else
# define SAP_SLOT (WDOG_SLOT+1)
# endif
# endif
#else
# define SAP_SLOT 0
#endif
#if INTERNAL_RIP_SAP
# define RIP_SLOT (SAP_SLOT +1)
# define ROUTE_SLOT (RIP_SLOT +1)
# define DIAG_SLOT (ROUTE_SLOT +1)
# if 0
# define ECHO_SLOT (DIAG_SLOT +1)
# define ERR_SLOT (ECHO_SLOT +1)
# endif
#endif
extern int sockfd[];
extern void ins_del_bind_net_addr(uint8 *name, int styp, ipxAddr_t *adr);
extern void send_server_response(int respond_typ,
int styp, ipxAddr_t *to_addr);
extern void print_routing_info(int force);
extern void send_sap_rip_broadcast(int mode);
extern void rip_for_net(uint32 net);
extern void get_servers(void);
extern void handle_rip(int fd, int ipx_pack_typ,
int data_len, IPX_DATA *ipxdata,
ipxAddr_t *from_addr);
extern int activate_slow_net(uint32 net);
extern void insert_delete_server(uint8 *name,
int styp,
ipxAddr_t *addr,
ipxAddr_t *from_addr,
int hops,
int do_delete, /* delete = 1 */
int flags);
extern int dont_send_wdog(ipxAddr_t *addr);
extern void realloc_net_devices(void);
extern int test_ins_device_net(uint32 rnet);
#endif