File: Socket.c

package info (click to toggle)
mlton 20061107-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 27,828 kB
  • ctags: 61,118
  • sloc: ansic: 11,446; makefile: 1,339; sh: 1,160; lisp: 900; pascal: 256; asm: 97
file content (95 lines) | stat: -rw-r--r-- 3,080 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "platform.h"

Int Socket_accept (Int s, Char *addr, Int *addrlen) {
        MLton_initSockets ();
        return accept (s, (struct sockaddr*)addr, (socklen_t*)addrlen);
}

Int Socket_bind (Int s, Char *addr, Int addrlen) {
        MLton_initSockets ();
        return bind (s, (struct sockaddr*)addr, (socklen_t)addrlen);
}

Int Socket_close(Int s) {
        return close(s);
}

Int Socket_connect (Int s, Char *addr, Int addrlen) {
        MLton_initSockets ();
        return connect (s, (struct sockaddr*)addr, (socklen_t)addrlen);
}

Int Socket_familyOfAddr(Char *addr) {
        return ((struct sockaddr*)addr)->sa_family;
}

Int Socket_listen (Int s, Int backlog) {
        MLton_initSockets ();
        return listen (s, backlog);
}

Int Socket_recv (Int s, Char *msg, Int start, Int len, Word flags) {
        MLton_initSockets ();
        return mlton_recv (s, (void*)((char *)msg + start), (size_t)len, flags);
}

Int Socket_recvFrom (Int s, Char *msg, Int start, Int len, Word flags,
                    Char* addr, Int *addrlen) {
        MLton_initSockets ();
        return mlton_recvfrom (s, (void*)((char *)msg + start), (size_t)len, flags,
                                (struct sockaddr*)addr, (socklen_t*)addrlen);
}

Int Socket_send (Int s, Char *msg, Int start, Int len, Word flags) {
        MLton_initSockets ();
        return send (s, (void*)((char *)msg + start), (size_t)len, flags);
}

Int Socket_sendTo (Int s, Char *msg, Int start, Int len, Word flags,
                  Char* addr, Int addrlen) {
        MLton_initSockets ();
        return sendto (s, (void*)((char *)msg + start), (size_t)len, flags,
                      (struct sockaddr*)addr, (socklen_t)addrlen);
}

Int Socket_shutdown (Int s, Int how) {
        MLton_initSockets ();
        return shutdown (s, how);
}

Int GenericSock_socket (Int domain, Int type, Int protocol) {
        MLton_initSockets ();
        return socket (domain, type, protocol);
}

Int Socket_socketPair (Int domain, Int type, Int protocol, Int sv[2]) {
        MLton_initSockets ();
        return socketpair (domain, type, protocol, (int*)sv);
}

Int Socket_Ctl_getSockOpt (Int s, Int level, Int optname, Char *optval,
                                 Int *optlen) {
        MLton_initSockets ();
        return getsockopt (s, level, optname, (void*)optval, (socklen_t*)optlen);
}

Int Socket_Ctl_setSockOpt (Int s, Int level, Int optname, Char *optval, 
                                Int optlen) {
        MLton_initSockets ();
        return setsockopt (s, level, optname, (void*)optval, (socklen_t)optlen);
}

Int Socket_Ctl_getsetIOCtl (Int s, Int request, Char* argp) {
        MLton_initSockets ();
        return ioctl (s, request, argp);
}

Int Socket_Ctl_getPeerName (Int s, Char *name, Int *namelen) {
        MLton_initSockets ();
        return getpeername (s, (struct sockaddr*)name, (socklen_t*)namelen);
}

Int Socket_Ctl_getSockName (Int s, Char *name, Int *namelen) {
        MLton_initSockets ();
        return getsockname (s, (struct sockaddr*)name, (socklen_t*)namelen);
}