summaryrefslogtreecommitdiff
path: root/server/zserver.h
diff options
context:
space:
mode:
authorGravatar John Kohl <jtkohl@mit.edu>1987-07-14 13:13:18 +0000
committerGravatar John Kohl <jtkohl@mit.edu>1987-07-14 13:13:18 +0000
commitc72c6a9af1ad29b46dc0d461a6106cb0d3ffbb89 (patch)
treeb0cada329feae3ff36361d48ee9d722d9d5baf45 /server/zserver.h
parent6ea374cae5e25b47a573d075568c63a23004e4c5 (diff)
generalize not acked; add more dfn's of functions; globalize
brain-dump useful variables; adjust TIMO's; add ADMIN opcodes, and class inst's; make appropriate defines for magic server indexes etc.
Diffstat (limited to 'server/zserver.h')
-rw-r--r--server/zserver.h46
1 files changed, 38 insertions, 8 deletions
diff --git a/server/zserver.h b/server/zserver.h
index ee32e8c..f2934c0 100644
--- a/server/zserver.h
+++ b/server/zserver.h
@@ -23,6 +23,7 @@
<stdio.h> */
#include <arpa/inet.h>
#include <zephyr/acl.h>
+#include <sys/file.h>
#include <syslog.h>
#include <strings.h>
@@ -102,7 +103,12 @@ typedef struct _ZNotAcked_t {
caddr_t na_packet; /* ptr to packet */
int na_packsz; /* size of packet */
ZUnique_Id_t na_uid; /* uid of packet */
- ZClient_t *na_client; /* address to send to */
+ union { /* address to send to */
+ ZClient_t *na_clt; /* client descr */
+ int srv_idx; /* index of server */
+ } dest;
+#define na_client dest.na_clt
+#define na_srv_idx dest.srv_idx
} ZNotAcked_t;
typedef enum _ZSentType {
@@ -111,6 +117,7 @@ typedef enum _ZSentType {
AUTH_FAILED, /* authentication failed */
NOT_FOUND /* user not found for uloc */
} ZSentType;
+
/* this is just for lint */
struct qelem {
struct qelem *q_forw;
@@ -123,7 +130,8 @@ struct qelem {
extern int access_check();
/* found in brain_dump.c */
-extern void get_brain_dump(), send_brain_dump();
+extern void get_brain_dump(), send_brain_dump(), offer_brain_dump();
+extern void bdump_send_list_tcp();
/* found in class_s.c */
extern Code_t class_register(), class_deregister(), class_restrict();
@@ -154,20 +162,25 @@ extern void hostm_transfer();
extern void server_timo(), server_dispatch(), server_recover();
extern void server_adispatch(), server_init(), server_shutdown();
extern void server_forward();
+extern int is_server();
+extern ZServerDesc_t *server_which_server();
/* found in subscr_s.c */
extern Code_t subscr_cancel(), subscr_subscribe();
extern ZClientList_t *subscr_match_list();
-extern void subscr_list_free(), subscr_cancel_client();
+extern void subscr_list_free(), subscr_cancel_client(), subscr_sendlist();
+extern void subscr_send_subs();
/* found in uloc_s.c */
extern void ulogin_dispatch(), ulocate_dispatch(), uloc_hflush();
+extern void uloc_send_locations();
/* found in zctl.c */
extern void control_dispatch();
/* found in libc.a */
char *malloc(), *realloc();
+long random();
/* global identifiers */
@@ -176,6 +189,13 @@ extern struct in_addr my_addr; /* my inet address */
extern struct sockaddr_in sock_sin; /* socket descriptors */
extern int srv_socket; /* dgram sockets for clients
and other servers */
+extern int bdump_socket; /* brain dump socket
+ (closed most of the time) */
+extern struct sockaddr_in bdump_sin; /* addr of brain dump socket */
+
+extern fd_set interesting; /* the file descrips we are listening
+ to right now */
+extern int nfildes; /* number to look at in select() */
extern int zdebug;
extern char myname[]; /* domain name of this host */
extern ZNotAcked_t *nacklist; /* list of not ack'ed packets */
@@ -196,11 +216,11 @@ extern int nservers; /* number of other servers*/
must respond to a ping */
/* server-server defines */
-#define TIMO_UP ((long) 20) /* timeout between up and tardy */
-#define TIMO_TARDY ((long) 30) /* timeout btw tardy hellos */
+#define TIMO_UP ((long) 60) /* timeout between up and tardy */
+#define TIMO_TARDY ((long) 60) /* timeout btw tardy hellos */
#define TIMO_DEAD ((long)(15*60)) /* timeout between hello's for dead */
-#define H_NUM_TARDY 5 /* num hello's before going dead
+#define H_NUM_TARDY 3 /* num hello's before going dead
when tardy */
#define H_NUM_STARTING 2 /* num hello's before going dead
when starting */
@@ -208,6 +228,13 @@ extern int nservers; /* number of other servers*/
#define ADMIN_HELLO "HELLO" /* Opcode: hello, are you there */
#define ADMIN_IMHERE "IHEARDYOU" /* Opcode: yes, I am here */
#define ADMIN_SHUTDOWN "GOODBYE" /* Opcode: I am shutting down */
+#define ADMIN_BDUMP "DUMP_AVAIL" /* Opcode: I will give you a dump */
+#define ADMIN_DONE "DUMP_DONE" /* Opcode: brain dump for this server
+ is complete */
+#define ADMIN_NEWCLT "NEXT_CLIENT" /* Opcode: this is a new client */
+
+#define ADMIN_LIMBO "LIMBO" /* Class inst: please send limbo info*/
+#define ADMIN_YOU "YOUR_STATE" /* Class inst: please send your state*/
#define NULLZCT ((ZClass_t *) 0)
#define NULLZCNT ((ZClient_t *) 0)
@@ -223,12 +250,15 @@ extern int nservers; /* number of other servers*/
/* me_server_idx is the index into otherservers of this server descriptor. */
/* the 'limbo' server is always the first server */
-#define me_server &otherservers[me_server_idx]
-#define limbo_server otherservers
+#define me_server (&otherservers[me_server_idx])
+#define limbo_server_idx() (0)
+#define limbo_server (&otherservers[limbo_server_idx()])
#define ack(a,b) clt_ack(a,b,SENT)
#define nack(a,b) clt_ack(a,b,NOT_SENT)
+#define max(a,b) ((a) > (b) ? (a) : (b))
+
/* these are to keep lint happy */
#define xfree(foo) free((caddr_t) (foo))
#define xinsque(a,b) insque((struct qelem *)(a), (struct qelem *)(b))