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