From fbb8c27761964f3ee87f859bfbb57db75849cd1a Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Fri, 17 Jun 2016 11:31:16 +0200 Subject: Initial import : make-boot-image.sh operationnal. Dumb mcastseed. --- mcastseed/src/msock.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 mcastseed/src/msock.h (limited to 'mcastseed/src/msock.h') diff --git a/mcastseed/src/msock.h b/mcastseed/src/msock.h new file mode 100644 index 0000000..07e1fad --- /dev/null +++ b/mcastseed/src/msock.h @@ -0,0 +1,74 @@ +/* + msock.h - multicast socket creation routines + + (C) 2016 Christian Beier + +*/ + + +#ifndef MSOCK_H +#define MSOCK_H + +/* this is for windows compat */ +#define SOCKET int + +#ifdef __MINGW32__ +#undef SOCKET +#undef socklen_t +#define WINVER 0x0501 +#include +#define EWOULDBLOCK WSAEWOULDBLOCK +#define close closesocket +#define socklen_t int +typedef unsigned int in_addr_t; +#else +#include +#include +#include +#include +#include +#include +#endif + +/* Define IPV6_ADD_MEMBERSHIP for FreeBSD and Mac OS X */ +#ifndef IPV6_ADD_MEMBERSHIP +#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP +#endif + + + +/** + Creates a socket suitable for sending multicast datagrams via sendto(). + + On success, a socket is returned and multicastAddr set with the right info for sendto() calls. + On error, -1 is returned. +*/ +SOCKET mcast_send_socket(char* multicastIP, char* multicastPort, int multicastTTL, struct addrinfo **multicastAddr); + +/** + Creates a socket suitable for receiving multicast datagrams via recvfrom(). Also sets socket recv buffer. + + On success, returns socket. + On fail, returns -1. + */ +SOCKET mcast_recv_socket(char* multicastIP, char* multicastPort, int multicastRecvBufSize); + +/** + Creates a TCP socket that connects to serverIP:serverPort. + Meant to give feedback to a mcast sender. + + On success, returns socket. + On error, -1 is returned. + */ +SOCKET ucast_client_socket(char* serverIP, char* serverPort); + +/** + Creates a TCP socket that binds locally serverPort. + Meant to receive feedback to a mcast sender. + + On success, returns socket. + On error, -1 is returned. + */ +SOCKET ucast_server_socket(char* serverPort, int maxPendingConnections); + +#endif -- cgit v1.2.3