Smarter presentation. Bug fix in email header interpretation.
[egate.git] / kernel / kernel.h
1 /* Gateway kernel
2  * Europagate, 1995
3  *
4  * $Log: kernel.h,v $
5  * Revision 1.9  1995/03/03 17:19:13  adam
6  * Smarter presentation. Bug fix in email header interpretation.
7  *
8  * Revision 1.8  1995/03/01  14:32:24  adam
9  * Better diagnostics. Default is, that only one database selected when
10  * several are known.
11  *
12  * Revision 1.7  1995/02/23  08:32:16  adam
13  * Changed header.
14  *
15  * Revision 1.5  1995/02/22  15:22:32  adam
16  * Much more checking of run-time state. Show command never retrieves
17  * more records than indicated by the previous search request. Help
18  * command available. The maximum number of records retrieved can be
19  * controlled now.
20  *
21  * Revision 1.4  1995/02/20  21:16:18  adam
22  * FML support. Bug fixes. Profile for drewdb.
23  *
24  * Revision 1.3  1995/02/16  18:35:08  adam
25  * First use of Zdist library. Search requests are supported.
26  * Present requests are not supported yet.
27  *
28  * Revision 1.2  1995/02/16  13:20:59  adam
29  * Organization of resource files for targets and conversion
30  * language implemented.
31  *
32  * Revision 1.1  1995/02/15  17:45:29  adam
33  * First version of email gateway kernel. Email requests are read
34  * from stdin. The output is transferred to an MTA if 'From' is
35  * found in the header - or stdout if absent. No Z39.50 client is used.
36  *
37  */
38
39 #include <gw-res.h>
40 #include <gw-log.h>
41 #include <ccl.h>
42 #include <zaccess.h>
43
44 #include <iso2709.h>
45 #if USE_FML
46 #include <fmlmarc.h>
47 #endif
48
49 int urp (FILE *inf);
50
51 struct gw_user_set {
52     char *name;        /* name of result set */
53     int hits;          /* -1 on error */
54     struct gw_user_set *prev;
55 };
56
57 struct gw_kernel_info {
58     CCL_bibset bibset;
59     GwRes kernel_res;
60     const char *default_res; 
61     const char *override_res;
62     char target[128];
63     char hostname[128];
64     int  port;
65     const char *lang;
66     const char *override_portno;
67     const char *override_hostname;
68     char *databases;
69     char *database;
70     ZASS  zass;
71 #if USE_FML
72     Fml   fml;
73 #endif
74     struct gw_user_set *sets;
75 };
76
77 extern struct gw_kernel_info info;
78
79 extern FILE *reply_fd;
80
81 void read_kernel_res (void);
82
83 struct gw_user_set *user_set_add (const char *name, int hits);
84 struct gw_user_set *user_set_search (const char *name);
85 void user_set_init (void);
86 void tty_emit (int ch);
87 void tty_init (FILE *out, int min, int max);
88
89 #define KERNEL_LOG "kernel"