IPv6 support for RecvAllNB()

master
Aadhavan Srinivasan 7 months ago
parent d3716536f9
commit 463dfbd3e5

@ -72,8 +72,11 @@ char* Server::recvAllNB() {
/* Convert the s_addr field of the caseted struct to host network-byte, and convert it to a dotted decimal */ /* Convert the s_addr field of the caseted struct to host network-byte, and convert it to a dotted decimal */
peer_addr = connect_code::dec_to_dotted_dec(std::to_string(htonl(temp_struct->sin_addr.s_addr))); peer_addr = connect_code::dec_to_dotted_dec(std::to_string(htonl(temp_struct->sin_addr.s_addr)));
} else { } else {
/* FOR IPv6 */ /* FOR IPv6 - Use the inet_ntop function, and convert the struct's address into a string */
peer_addr = "IPV6 NOT SUPPORTED YET"; struct sockaddr_in6* temp_struct = (struct sockaddr_in6*)this->dest;
char* temp_buf = (char *)malloc(sizeof(char) * (INET6_ADDRSTRLEN + 1));
peer_addr = std::string(inet_ntop(AF_INET6, temp_struct->sin6_addr.s6_addr, temp_buf, INET6_ADDRSTRLEN));
free(temp_buf);
} }
return to_return; return to_return;
@ -98,8 +101,7 @@ called immediately after the constructor. If the socket is TCP, it also sets the
socket to listen for incoming connections. This function throws an exception if socket to listen for incoming connections. This function throws an exception if
the socket could not be created. The excpetion is an integer corresponding to the errno the socket could not be created. The excpetion is an integer corresponding to the errno
of the failing function, and enables the caller to print a corresponding error message by of the failing function, and enables the caller to print a corresponding error message by
'catching' the thrown exception and using strerror(). 'catching' the thrown exception and using strerror().*/
This function also sets a timeout of 100ms for UDP sockets */
void Server::create_socket() { void Server::create_socket() {
Sock::create_socket(); Sock::create_socket();

Loading…
Cancel
Save