yaz-client's auth command also works for SRU
[yaz-moved-to-github.git] / client / client.c
index cb783b2..09c9a85 100644 (file)
@@ -1200,6 +1200,25 @@ static int send_srw(Z_SRW_PDU *sr)
 
     gdu = z_get_HTTP_Request_host_path(out, host_port, path);
 
+    if (auth)
+    {
+        if (auth->which == Z_IdAuthentication_open)
+        {
+            char **darray;
+            int num;
+            nmem_strsplit(out->mem, "/", auth->u.open, &darray, &num);
+            if (num >= 1)
+                sr->username = darray[0];
+            if (num >= 2)
+                sr->password = darray[1];
+        }
+        else if (auth->which == Z_IdAuthentication_idPass)
+        {
+            sr->username = auth->u.idPass->userId;
+            sr->password = auth->u.idPass->password;
+        }
+    }
+
     if (!yaz_matchstr(sru_method, "get"))
     {
         yaz_sru_get_encode(gdu->u.HTTP_Request, sr, out, charset);
@@ -4965,7 +4984,10 @@ static void client(void)
         {
             line_in=readline(C_PROMPT);
             if (!line_in)
+            {
+                putchar('\n');
                 break;
+            }
 #if HAVE_READLINE_HISTORY_H
             if (*line_in)
                 add_history(line_in);