| | |
| | |
|
| | | #include "logger.h"
|
| | |
|
| | | #define LOGGER "/var/log/ddns_server.log"
|
| | | #define LOGGER "/tmp/ddns_server.log"
|
| | |
|
| | | #define MAX_EVENTS 512
|
| | | #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
| | |
| | |
|
| | | else /* already connected client socket get data incoming */
|
| | | {
|
| | | memset(buf, 0, sizeof(buf));
|
| | | if( (rv=read(event_array[i].data.fd, buf, sizeof(buf))) <= 0)
|
| | | {
|
| | | log_err("socket[%d] read failure or get disconncet and will be removed.\n", event_array[i].data.fd);
|
| | | log_err("socket[%d] already get disconncet and will be removed.\n", event_array[i].data.fd);
|
| | | epoll_ctl(epollfd, EPOLL_CTL_DEL, event_array[i].data.fd, NULL);
|
| | | close(event_array[i].data.fd);
|
| | | continue;
|
| | |
| | |
|
| | | if ( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
| | | {
|
| | | printf("Use socket() to create a TCP socket failure: %s\n", strerror(errno));
|
| | | log_err("Use socket() to create a TCP socket failure: %s\n", strerror(errno));
|
| | | return -1;
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | if (inet_pton(AF_INET, listen_ip, &servaddr.sin_addr) <= 0)
|
| | | {
|
| | | printf("inet_pton() set listen IP address failure.\n");
|
| | | rv = -2;
|
| | | log_err("inet_pton() set listen IP address failure.\n"); |
| | | rv = -2;
|
| | | goto CleanUp;
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | if(bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0)
|
| | | {
|
| | | printf("Use bind() to bind the TCP socket failure: %s\n", strerror(errno));
|
| | | log_err("Use bind() to bind the TCP socket failure: %s\n", strerror(errno));
|
| | | rv = -3;
|
| | | goto CleanUp;
|
| | | }
|
| | |
|
| | | if(listen(listenfd, 13) < 0)
|
| | | {
|
| | | printf("Use bind() to bind the TCP socket failure: %s\n", strerror(errno));
|
| | | log_err("Use bind() to bind the TCP socket failure: %s\n", strerror(errno));
|
| | | rv = -4;
|
| | | goto CleanUp;
|
| | | }
|
| | |
| | | limit.rlim_cur = limit.rlim_max;
|
| | | setrlimit(RLIMIT_NOFILE, &limit );
|
| | |
|
| | | printf("set socket open fd max count to %d\n", (int)limit.rlim_max);
|
| | | log_dbg("set socket open fd max count to %d\n", (int)limit.rlim_max);
|
| | | }
|
| | |
|