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 }