X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=client%2Fclient.c;h=d8edfe1971c6e0e87e0ed1ee26dd3748129faec1;hp=59a70c2a4cb881e1669c02d47f2ce8c606804b69;hb=3cdfbd27dfc8dd15619f127ae78bf0f71b27dd6d;hpb=7a4064cd15f6c6b34c1180e1bc51f0d0e90da320 diff --git a/client/client.c b/client/client.c index 59a70c2..d8edfe1 100644 --- a/client/client.c +++ b/client/client.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2007, Index Data ApS * See the file LICENSE for details. * - * $Id: client.c,v 1.332 2007-04-12 13:52:57 adam Exp $ + * $Id: client.c,v 1.334 2007-04-16 21:53:08 adam Exp $ */ /** \file client.c * \brief yaz-client program @@ -339,9 +339,7 @@ static void send_initRequest(const char* type_and_host) if (yazProxy && type_and_host) { - const int *oid_proxy = yaz_string_to_oid(yaz_oid_std(), - CLASS_USERINFO, OID_STR_PROXY); - yaz_oi_set_string_oid(&req->otherInfo, out, oid_proxy, + yaz_oi_set_string_oid(&req->otherInfo, out, yaz_oid_userinfo_proxy, 1, type_and_host); } @@ -859,10 +857,7 @@ static void print_record(const unsigned char *buf, size_t len) static void display_record(Z_External *r) { - char oid_name_buf[OID_STR_MAX]; - int oclass; const int *oid = r->direct_reference; - const char *oid_name = 0; record_last = r; /* @@ -870,7 +865,10 @@ static void display_record(Z_External *r) */ if (oid) { - oid_name = yaz_oid_to_string_buf(oid, &oclass, oid_name_buf); + int oclass; + char oid_name_buf[OID_STR_MAX]; + const char *oid_name + = yaz_oid_to_string_buf(oid, &oclass, oid_name_buf); printf("Record type: "); if (oid_name) printf("%s\n", oid_name); @@ -908,7 +906,7 @@ static void display_record(Z_External *r) } } } - if (oid_name && !yaz_matchstr(oid_name, OID_STR_SOIF)) + if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_soif)) { print_record((const unsigned char *) r->u.octet_aligned->buf, r->u.octet_aligned->len); @@ -918,14 +916,14 @@ static void display_record(Z_External *r) else if (oid && r->which == Z_External_octet) { const char *octet_buf = (char*)r->u.octet_aligned->buf; - if (oid_name && (!yaz_matchstr(oid_name, OID_STR_XML) - || !yaz_matchstr(oid_name, OID_STR_APPLICATION_XML) - || !yaz_matchstr(oid_name, OID_STR_HTML))) + if (oid && (!oid_oidcmp(oid, yaz_oid_recsyn_xml) + || !oid_oidcmp(oid, yaz_oid_recsyn_xml) + || !oid_oidcmp(oid, yaz_oid_recsyn_html))) { print_record((const unsigned char *) octet_buf, r->u.octet_aligned->len); } - else if (oid_name && !yaz_matchstr(oid_name, OID_STR_POSTSCRIPT)) + else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_postscript)) { int size = r->u.octet_aligned->len; if (size > 100) @@ -953,7 +951,7 @@ static void display_record(Z_External *r) if (marcCharset && !strcmp(marcCharset, "auto")) { - if (!yaz_matchstr(oid_name, OID_STR_USMARC)) + if (!oid_oidcmp(oid, yaz_oid_recsyn_usmarc)) { if (octet_buf[9] == 'a') from = "UTF-8"; @@ -1003,7 +1001,7 @@ static void display_record(Z_External *r) if (marc_file) fwrite (octet_buf, 1, r->u.octet_aligned->len, marc_file); } - else if (oid_name && !yaz_matchstr(oid_name, OID_STR_SUTRS)) + else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_sutrs)) { if (r->which != Z_External_sutrs) { @@ -1014,7 +1012,7 @@ static void display_record(Z_External *r) if (marc_file) fwrite (r->u.sutrs->buf, 1, r->u.sutrs->len, marc_file); } - else if (oid_name && !yaz_matchstr(oid_name, OID_STR_GRS1)) + else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_grs_1)) { WRBUF w; if (r->which != Z_External_grs1) @@ -1027,7 +1025,7 @@ static void display_record(Z_External *r) puts (wrbuf_cstr(w)); wrbuf_destroy(w); } - else if (oid_name && !yaz_matchstr(oid_name, OID_STR_OPAC)) + else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_opac)) { int i; if (r->u.opac->bibliographicRecord) @@ -1166,7 +1164,7 @@ static void display_diagrecs(Z_DiagRec **pp, int num) const char *diag_name = 0; diag_name = yaz_oid_to_string_buf (r->diagnosticSetId, &oclass, diag_name_buf); - if (yaz_matchstr(diag_name, OID_STR_BIB1)) + if (oid_oidcmp(r->diagnosticSetId, yaz_oid_diagset_bib_1)) printf("Unknown diagset: %s\n", diag_name); } printf(" [%d] %s", *r->condition, diagbib1_str(*r->condition)); @@ -3607,7 +3605,6 @@ int cmd_set_marcdump(const char* arg) return 1; } -#if 0 /* this command takes 3 arge {name class oid} */ @@ -3634,12 +3631,10 @@ int cmd_register_oid(const char* args) { {0,(enum oid_class) 0} }; char oname_str[101], oclass_str[101], oid_str[101]; - char* name; int i; - oid_class oidclass = CLASS_GENERAL; - int val = 0, oid[OID_SIZE]; - struct oident * new_oident=NULL; - + int oidclass = CLASS_GENERAL; + int oid[OID_SIZE]; + if (sscanf (args, "%100[^ ] %100[^ ] %100s", oname_str,oclass_str, oid_str) < 1) { printf("Error in register command \n"); @@ -3659,35 +3654,15 @@ int cmd_register_oid(const char* args) { return 0; } - i = 0; - name = oid_str; - val = 0; - - while (isdigit (*(unsigned char *) name)) - { - val = val*10 + (*name - '0'); - name++; - if (*name == '.') - { - if (i < OID_SIZE-1) - oid[i++] = val; - val = 0; - name++; - } - } - oid[i] = val; - oid[i+1] = -1; - - new_oident = oid_addent (oid, PROTO_GENERAL, oidclass, oname_str, - VAL_DYNAMIC); - if(strcmp(new_oident->desc,oname_str)) + oid_dotstring_to_oid(oid_str, oid); + + if (yaz_oid_add(yaz_oid_std(), oidclass, oname_str, oid)) { - fprintf(stderr,"oid is already named as %s, registration failed\n", - new_oident->desc); + printf("oid %s already exists, registration failed\n", + oname_str); } return 1; } -#endif int cmd_push_command(const char* arg) { @@ -4421,9 +4396,7 @@ static struct { {"set_auto_wait", cmd_set_auto_wait," on|off",complete_auto_reconnect,1,NULL}, {"set_otherinfo", cmd_set_otherinfo," ",NULL,0,NULL}, {"sleep", cmd_sleep,"",NULL,0,NULL}, -#if 0 {"register_oid", cmd_register_oid," ",NULL,0,NULL}, -#endif {"push_command", cmd_push_command,"",command_generator,0,NULL}, {"register_tab", cmd_register_tab," ",command_generator,0,NULL}, {"cclparse", cmd_cclparse,"",NULL,0,NULL},