fix printing incoming ips on server side
This commit is contained in:
18
src/main.cpp
18
src/main.cpp
@@ -102,6 +102,15 @@ void serialize_addrinfo(struct addrinfo* in) {
|
||||
|
||||
#define PORT "8000"
|
||||
|
||||
void *get_in_addr(struct sockaddr *sa)
|
||||
{
|
||||
if (sa->sa_family == AF_INET) {
|
||||
return &(((struct sockaddr_in*)sa)->sin_addr);
|
||||
}
|
||||
|
||||
return &(((struct sockaddr_in6*)sa)->sin6_addr);
|
||||
}
|
||||
|
||||
void run_server() {
|
||||
struct addrinfo *servinfo = {};
|
||||
struct addrinfo hints = {};
|
||||
@@ -163,7 +172,7 @@ void run_server() {
|
||||
// @todo: this might be a little wrong, also the win32 and unix seem to differ on field names in sockaddr
|
||||
char s[INET6_ADDRSTRLEN];
|
||||
sockaddr *n = (sockaddr *)&their_addr;
|
||||
inet_ntop(their_addr.ss_family, n->sa_data, s, sizeof(s));
|
||||
inet_ntop(their_addr.ss_family, get_in_addr((struct sockaddr *)&their_addr), s, sizeof(s));
|
||||
debugf("server: got connection from: %s", s);
|
||||
|
||||
const char *msg = "Hello world";
|
||||
@@ -174,14 +183,7 @@ void run_server() {
|
||||
}
|
||||
}
|
||||
|
||||
void *get_in_addr(struct sockaddr *sa)
|
||||
{
|
||||
if (sa->sa_family == AF_INET) {
|
||||
return &(((struct sockaddr_in*)sa)->sin_addr);
|
||||
}
|
||||
|
||||
return &(((struct sockaddr_in6*)sa)->sin6_addr);
|
||||
}
|
||||
|
||||
void run_client() {
|
||||
struct addrinfo *servinfo = {};
|
||||
|
||||
Reference in New Issue
Block a user