X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=doc%2Fserver.xml;h=f5b28f4d0e788b8013f47599971213416ddb4e3d;hp=02557e27a26e42d5291a1865fcfbff2fdd6f56d0;hb=d583c111c78cfe84d51e1886a6d00aef985db97e;hpb=e418c3a09071c8ea587ce5e32b4f1dca18997dae diff --git a/doc/server.xml b/doc/server.xml index 02557e2..f5b28f4 100644 --- a/doc/server.xml +++ b/doc/server.xml @@ -1,6 +1,6 @@ Generic server Introduction - + If you aren't into documentation, a good way to learn how the back end interface works is to look at the backend.h @@ -47,7 +47,7 @@ - + The Database Frontend @@ -89,7 +89,7 @@ Extended Services (optional). - + Result-Set Delete (optional). @@ -97,11 +97,11 @@ Result-Set Sort (optional). - + Return Explain for SRU (optional). - + @@ -157,9 +157,9 @@ int statserv_main(int argc, char **argv, connection. If you do use global variables and forking, you should be aware, then, that these cannot be shared between associations, unless you explicitly - disable forking by command line parameters. + disable forking by command line parameters. - + The server provides a mechanism for controlling some of its behavior without using command-line options. The function @@ -173,7 +173,7 @@ int statserv_main(int argc, char **argv, will return a pointer to a struct statserv_options_block describing the current default settings of the server. The structure contains these elements: - + int dynamic @@ -182,7 +182,7 @@ int statserv_main(int argc, char **argv, TRUE. This flag is only read by UNIX-based servers (WIN32 based servers doesn't fork). - + int threads A boolean value, which determines whether the server @@ -191,18 +191,18 @@ int statserv_main(int argc, char **argv, that offer POSIX Threads support. WIN32-based servers always operate in threaded mode. - + int inetd A boolean value, which determines whether the server will operates under a UNIX INET daemon (inetd). Default is FALSE. - + char logfile[ODR_MAXNAME+1] File for diagnostic output ("": stderr). - + char apdufile[ODR_MAXNAME+1] @@ -225,13 +225,13 @@ int statserv_main(int argc, char **argv, PROTO_SR. Default is PROTO_Z39_50. - + int idle_timeout; Maximum session idle-time, in minutes. Zero indicates no (infinite) timeout. Default is 15 minutes. - + int maxrecordsize; Maximum permissible record (message) size. Default @@ -252,7 +252,7 @@ int statserv_main(int argc, char **argv, Set user id to the user specified, after binding the listener addresses. - + void (*bend_start)(struct statserv_options_block *p) @@ -265,9 +265,9 @@ int statserv_main(int argc, char **argv, The default value of this pointer is NULL in which case it isn't invoked by the frontend server. When the server operates as an NT service this handler is called - whenever the service is started. + whenever the service is started. - + void (*bend_stop)(struct statserv_options_block *p) @@ -293,7 +293,7 @@ int statserv_main(int argc, char **argv, a static area. You are allowed to change the contents of the structure, but the changes will not take effect before you call - + void statserv_setcontrol(statserv_options_block *block); @@ -348,35 +348,35 @@ bend_initresult (*bend_init)(bend_initrequest *r); typedef struct bend_initrequest { /** \brief user/name/password to be read */ - Z_IdAuthentication *auth; + Z_IdAuthentication *auth; /** \brief encoding stream (for results) */ ODR stream; /** \brief printing stream */ ODR print; /** \brief decoding stream (use stream for results) */ - ODR decode; + ODR decode; /** \brief reference ID */ Z_ReferenceId *referenceId; /** \brief peer address of client */ - char *peer_name; - - /** \brief character set and language negotiation + char *peer_name; + + /** \brief character set and language negotiation - see include/yaz/z-charneg.h + see include/yaz/z-charneg.h */ Z_CharSetandLanguageNegotiation *charneg_request; /** \brief character negotiation response */ Z_External *charneg_response; - /** \brief character set (encoding) for query terms - + /** \brief character set (encoding) for query terms + This is NULL by default. It should be set to the native character set that the backend assumes for query terms */ - char *query_charset; + char *query_charset; + + /** \brief whehter query_charset also applies to recors - /** \brief whehter query_charset also applies to recors - Is 0 (No) by default. Set to 1 (yes) if records is in the same character set as queries. If in doubt, use 0 (No). */ @@ -448,7 +448,7 @@ typedef struct bend_initresult The auth member holds the authentication information part of the Z39.50 Initialize Request. Interpret this if your serves - requires authentication. + requires authentication. @@ -556,7 +556,7 @@ typedef struct { For SRU operation, a Bib-1 diagnostic code is mapped to SRU diagnostic. - + int (*bend_fetch) (void *handle, bend_fetch_rr *rr); @@ -686,7 +686,7 @@ typedef struct { Note that this is handler serves as a supplement for bend_fetch and need not to be defined in order to - support search - and retrieve. + support search - and retrieve. @@ -709,7 +709,7 @@ typedef struct bend_delete_rr { int delete_status; /* status for the whole operation */ int *statuses; /* status each set - indexed as setnames */ ODR stream; - ODR print; + ODR print; } bend_delete_rr; @@ -764,9 +764,9 @@ typedef struct bend_scan_rr { } bend_scan_rr; - This backend server handles both Z39.50 scan - and SRU scan. In order for a handler to distinguish between SRU (CQL) scan - Z39.50 Scan , it must check for a non-NULL value of + This backend server handles both Z39.50 scan + and SRU scan. In order for a handler to distinguish between SRU (CQL) scan + Z39.50 Scan , it must check for a non-NULL value of scanClause. @@ -786,21 +786,21 @@ typedef struct bend_scan_rr { &gfs-synopsis; - + The options are: &gfs-options; - + A listener specification consists of a transport mode followed by a colon (:) followed by a listener address. The transport mode is either tcp, unix: or ssl. - + For TCP and SSL, an address has the form @@ -808,7 +808,7 @@ typedef struct bend_scan_rr { hostname | IP-number [: portnumber] - + The port number defaults to 210 (standard Z39.50 port). @@ -818,11 +818,13 @@ typedef struct bend_scan_rr { - For TCP/IP and SSL, the special hostnames @ and - @6 are mapped to the addresses - INADDR_ANY (IPV4) and - IN6ADDR_ANY_INIT (IPV6) - respectively. + For TCP/IP and SSL, the special hostnames @, + maps to IN6ADDR_ANY_INIT with + IPV4 binding as well (bindv6only=0), + The special hostname @4 binds to + INADDR_ANY (IPV4 only listener). + The special hostname @6 binds to + IN6ADDR_ANY_INIT with bindv6only=1 (IPV6 only listener). Running the GFS on Unix @@ -845,7 +847,7 @@ typedef struct bend_scan_rr { as your public web server and want to offer HTTP port 80 access to the YAZ server on 210, you can use the - ProxyPass + ProxyPass directive. If you have virtual host srw.mydomain you can use the following directives @@ -878,7 +880,7 @@ typedef struct bend_scan_rr { &gfs-virtual; - +