5 * Revision 1.15 1995/04/19 13:19:08 adam
6 * New command: account - for authentication.
8 * Revision 1.14 1995/04/19 10:46:18 adam
9 * Persistency works much better now. New command: status - history-like
11 * Revision 1.13 1995/04/19 07:31:04 adam
12 * First work on Z39.50 persistence.
14 * Revision 1.12 1995/04/17 09:34:29 adam
15 * Timeout (idletime) adjustable. Minor changes in kernel.
17 * Revision 1.11 1995/03/28 11:42:34 adam
18 * First use of string-queue utility.
20 * Revision 1.10 1995/03/27 08:24:01 adam
21 * First use of gip interface and gw-db.
22 * First work on eti program.
24 * Revision 1.9 1995/03/03 17:19:13 adam
25 * Smarter presentation. Bug fix in email header interpretation.
27 * Revision 1.8 1995/03/01 14:32:24 adam
28 * Better diagnostics. Default is, that only one database selected when
31 * Revision 1.7 1995/02/23 08:32:16 adam
34 * Revision 1.5 1995/02/22 15:22:32 adam
35 * Much more checking of run-time state. Show command never retrieves
36 * more records than indicated by the previous search request. Help
37 * command available. The maximum number of records retrieved can be
40 * Revision 1.4 1995/02/20 21:16:18 adam
41 * FML support. Bug fixes. Profile for drewdb.
43 * Revision 1.3 1995/02/16 18:35:08 adam
44 * First use of Zdist library. Search requests are supported.
45 * Present requests are not supported yet.
47 * Revision 1.2 1995/02/16 13:20:59 adam
48 * Organization of resource files for targets and conversion
49 * language implemented.
51 * Revision 1.1 1995/02/15 17:45:29 adam
52 * First version of email gateway kernel. Email requests are read
53 * from stdin. The output is transferred to an MTA if 'From' is
54 * found in the header - or stdout if absent. No Z39.50 client is used.
72 char *name; /* name of result set */
73 int hits; /* -1 on error */
74 char *database; /* database(s) in which we search */
75 struct ccl_rpn_node *rpn; /* rpn request */
76 int present_flag; /* present in target (presistency) */
77 char *search_str; /* find request string */
78 struct gw_user_set *prev;
81 struct gw_kernel_info {
84 const char *default_res;
85 const char *override_res;
91 const char *override_portno;
92 const char *override_hostname;
97 char from_str[LINE_MAX+1];
98 const char *reply_fname;
103 struct gw_user_set *sets;
106 extern struct gw_kernel_info info;
108 extern FILE *reply_fd;
110 int urp_start (int continuation, struct str_queue *queue);
111 int urp_command (struct str_queue *queue);
114 void read_kernel_res (void);
116 struct gw_user_set *user_set_add (const char *name, int hits,
117 const char *database,
118 struct ccl_rpn_node *rpn,
120 const char *search_str);
121 struct gw_user_set *user_set_search (const char *name);
122 void user_set_init (void);
124 int lgets (char *buf, int max, int fd);
126 const struct zass_searchent *zass_p_search (ZASS zass,
127 struct ccl_rpn_node *rpn,
128 const char *result_set,
129 const char *database,
130 struct gw_user_set *sets);
131 const struct zass_presentent *zass_p_present (ZASS zass,
132 const char *result_set,
133 int offset, int number);
135 int load_p_state (int userid);
136 int save_p_state (int userid);
137 int reopen_target (void);
139 #define KERNEL_LOG "kernel"