Converted easysock from CPP to C, because it was mostly just C code anyways
This commit is contained in:
		@@ -1,8 +1,9 @@
 | 
			
		||||
#include "includes/easysock.hpp"
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include <cstdlib>
 | 
			
		||||
#include <cstdio>
 | 
			
		||||
#include <cerrno>
 | 
			
		||||
#include "includes/easysock.h"
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
 | 
			
		||||
#ifndef _WIN32
 | 
			
		||||
@@ -187,6 +188,29 @@ int check_ip_ver(const char* address) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int port_to_num(const char* port_str) {
 | 
			
		||||
	/* The largest possible port value is 65535: a 5 character string */
 | 
			
		||||
	if (strlen(port_str) > 5) {
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	for (int i = 0; i < strlen(port_str); i++) {
 | 
			
		||||
		if (isdigit(port_str[i]) == 0) { // Ensure that every character in port_str is a digit (isidigit() returns 0 if the parameter is not a digit)
 | 
			
		||||
			return -1;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	/* Convert the string to a base-10 integer */
 | 
			
		||||
	int port_num = (int)strtol(port_str, NULL, 10);
 | 
			
		||||
	if (port_num > 65535) {
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
	if (port_num < 1024) {
 | 
			
		||||
		return -2;	
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return port_num;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int int_to_inet(int network) {
 | 
			
		||||
	if (network == 4) {
 | 
			
		||||
		return AF_INET;
 | 
			
		||||
@@ -1,5 +1,8 @@
 | 
			
		||||
#ifndef EASYSOCK_HPP_
 | 
			
		||||
#define EASYSOCK_HPP_
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef EASYSOCK_H_
 | 
			
		||||
#define EASYSOCK_H_
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
	#include <winsock2.h>
 | 
			
		||||
@@ -70,6 +73,12 @@ IPv6 address (returns 6) or neither (returns -1). */
 | 
			
		||||
 | 
			
		||||
int check_ip_ver(const char* address);
 | 
			
		||||
 | 
			
		||||
/* port_to_num - Converts a string representing a port, into a numeric value.
 | 
			
		||||
Returns -1 if the string is not numeric, or exceeds the maximum port length.
 | 
			
		||||
Returns -2 if the string is lower than 1024, This serves as a warning, as ports less
 | 
			
		||||
than 1023 are reserved. */
 | 
			
		||||
int port_to_num(const char* port_str);
 | 
			
		||||
 | 
			
		||||
/* int_to_inet - Takes an int value (4 for IPv4, 6 for IPv6) and returns AF_INET or
 | 
			
		||||
AF_INET6 respectively. */
 | 
			
		||||
 | 
			
		||||
@@ -92,3 +101,6 @@ int sock_quit(void);
 | 
			
		||||
int sock_close(SOCKET);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
		Reference in New Issue
	
	Block a user