6 #include <netinet/in.h>
8 #include <sys/socket.h>
11 #include "lib_swift.h"
13 ssize_t recvfrom(int s, void *buf, size_t len, int flags,
14 struct sockaddr *from, socklen_t *fromlen);
16 int recvfromSwift (Swift s, void *buf, size_t len, int flags,
17 struct sockaddr * __restrict__ from, socklen_t *fromlen)
19 struct sockaddr_in si_other;
20 socklen_t slen=sizeof(si_other);
22 Dprintf("wait to receive messages");
23 return recvfrom(s->socketListener, buf, len, flags,
27 int bindSwift(Swift s, const struct sockaddr *my_addr, socklen_t addrlen)
29 Dprintf("bind swift socket");
30 return bind(s->socketListener,
31 (const struct sockaddr *)&s->socketListenerAddr,
32 sizeof(s->socketListenerAddr));
37 Dprintf("create swift socket");
38 Swift s = calloc(1,sizeof(*s));
40 Dprintf("create swift listener");
41 CHECK(s->socketListener = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP));
43 memset((char *) &s->socketListenerAddr, 0, sizeof(s->socketListenerAddr));
45 s->socketListenerAddr.sin_family = AF_INET;
46 s->socketListenerAddr.sin_port = htons(SWIFT_PORT);
47 s->socketListenerAddr.sin_addr.s_addr = htonl(INADDR_ANY);
52 void closeSwift(Swift s)
54 Dprintf("close swift socket");
55 close(s->socketListener);