zoom: Honor extraArgs, strip # in zurl
[metaproxy-moved-to-github.git] / src / filter_multi.cpp
index 713cf32..b32c115 100644 (file)
@@ -514,7 +514,12 @@ void yf::Multi::Frontend::init(mp::Package &package, Z_GDU *gdu)
                     maximumRecordSize = *b_resp->maximumRecordSize;
             }
             else
+            {
+                if (!f_resp->userInformationField 
+                    && b_resp->userInformationField)
+                    f_resp->userInformationField = b_resp->userInformationField;
                 no_failed++;
+            }
         }
         else
             no_failed++;
@@ -555,7 +560,7 @@ void yf::Multi::Frontend::search(mp::Package &package, Z_APDU *apdu_req)
     // they are altered now - to disable piggyback
     *req->smallSetUpperBound = 0;
     *req->largeSetLowerBound = 1;
-    *req->mediumSetPresentNumber = 1;
+    *req->mediumSetPresentNumber = 0;
 
     int default_num_db = req->num_databaseNames;
     char **default_db = req->databaseNames;
@@ -1107,7 +1112,7 @@ void yf::Multi::Frontend::scan2(mp::Package &package, Z_APDU *apdu_req)
                                 entries_before.begin();
                             while (it != entries_before.end() && my <*it)
                                 it++;
-                            if (my == *it)
+                            if (it != entries_before.end() && my == *it)
                             {
                                 it->m_count += my.m_count;
                             }
@@ -1148,7 +1153,7 @@ void yf::Multi::Frontend::scan2(mp::Package &package, Z_APDU *apdu_req)
                                 entries_after.begin();
                             while (it != entries_after.end() && *it < my)
                                 it++;
-                            if (my == *it)
+                            if (it != entries_after.end() && my == *it)
                             {
                                 it->m_count += my.m_count;
                             }