X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=kernel%2Furp.c;h=914e279b3cc971c9e2162d771cb17a5213c7217f;hb=7f332a840baf336e34d612cdee0ef27901f0dd11;hp=3cce3a147f612a8693a39e3c117722a357c9a8d3;hpb=25db261b6bbbfcc7bc26f679f195b51d31b9d7d7;p=egate.git diff --git a/kernel/urp.c b/kernel/urp.c index 3cce3a1..914e279 100644 --- a/kernel/urp.c +++ b/kernel/urp.c @@ -45,7 +45,13 @@ * Europagate, 1995 * * $Log: urp.c,v $ - * Revision 1.49 1996/03/01 14:25:28 adam + * Revision 1.51 2001/02/26 14:32:36 adam + * Updated for YAZ 1.7. HTML output tidy up. Added LOC target. + * + * Revision 1.50 1996/03/01 16:09:30 adam + * New setting: gw.msg.replyto that sets Reply-To in user response. + * + * Revision 1.49 1996/03/01 14:25:28 adam * Email gateway obeys 'Reply-To:' in header. * * Revision 1.48 1996/02/12 10:04:57 adam @@ -744,40 +750,45 @@ static void present (const char *set, int offset, int number, continue; } } - if (record_log_fd != -1) - write (record_log_fd, pp->record, strlen(pp->record)); - rec = iso2709_cvt (pp->record); - if (rec) - { + if (pp->record) + { + if (record_log_fd != -1) + write (record_log_fd, pp->record, strlen(pp->record)); + rec = iso2709_cvt (pp->record); + if (rec) + { #if USE_FML - strcpy (format_str, - gw_res_get (info.kernel_res, - "gw.display.format", "")); - if (format_token) - { - len = format_token->len; - if (len >= sizeof(format_str)) - len = sizeof(format_str)-1; - memcpy (format_str, format_token->name, len); - format_str[len] = '\0'; - } - if (info.fml && *format_str && - (!strcmp (format_str, "0") || !strcmp (format_str, "1") - || !strcmp(format_str, "2"))) - { - arg_ar[0] = "\\f"; - arg_ar[1] = format_str; - arg_ar[2] = " \\list"; - arg_ar[3] = marc_to_str (info.fml, rec); - arg_ar[4] = NULL; - fml_exec_call_argv (info.fml, arg_ar); - } - else - iso2709_display (rec, reply_fd); + strcpy (format_str, + gw_res_get (info.kernel_res, + "gw.display.format", "")); + if (format_token) + { + len = format_token->len; + if (len >= sizeof(format_str)) + len = sizeof(format_str)-1; + memcpy (format_str, format_token->name, len); + format_str[len] = '\0'; + } + if (info.fml && *format_str && + (!strcmp (format_str, "0") || !strcmp (format_str, "1") + || !strcmp(format_str, "2"))) + { + arg_ar[0] = "\\f"; + arg_ar[1] = format_str; + arg_ar[2] = " \\list"; + arg_ar[3] = marc_to_str (info.fml, rec); + arg_ar[4] = NULL; + fml_exec_call_argv (info.fml, arg_ar); + } + else + iso2709_display (rec, reply_fd); #else - iso2709_display (rec, reply_fd); + iso2709_display (rec, reply_fd); #endif - iso2709_rm (rec); + iso2709_rm (rec); + } + else + fprintf (reply_fd, "Record type not supported\n"); } else fprintf (reply_fd, "Not a MARC record\n"); @@ -1169,6 +1180,7 @@ static int exec_command (const char *str, int *stop_flag) int urp_start (int continuation, struct str_queue *queue) { char subject_str[128]; + const char *cp; info.command_no = 0; info.reply_fname = NULL; @@ -1197,6 +1209,9 @@ int urp_start (int continuation, struct str_queue *queue) fprintf (reply_fd, "From: %s\n", gw_res_get (info.kernel_res, "gw.msg.from", "Email-Z39.50 gateway")); + cp = gw_res_get (info.kernel_res, "gw.msg.replyto", NULL); + if (cp) + fprintf (reply_fd, "Reply-To: %s\n", cp); fprintf (reply_fd, "Subject: "); if (*subject_str) fprintf (reply_fd, "Z39.50 Re: %s", subject_str);