Index: /branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/resort_catalog.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/resort_catalog.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/resort_catalog.c	(revision 33238)
@@ -28,7 +28,4 @@
   return;
 }
-
-# define myAbort(MSG) { fprintf (stderr, "%s\n", MSG); abort(); }
-# define myAssert(LOGIC,MSG) { if (!(LOGIC)) { fprintf (stderr, "%s\n", MSG); abort(); } }
 
 // sort the measure Sequence based on the average Sequence entries
Index: /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/include/dvomerge.h
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/include/dvomerge.h	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/include/dvomerge.h	(revision 33238)
@@ -16,7 +16,4 @@
 # include <arpa/inet.h>
 # include <glob.h>
-
-# define myAbort(MSG) { fprintf (stderr, "%s\n", MSG); abort(); }
-# define myAssert(LOGIC,MSG) { if (!(LOGIC)) { fprintf (stderr, "%s\n", MSG); abort(); } }
 
 int    VERBOSE;
Index: /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/src/dvorepairCPT.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/src/dvorepairCPT.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/src/dvorepairCPT.c	(revision 33238)
@@ -1,6 +1,3 @@
 # include "dvomerge.h"
-
-# define myAbort(MSG) { fprintf (stderr, "%s\n", MSG); abort(); }
-# define myAssert(LOGIC,MSG) { if (!(LOGIC)) { fprintf (stderr, "%s\n", MSG); abort(); } }
 
 // broken cpt file, valid cpm file: we can recover everything in the cpt file from the cpm file:
Index: /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/src/dvorepairImageVsMeasure.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/src/dvorepairImageVsMeasure.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/dvomerge/src/dvorepairImageVsMeasure.c	(revision 33238)
@@ -1,6 +1,3 @@
 # include "dvomerge.h"
-
-# define myAbort(MSG) { fprintf (stderr, "%s\n", MSG); abort(); }
-# define myAssert(LOGIC,MSG) { if (!(LOGIC)) { fprintf (stderr, "%s\n", MSG); abort(); } }
 
 // find images which are missing detections:
Index: /branches/eam_branches/ipp-20111122/Ohana/src/elixir/include/elixir.h
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/elixir/include/elixir.h	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/elixir/include/elixir.h	(revision 33238)
@@ -169,5 +169,4 @@
 int 	  WaitMsg (char *fifo, char **message, double maxdelay);
 int 	  WriteMsg (char *fifo, char *message);
-int 	  memstr (char *m1, char *m2, int n);
-int 	  rconnect (char *hostname, char *command, int *rsock, int *wsock);
-void GetConfig (char *config, char *field, char *format, int N, void *ptr);
+void      GetConfig (char *config, char *field, char *format, int N, void *ptr);
+int       rconnect_elixir (char *hostname, char *command, int *rsock, int *wsock);
Index: /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/MachineOps.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/MachineOps.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/MachineOps.c	(revision 33238)
@@ -202,5 +202,5 @@
   char line[256];
 
