@ -14,9 +14,11 @@ extern "C" {
int socket_tcp4(void);
int socket_tcp4b(void);
int socket_udp4(void);
int socket_udp4b(void);
int socket_tcp6(void);
int socket_tcp6b(void);
int socket_udp6(void);
int socket_udp6b(void);
int socket_sctp4(void);
int socket_sctp4b(void);
@ -9,11 +9,16 @@
#include "socket.h"
#include "ndelay.h"
int socket_udp4(void) {
int socket_udp4b(void) {
int s;
__winsock_init();
s = winsock2errno(socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP));
if (s == -1) return -1;
if (ndelay_on(s) == -1) { close(s); return -1; }
return s;
}
s=socket_udp4b();
if (s!=-1 && ndelay_on(s) == -1) { close(s); return -1; }
@ -20,7 +20,7 @@
#define EPROTONOSUPPORT EAFNOSUPPORT
#endif
int socket_udp6(void)
int socket_udp6b(void)
{
#ifdef LIBC_HAS_IP6
@ -43,9 +43,14 @@ compat:
winsock2errno(setsockopt(s,IPPROTO_IPV6,IPV6_V6ONLY,(void*)&zero,sizeof(zero)));
#else
return socket_udp();
return socket_udp4b();
int socket_udp6(void) {
int s=socket_udp6b();
@ -68,10 +68,13 @@ static int ret1(const char* s,void* foo) {
int main(int argc,char* argv[]) {
int s=socket_udp6();
#if 0
char buf[100];
assert(fmt_varint(buf,1)==1 && buf[0]==1);
fmt_varint(buf,300);
assert(fmt_varint(buf,300)==2 && buf[0]==(char)0xac && buf[1]==0x02);
const char buf[]="fnord\n";
buffer_puts(buffer_1,buf);