c99b62d7865a828f8f41c6e82dd36cbd2dd26780 markd Wed Jul 1 21:45:43 2020 -0700 hgBlat mostly works diff --git src/jkOwnLib/gfBlatLib.c src/jkOwnLib/gfBlatLib.c index 8bfd8cf..0cd801d 100644 --- src/jkOwnLib/gfBlatLib.c +++ src/jkOwnLib/gfBlatLib.c @@ -96,42 +96,48 @@ diff = 1; else diff = 0; #ifdef SOLARIS_WORKAROUND_COMPILER_BUG_BUT_FAILS_IN_64_BIT diff = (unsigned long)(a->t3) - (unsigned long)(b->t3); /* Casts needed for Solaris. Thanks Darren Platt! */ #endif /* SOLARIS_WORKAROUND_COMPILER_BUG_BUT_FAILS_IN_64_BIT */ } if (diff == 0) diff = a->tStart - b->tStart; return diff; } static void startSeqQuery(int conn, bioSeq *seq, char *type, char *dynGenome) /* Send a query that involves some sequence. */ { -char buf[256]; +char buf[1024]; // room for error message if we need it. safef(buf, sizeof(buf), "%s%s %d", gfSignature(), type, seq->size); if (dynGenome != NULL) { safecat(buf, sizeof(buf), " "); safecat(buf, sizeof(buf), dynGenome); } mustWriteFd(conn, buf, strlen(buf)); if (read(conn, buf, 1) < 0) errAbort("startSeqQuery: read failed: %s", strerror(errno)); if (buf[0] != 'Y') - errAbort("Expecting 'Y' from server, got %c", buf[0]); + { + // try to get read of message, might be an a useful error + int n = read(conn, buf+1, sizeof(buf)-2); + if (n >= 0) + buf[n+1] = '\0'; + errAbort("Expecting 'Y' from server, got %s", buf); + } mustWriteFd(conn, seq->dna, seq->size); } static void gfServerWarn(bioSeq *seq, char *warning) /* Write out warning. */ { warn("couldn't process %s: %s", seq->name, warning); } static struct gfRange *gfQuerySeq(int conn, struct dnaSeq *seq, char *dynGenome) /* Ask server for places sequence hits. */ { struct gfRange *rangeList = NULL, *range; char buf[256], *row[6]; int rowSize;