-  pid = rconnect (machine[0].hostname, CONNECT, &rsock, &wsock);
+  pid = rconnect_elixir (machine[0].hostname, CONNECT, &rsock, &wsock);
   if (pid) {
     machine[0].rsock = rsock;
Index: /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/RemoteOps.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/RemoteOps.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/RemoteOps.c	(revision 33238)
@@ -15,5 +15,5 @@
 
   /* set signal to remote machine */
-  if (!rconnect (machine, CONNECT, &rsock, &wsock)) {
+  if (!rconnect_elixir (machine, CONNECT, &rsock, &wsock)) {
     fprintf (stderr, "can't make connection to machine %s to kill process\n", machine);
     exit (1);
@@ -47,5 +47,5 @@
 
   /* send signal to remote machine */
-  if (!rconnect (machine, CONNECT, &rsock, &wsock)) {
+  if (!rconnect_elixir (machine, CONNECT, &rsock, &wsock)) {
     fprintf (stderr, "can't make connection to machine %s to kill process\n", machine);
     exit (1);
@@ -90,5 +90,5 @@
 
   /* send signal to remote machine */
-  if (!rconnect (machine, CONNECT, &rsock, &wsock)) {
+  if (!rconnect_elixir (machine, CONNECT, &rsock, &wsock)) {
     fprintf (stderr, "can't make connection to machine %s to signal process\n", machine);
     exit (1);
@@ -151,5 +151,5 @@
 
   /* make connection to remote machine */
-  if (!rconnect (machine, CONNECT, &rsock, &wsock)) {
+  if (!rconnect_elixir (machine, CONNECT, &rsock, &wsock)) {
     fprintf (stderr, "can't make connection to machine %s to kill process\n", machine);
     exit (1);
Index: /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/SockScan.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/SockScan.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/SockScan.c	(revision 33238)
@@ -5,8 +5,9 @@
 int SockScan (char *string, Fifo *fifo, int sock) {
   
-  int i, done, status;
+  int i, status;
+  char *done;
 
-  done = 0;
-  for (i = 0; (i < MAXTIME) && !done; i++) {
+  done = string;
+  for (i = 0; (i < MAXTIME) && (done != NULL); i++) {
     ShiftFifo (fifo);
     status = ReadtoFifo (fifo, sock);
@@ -24,20 +25,4 @@
   return (status);
 }
-
-/* returns (offset to m2) + 1, or 0 if failure */ 
-int memstr (char *m1, char *m2, int n) {
-
-  int i, N;
-
-  N = strlen (m2);
-  for (i = 0; (i < n - N + 1) && memcmp (m1, m2, N); i++, m1++);
-  if (memcmp (m1, m2, N)) {
-    return (0);
-  }
-  else {
-    return (i+1);
-  }
-
-}
  
 /* SockScan reads from the given socket looking for the given string
Index: /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/rconnect.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/rconnect.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/elixir/src/rconnect.c	(revision 33238)
@@ -4,5 +4,6 @@
    one for read, one for write */
 
-int rconnect (char *hostname, char *command, int *rsock, int *wsock) {
+// this is a slightly different version than the one in libohana -- use a local name
+int rconnect_elixir (char *hostname, char *command, int *rsock, int *wsock) {
 
   int i, rfd[2], wfd[2], status;
Index: /branches/eam_branches/ipp-20111122/Ohana/src/imregister/Makefile
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/imregister/Makefile	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/imregister/Makefile	(revision 33238)
@@ -65,5 +65,4 @@
 $(IMREG)/ConfigPID.$(ARCH).o   \
 $(IMREG)/SetSignals.$(ARCH).o   \
-$(IMREG)/rconnect.$(ARCH).o   \
 $(IMREG)/FifoOps.$(ARCH).o   \
 $(IMREG)/SockScan.$(ARCH).o   \
Index: /branches/eam_branches/ipp-20111122/Ohana/src/imregister/imreg/SetSignals.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/imregister/imreg/SetSignals.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/imregister/imreg/SetSignals.c	(revision 33238)
@@ -90,5 +90,5 @@
   char username[256], machine[256];
   char line[512];
-  int i, wsock, rsock;
+  int i, iosock[3];
   struct stat filestat;
 
@@ -99,10 +99,11 @@
 
   /* send signal to remote machine */
-  if (!rconnect (machine, CONNECT, &rsock, &wsock)) {
-    fprintf (stderr, "can't make connection to machine %s to kill process %d\n", machine, pid);
+  int errorInfo;
+  if (!rconnect (CONNECT, machine, "/bin/csh", iosock, &errorInfo, TRUE)) {
+    fprintf (stderr, "can't make connection to machine %s to kill process %d (error %d)\n", machine, pid, errorInfo);
     exit (1);
   }
   sprintf (line, "kill -TERM %d\n", pid);
-  if (write (wsock, line, strlen (line)) != strlen(line)) {
+  if (write (iosock[0], line, strlen (line)) != strlen(line)) {
     fprintf (stderr, "error sending signal\n");
     exit (1);
Index: /branches/eam_branches/ipp-20111122/Ohana/src/imregister/imreg/SockScan.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/imregister/imreg/SockScan.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/imregister/imreg/SockScan.c	(revision 33238)
@@ -6,8 +6,9 @@
 int SockScan (char *string, Fifo *fifo, int sock) {
   
-  int i, done, status;
+  int i, status;
+  char *done;
 
-  done = 0;
-  for (i = 0; (i < MAXTIME) && !done; i++) {
+  done = string;
+  for (i = 0; (i < MAXTIME) && (done != NULL); i++) {
     ShiftFifo (fifo);
     status = ReadtoFifo (fifo, sock);
@@ -25,20 +26,4 @@
   return (status);
 }
-
-/* returns (offset to m2) + 1, or 0 if failure */ 
-int memstr (char *m1, char *m2, int n) {
-
-  int i, N;
-
-  N = strlen (m2);
-  for (i = 0; (i < n - N + 1) && memcmp (m1, m2, N); i++, m1++);
-  if (memcmp (m1, m2, N)) {
-    return (0);
-  }
-  else {
-    return (i+1);
-  }
-
-}
  
 /* SockScan reads from the given socket looking for the given string
Index: /branches/eam_branches/ipp-20111122/Ohana/src/imregister/include/imreg.h
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/imregister/include/imreg.h	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/imregister/include/imreg.h	(revision 33238)
@@ -118,5 +118,4 @@
 int Shutdown (int status);
 void RemovePID (void);
-int rconnect (char *hostname, char *command, int *rsock, int *wsock);
 
 int InitFifo (Fifo *fifo, int Nalloc, int Nextra);
@@ -126,5 +125,4 @@
 void FreeFifo (Fifo *fifo);
 int SockScan (char *string, Fifo *fifo, int sock);
-int memstr (char *m1, char *m2, int n);
 
 off_t *unique_entries (RegImage *image, off_t Nimage, off_t *subset, off_t *Nmatch);
Index: /branches/eam_branches/ipp-20111122/Ohana/src/libkapa/src/bDrawFuncs.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/libkapa/src/bDrawFuncs.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/libkapa/src/bDrawFuncs.c	(revision 33238)
@@ -1,4 +1,3 @@
 # include <kapa_internal.h>
-# define myAssert(LOGIC,MSG) { if (!(LOGIC)) { fprintf (stderr, "%s\n", MSG); abort (); } }
 
 // move these to the bDrawBuffer type
Index: /branches/eam_branches/ipp-20111122/Ohana/src/libohana/Makefile
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/libohana/Makefile	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/libohana/Makefile	(revision 33238)
@@ -38,4 +38,6 @@
 $(SRC)/Fread.$(ARCH).o		 \
 $(SRC)/IOBufferOps.$(ARCH).o	 \
+$(SRC)/memstr.$(ARCH).o	 \
+$(SRC)/rconnect.$(ARCH).o	 \
 $(SRC)/CommOps.$(ARCH).o	 \
 $(SRC)/isolate_elements.$(ARCH).o	 \
Index: /branches/eam_branches/ipp-20111122/Ohana/src/libohana/include/ohana.h
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/libohana/include/ohana.h	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/libohana/include/ohana.h	(revision 33238)
@@ -215,4 +215,7 @@
 */
 # define OHANA_WHITESPACE(c)(((c) == 0x09) || ((c) == 0x0a) || ((c) == 0x0b) || ((c) == 0x0b) || ((c) == 0x0c) || ((c) == 0x0d) || ((c) == 0x20))
+# define OHANA_ASSERT(LOGIC,...) { if (!(LOGIC)) { fprintf (stderr, __VA_ARGS__); abort(); } }
+# define myAssert(LOGIC,...) { if (!(LOGIC)) { fprintf (stderr, __VA_ARGS__); abort(); } }
+# define myAbort(MSG) { fprintf (stderr, "%s\n", MSG); abort(); }
 
 // sorting is now defined as a macro call
@@ -328,4 +331,7 @@
 off_t   Fwrite                 PROTO((void *ptr, off_t size, off_t nitems, FILE *f, char *type));
 
+char   *memstr                 PROTO((char *m1, char *m2, int n));
+int     write_fmt              PROTO((int fd, char *format, ...));
+
 char   **isolate_elements      PROTO((int argc, char **argv, int *nstack));
 
@@ -337,4 +343,15 @@
 // gprint gets a stub implementation in libohana. opihi implements the real one.
 int    gprint (gpDest dest, char *format, ...);
+
+// rconnect is used to run remote programs with a pipe for communication
+typedef enum {
+  RCONNECT_ERR_NONE    = 0,
+  RCONNECT_ERR_EXEC    = 1,
+  RCONNECT_ERR_PIPE    = 2,
+  RCONNECT_ERR_CONNECT = 3,
+} RconnectErrors;
+
+void rconnect_set_timeout (int timeout);
+int rconnect (char *command, char *hostname, char *shell, int *stdio, int *errorInfo, int doHandshake);
 
 /*
Index: /branches/eam_branches/ipp-20111122/Ohana/src/libohana/src/memstr.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/libohana/src/memstr.c	(revision 33238)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/libohana/src/memstr.c	(revision 33238)
@@ -0,0 +1,35 @@
+# include "ohana.h"
+
+/* memstr returns a view, not an allocated string : don't free */
+/* returns pointer to start of m2 in m1, or NULL if failure */ 
+char *memstr (char *m1, char *m2, int n) {
+
+  int i, N;
+
+  N = strlen (m2);
+  for (i = 0; (i < n - N + 1) && memcmp (m1, m2, N); i++, m1++);
+  if (memcmp (m1, m2, N)) return (NULL);
+  return (m1);
+
+}
+
+/* formatted write statement, with intelligent allocation */
+int write_fmt (int fd, char *format, ...) {
+
+  int Nbyte, status;
+  char tmp, *line;
+  va_list argp;  
+
+  va_start (argp, format);
+  Nbyte = vsnprintf (&tmp, 0, format, argp);
+  va_end (argp);
+
+  va_start (argp, format);
+  ALLOCATE (line, char, Nbyte + 1);
+  vsnprintf (line, Nbyte + 1, format, argp);
+  status = write (fd, line, strlen(line));
+  va_end (argp);
+
+  free (line);
+  return (status);
+}
Index: /branches/eam_branches/ipp-20111122/Ohana/src/libohana/src/rconnect.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/libohana/src/rconnect.c	(revision 33238)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/libohana/src/rconnect.c	(revision 33238)
@@ -0,0 +1,167 @@
+# include <ohana.h>
+# include <sys/types.h>
+# include <sys/wait.h>
+
+# define DEBUG 1
+
+/* connect to host with the command and start the shell: (command) hostname (shell)
+   eg: ssh hostname pclient
+   stdio is an array of file descriptors for the I/O to the remote shell:
+   stdio[3]: 0 == stdin, 1 == stdout, 2 == stderr
+
+   The handshake test assumes that the remote shell can accept an echo command.  If not,
+   the user must do their own handshake test.
+
+   return value is the PID of the remote job, or FALSE on failure
+   in case of failure, the error condition is provided in errorInfo.
+
+   
+*/
+
+/* connection can take a while, allow up to 5 sec by default */
+static int CONNECT_TIMEOUT = 5000;
+
+void rconnect_set_timeout (int timeout) {
+  CONNECT_TIMEOUT = timeout;
+}
+
+int rconnect (char *command, char *hostname, char *shell, int *stdio, int *errorInfo, int doHandshake) {
+
+  int i = 0, stdin_fd[2], stdout_fd[2], stderr_fd[2], status;
+  int result, waitstatus;
+  pid_t pid;
+  char *p;
+  char **argv;
+  IOBuffer buffer;
+  struct timespec request, remain;
+
+  if (errorInfo) *errorInfo = RCONNECT_ERR_NONE;
+
+  myAssert (command != NULL,  "command is NULL");
+  myAssert (hostname != NULL, "hostname is NULL");
+  myAssert (shell != NULL,    "shell is NULL");
+  myAssert (stdio != NULL,    "stdio is NULL");
+
+  bzero (stdin_fd,  2*sizeof(int));
+  bzero (stdout_fd, 2*sizeof(int));
+  bzero (stderr_fd, 2*sizeof(int));
+
+  if (pipe (stdin_fd)  < 0) goto pipe_error;
+  if (pipe (stdout_fd) < 0) goto pipe_error;
+  if (pipe (stderr_fd) < 0) goto pipe_error;
+
+  ALLOCATE (argv, char *, 4);
+  argv[0] = command;
+  argv[1] = hostname;
+  argv[2] = shell;
+  argv[3] = 0;
+
+  pid = fork ();
+  if (!pid) { /* must be child process */
+    if (DEBUG) fprintf (stderr, "starting remote connection to %s...", hostname);
+
+    /* close the other ends of the pipes */
+    close (stdin_fd[1]);
+    close (stdout_fd[0]);
+    close (stderr_fd[0]);
+
+    /* tie our ends of the pipes to stdin, stdout, stderr */
+    dup2 (stdin_fd[0],  STDIN_FILENO);
+    dup2 (stdout_fd[1], STDOUT_FILENO);
+    dup2 (stderr_fd[1], STDERR_FILENO);
+
+    /* set all three unblocking */
+    setvbuf (stdin,  (char *) NULL, _IONBF, BUFSIZ);
+    setvbuf (stdout, (char *) NULL, _IONBF, BUFSIZ);
+    setvbuf (stderr, (char *) NULL, _IONBF, BUFSIZ);
+
+    status = execvp (argv[0], argv);
+    if (DEBUG) fprintf (stderr, "error starting remote shell process\n");
+    if (errorInfo) *errorInfo = RCONNECT_ERR_EXEC;
+    return FALSE;
+  }
+  free (argv);
+
+  /* close the other ends of the pipes */
+  close (stdin_fd[0]);  stdin_fd[0]  = 0;
+  close (stdout_fd[1]); stdout_fd[1] = 0;
+  close (stderr_fd[1]); stderr_fd[1] = 0;
+
+  /* make the pipes non-blocking */
+  fcntl (stdin_fd[1],  F_SETFL, O_NONBLOCK);
+  fcntl (stdout_fd[0], F_SETFL, O_NONBLOCK);
+  fcntl (stderr_fd[0], F_SETFL, O_NONBLOCK);
+
+  if (doHandshake) {
+    /* perform handshake with shell to verify alive & running */
+    InitIOBuffer (&buffer, 0x100);
+
+    /* send handshake command */
+    status = write_fmt (stdin_fd[1], "echo CONNECTED\n");
+    if ((status == -1) && (errno == EPIPE)) goto connect_error;
+
+    /* try to get evidence connection is alive - wait upto a few seconds */
+    p = NULL;
+    status = -1;
+    for (i = 0; (i < CONNECT_TIMEOUT) && (status != 0) && (p == NULL); i++) {
+      status = ReadtoIOBuffer (&buffer, stdout_fd[0]);
+      p = memstr (buffer.buffer, "CONNECTED", buffer.Nbuffer);
+      usleep (10000); // wait for client to be connected
+    }
+    if (status == 0) goto connect_error;
+    if (status == -1) goto connect_error;
+    if (DEBUG) fprintf (stderr, "%d cycles to connect\n", i);
+    FreeIOBuffer (&buffer);
+  }
+
+  if (DEBUG) fprintf (stderr, "Connected\n");
+
+  stdio[0] = stdin_fd[1];
+  stdio[1] = stdout_fd[0];
+  stdio[2] = stderr_fd[0];
+
+  if (errorInfo) *errorInfo = RCONNECT_ERR_NONE;
+  return (pid);
+
+pipe_error:
+  perror ("pipe error:");
+  if (errorInfo) *errorInfo = RCONNECT_ERR_PIPE;
+  goto close_pipes;
+
+connect_error:
+  if (DEBUG) fprintf (stderr, "error while connecting, status: %d, ncycles: %d\n", status, i);
+
+  /* avoid blocking on waitpid, test every 100 usec, up to 50 msec */
+  request.tv_sec = 0;
+  request.tv_nsec = 100000;
+
+  /* harvest the child process: kill & wait (< 100 ms) for exit */
+  kill (pid, SIGKILL);
+  result = waitpid (pid, &waitstatus, WNOHANG);
+  for (i = 0; (i < 50) && (result == 0); i++) {
+    nanosleep (&request, &remain);
+    result = waitpid (pid, &waitstatus, WNOHANG);
+  }
+
+  if ((result == -1) && (errno != ECHILD)) {
+    fprintf (stderr, "unexpected error from waitpid (%d): programming error\n", errno);
+    abort();
+  }
+  if (result == 0) {
+    if (DEBUG) fprintf (stderr, "child did not exit (rconnect)??");
+  }
+  if (result > 0) {
+    myAssert (result == pid, "waitpid error: mis-matched PID (%d vs %d).  programming error", result, pid);
+    myAssert (!WIFSTOPPED(waitstatus), "waitpid returns 'stopped': programming error");
+  }
+  if (errorInfo) *errorInfo = RCONNECT_ERR_CONNECT;
+
+close_pipes:
+  if (stdin_fd[0]  != 0) close (stdin_fd[0]);
+  if (stdin_fd[1]  != 0) close (stdin_fd[1]);
+  if (stdout_fd[0] != 0) close (stdout_fd[0]);
+  if (stdout_fd[1] != 0) close (stdout_fd[1]);
+  if (stderr_fd[0] != 0) close (stderr_fd[0]);
+  if (stderr_fd[1] != 0) close (stderr_fd[1]);
+  return (FALSE);
+}
Index: /branches/eam_branches/ipp-20111122/Ohana/src/opihi/include/pcontrol.h
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/opihi/include/pcontrol.h	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/opihi/include/pcontrol.h	(revision 33238)
@@ -252,5 +252,4 @@
 int CheckDoneJob (Job *job, Host *host);
 int GetJobOutput (char *command, Host *host, JobOutput *output);
-int rconnect (char *command, char *hostname, char *shell, int *stdio);
 
 int PclientCommand (Host *host, char *command, char *response, HostResp response_state);
Index: /branches/eam_branches/ipp-20111122/Ohana/src/opihi/pcontrol/Makefile
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/opihi/pcontrol/Makefile	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/opihi/pcontrol/Makefile	(revision 33238)
@@ -24,5 +24,4 @@
 $(SRC)/init.$(ARCH).o \
 $(SRC)/pcontrol.$(ARCH).o \
-$(SRC)/rconnect.$(ARCH).o \
 $(SRC)/CheckBusyJob.$(ARCH).o \
 $(SRC)/CheckDoneHost.$(ARCH).o \
Index: /branches/eam_branches/ipp-20111122/Ohana/src/opihi/pcontrol/StartHost.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/opihi/pcontrol/StartHost.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/opihi/pcontrol/StartHost.c	(revision 33238)
@@ -14,10 +14,11 @@
   if (VarConfig ("SHELL", "%s", shell)     == NULL) strcpy (shell, "pclient");
 
-  if (VerboseMode()) gprint (GP_ERR, "starting host within thread\n");
+  if (VerboseMode()) gprint (GP_ERR, "starting remote connection to %s...", host[0].hostname);
 
-  pid = rconnect (command, host[0].hostname, shell, stdio);
+  int errorInfo;
+  pid = rconnect (command, host[0].hostname, shell, stdio, &errorInfo, TRUE);
   if (!pid) {     
     /** failure to start: extend retry period **/
-    if (VerboseMode()) gprint (GP_ERR, "failure to start %s\n", host[0].hostname);
+    if (VerboseMode()) gprint (GP_ERR, "failure to start %s (error %d)\n", host[0].hostname, errorInfo);
     gettimeofday (&now, (void *) NULL);
     if (ZTIME(host[0].next_start_try) || ZTIME(host[0].last_start_try)) {
Index: /branches/eam_branches/ipp-20111122/Ohana/src/relastro/src/resort_catalog.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/relastro/src/resort_catalog.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/relastro/src/resort_catalog.c	(revision 33238)
@@ -1,6 +1,3 @@
 # include "relastro.h"
-
-# define myAbort(MSG) { fprintf (stderr, "%s\n", MSG); abort(); }
-# define myAssert(LOGIC,MSG) { if (!(LOGIC)) { fprintf (stderr, "%s\n", MSG); abort(); } }
 
 // sort the measure Sequence based on the average Sequence entries
Index: /branches/eam_branches/ipp-20111122/Ohana/src/tools/src/roc.c
===================================================================
--- /branches/eam_branches/ipp-20111122/Ohana/src/tools/src/roc.c	(revision 33237)
+++ /branches/eam_branches/ipp-20111122/Ohana/src/tools/src/roc.c	(revision 33238)
@@ -3,6 +3,4 @@
 # include <sys/types.h>
 # include <regex.h>
-
-# define myAssert(LOGIC,...) { if (!(LOGIC)) { fprintf (stderr, __VA_ARGS__); exit(4); } }
 
 # define ROC_HEADER_SIZE  0x1000
