01 // vim: set ft=c: 02 03 #exe { 04 if (SNAILNET_NATIVE_DRIVER == NULL) { 05 StreamPrint("#include \"::/Adam/Net/SnailLib\""); 06 } 07 } 08 09 // Higher-level, utility functions 10 11 I64 recvLine(I64 sock, U8* buffer, I64 size, I64 flags) { 12 I64 got = 0; 13 while (got + 1 < size) { 14 if (!recv(sock, buffer + got, 1, flags)) 15 return -1; 16 17 if (buffer[got] == '\n') 18 break; 19 else if (buffer[got] != '\r') 20 got++; 21 } 22 // FIXME: safe but incorrect behavior on overflow 23 buffer[got] = 0; 24 return got; 25 } 26 27 I64 sendString(I64 sockfd, U8* str, I64 flags) { 28 return send(sockfd, str, StrLen(str), flags); 29 }