Removed Z3950_connection_host.
[yaz-moved-to-github.git] / zoom / zoom-c.c
index 45181e7..04fb7e8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: zoom-c.c,v 1.5 2001-11-13 22:57:03 adam Exp $
+ * $Id: zoom-c.c,v 1.9 2001-11-16 09:52:39 adam Exp $
  *
  * ZOOM layer for C, connections, result sets, queries.
  */
@@ -236,6 +236,8 @@ void Z3950_connection_connect(Z3950_connection c,
     else
        c->host_port = xstrdup(host);
 
+    Z3950_options_set(c->options, "host", c->host_port);
+
     c->async = Z3950_options_get_bool (c->options, "async", 0);
     
     task = Z3950_connection_add_task (c, Z3950_TASK_CONNECT);
@@ -259,11 +261,6 @@ Z3950_query Z3950_query_create(void)
     return s;
 }
 
-const char *Z3950_connection_host (Z3950_connection c)
-{
-    return c->host_port;
-}
-
 void Z3950_query_destroy(Z3950_query s)
 {
     if (!s)
@@ -417,7 +414,7 @@ void Z3950_resultset_destroy(Z3950_resultset r)
     }
 }
 
-int Z3950_resultset_size (Z3950_resultset r)
+size_t Z3950_resultset_size (Z3950_resultset r)
 {
     return r->size;
 }
@@ -442,6 +439,12 @@ static void Z3950_resultset_retrieve (Z3950_resultset r,
     c = r->connection;
     if (!c)
        return;
+    if (start >= r->size)
+        return;
+
+    if (start + count > r->size)
+       count = r->size - start;
+
     task = Z3950_connection_add_task (c, Z3950_TASK_RETRIEVE);
     task->u.resultset = r;
     Z3950_resultset_addref (r);
@@ -767,7 +770,7 @@ static void response_diag (Z3950_connection c, Z_DiagRec *p)
     c->error = *r->condition;
 }
 
-Z3950_record Z3950_record_dup (Z3950_record srec)
+Z3950_record Z3950_record_dup (const Z3950_record srec)
 {
     char *buf;
     int size;
@@ -791,10 +794,7 @@ Z3950_record Z3950_record_dup (Z3950_record srec)
 
 Z3950_record Z3950_resultset_record_immediate (Z3950_resultset s,size_t pos)
 {
-    Z3950_record rec = record_cache_lookup (s, pos, 0);
-    if (!rec)
-       return 0;
-    return Z3950_record_dup (rec);
+    return record_cache_lookup (s, pos, 0);
 }
 
 Z3950_record Z3950_resultset_record (Z3950_resultset r, size_t pos)
@@ -893,13 +893,6 @@ void *Z3950_record_get (Z3950_record rec, const char *type, size_t *len)
     return 0;
 }
 
-void *Z3950_resultset_get (Z3950_resultset s, size_t pos, const char *type,
-                          size_t *len)
-{
-    Z3950_record rec = record_cache_lookup (s, pos, 0);
-    return Z3950_record_get (rec, type, len);
-}
-
 static void record_cache_add (Z3950_resultset r,
                              Z_NamePlusRecord *npr,
                              int pos,
@@ -1286,28 +1279,29 @@ static int do_write(Z3950_connection c)
     return do_write_ex (c, c->buf_out, c->len_out);
 }
 
-const char *Z3950_connection_option (Z3950_connection c, const char *key,
-                                    const char *val)
+
+const char *Z3950_connection_option_get (Z3950_connection c, const char *key)
 {
-    if (val)
-    {
-       Z3950_options_set (c->options, key, val);
-        return val;
-    }
     return Z3950_options_get (c->options, key);
 }
 
-const char *Z3950_resultset_option (Z3950_resultset r, const char *key,
-                                   const char *val)
+void Z3950_connection_option_set (Z3950_connection c, const char *key,
+                                  const char *val)
+{
+    Z3950_options_set (c->options, key, val);
+}
+
+const char *Z3950_resultset_option_get (Z3950_resultset r, const char *key)
 {
-    if (val)
-    {
-       Z3950_options_set (r->options, key, val);
-        return val;
-    }
     return Z3950_options_get (r->options, key);
 }
 
+void Z3950_resultset_option_set (Z3950_resultset r, const char *key,
+                                  const char *val)
+{
+    Z3950_options_set (r->options, key, val);
+}
+
 
 int Z3950_connection_errcode (Z3950_connection c)
 {