<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -9,7 +9,7 @@ CCSLOW = gcc -O0 -g
 OBJECTS = hardinfo.o shell.o util.o iconcache.o loadgraph.o  \
 		menu.o stock.o callbacks.o expr.o report.o binreloc.o \
 		vendor.o socket.o syncmanager.o remote.o xmlrpc-server.o \
-		xmlrpc-client.o
+		xmlrpc-client.o ssh-conn.o
 BENCHMARK_OBJECTS = fbench.o sha1.o blowfish.o md5.o nqueens.o fftbench.o
 
 MODULES = computer.so devices.so benchmark.so network.so</diff>
      <filename>hardinfo2/Makefile.in</filename>
    </modified>
    <modified>
      <diff>@@ -111,11 +111,11 @@ void ssh_close(SSHConn * conn)
 
     soup_uri_free(conn-&gt;uri);
     kill(conn-&gt;pid, SIGINT);
-    
+
     if (conn-&gt;askpass_path) {
-        DEBUG(&quot;unlinking %s&quot;, conn-&gt;askpass_path);
-        g_remove(conn-&gt;askpass_path);
-        g_free(conn-&gt;askpass_path);
+	DEBUG(&quot;unlinking %s&quot;, conn-&gt;askpass_path);
+	g_remove(conn-&gt;askpass_path);
+	g_free(conn-&gt;askpass_path);
     }
 
     g_free(conn);
@@ -125,10 +125,10 @@ static void ssh_conn_setup(gpointer user_data)
 {
     gchar *askpass_path = (gchar *) user_data;
     int fd;
-    
+
     if ((fd = open(&quot;/dev/tty&quot;, O_RDWR)) != -1) {
-        ioctl(fd, TIOCNOTTY, NULL);
-        close(fd);
+	ioctl(fd, TIOCNOTTY, NULL);
+	close(fd);
     }
 
     if (askpass_path) {
@@ -183,8 +183,30 @@ SSHConnResponse ssh_new(SoupURI * uri,
 	}
     }
 
+
     cmd_line = g_string_new(&quot;ssh -x&quot;);
 
+    if (uri-&gt;query &amp;&amp; strlen(uri-&gt;query)) {
+	GHashTable *query;
+	GList *keys, *key;
+
+	query = soup_form_decode(uri-&gt;query);
+	keys = g_hash_table_get_keys(query);
+
+	for (key = keys; key; key = key-&gt;next) {
+	    gchar *param;
+
+	    g_string_append_printf(cmd_line, &quot; -%s&quot;, (gchar *) key-&gt;data);
+
+	    if ((param = (gchar *) g_hash_table_lookup(query, key-&gt;data))) {
+		g_string_append_printf(cmd_line, &quot;'%s'&quot;, param);
+	    }
+	}
+
+	g_list_free(keys);
+	g_hash_table_destroy(query);
+    }
+
     if (uri-&gt;user) {
 	g_string_append_printf(cmd_line, &quot; -l '%s'&quot;, uri-&gt;user);
     }
@@ -249,11 +271,11 @@ SSHConnResponse ssh_new(SoupURI * uri,
     g_string_free(cmd_line, TRUE);
 
     if (askpass_path) {
-        if (connection) {
-            connection-&gt;askpass_path = askpass_path;
-        } else {
-    	    g_free(askpass_path);
-        }
+	if (connection) {
+	    connection-&gt;askpass_path = askpass_path;
+	} else {
+	    g_free(askpass_path);
+	}
     }
 
     if (response != SSH_CONN_OK) {
@@ -276,11 +298,12 @@ int main(int argc, char **argv)
     SSHConnResponse r;
     SoupURI *u;
     char buffer[256];
-    
+
     if (argc &lt; 2) {
-        g_print(&quot;Usage: %s URI command\n&quot;, argv[0]);
-        g_print(&quot;Example: %s ssh://user:password@host 'ls -la /'\n&quot;, argv[0]);
-        return 1;
+	g_print(&quot;Usage: %s URI command\n&quot;, argv[0]);
+	g_print(&quot;Example: %s ssh://user:password@host 'ls -la /'\n&quot;,
+		argv[0]);
+	return 1;
     }
 
     u = soup_uri_new(argv[1]);</diff>
      <filename>hardinfo2/ssh-conn.c</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2236542c1cb296283f57c595d98b2de7396033e3</id>
    </parent>
  </parents>
  <author>
    <name>Leandro A. F. Pereira</name>
    <email>leandro@hardinfo.org</email>
  </author>
  <url>http://github.com/lpereira/hardinfo/commit/da3c493caa35484b65e82c52dbf9181817582f91</url>
  <id>da3c493caa35484b65e82c52dbf9181817582f91</id>
  <committed-date>2009-05-03T21:09:17-07:00</committed-date>
  <authored-date>2009-05-03T21:09:17-07:00</authored-date>
  <message>Allow SSH command-line parameters to be passed with the query string</message>
  <tree>43d59a8d6877871926b3f2f75cae47f99d18c2e0</tree>
  <committer>
    <name>Leandro A. F. Pereira</name>
    <email>leandro@hardinfo.org</email>
  </committer>
</commit>
