Changeset 1355
- Timestamp:
- 2000-08-04T12:32:20+12:00 (24 years ago)
- Location:
- trunk/gsdl/src/recpt
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/src/recpt/Makefile.in
r1351 r1355 159 159 @YACC@ -b zparse -d zparse.y 160 160 161 zparse.tab.h: zparse.tab.c 162 161 163 parse.yy.c: parse.fl 162 164 flex -oparse.yy.c parse.fl -
trunk/gsdl/src/recpt/librarymain.cpp
r1347 r1355 187 187 z3950cfg = filename_cat (z3950cfg, "z3950.cfg"); 188 188 if (file_exists(z3950cfg)) { 189 zproto.read_config_file(z3950cfg); 189 text_t z3950err = filename_cat (gsdlhome, "etc"); 190 z3950err = filename_cat (z3950err, "recpt"); 191 z3950err = filename_cat (z3950err, "z3950log.txt"); 192 zproto.read_config_file(z3950cfg,z3950err); 190 193 // only add this protocol if we have any servers configured. 191 194 if (zproto.getServerCount()>0) -
trunk/gsdl/src/recpt/z3950cfg.h
r1347 r1355 24 24 struct z3950cfg *next; 25 25 }; 26 struct z3950cfg *zserver_list;27 #else28 26 extern struct z3950cfg *zserver_list; 29 27 #endif -
trunk/gsdl/src/recpt/z3950proto.cpp
r1352 r1355 56 56 } 57 57 58 void z3950proto::read_config_file(const text_t &filename ) {58 void z3950proto::read_config_file(const text_t &filename, const text_t &errf) { 59 59 struct z3950cfg *here; 60 60 struct z3950cfg *oldhere; 61 61 z3950_server *zserver; 62 62 ShortColInfo_t *tempinfo; 63 FILE *stderr_tmp, *err; 64 65 err=fopen(errf.getcstr(), "a"); 66 stderr_tmp=stderr; 67 if (err==NULL) { 68 // what do we do if we can't open the error file? 69 // this means that errors will go to stderr, which may stuff up 70 // any cgi headers and the page. 71 } else { 72 stderr=err; 73 } 63 74 64 75 // zconfigparse() is defined in zparse.tab.c, … … 68 79 if (yyin==NULL) { 69 80 cerr << "Could not open "<<filename.getcstr()<<" for reading.\n"; 81 return(); 70 82 } 71 83 zconfigparse(); 84 if (err!=NULL) { 85 fclose(err); 86 stderr=stderr_tmp; 87 } 88 72 89 // we now have the config files in the ptr zserver_list 73 90 if (zserver_list==NULL) … … 135 152 } 136 153 137 void z3950proto::configure (const text_t &key, 138 const text_tarray &cfgline) { 139 154 void z3950proto::configure (const text_t &/*key*/, 155 const text_tarray &/*cfgline*/) { 140 156 // this is called for each line in the gsdlsite.cfg file 141 142 if (0)143 cerr << "z3950proto::configure called:"144 << "key is " << key.getcstr()145 << "\n1st line is " << cfgline[0].getcstr() << endl;146 147 157 } 148 158 … … 169 179 comerror_t &/*err*/, 170 180 ostream &/*logout*/) { 171 // logout here DOESN'T go to initout.txt 172 // logout << "zdebug: get_collection_list called:\n"; 173 174 /** *** for now, we are assuming that each SERVER is a GSDL collection, 175 as opposed to each DATABASE on the servers. 176 */ 181 177 182 z3950_server_array::iterator here = zservers.begin(); 178 183 z3950_server_array::iterator end = zservers.end(); 179 184 while (here != end) { 180 185 collist.push_back((*here)->getName()); 181 //const ShortColInfo_t *info=here->getInfo();182 //collist.push_back(info->name);183 186 here++; 184 187 } … … 465 468 while (fields_here!=fields_end) { 466 469 it=info.collectionmeta.find(*fields_here); 467 ////////// cerr << "filter: getting " << (*fields_here).getcstr();468 470 if (it!=info.collectionmeta.end()) 469 471 docs_here->metadata[*fields_here].values.push_back((*it).second); … … 484 486 /////// cerr << " (not found)"; 485 487 } 486 ////////cerr << "\n";487 488 fields_here++; 488 489 } // end of inner while loop … … 498 499 response.docInfo[0].metadata[(*colmeta_here).first]. 499 500 values.push_back((*colmeta_here).second); 500 /////cerr << "\t" << (*colmeta_here).first.getcstr() << "\n";501 501 colmeta_here++; 502 502 } -
trunk/gsdl/src/recpt/z3950proto.h
r1347 r1355 46 46 void add_server(z3950_server& zserver); 47 47 48 void read_config_file(const text_t &filename );48 void read_config_file(const text_t &filename, const text_t &errfile); 49 49 50 50 void configure (const text_t &key, const text_tarray &cfgline); -
trunk/gsdl/src/recpt/zparse.tab.c
r1347 r1355 70 70 71 71 /* defined in z3950proto.cpp */ 72 extern struct z3950cfg *zservers_cfg_file;72 struct z3950cfg *zserver_list=NULL; 73 73 74 74 int yylex(void); … … 157 157 #if YYDEBUG != 0 158 158 static const short yyrline[] = { 0, 159 82, 85, 86, 88, 89, 91, 1 08, 111, 112, 117,160 1 18, 121, 122, 125, 126, 127, 132, 134, 135, 137,161 1 39, 142, 153, 175, 183, 191, 193, 194, 196, 197159 82, 85, 86, 88, 89, 91, 111, 115, 116, 121, 160 122, 125, 126, 129, 130, 131, 136, 138, 139, 141, 161 143, 146, 157, 179, 187, 195, 197, 198, 200, 201 162 162 }; 163 163 #endif … … 787 787 case 3: 788 788 #line 86 "zparse.y" 789 {fprintf(stderr,"No version - not GSDL config file?\n"); exit(1);;789 {fprintf(stderr,"No version - not GSDL config file?\n");return(1);; 790 790 break;} 791 791 case 4: … … 800 800 else { 801 801 if((yyval.cfg=malloc(sizeof(struct z3950cfg)))==NULL) 802 fprintf(stderr,"malloc failed\n"); 802 { 803 fprintf(stderr,"malloc failed\n"); 804 return(1); 805 } 803 806 yyval.cfg->shortname=yyvsp[-7].string; 804 807 yyval.cfg->hostname=yyvsp[-6].string; … … 813 816 break;} 814 817 case 7: 815 #line 108 "zparse.y" 816 {yyval.cfg=NULL;printf("discarding zserver\n");; 818 #line 111 "zparse.y" 819 {yyval.cfg=NULL; 820 fprintf(stderr,"discarding zserver (line %d)\n",lineno);; 817 821 break;} 818 822 case 8: 819 #line 11 1"zparse.y"823 #line 115 "zparse.y" 820 824 {;; 821 825 break;} 822 826 case 9: 823 #line 11 2"zparse.y"827 #line 116 "zparse.y" 824 828 {errormsg("Database name needs to be followed by a short " 825 829 "descriptive name (enclosed in \" marks)"); … … 828 832 break;} 829 833 case 10: 830 #line 1 17"zparse.y"834 #line 121 "zparse.y" 831 835 {yyval.number=atoi(yyvsp[0].string);; 832 836 break;} 833 837 case 11: 834 #line 1 18"zparse.y"838 #line 122 "zparse.y" 835 839 {yyval.number=210;; 836 840 break;} 837 841 case 12: 838 #line 12 1"zparse.y"842 #line 125 "zparse.y" 839 843 {yyval.string=yyvsp[0].string;; 840 844 break;} 841 845 case 13: 842 #line 12 2"zparse.y"846 #line 126 "zparse.y" 843 847 {yyval.string=yyvsp[0].string; 844 848 errormsg("Icon must be enclosed in quotes"); … … 846 850 break;} 847 851 case 14: 848 #line 12 5"zparse.y"852 #line 129 "zparse.y" 849 853 {yyval.string=NULL;; 850 854 break;} 851 855 case 15: 852 #line 1 26"zparse.y"856 #line 130 "zparse.y" 853 857 {yyval.string=yyvsp[0].string;; 854 858 break;} 855 859 case 16: 856 #line 1 27"zparse.y"860 #line 131 "zparse.y" 857 861 {yyval.string=yyvsp[0].string; 858 862 /* this is because of the ':' */ … … 862 866 break;} 863 867 case 17: 864 #line 13 2"zparse.y"868 #line 136 "zparse.y" 865 869 {yyval.string=NULL;; 866 870 break;} 867 871 case 18: 868 #line 13 4"zparse.y"872 #line 138 "zparse.y" 869 873 {defLanguage=0;; 870 874 break;} 871 875 case 19: 872 #line 13 5"zparse.y"876 #line 139 "zparse.y" 873 877 {yyval.about=NULL;; 874 878 break;} 875 879 case 20: 876 #line 1 37"zparse.y"880 #line 141 "zparse.y" 877 881 {;; 878 882 break;} 879 883 case 21: 880 #line 1 39"zparse.y"884 #line 143 "zparse.y" 881 885 {yyval.about=yyvsp[0].about;yyvsp[0].about->next=yyvsp[-1].about;; 882 886 break;} 883 887 case 22: 884 #line 14 3"zparse.y"888 #line 147 "zparse.y" 885 889 { 886 890 if((yyval.about=malloc(sizeof(struct z3950aboutlist))) 887 891 ==NULL) { 888 892 fprintf(stderr,"Malloc failed\n"); 889 exit(1);893 return(1); 890 894 } 891 895 yyval.about->lang=yyvsp[-1].string; … … 895 899 break;} 896 900 case 23: 897 #line 15 4"zparse.y"901 #line 158 "zparse.y" 898 902 { 899 903 if (defLanguage) … … 906 910 ==NULL) { 907 911 fprintf(stderr,"Malloc failed\n"); 908 exit(1);912 return(1); 909 913 } 910 914 yyval.about->lang=NULL; /* default lang... */ … … 914 918 break;} 915 919 case 24: 916 #line 1 76"zparse.y"920 #line 180 "zparse.y" 917 921 { 918 922 yyval.string=malloc(strlen(yyvsp[-2].string)+strlen(yyvsp[0].string)+1); … … 924 928 break;} 925 929 case 25: 926 #line 18 3"zparse.y"930 #line 187 "zparse.y" 927 931 {;; 928 932 break;} 929 933 case 26: 930 #line 19 1"zparse.y"934 #line 195 "zparse.y" 931 935 {errormsg("missing language");; 932 936 break;} 933 937 case 27: 934 #line 19 3"zparse.y"938 #line 197 "zparse.y" 935 939 {;; 936 940 break;} 937 941 case 28: 938 #line 19 4"zparse.y"942 #line 198 "zparse.y" 939 943 {;; 940 944 break;} 941 945 case 29: 942 #line 196"zparse.y"946 #line 200 "zparse.y" 943 947 {;; 944 948 break;} 945 949 case 30: 946 #line 197"zparse.y"950 #line 201 "zparse.y" 947 951 {;; 948 952 break;} … … 1170 1174 return 1; 1171 1175 } 1172 #line 20 0"zparse.y"1176 #line 204 "zparse.y" 1173 1177 1174 1178 /*int strncasecmp (const char *, const char *,size_t);*/ -
trunk/gsdl/src/recpt/zparse.y
r1347 r1355 24 24 25 25 /* defined in z3950proto.cpp */ 26 extern struct z3950cfg *zservers_cfg_file;26 struct z3950cfg *zserver_list=NULL; 27 27 28 28 int yylex(void); … … 84 84 85 85 version : GSDLVERSION {;} 86 | {fprintf(stderr,"No version - not GSDL config file?\n"); exit(1);}86 | {fprintf(stderr,"No version - not GSDL config file?\n");return(1);} 87 87 88 88 zserverlist : zserverlist zserver {if ($2!=NULL) {$2->next=$1;$$=$2;}} … … 95 95 else { 96 96 if(($$=malloc(sizeof(struct z3950cfg)))==NULL) 97 fprintf(stderr,"malloc failed\n"); 97 { 98 fprintf(stderr,"malloc failed\n"); 99 return(1); 100 } 98 101 $$->shortname=$1; 99 102 $$->hostname=$2; … … 106 109 } 107 110 } 108 | error {$$=NULL;printf("discarding zserver\n");} 111 | error {$$=NULL; 112 fprintf(stderr,"discarding zserver (line %d)\n",lineno);} 109 113 ; 110 114 … … 145 149 ==NULL) { 146 150 fprintf(stderr,"Malloc failed\n"); 147 exit(1);151 return(1); 148 152 } 149 153 $$->lang=$2; … … 162 166 ==NULL) { 163 167 fprintf(stderr,"Malloc failed\n"); 164 exit(1);168 return(1); 165 169 } 166 170 $$->lang=NULL; /* default lang... */
Note:
See TracChangeset
for help on using the changeset viewer.