1
0
mirror of https://github.com/fumiama/simple-kanban.git synced 2026-06-05 00:10:29 +08:00

增加ipv6

This commit is contained in:
fumiama
2021-05-07 21:26:25 +08:00
parent 4496e78dfd
commit a07876cb33
2 changed files with 22 additions and 8 deletions

View File

@@ -6,6 +6,8 @@ if (${isBigEndian})
set ( WORDS_BIGENDIAN 1 )
endif()
#add_definitions(-DLISTEN_ON_IPV6)
add_executable(simple-kanban server.c)
add_executable(simple-kanban-client client.c)

View File

@@ -23,8 +23,14 @@
#define SETPASS "minamoto"
int fd;
socklen_t struct_len = sizeof(struct sockaddr_in);
struct sockaddr_in server_addr;
#ifdef LISTEN_ON_IPV6
socklen_t struct_len = sizeof(struct sockaddr_in6);
struct sockaddr_in6 server_addr;
#else
socklen_t struct_len = sizeof(struct sockaddr_in);
struct sockaddr_in server_addr;
#endif
char *data_path;
char *kanban_path;
@@ -71,12 +77,18 @@ int s3_set_data(THREADTIMER *timer);
int bind_server(uint16_t port, u_int try_times) {
int fail_count = 0;
int result = -1;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(server_addr.sin_zero), 8);
fd = socket(AF_INET, SOCK_STREAM, 0);
#ifdef LISTEN_ON_IPV6
server_addr.sin6_family = AF_INET6;
server_addr.sin6_port = htons(port);
bzero(&(server_addr.sin6_addr), sizeof(server_addr.sin6_addr));
fd = socket(PF_INET6, SOCK_STREAM, 0);
#else
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(server_addr.sin_zero), 8);
fd = socket(AF_INET, SOCK_STREAM, 0);
#endif
while(!~(result = bind(fd, (struct sockaddr *)&server_addr, struct_len)) && fail_count++ < try_times) sleep(1);
if(!~result && fail_count >= try_times) {
puts("Bind server failure!");