fix printing incoming ips on server side
This commit is contained in:
19
src/main.cpp
19
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 = {};
|
||||
@@ -114,7 +123,6 @@ void run_server() {
|
||||
panicf("getaddrinfo failed, error code: %s\n", gai_strerrorA(err));
|
||||
}
|
||||
defer { freeaddrinfo(servinfo); };
|
||||
// serialize_addrinfo(servinfo);
|
||||
|
||||
SOCKET socket_fd = -1;
|
||||
for (addrinfo *it = servinfo; it; it = it->ai_next) {
|
||||
@@ -163,7 +171,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 +182,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