You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
1.9 KiB

/*
*
*/
#include "UDPTCPNetwork.h"
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h> /* close() */
#include <string.h> /* memset() */
using namespace std;
char dnsip[NET_HOSTLEN];
int UDPTCPNetwork_init = 0;
//
// convert host and port to sockaddr_in6
//
int dns_filladdr (string host, string port, int ai_family, struct sockaddr_storage *sAddr) {
struct addrinfo hints, *res;
int err;
bzero (&hints, sizeof (struct addrinfo));
hints.ai_family = ai_family;
hints.ai_socktype = SOCK_DGRAM;
if ((err = getaddrinfo (host.c_str(), port.c_str(), &hints, &res)) < 0) {
fprintf (stdout, "dns_filladdr (getaddrinfo):%s\n", gai_strerror (err));
return -1;
}
memcpy (sAddr, res->ai_addr, res->ai_addrlen);
freeaddrinfo (res);
return 1;
};
//
// convert int to char*
//
char* itoa(char* buffer, int number, int size) {
snprintf (buffer, size, "%d", number);
return buffer;
};
void UDPTCPNetwork_Startup() {
if (UDPTCPNetwork_init != 0) return;
printf ("%s\n", __FUNCTION__);
#ifdef BUILD_WINDOWS
WORD wVersionRequested;
WSADATA wsaData;
int err;
/* Use the MAKEWORD(lowbyte, highbyte) macro declared in Windef.h */
wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
/* Tell the user that we could not find a usable */
/* Winsock DLL. */
printf("WSAStartup failed with error: %d\n", err);
return;
}
#endif
UDPTCPNetwork_init = 1;
};
int file_is_readable (const char *fname) {
int f;
if ((f = open(fname, O_RDONLY)) == -1) return 0;
close (f);
return 1;
};
std::string string_to_upper(std::string s) {
for (int i = 0; i < s.length(); i++) s[i] = toupper(s[i]);
return s;
};
std::string string_to_lower(std::string s) {
for (int i = 0; i < s.length(); i++) s[i] = tolower(s[i]);
return s;
};