aa580a1b88a6f7f08b069f7453f629eeede53b69
kent
  Wed Jan 15 18:00:32 2014 -0800
Making pmHubMultilineQuery return a slName list instead of a slRef list with string values.  This saves about 8 freez() calls and is a bit tidier overall.
diff --git src/parasol/lib/paraMessage.c src/parasol/lib/paraMessage.c
index 04f3e59..7afe561 100644
--- src/parasol/lib/paraMessage.c
+++ src/parasol/lib/paraMessage.c
@@ -289,49 +289,51 @@
 /* Send message to hub and get single line response.
  * This should be freeMem'd when done. */
 {
 struct rudp *ru = rudpMustOpen();
 struct paraMessage pm;
 
 pmInitFromName(&pm, host, paraHubPort);
 if (!pmSendStringWithRetries(&pm, ru, query))
     noWarnAbort();
 if (!pmReceive(&pm, ru))
     noWarnAbort();
 rudpClose(&ru);
 return cloneString(pm.data);
 }
 
-struct slRef *pmHubMultilineQuery(char *query, char *host)
+struct slName *pmHubMultilineQuery(char *query, char *host)
 /* Send a command with a multiline response to hub,
  * and return response as a list of strings. */
 {
-struct slRef *list = NULL;
+struct slName *list = NULL;
 struct rudp *ru = rudpMustOpen();
 struct paraMessage pm;
 struct paraMultiMessage pmm;
 char *row[256];
 int count = 0;
 pmInitFromName(&pm, host, paraHubPort);
 /* ensure the multi-message response comes from the correct ip and has no duplicate msgs*/
 pmmInit(&pmm, &pm, pm.ipAddress.sin_addr);
 if (!pmSendStringWithRetries(&pm, ru, query))
     noWarnAbort();
 for (;;)
     {
     if (!pmmReceive(&pmm, ru))
 	break;
     if (pm.size == 0)
 	break;
     count = chopByChar(pm.data, '\n', row, sizeof(row));
     if (count > 1) --count;  /* for multiline, count is inflated by one */
 
     int i;
     for(i=0;i<count;++i)
-        refAdd(&list, cloneString(row[i]));
+	{
+	slNameAddHead(&list, row[i]);
+	}
     }
 rudpClose(&ru);
 slReverse(&list);
 return list;
 }