diff options
author | Gaurav Sinha <gaurav.sinha@vyatta.com> | 2012-05-30 07:54:05 -0700 |
---|---|---|
committer | Gaurav Sinha <gaurav.sinha@vyatta.com> | 2012-05-30 07:54:05 -0700 |
commit | a608049a22dc23676c85bbf443e45cbbf0e9b83c (patch) | |
tree | 1b82fa315337a8503390384c2684fdbb27b58294 /src/tcp.c | |
parent | 775fea07517af4b68cb2ce75e25ee5af09af0f05 (diff) | |
parent | 687fc04ea8de73eb1ec19d933c8d81f054c977dd (diff) | |
download | conntrack-tools-a608049a22dc23676c85bbf443e45cbbf0e9b83c.tar.gz conntrack-tools-a608049a22dc23676c85bbf443e45cbbf0e9b83c.zip |
Merge branch 'cthelper9' of git://git.netfilter.org/conntrack-tools into user_space_helpers
Conflicts:
.gitignore
src/run.c
Diffstat (limited to 'src/tcp.c')
-rw-r--r-- | src/tcp.c | 30 |
1 files changed, 2 insertions, 28 deletions
@@ -27,7 +27,7 @@ struct tcp_sock *tcp_server_create(struct tcp_conf *c) { - int yes = 1, ret; + int yes = 1; struct tcp_sock *m; socklen_t socklen = sizeof(int); @@ -109,30 +109,7 @@ struct tcp_sock *tcp_server_create(struct tcp_conf *c) return NULL; } - /* now we accept new connections ... */ - ret = accept(m->fd, NULL, NULL); - if (ret == -1) { - if (errno != EAGAIN) { - /* unexpected error, give up. */ - close(m->fd); - free(m); - m = NULL; - } else { - /* still in progress ... we'll do it in tcp_recv() */ - m->state = TCP_SERVER_ACCEPTING; - } - } else { - /* very unlikely at this stage. */ - if (fcntl(ret, F_SETFL, O_NONBLOCK) == -1) { - /* unexpected error, give up. */ - close(m->fd); - free(m); - return NULL; - } - m->client_fd = ret; - m->state = TCP_SERVER_CONNECTED; - register_fd(m->client_fd, STATE(fds)); - } + m->state = TCP_SERVER_ACCEPTING; return m; } @@ -287,7 +264,6 @@ int tcp_accept(struct tcp_sock *m) m->client_fd = ret; m->state = TCP_SERVER_CONNECTED; - register_fd(m->client_fd, STATE(fds)); } return m->client_fd; } @@ -367,7 +343,6 @@ ssize_t tcp_recv(struct tcp_sock *m, void *data, int size) close(m->client_fd); m->client_fd = -1; m->state = TCP_SERVER_ACCEPTING; - tcp_accept(m); } else if (errno != EAGAIN) { m->stats.error++; } @@ -377,7 +352,6 @@ ssize_t tcp_recv(struct tcp_sock *m, void *data, int size) close(m->client_fd); m->client_fd = -1; m->state = TCP_SERVER_ACCEPTING; - tcp_accept(m); } if (ret >= 0) { |