mirror of
https://github.com/fumiama/simple-kanban.git
synced 2026-06-12 12:50:25 +08:00
增加ipv6
This commit is contained in:
@@ -6,6 +6,8 @@ if (${isBigEndian})
|
|||||||
set ( WORDS_BIGENDIAN 1 )
|
set ( WORDS_BIGENDIAN 1 )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#add_definitions(-DLISTEN_ON_IPV6)
|
||||||
|
|
||||||
add_executable(simple-kanban server.c)
|
add_executable(simple-kanban server.c)
|
||||||
add_executable(simple-kanban-client client.c)
|
add_executable(simple-kanban-client client.c)
|
||||||
|
|
||||||
|
|||||||
28
server.c
28
server.c
@@ -23,8 +23,14 @@
|
|||||||
#define SETPASS "minamoto"
|
#define SETPASS "minamoto"
|
||||||
|
|
||||||
int fd;
|
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 *data_path;
|
||||||
char *kanban_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 bind_server(uint16_t port, u_int try_times) {
|
||||||
int fail_count = 0;
|
int fail_count = 0;
|
||||||
int result = -1;
|
int result = -1;
|
||||||
server_addr.sin_family = AF_INET;
|
#ifdef LISTEN_ON_IPV6
|
||||||
server_addr.sin_port = htons(port);
|
server_addr.sin6_family = AF_INET6;
|
||||||
server_addr.sin_addr.s_addr = INADDR_ANY;
|
server_addr.sin6_port = htons(port);
|
||||||
bzero(&(server_addr.sin_zero), 8);
|
bzero(&(server_addr.sin6_addr), sizeof(server_addr.sin6_addr));
|
||||||
|
fd = socket(PF_INET6, SOCK_STREAM, 0);
|
||||||
fd = socket(AF_INET, 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);
|
while(!~(result = bind(fd, (struct sockaddr *)&server_addr, struct_len)) && fail_count++ < try_times) sleep(1);
|
||||||
if(!~result && fail_count >= try_times) {
|
if(!~result && fail_count >= try_times) {
|
||||||
puts("Bind server failure!");
|
puts("Bind server failure!");
|
||||||
|
|||||||
Reference in New Issue
Block a user