[tor-commits] [torsocks/master] Change connection create function

dgoulet at torproject.org dgoulet at torproject.org
Fri Apr 4 22:40:25 UTC 2014


commit d1d2a4ab5e14dfd77c5f38b09efc021166df07d7
Author: David Goulet <dgoulet at ev0ke.net>
Date:   Thu Jun 20 20:17:14 2013 -0400

    Change connection create function
    
    Don't need anymore the connection domain, take it directly form the
    sockaddr passed to the function.
    
    Also, set the refcount to 1 on creation.
    
    Signed-off-by: David Goulet <dgoulet at ev0ke.net>
---
 src/common/connection.c |   14 ++++++++------
 src/common/connection.h |    3 +--
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/common/connection.c b/src/common/connection.c
index ba1890a..b926f15 100644
--- a/src/common/connection.c
+++ b/src/common/connection.c
@@ -170,8 +170,7 @@ error:
  *
  * Return a newly allocated connection object or else NULL.
  */
-struct connection *connection_create(int fd, enum connection_domain domain,
-		struct sockaddr *dest)
+struct connection *connection_create(int fd, const struct sockaddr *dest)
 {
 	struct connection *conn = NULL;
 
@@ -183,19 +182,22 @@ struct connection *connection_create(int fd, enum connection_domain domain,
 		goto error;
 	}
 
-	switch (domain) {
-	case CONNECTION_DOMAIN_INET:
+	switch (dest->sa_family) {
+	case AF_INET:
+		conn->dest_addr.domain = CONNECTION_DOMAIN_INET;
 		memcpy(&conn->dest_addr.u.sin, dest, sizeof(conn->dest_addr.u.sin));
 		break;
-	case CONNECTION_DOMAIN_INET6:
+	case AF_INET6:
+		conn->dest_addr.domain = CONNECTION_DOMAIN_INET6;
 		memcpy(&conn->dest_addr.u.sin6, dest, sizeof(conn->dest_addr.u.sin6));
 		break;
 	default:
-		ERR("Connection domain unknown %d", domain);
+		ERR("Connection domain unknown %d", dest->sa_family);
 		goto error;
 	}
 
 	conn->fd = fd;
+	conn->refcount.count = 1;
 
 	return conn;
 
diff --git a/src/common/connection.h b/src/common/connection.h
index d1163a9..17f940c 100644
--- a/src/common/connection.h
+++ b/src/common/connection.h
@@ -68,8 +68,7 @@ struct connection {
 int connection_addr_set(enum connection_domain domain, const char *ip,
 		in_port_t port, struct connection_addr *addr);
 
-struct connection *connection_create(int fd, enum connection_domain domain,
-		struct sockaddr *dest);
+struct connection *connection_create(int fd, const struct sockaddr *dest);
 struct connection *connection_find(int key);
 void connection_destroy(struct connection *conn);
 void connection_remove(struct connection *conn);





More information about the tor-commits mailing list