4 #define SWIFT_PORT 8080
5 #define PACKET_SIZE 4*1024
10 printf("%s:%d: ", __func__, __LINE__); \
18 printf("%s:%d: ", __func__, __LINE__); \
25 #define Dprintf(msg,...) printf("[%s]:%d " msg, __FILE__, __LINE__, ##__VA_ARGS__)
27 #define Dprintf(msg,...) /* do nothing */
33 typedef struct swift {
34 SOCKET socketListener;
43 * TODO: uniform structure names
46 // swift_addr structure similar with in_addr
48 unsigned short N; // e.g. number of s_addr
49 unsigned long s_addr[MAX_IPs]; // i.p. ip list
52 // swift struct similar with sock_addr
53 typedef struct sockSwiftaddr {
54 short sin_family; // e.g. AF_INET
55 unsigned short sin_port; // e.g. htons(3490)
56 struct swift_addr sin_addr; // see struct swift_addr, below
62 struct sockaddr_in sa[MAX_IPs];
65 // Function to create a Swift socket
66 Swift socketSwift(int maxChannels);
68 // Function to close a Swift socket
69 void closeSwift(Swift);
71 // Function to listen to a port
72 int listenfromSwift (Swift s, void *buf, size_t len, int flags,
73 struct sockSwiftaddr * __restrict__ from, socklen_t *fromlen);
75 // Function to bind a port for swift socket
76 int bindSwift(Swift s, const struct sockSwiftaddr *my_addr, socklen_t addrlen);
78 // Function to receive a message
79 ssize_t recvfromSwift(Swift s, void *buf, size_t len, int flags,
80 struct sockSwiftaddr *from, socklen_t fromlen);
82 // Function to send a message
83 ssize_t sendToSwift(Swift s, const void *buf, size_t len, int flags,
84 const struct sockSwiftaddr *to, socklen_t tolen);
87 // test function -- don't commit
88 void transformFromAddrToSwift(struct sockSwiftaddr *ssa, struct listsockaddr lsa);
89 void transformFromSwiftToAddr(struct listsockaddr *lsa, struct sockSwiftaddr ssa);