in nailgun-client/c/ng.c [200:217]
int sendAll(SOCKET s, char *buf, int len) {
int total = 0;
int bytesleft = len;
int n = 0;
while(total < len) {
n = send(s, buf+total, bytesleft, SEND_FLAGS);
if (n == -1) {
break;
}
total += n;
bytesleft -= n;
}
return n==-1 ? 0:total;
}