Просмотр исходного кода

add socket_udp4b and socket_udp6b

master
Felix von Leitner 5 лет назад
Родитель
Сommit
67299ca714
4 измененных файлов: 21 добавлений и 6 удалений
  1. +2
    -0
      socket.h
  2. +8
    -3
      socket/socket_udp4.c
  3. +8
    -3
      socket/socket_udp6.c
  4. +3
    -0
      t.c

+ 2
- 0
socket.h Просмотреть файл

@@ -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);


+ 8
- 3
socket/socket_udp4.c Просмотреть файл

@@ -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;
}

int socket_udp4(void) {
int s;
s=socket_udp4b();
if (s!=-1 && ndelay_on(s) == -1) { close(s); return -1; }
return s;
}

+ 8
- 3
socket/socket_udp6.c Просмотреть файл

@@ -20,7 +20,7 @@
#define EPROTONOSUPPORT EAFNOSUPPORT
#endif

int socket_udp6(void)
int socket_udp6b(void)
{
#ifdef LIBC_HAS_IP6
int s;
@@ -43,9 +43,14 @@ compat:
winsock2errno(setsockopt(s,IPPROTO_IPV6,IPV6_V6ONLY,(void*)&zero,sizeof(zero)));
}
#endif
if (ndelay_on(s) == -1) { close(s); return -1; }
return s;
#else
return socket_udp();
return socket_udp4b();
#endif
}

int socket_udp6(void) {
int s=socket_udp6b();
if (s!=-1 && ndelay_on(s) == -1) { close(s); return -1; }
return s;
}

+ 3
- 0
t.c Просмотреть файл

@@ -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);
#endif
#if 0
const char buf[]="fnord\n";
buffer_puts(buffer_1,buf);


Загрузка…
Отмена
Сохранить