mirror of
https://github.com/fumiama/simple-kanban.git
synced 2026-06-05 00:10:29 +08:00
增加ipv6
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
28
server.c
28
server.c
@@ -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!");
|
||||
|
||||
Reference in New Issue
Block a user