
#ifndef SOCKET_HELPER_H
#define SOCKET_HELPER_H

#include "headers.h"

/*
typedef union
{
	struct sockaddr_in sockaddr;
	struct sockaddr_in6 sockaddr6;
} zperf_sockaddr_t;
*/
typedef struct sockaddr_in zping_sockaddr_t;

void close_one_socket(int sock);

void SockAddr_setHostname(const char* inHostname, zping_sockaddr_t *inSockAddr) ;

int setsock_tcp_windowsize(int inSock, int inTCPWin, int inSend);

void setsock_tcp_mss(int inSock, int inMSS);

#endif
