X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=test%2Fclient.c;fp=test%2Fclient.c;h=ddd620273bab6971792f49d0981ebdd6ff9054f2;hb=c7ff89f0ab1d13c324b9772e55095b8a651cc603;hp=0000000000000000000000000000000000000000;hpb=76379c22fb7881d9c05dafefbce4f3fa4461a1a6;p=swifty.git diff --git a/test/client.c b/test/client.c new file mode 100644 index 0000000..ddd6202 --- /dev/null +++ b/test/client.c @@ -0,0 +1,73 @@ +#include "../src/kernel/swift.h" + +#include +#include +#include +#include +#include +#include + +int main(int argc, const char *argv[]) +{ + int sock; + + sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_SWIFT); + if (sock < 0) { + perror("Failed to create socket"); + return -1; + } + + int size = sizeof(struct sockaddr_swift) + sizeof(struct swift_dest); + struct sockaddr_swift *saddr = malloc(size); + memset(saddr, 0, size); + + saddr->count = 1; + saddr->dests[0].addr = 0x0100007F; + saddr->dests[0].port = 50; + + if (bind(sock, (struct sockaddr *) saddr, size) < 0) { + perror("Failed to bind socket"); + close(sock); + return -1; + } + + char buf[] = "Buffer de test"; + struct iovec iov[1]; + struct msghdr msg; + struct sockaddr_swift *to = malloc(size); + + memset(&msg, 0, sizeof(msg)); + memset(&iov, 0, sizeof(iov)); + memset(to, 0, size); + + iov[0].iov_base = buf; + iov[0].iov_len = sizeof(buf); + + to->count = 1; + to->dests[0].addr = 0x0100007F; + to->dests[0].port = 100; + + msg.msg_iov = iov; + msg.msg_iovlen = 1; + msg.msg_name = to; + msg.msg_namelen = size; + + int ret; + + ret = sendmsg(sock, &msg, sizeof(msg)); + if (ret < 0) { + perror("Failed to send on socket"); + return -1; + } + + printf("Sent %d bytes on socket\n", msg.msg_namelen); + + if (close(sock) < 0) { + perror("Failed to close socket"); + return -1; + } + + free(saddr); + free(to); + return 0; +}