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