in nailgun-client/c/ng.c [537:570]
void processnailgunstream() {
/*for (;;) {*/
unsigned long len;
char chunkType;
recvToBuffer(CHUNK_HEADER_LEN);
len = ((buf[0] << 24) & 0xff000000)
| ((buf[1] << 16) & 0x00ff0000)
| ((buf[2] << 8) & 0x0000ff00)
| ((buf[3]) & 0x000000ff);
chunkType = buf[4];
switch(chunkType) {
case CHUNKTYPE_STDOUT: recvToFD(NG_STDOUT_FILENO, buf, len);
break;
case CHUNKTYPE_STDERR: recvToFD(NG_STDERR_FILENO, buf, len);
break;
case CHUNKTYPE_EXIT: processExit(buf, len);
break;
case CHUNKTYPE_SENDINPUT:
#ifdef WIN32
SetEvent(readyToSend);
#else
readyToSend = 1;
#endif
break;
default: fprintf(stderr, "Unexpected chunk type %d ('%c')\n", chunkType, chunkType);
cleanUpAndExit(NAILGUN_UNEXPECTED_CHUNKTYPE);
}
/*}*/
}