Skip to content

Commit

Permalink
Compile on Windows and eliminate Cygwin-gcc warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
blechschmidt committed Dec 8, 2022
1 parent 0128e53 commit f4eeb43
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
33 changes: 25 additions & 8 deletions src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
#include <sys/resource.h>
#endif

#ifdef HAVE_EPOLL
#define IS_LINUX
#endif

#include "massdns.h"
#include "string.h"
#include "random.h"
Expand Down Expand Up @@ -568,7 +572,7 @@ void set_user_sockets(single_list_t *bind_addrs, buffer_t *buffer)
single_list_clear(&sockets);
}


#ifdef IS_LINUX
void tcp_raw_add_sender_socket(int version)
{
socket_info_t info;
Expand Down Expand Up @@ -612,6 +616,7 @@ void tcp_raw_add_receiver_socket(int version)
log_msg(LOG_ERROR, "Failed to create IPv%d TCP raw receiving socket: %s\n", version, strerror(errno));
clean_exit(1);
}
#endif


void query_sockets_setup()
Expand All @@ -623,14 +628,15 @@ void query_sockets_setup()
add_default_socket(4);
add_default_socket(6);
}

#ifdef IS_LINUX
if(context.cmd_args.tcp_raw)
{
tcp_raw_add_sender_socket(4);
tcp_raw_add_sender_socket(6);
tcp_raw_add_receiver_socket(4);
tcp_raw_add_receiver_socket(6);
}
#endif
}
else
{
Expand Down Expand Up @@ -798,6 +804,13 @@ lookup_t *new_lookup(const char *qname, dns_record_type type)
return NULL;
}

void timeout_reset(lookup_t *lookup)
{
timed_ring_remove(&context.ring, lookup->ring_entry);
lookup->ring_entry = timed_ring_add(&context.ring, context.cmd_args.interval_ms * TIMED_RING_MS, lookup);
}

#ifdef IS_LINUX
void tcp_close(lookup_t *lookup)
{
if(!lookup->use_tcp || lookup->tcp_socket.descriptor <= 0)
Expand All @@ -818,12 +831,6 @@ void tcp_cleanup(lookup_t *lookup)
lookup->tcp_state.window_tracker = NULL;
}

void timeout_reset(lookup_t *lookup)
{
timed_ring_remove(&context.ring, lookup->ring_entry);
lookup->ring_entry = timed_ring_add(&context.ring, context.cmd_args.interval_ms * TIMED_RING_MS, lookup);
}

void tcp_connected(socket_info_t *socket_info)
{
lookup_t *lookup = socket_info->data;
Expand Down Expand Up @@ -851,6 +858,8 @@ void tcp_connected(socket_info_t *socket_info)
shutdown(tcp_socket, SHUT_WR);
}

#endif

void srcrand_random_addr(struct sockaddr_in6 *addr)
{
memcpy(addr, &context.srcrand.src_range, sizeof(*addr));
Expand Down Expand Up @@ -942,6 +951,7 @@ void tcp_raw_connect(lookup_t *lookup)
timeout_reset(lookup);
}

#ifdef IS_LINUX
void tcp_connect(lookup_t *lookup)
{
if(context.cmd_args.tcp_raw)
Expand Down Expand Up @@ -1000,6 +1010,7 @@ void tcp_connect(lookup_t *lookup)
ev.events = EPOLLIN | EPOLLOUT;
epoll_ctl(context.epollfd, EPOLL_CTL_ADD, tcp_socket, &ev);
}
#endif // IS_LINUX

void pick_resolver(lookup_t *lookup)
{
Expand Down Expand Up @@ -1029,12 +1040,14 @@ void send_query(lookup_t *lookup)

pick_resolver(lookup);

#ifdef IS_LINUX
if(lookup->use_tcp)
{
tcp_close(lookup);
tcp_connect(lookup);
return;
}
#endif

// We need to select the correct socket pool: IPv4 socket pool for IPv4 resolver/IPv6 socket pool for IPv6 resolver
buffer_t *interfaces;
Expand Down Expand Up @@ -1386,8 +1399,10 @@ void lookup_done(lookup_t *lookup)
context.stats.finished++;
lookup->tcp_state.terminated = true;

#ifdef IS_LINUX
tcp_close(lookup);
tcp_cleanup(lookup);
#endif //IS_LINUX

timed_ring_remove(&context.ring, lookup->ring_entry);

Expand Down Expand Up @@ -2465,6 +2480,7 @@ void parse_cmd(int argc, char **argv)
print_help();
clean_exit(EXIT_SUCCESS);
}
#ifdef IS_LINUX
else if (strcmp(argv[i], "--tcp-enabled") == 0)
{
context.cmd_args.tcp_enabled = true;
Expand All @@ -2479,6 +2495,7 @@ void parse_cmd(int argc, char **argv)
context.cmd_args.tcp_enabled = true;
context.cmd_args.tcp_raw = true;
}
#endif
else if (strcmp(argv[i], "--busypoll") == 0 || strcmp(argv[i], "--busy-poll") == 0)
{
context.cmd_args.busypoll = true;
Expand Down
6 changes: 3 additions & 3 deletions src/string.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ char *trim_start(char *str)
{
while (0 != *str)
{
if(!isspace(*str))
if(!isspace((int)*str))
{
return str;
}
Expand All @@ -67,7 +67,7 @@ void trim_end(char* str)
char *last = str + strlen(str) - 1;
while (last >= str)
{
if(!isspace(*last))
if(!isspace((int)*last))
{
return;
}
Expand Down Expand Up @@ -143,7 +143,7 @@ bool startswith(char* haystack, char* needle, bool case_sensitive) // Supports A
dst[dst_idx++] = complex_chars[complex_idx]; \
break; \
default: \
if(isprint(src[i])) \
if(isprint((int)src[i])) \
{ \
require_space(1); \
dst[dst_idx++] = src[i]; \
Expand Down

0 comments on commit f4eeb43

Please sign in to comment.