#include "scan.h" #include "ip6.h" #include "str.h" #include #include #include #include #include "socket.h" #include #include "ndelay.h" #ifdef __dietlibc__ #include #else static inline __write1(const char* s) { write(1,s,str_len(s)); } static inline __write2(const char* s) { write(2,s,str_len(s)); } #endif #include void panic(const char* s) { int i=str_len(s); __write2(s); if (s[i-1]!='\n') { __write2(": "); __write2(strerror(errno)); __write2("\n"); } exit(1); } void blockingcopy(int src,int dest) { char buf[8192]; int i,j,k; for (;;) { i=read(src,buf,sizeof buf); if (i==-1) panic("client: error: read() failed"); if (i==0) exit(0); for (j=0; j