]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Introduce a transport_t deep copy function.
authorGeorge Kadianakis <desnacked@riseup.net>
Wed, 25 Jan 2012 19:23:46 +0000 (21:23 +0200)
committerGeorge Kadianakis <desnacked@riseup.net>
Tue, 3 Jul 2012 18:26:03 +0000 (21:26 +0300)
src/or/transports.c

index 4f67a46339c943ecaa79303ac3c80d15daa58b8b..566cd93249aaee52352fce04a5ddda46036a279f 100644 (file)
@@ -195,6 +195,25 @@ transport_free(transport_t *transport)
   tor_free(transport);
 }
 
+/** Return a deep copy of <b>transport</b>. */
+static transport_t *
+transport_copy(const transport_t *transport)
+{
+  transport_t *new_transport = NULL;
+
+  tor_assert(transport);
+
+  new_transport = tor_malloc_zero(sizeof(transport_t));
+
+  new_transport->socks_version = transport->socks_version;
+  new_transport->name = tor_strdup(transport->name);
+  tor_addr_copy(&new_transport->addr, &transport->addr);
+  new_transport->port = transport->port;
+  new_transport->marked_for_removal = transport->marked_for_removal;
+
+  return new_transport;
+}
+
 /** Returns the transport in our transport list that has the name <b>name</b>.
  *  Else returns NULL. */
 transport_t *