[hipl-commit] [trunk] Rev 3595: uncrustified lib/opphip

  • From: Rene Hummen <rene.hummen@xxxxxxxxxxxxxxxxx>
  • To: hipl-commit@xxxxxxxxxxxxx
  • Date: Thu, 11 Feb 2010 02:11:56 +0200

Committer: Rene Hummen <rene.hummen@xxxxxxxxxxxxxxxxx>
Date: Thu Feb 11 01:11:39 2010 +0100
Revision: 3595
Revision-id: rene.hummen@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Branch nick: trunk

Log:
  uncrustified lib/opphip

Modified:
  M  lib/opphip/wrap.c
  M  lib/opphip/wrap_db.c
  M  lib/opphip/wrap_db.h

=== modified file 'lib/opphip/wrap.c'
--- lib/opphip/wrap.c   2010-01-19 11:51:05 +0000
+++ lib/opphip/wrap.c   2010-02-11 00:11:39 +0000
@@ -45,32 +45,31 @@
  * @todo: add clone() dup(), dup2(), fclose(), select ?
  */
 struct {
-       int (*socket_dlsym)(int domain, int type, int protocol);
-       int (*bind_dlsym)(int socket, const struct sockaddr *sa,
-                         socklen_t sa_len);
-       int (*connect_dlsym)(int a, const struct sockaddr * b, socklen_t c);
-       ssize_t (*send_dlsym)(int s, const void *buf, size_t len, int flags);
-       ssize_t (*sendto_dlsym)(int s, const void *buf, size_t len, int flags, 
-                               const struct sockaddr *to, socklen_t tolen);
-       ssize_t (*sendmsg_dlsym)(int s, const struct msghdr *msg, int flags);
-       ssize_t (*recv_dlsym)(int s, const void *buf, size_t len, int flags);
-       ssize_t (*recvfrom_dlsym)(int s, void *buf, size_t len, int flags, 
-                                 struct sockaddr *from, socklen_t *fromlen);
-       ssize_t (*recvmsg_dlsym)(int s, struct msghdr *msg, int flags);
-       int (*accept_dlsym)(int sockfd, struct sockaddr *addr,
-                           socklen_t *addrlen);
-       ssize_t (*write_dlsym)(int fd, const void *buf, size_t count);
-       ssize_t (*read_dlsym)(int fd, void *buf, size_t count);
-       int (*close_dlsym)(int fd);
-       int (*listen_dlsym)(int sockfd, int backlog);
-       ssize_t (*readv_dlsym)(int fd, const struct iovec *vector, int count);
-       ssize_t (*writev_dlsym)(int fd, const struct iovec *vector, int count);
-        int (*poll_dlsym)(struct pollfd *fds, nfds_t nfds, int timeout);
-        
+    int     (*socket_dlsym)(int domain, int type, int protocol);
+    int     (*bind_dlsym)(int socket, const struct sockaddr *sa,
+                          socklen_t sa_len);
+    int     (*connect_dlsym)(int a, const struct sockaddr *b, socklen_t c);
+    ssize_t (*send_dlsym)(int s, const void *buf, size_t len, int flags);
+    ssize_t (*sendto_dlsym)(int s, const void *buf, size_t len, int flags,
+                            const struct sockaddr *to, socklen_t tolen);
+    ssize_t (*sendmsg_dlsym)(int s, const struct msghdr *msg, int flags);
+    ssize_t (*recv_dlsym)(int s, const void *buf, size_t len, int flags);
+    ssize_t (*recvfrom_dlsym)(int s, void *buf, size_t len, int flags,
+                              struct sockaddr *from, socklen_t *fromlen);
+    ssize_t (*recvmsg_dlsym)(int s, struct msghdr *msg, int flags);
+    int     (*accept_dlsym)(int sockfd, struct sockaddr *addr,
+                            socklen_t *addrlen);
+    ssize_t (*write_dlsym)(int fd, const void *buf, size_t count);
+    ssize_t (*read_dlsym)(int fd, void *buf, size_t count);
+    int     (*close_dlsym)(int fd);
+    int     (*listen_dlsym)(int sockfd, int backlog);
+    ssize_t (*readv_dlsym)(int fd, const struct iovec *vector, int count);
+    ssize_t (*writev_dlsym)(int fd, const struct iovec *vector, int count);
+    int     (*poll_dlsym)(struct pollfd *fds, nfds_t nfds, int timeout);
 } dl_function_ptr;
 
-/** An array of wrapper handlers. Each handler points to the wrapped function. 
Must be
- *  filled in the same order as @c dl_function_ptr array.
+/** An array of wrapper handlers. Each handler points to the wrapped function.
+ * Must be filled in the same order as @c dl_function_ptr array.
  */
 void *dl_function_fd[NUMBER_OF_DLSYM_FUNCTIONS];
 
@@ -78,10 +77,10 @@
  * @c dl_function_ptr array.
  */
 void *dl_function_name[] =
-{"socket", "bind", "connect", "send", "sendto",
+{"socket",  "bind", "connect",  "send",    "sendto",
  "sendmsg", "recv", "recvfrom", "recvmsg", "accept",
- "write", "read", "close", "listen", "readv",
- "writev", "poll"};
+ "write",   "read", "close",    "listen",  "readv",
+ "writev",  "poll"};
 
 /**
  * Initialize the @c dl_function_fd array to support wrapping of socket calls
@@ -90,32 +89,32 @@
  */
 void hip_init_dlsym_functions(void)
 {
-       int err = 0, i;
-       char *error = NULL;
-       
-       for (i = 0; i < NUMBER_OF_DLSYM_FUNCTIONS; i++) {
-               dl_function_fd[i] = dlopen(SOFILE, RTLD_LAZY);
-               HIP_ASSERT(dl_function_fd[i]);
-               ((int **) (&dl_function_ptr))[i] =
-                       dlsym(dl_function_fd[i], dl_function_name[i]);
-       }
-       
-       error = dlerror();
-       if (err){
-               HIP_DIE("dlerror: %s\n", error);
-       }
+    int err     = 0, i;
+    char *error = NULL;
+
+    for (i = 0; i < NUMBER_OF_DLSYM_FUNCTIONS; i++) {
+        dl_function_fd[i]                = dlopen(SOFILE, RTLD_LAZY);
+        HIP_ASSERT(dl_function_fd[i]);
+        ((int **) (&dl_function_ptr))[i] =
+            dlsym(dl_function_fd[i], dl_function_name[i]);
+    }
+
+    error = dlerror();
+    if (err) {
+        HIP_DIE("dlerror: %s\n", error);
+    }
 }
 
 /**
- * Uninitialize the @c dl_function_fd array to stop wrapping of socket calls 
using
- * LD_PRELOAD.
+ * Uninitialize the @c dl_function_fd array to stop wrapping of socket calls
+ * using LD_PRELOAD.
  */
 void hip_uninit_dlsym_functions(void)
 {
-       int i = 0;
-       for (i = 0; i < NUMBER_OF_DLSYM_FUNCTIONS; i++) {
-               dlclose(dl_function_fd[i]);
-       }
+    int i = 0;
+    for (i = 0; i < NUMBER_OF_DLSYM_FUNCTIONS; i++) {
+        dlclose(dl_function_fd[i]);
+    }
 }
 
 /**
@@ -124,8 +123,8 @@
  */
 void hip_uninitialize_db(void)
 {
-       hip_uninit_dlsym_functions();
-       hip_uninit_socket_db();
+    hip_uninit_dlsym_functions();
+    hip_uninit_socket_db();
 }
 
 /**
@@ -134,31 +133,30 @@
  */
 void hip_initialize_db_when_not_exist(void)
 {
-
-        const char *cfile = "default";
-       int err = 0;
-       
-       if (hip_db_exist)
-               return;
-
-       srand(getpid());
-       
-       hip_set_logtype(LOGTYPE_SYSLOG);
-       //hip_set_logtype(LOGTYPE_STDERR);
-       hip_set_logfmt(LOGFMT_LONG);
-       HIP_IFEL(hip_set_auto_logdebug(cfile), -1,
-         "Error: Cannot set the debugging parameter.\n");
-
-       hip_init_dlsym_functions();
-       hip_init_socket_db();
-       HIP_DEBUG("socketdb initialized\n");
-       /** @todo: should have signal handlers too? */
-       atexit(hip_uninitialize_db);
-       hip_db_exist = 1;
-
-     out_err:
-       return;
-
+    const char *cfile = "default";
+    int err           = 0;
+
+    if (hip_db_exist) {
+        return;
+    }
+
+    srand(getpid());
+
+    hip_set_logtype(LOGTYPE_SYSLOG);
+    //hip_set_logtype(LOGTYPE_STDERR);
+    hip_set_logfmt(LOGFMT_LONG);
+    HIP_IFEL(hip_set_auto_logdebug(cfile), -1,
+             "Error: Cannot set the debugging parameter.\n");
+
+    hip_init_dlsym_functions();
+    hip_init_socket_db();
+    HIP_DEBUG("socketdb initialized\n");
+    /** @todo: should have signal handlers too? */
+    atexit(hip_uninitialize_db);
+    hip_db_exist = 1;
+
+out_err:
+    return;
 }
 
 /**
@@ -170,49 +168,53 @@
  */
 int hip_get_local_hit_wrapper(hip_hit_t *hit)
 {
-       int err = 0;
-       char *param;
-       struct hip_common *msg = NULL;
-
-       HIP_IFEL(!(msg = hip_msg_alloc()), -1, "malloc failed\n");
-       HIP_IFEL(hip_build_user_hdr(msg, SO_HIP_DEFAULT_HIT, 0),
-                -1, "Fail to get hits");
-       HIP_IFEL(hip_send_recv_daemon_info(msg, 0, 0), -1, "send/recv\n");
-       HIP_IFEL(!(param = hip_get_param(msg, HIP_PARAM_HIT)), -1,
-                "No HIT received\n");
-       ipv6_addr_copy(hit, hip_get_param_contents_direct(param));
-       _HIP_DEBUG_HIT("hit", hit);
-       
- out_err:
-       if (msg)
-               free(msg);
-       return err;
+    int err                = 0;
+    char *param;
+    struct hip_common *msg = NULL;
+
+    HIP_IFEL(!(msg = hip_msg_alloc()), -1, "malloc failed\n");
+    HIP_IFEL(hip_build_user_hdr(msg, SO_HIP_DEFAULT_HIT, 0),
+             -1, "Fail to get hits");
+    HIP_IFEL(hip_send_recv_daemon_info(msg, 0, 0), -1, "send/recv\n");
+    HIP_IFEL(!(param = hip_get_param(msg, HIP_PARAM_HIT)), -1,
+             "No HIT received\n");
+    ipv6_addr_copy(hit, hip_get_param_contents_direct(param));
+    _HIP_DEBUG_HIT("hit", hit);
+
+out_err:
+    if (msg) {
+        free(msg);
+    }
+    return err;
 }
 
 /**
- * Verify if domain argument for socket() can be translated using 
opportunistic mode.
- * 
+ * Verify if domain argument for socket() can be translated using opportunistic
+ * mode.
+ *
  * @param domain the domain argument for socket() call
  * @return one if the socket is translatable or zero otherwise
  */
 inline int hip_domain_is_inet(int domain)
 {
-       return (domain == PF_INET || domain == PF_INET6);
+    return domain == PF_INET || domain == PF_INET6;
 }
 
 /**
- * Check the type argument for socket() call if it can be translated using 
opportunistic mode.
+ * Check the type argument for socket() call if it can be translated using
+ * opportunistic mode.
  *
  * @param type the type argument for socket() call
  * @return one if the socket is translatable or zero otherwise
  */
 inline int hip_type_is_stream_or_dgram(int type)
 {
-       return (type == SOCK_STREAM || type == SOCK_DGRAM);
+    return type == SOCK_STREAM || type == SOCK_DGRAM;
 }
 
 /**
- * Verify applicability of opportunistic mode translation for the given socket 
address structure.
+ * Verify applicability of opportunistic mode translation for the given socket
+ * address structure.
  *
  * @param sa the socket address structure to be verified
  * @return one if the socket is translatable or zero otherwise
@@ -220,23 +222,27 @@
  */
 static inline int hip_sockaddr_wrapping_is_applicable(const struct sockaddr 
*sa)
 {
-       if (sa->sa_family == AF_INET6)
-               if (ipv6_addr_is_hit(hip_cast_sa_addr(sa)) || 
IN6_IS_ADDR_LOOPBACK(hip_cast_sa_addr(sa)))
-                       return 0;
-       
-       if (!(sa->sa_family == AF_INET || sa->sa_family == AF_INET6))
-               return 0;
-
-       if (sa->sa_family == AF_INET) {
-               struct in_addr *oip = hip_cast_sa_addr(sa);
-               if (oip->s_addr == htonl(INADDR_LOOPBACK) /*|| oip->s_addr == 
htonl(INADDR_ANY)*/)
-                       return 0;
-       }
-
-       return 1;
+    if (sa->sa_family == AF_INET6) {
+        if (ipv6_addr_is_hit(hip_cast_sa_addr(sa))
+                || IN6_IS_ADDR_LOOPBACK(hip_cast_sa_addr(sa))) {
+            return 0;
+        }
+    }
+
+    if (!(sa->sa_family == AF_INET || sa->sa_family == AF_INET6)) {
+        return 0;
+    }
+
+    if (sa->sa_family == AF_INET) {
+        struct in_addr *oip = hip_cast_sa_addr(sa);
+        if (oip->s_addr == htonl(INADDR_LOOPBACK)) {
+            return 0;
+        }
+    }
+
+    return 1;
 }
 
-
 /**
  * Verify applicability of opportunistic mode translation in general.
  *
@@ -244,55 +250,68 @@
  * @param entry the corresponding database entry (must be non-null)
  * @return 1 if applicable, zero otherwise
  */
-static inline int hip_wrapping_is_applicable(const struct sockaddr *sa, 
hip_opp_socket_t *entry)
+static inline int hip_wrapping_is_applicable(const struct sockaddr *sa,
+                                             hip_opp_socket_t *entry)
 {
-       HIP_ASSERT(entry);
-
-       if (!(entry->protocol == 0 ||
-             entry->protocol == IPPROTO_TCP ||
-             entry->protocol == IPPROTO_UDP ||
-             entry->protocol == IPPROTO_ICMP ||
-             entry->protocol == IPPROTO_ICMPV6))
-               return 0;       
-
-       if (!(entry->domain == PF_INET6 || entry->domain == PF_INET))
-               return 0;
-
-       if (!(entry->type == SOCK_STREAM ||
-             entry->type == SOCK_DGRAM ||
-             entry->type == SOCK_RAW))
-               return 0;
-
-       if(entry->type == SOCK_RAW){
-               if(!(entry->protocol == IPPROTO_ICMP ||
-                    entry->protocol == IPPROTO_ICMPV6))
-                       return 0;
-       }
-
-       if (entry->force_orig)
-               return 0;
-
-       if (sa && !hip_sockaddr_wrapping_is_applicable(sa)) {
-               HIP_DEBUG_SOCKADDR("wrap not applicable for addr", sa);
-               return 0;
-       }
-
-       if (entry->orig_local_id.ss_family)
-               if (hip_sockaddr_wrapping_is_applicable((struct sockaddr *) 
&entry->orig_local_id) == 0)
-                               return 0;
-
-       if (entry->orig_peer_id.ss_family)
-               if (hip_sockaddr_wrapping_is_applicable((struct sockaddr *) 
&entry->orig_peer_id) == 0)
-                       return 0;
-
-       HIP_DEBUG("Wrapping applicable\n");
-
-       return 1;
+    HIP_ASSERT(entry);
+
+    if (!(entry->protocol == 0 ||
+          entry->protocol == IPPROTO_TCP ||
+          entry->protocol == IPPROTO_UDP ||
+          entry->protocol == IPPROTO_ICMP ||
+          entry->protocol == IPPROTO_ICMPV6)) {
+        return 0;
+    }
+
+    if (!(entry->domain == PF_INET6 || entry->domain == PF_INET)) {
+        return 0;
+    }
+
+    if (!(entry->type == SOCK_STREAM ||
+          entry->type == SOCK_DGRAM ||
+          entry->type == SOCK_RAW)) {
+        return 0;
+    }
+
+    if (entry->type == SOCK_RAW) {
+        if (!(entry->protocol == IPPROTO_ICMP ||
+              entry->protocol == IPPROTO_ICMPV6)) {
+            return 0;
+        }
+    }
+
+    if (entry->force_orig) {
+        return 0;
+    }
+
+    if (sa && !hip_sockaddr_wrapping_is_applicable(sa)) {
+        HIP_DEBUG_SOCKADDR("wrap not applicable for addr", sa);
+        return 0;
+    }
+
+    if (entry->orig_local_id.ss_family) {
+        if (hip_sockaddr_wrapping_is_applicable(
+                (struct sockaddr *) &entry->orig_local_id) == 0) {
+            return 0;
+        }
+    }
+
+    if (entry->orig_peer_id.ss_family) {
+        if (hip_sockaddr_wrapping_is_applicable(
+                (struct sockaddr *) &entry->orig_peer_id) == 0) {
+            return 0;
+        }
+    }
+
+    HIP_DEBUG("Wrapping applicable\n");
+
+    return 1;
 }
 
 /**
- * Store information into the database about the original socket before it is 
translated.
- * This way, the active socket call can be restored e.g. when the peer does 
not support HIP.
+ * Store information into the database about the original socket before it is
+ * translated. This way, the active socket call can be restored e.g. when the
+ * peer does not support HIP.
  *
  * @param entry the corresponding opportunistic mode database entry
  * @param is_peer one if the @c sa argument is remote and zero if local
@@ -300,18 +319,21 @@
  * @param sa the socket address structure
  * @param sa_len length of @c sa in bytes
  */
-void hip_store_orig_socket_info(hip_opp_socket_t *entry, int is_peer, const 
int socket,
-                           const struct sockaddr *sa, const socklen_t sa_len)
+void hip_store_orig_socket_info(hip_opp_socket_t *entry,
+                                int is_peer,
+                                const int socket,
+                                const struct sockaddr *sa,
+                                const socklen_t sa_len)
 {
-       /* Fill in the information of original socket */
-       entry->orig_socket = socket;
-       if (is_peer) {
-               memcpy(&entry->orig_peer_id, sa, sa_len);
-               entry->orig_peer_id_len = sa_len;
-       } else {
-               memcpy(&entry->orig_local_id, sa, sa_len);
-               entry->orig_local_id_len = sa_len;
-       }
+    /* Fill in the information of original socket */
+    entry->orig_socket = socket;
+    if (is_peer) {
+        memcpy(&entry->orig_peer_id, sa, sa_len);
+        entry->orig_peer_id_len = sa_len;
+    } else {
+        memcpy(&entry->orig_local_id, sa, sa_len);
+        entry->orig_local_id_len = sa_len;
+    }
 }
 
 /**
@@ -330,112 +352,114 @@
  * @return zero on success, non-zero on failure
  */
 int hip_request_peer_hit_from_hipd(const struct in6_addr *peer_ip,
-                                  struct in6_addr *peer_hit,
-                                  const struct in6_addr *local_hit,
-                                  in_port_t *src_tcp_port,
-                                  in_port_t *dst_tcp_port,
-                                  int *fallback,
-                                  int *reject)
+                                   struct in6_addr *peer_hit,
+                                   const struct in6_addr *local_hit,
+                                   in_port_t *src_tcp_port,
+                                   in_port_t *dst_tcp_port,
+                                   int *fallback,
+                                   int *reject)
 {
-       struct hip_common *msg = NULL;
-       hip_hit_t *ptr = NULL;
-       int err = 0;
-
-       *fallback = 1;
-       *reject = 0;
-       
-       HIP_IFE(!(msg = hip_msg_alloc()), -1);
-       
-       /* build the message header */
-       HIP_IFEL(hip_build_user_hdr(msg, SO_HIP_GET_PEER_HIT, 0), -1,
-                "build hdr failed\n");
-       
-       HIP_IFEL(hip_build_param_contents(msg, (void *)(local_hit),
-                                         HIP_PARAM_HIT_PEER,
-                                         sizeof(struct in6_addr)), -1,
-                "build param HIP_PARAM_HIT  failed\n");
-       HIP_IFEL(hip_build_param_contents(msg, (void *)(local_hit),
-                                         HIP_PARAM_HIT_LOCAL,
-                                         sizeof(struct in6_addr)), -1,
-                "build param HIP_PARAM_HIT  failed\n");
-       HIP_IFEL(hip_build_param_contents(msg, (void *)(peer_ip),
-                                         HIP_PARAM_IPV6_ADDR_PEER,
-                                         sizeof(struct in6_addr)), -1,
-                "build param HIP_PARAM_IPV6_ADDR failed\n");
-
-       HIP_IFEL(hip_build_param_contents(msg, (void *)(src_tcp_port),
-                                         HIP_PARAM_SRC_TCP_PORT,
-                                         sizeof(in_port_t)), -1,
-                "build param HIP_PARAM_SRC_TCP_PORT failed\n");
-
-       HIP_IFEL(hip_build_param_contents(msg, (void *)(dst_tcp_port),
-                                         HIP_PARAM_DST_TCP_PORT,
-                                         sizeof(in_port_t)), -1,
-                "build param HIP_PARAM_DST_TCP_PORT failed\n");
-       
-       /* send and receive msg to/from hipd */
-       HIP_IFEL(hip_send_recv_daemon_info(msg, 0, 0), -1, "send_recv msg 
failed\n");
-       _HIP_DEBUG("send_recv msg succeed\n");
-       
-       /* check error value */
-       HIP_IFEL(hip_get_msg_err(msg), -1, "Got erroneous message!\n");
-       
-       ptr = (hip_hit_t *) hip_get_param_contents(msg, HIP_PARAM_HIT_PEER);
-       if (ptr) {
-               memcpy(peer_hit, ptr, sizeof(hip_hit_t));
-               HIP_DEBUG_HIT("peer_hit", peer_hit);
-               *fallback = 0;
-       }
-
-       ptr = hip_get_param(msg, HIP_PARAM_AGENT_REJECT);
-       if (ptr)
-       {
-               HIP_DEBUG("Connection is to be rejected\n");
-               *reject = 1;
-       }
-       
- out_err:
-       
-       if(msg)
-               free(msg);
-       
-       return err;
+    struct hip_common *msg = NULL;
+    hip_hit_t *ptr         = NULL;
+    int err                = 0;
+
+    *fallback = 1;
+    *reject   = 0;
+
+    HIP_IFE(!(msg = hip_msg_alloc()), -1);
+
+    /* build the message header */
+    HIP_IFEL(hip_build_user_hdr(msg, SO_HIP_GET_PEER_HIT, 0), -1,
+             "build hdr failed\n");
+
+    HIP_IFEL(hip_build_param_contents(msg, (void *) (local_hit),
+                                      HIP_PARAM_HIT_PEER,
+                                      sizeof(struct in6_addr)), -1,
+             "build param HIP_PARAM_HIT  failed\n");
+    HIP_IFEL(hip_build_param_contents(msg, (void *) (local_hit),
+                                      HIP_PARAM_HIT_LOCAL,
+                                      sizeof(struct in6_addr)), -1,
+             "build param HIP_PARAM_HIT  failed\n");
+    HIP_IFEL(hip_build_param_contents(msg, (void *) (peer_ip),
+                                      HIP_PARAM_IPV6_ADDR_PEER,
+                                      sizeof(struct in6_addr)), -1,
+             "build param HIP_PARAM_IPV6_ADDR failed\n");
+
+    HIP_IFEL(hip_build_param_contents(msg, (void *) (src_tcp_port),
+                                      HIP_PARAM_SRC_TCP_PORT,
+                                      sizeof(in_port_t)), -1,
+             "build param HIP_PARAM_SRC_TCP_PORT failed\n");
+
+    HIP_IFEL(hip_build_param_contents(msg, (void *) (dst_tcp_port),
+                                      HIP_PARAM_DST_TCP_PORT,
+                                      sizeof(in_port_t)), -1,
+             "build param HIP_PARAM_DST_TCP_PORT failed\n");
+
+    /* send and receive msg to/from hipd */
+    HIP_IFEL(hip_send_recv_daemon_info(msg, 0, 0), -1, "send_recv msg 
failed\n");
+    _HIP_DEBUG("send_recv msg succeed\n");
+
+    /* check error value */
+    HIP_IFEL(hip_get_msg_err(msg), -1, "Got erroneous message!\n");
+
+    ptr = (hip_hit_t *) hip_get_param_contents(msg, HIP_PARAM_HIT_PEER);
+    if (ptr) {
+        memcpy(peer_hit, ptr, sizeof(hip_hit_t));
+        HIP_DEBUG_HIT("peer_hit", peer_hit);
+        *fallback = 0;
+    }
+
+    ptr = hip_get_param(msg, HIP_PARAM_AGENT_REJECT);
+    if (ptr) {
+        HIP_DEBUG("Connection is to be rejected\n");
+        *reject = 1;
+    }
+
+out_err:
+
+    if (msg) {
+        free(msg);
+    }
+
+    return err;
 }
 
 /**
- * Sets the state of the socket in the database to "fall back" (i.e. non-HIP 
based connecvitity)
+ * Sets the state of the socket in the database to "fall back" (i.e.
+ * non-HIP based connecvitity)
  *
  * @param entry opportunistic database entry
  * @param is_peer one when setting state for remote host and zero for local 
host
  */
 void hip_translate_to_original(hip_opp_socket_t *entry, int is_peer)
 {
-       /* translated entries correspond to originals   */
-       _HIP_DEBUG("Translating to original %d\n", entry->orig_socket);
+    /* translated entries correspond to originals   */
+    _HIP_DEBUG("Translating to original %d\n", entry->orig_socket);
 
-       entry->translated_socket = entry->orig_socket;
-       if (is_peer) {
-               memcpy(&entry->translated_peer_id, &entry->orig_peer_id,
-                      sizeof(struct sockaddr_storage));
-               entry->peer_id_is_translated = 1;
-       } else {
-               memcpy(&entry->translated_local_id, &entry->orig_local_id,
-                      sizeof(struct sockaddr_storage));
-               entry->local_id_is_translated = 1;
-       }
+    entry->translated_socket = entry->orig_socket;
+    if (is_peer) {
+        memcpy(&entry->translated_peer_id, &entry->orig_peer_id,
+               sizeof(struct sockaddr_storage));
+        entry->peer_id_is_translated = 1;
+    } else {
+        memcpy(&entry->translated_local_id, &entry->orig_local_id,
+               sizeof(struct sockaddr_storage));
+        entry->local_id_is_translated = 1;
+    }
 }
 
 /**
- * Create a new HIT-based socket. Note that the translated socket is always 
separate
- * from the original because the fall back requires it.
+ * Create a new HIT-based socket. Note that the translated socket is always
+ * separate from the original because the fall back requires it.
  *
  * @param entry the opportunistic database entry
  * @return same return values as with socket() call
  */
-static inline int hip_create_new_hit_socket(hip_opp_socket_t *entry) {
-       return dl_function_ptr.socket_dlsym(AF_INET6,
-                                           entry->type,
-                                           entry->protocol);
+static inline int hip_create_new_hit_socket(hip_opp_socket_t *entry)
+{
+    return dl_function_ptr.socket_dlsym(AF_INET6,
+                                        entry->type,
+                                        entry->protocol);
 }
 
 /**
@@ -444,74 +468,77 @@
  * @param entry the database entry where to store the HIT
  * @param hit the HIT
  * @param peer one if HIT is remote or zero for local HIT
- * @return  
+ * @return
  */
 int hip_set_translation(hip_opp_socket_t *entry,
-                       struct sockaddr_in6 *hit,
-                       int is_peer) {
-       int err = 0;
-       
-       if (!entry->translated_socket) {
-               int new_socket = hip_create_new_hit_socket(entry);
-               HIP_DEBUG("Created new translatable socket %d\n", new_socket);
-               if (new_socket <= 0) {
-                       err = -1;
-                       HIP_ERROR("socket allocation failed\n");
-                       goto out_err;
-               }
-               entry->translated_socket = new_socket;
-               _HIP_DEBUG("Inserted translated socket in: pid=%d 
orig_socket=%d new_socket=%d domain=%d\n",
-                         entry->pid, entry->orig_socket,
-                         entry->translated_socket,
-                         entry->domain);
-       }
-       
-       if (is_peer) {
-               memcpy(&entry->translated_peer_id, hit, hip_sockaddr_len(hit));
-               entry->translated_peer_id_len = hip_sockaddr_len(hit);
-               entry->peer_id_is_translated = 1;
-       } else {
-               memcpy(&entry->translated_local_id, hit, hip_sockaddr_len(hit));
-               entry->translated_local_id_len = hip_sockaddr_len(hit);
-               entry->local_id_is_translated = 1;
-       }
-       
- out_err:
-       return err;
-       
+                        struct sockaddr_in6 *hit,
+                        int is_peer)
+{
+    int err = 0;
+
+    if (!entry->translated_socket) {
+        int new_socket = hip_create_new_hit_socket(entry);
+        HIP_DEBUG("Created new translatable socket %d\n", new_socket);
+        if (new_socket <= 0) {
+            err = -1;
+            HIP_ERROR("socket allocation failed\n");
+            goto out_err;
+        }
+        entry->translated_socket = new_socket;
+        _HIP_DEBUG("Inserted translated socket in: pid=%d orig_socket=%d 
new_socket=%d domain=%d\n",
+                   entry->pid, entry->orig_socket,
+                   entry->translated_socket,
+                   entry->domain);
+    }
+
+    if (is_peer) {
+        memcpy(&entry->translated_peer_id, hit, hip_sockaddr_len(hit));
+        entry->translated_peer_id_len = hip_sockaddr_len(hit);
+        entry->peer_id_is_translated  = 1;
+    } else {
+        memcpy(&entry->translated_local_id, hit, hip_sockaddr_len(hit));
+        entry->translated_local_id_len = hip_sockaddr_len(hit);
+        entry->local_id_is_translated  = 1;
+    }
+
+out_err:
+    return err;
 }
 
 /**
- * Handle automatic binding. Called e.g. when app calls connect() without 
bind() first.
+ * Handle automatic binding. Called e.g. when app calls connect() without 
bind()
+ * first.
  *
  * @param entry corresponding database entry
  * @param hit a local HIT used for binding
  * @return same return values as bind()
  */
-int hip_autobind_port(hip_opp_socket_t *entry, struct sockaddr_in6 *hit) {
-       int err = 0;
-
-       _HIP_DEBUG("autobind called\n");
-
-       /* Client software does not care about the port number; assign a random 
one */
-       do { /* XX FIXME: CHECK UPPER BOUNDARY */
-               hit->sin6_port = htons(rand());
-       } while (ntohs(hit->sin6_port) < 1024);
-
-       _HIP_DEBUG("autobind selected port %d\n", ntohs(hit->sin6_port));
-
-       HIP_IFE(hip_set_translation(entry, hit, 0), -1);
-
-       err = dl_function_ptr.bind_dlsym(entry->translated_socket,
-                                        (struct sockaddr *) 
&entry->translated_local_id,
-                                        
hip_sockaddr_len(&entry->translated_local_id));
-       if (err) {
-               HIP_PERROR("autobind");
-               goto out_err;
-       }
-       
- out_err:
-       return err;
+int hip_autobind_port(hip_opp_socket_t *entry, struct sockaddr_in6 *hit)
+{
+    int err = 0;
+
+    _HIP_DEBUG("autobind called\n");
+
+    /* Client software does not care about the port number;
+     * assign a random one */
+    do {     /* XX FIXME: CHECK UPPER BOUNDARY */
+        hit->sin6_port = htons(rand());
+    } while (ntohs(hit->sin6_port) < 1024);
+
+    _HIP_DEBUG("autobind selected port %d\n", ntohs(hit->sin6_port));
+
+    HIP_IFE(hip_set_translation(entry, hit, 0), -1);
+
+    err = dl_function_ptr.bind_dlsym(entry->translated_socket,
+                             (struct sockaddr *) &entry->translated_local_id,
+                             hip_sockaddr_len(&entry->translated_local_id));
+    if (err) {
+        HIP_PERROR("autobind");
+        goto out_err;
+    }
+
+out_err:
+    return err;
 }
 
 /**
@@ -531,129 +558,132 @@
  * @return zero on success or non-zero on error
  */
 int hip_translate_new(hip_opp_socket_t *entry,
-                     const int orig_socket,
-                     const struct sockaddr *orig_id,
-                     const socklen_t orig_id_len,
-                     int is_peer, int is_dgram,
-                     int is_translated, int wrap_applicable)
+                      const int orig_socket,
+                      const struct sockaddr *orig_id,
+                      const socklen_t orig_id_len,
+                      int is_peer, int is_dgram,
+                      int is_translated, int wrap_applicable)
 {
-       int err = 0;
-       in_port_t src_opptcp_port = 0, dst_opptcp_port = 0;/*the ports needed 
to send the TCP SYN i1*/
-       struct sockaddr_in6 src_hit, dst_hit,
-               *hit = (is_peer ? &dst_hit : &src_hit);
-       struct sockaddr_in6 mapped_addr;
-       struct sockaddr *sa = NULL;
-
-       /* i.e. socket(PF_FILE), connect and read */
-       HIP_IFEL(!orig_id, 0, "No new id to translate, bailing out\n");
-       
-       HIP_DEBUG("Translating to new socket (orig %d)\n", orig_socket);
-       
-       memset(&src_hit, 0, sizeof(src_hit));
-       memset(&dst_hit, 0, sizeof(dst_hit));
-       src_hit.sin6_family = AF_INET6;
-
-       HIP_IFEL(hip_get_local_hit_wrapper(&src_hit.sin6_addr), -1,
-                "Querying of local HIT failed (no hipd running?)\n");
-
-       if (is_peer && !entry->local_id_is_translated) {
-               /* Can happen also with UDP based sockets with
-                  connect() + send() */
-               HIP_IFEL(hip_autobind_port(entry, &src_hit), -1,
-                        "autobind failed\n");
-       } else {
-               _HIP_DEBUG("autobind was not necessary\n");
-       }
-
-       _HIP_DEBUG_IN6ADDR("translate new: src addr", &src_hit.sin6_addr);
-       
-       /* hipd requires IPv4 addresses in IPv6 mapped format */
-       if (orig_id->sa_family == AF_INET) {
-               IPV4_TO_IPV6_MAP(&((struct sockaddr_in *) orig_id)->sin_addr,
-                                &mapped_addr.sin6_addr);
-               _HIP_DEBUG_SOCKADDR("ipv4 addr", orig_id);
-               dst_opptcp_port = ((struct sockaddr_in *)orig_id)->sin_port;
-       } else if (orig_id->sa_family == AF_INET6) {
-               memcpy(&mapped_addr, orig_id, orig_id_len);
-               _HIP_DEBUG_SOCKADDR("ipv6 addr\n", orig_id);
-               dst_opptcp_port = ((struct sockaddr_in6 *)orig_id)->sin6_port;
-       } else {
-               HIP_ASSERT("Not an IPv4/IPv6 socket: wrapping_is_applicable 
failed?\n");
-       }
-       mapped_addr.sin6_family = orig_id->sa_family;
-       mapped_addr.sin6_port = dst_opptcp_port;
-       
-       hit->sin6_port = dst_opptcp_port;
-       
-       _HIP_DEBUG("sin_port=%d\n", ntohs(dst_opptcp_port));
-       _HIP_DEBUG_IN6ADDR("sin6_addr ip = ", ip);
-
-
-       /* Find the local TCP port where the application initiated the 
connection,
-          We need it for sending the TCP SYN_I1 */
-       sa = (struct sockaddr*)&(entry->translated_local_id);
-       if(sa->sa_family == AF_INET)
-               src_opptcp_port = ((struct sockaddr_in *) sa)->sin_port;
-       else /* AF_INET6 */
-               src_opptcp_port = ((struct sockaddr_in6 *) sa)->sin6_port;
-
-       /* Try opportunistic base exchange to retrieve peer's HIT */
-       if (is_peer) {
-               int fallback, reject;
-               /* Request a HIT of the peer from hipd. This will possibly
-                  launch an I1 with NULL HIT that will block until R1 is
-                  received. Called e.g. in connect() or sendto(). If
-                  opportunistic HIP fails, it can return an IP address
-                  instead of a HIT */
-               HIP_DEBUG("requesting hit from hipd\n");
-               HIP_DEBUG_IN6ADDR("ip addr", &mapped_addr.sin6_addr);
-               HIP_IFEL(hip_request_peer_hit_from_hipd(&mapped_addr.sin6_addr,
-                                                       &dst_hit.sin6_addr,
-                                                       &src_hit.sin6_addr,
-                                                       (in_port_t *) 
&src_opptcp_port,
-                                                       (in_port_t *) 
&dst_opptcp_port,
-                                                       &fallback,
-                                                       &reject),
-                        -1, "Request from hipd failed\n");
-               if (reject) {
-                       HIP_DEBUG("Connection should be rejected\n");
-                       err = -1;
-                       goto out_err;
-               }
-
-               if (fallback) {
-                       HIP_DEBUG("Peer does not support HIP, fallback\n");
-                       goto out_err;
-               }
-               dst_hit.sin6_family = AF_INET6;
-       } else {
-               /* Called e.g. in bind() */
-               HIP_DEBUG("Binding to inaddr6_any\n");
-               src_hit.sin6_addr = in6addr_any;
-               src_hit.sin6_family = AF_INET6;
-       }
-       
-       if (err || IN6_IS_ADDR_V4MAPPED(&hit->sin6_addr) ||
-           (!ipv6_addr_any(&hit->sin6_addr) && 
!ipv6_addr_is_hit(&hit->sin6_addr))) {
-               HIP_DEBUG("Localhost/peer does not support HIP, falling back to 
IP\n");
-               goto out_err;
-       }
-
-       HIP_DEBUG("HIT translation was successful\n");
-       
-       /* We have now successfully translated an IP to an HIT. The HIT
-          requires a new socket. Also, we need set the return values
-          correctly */
-       HIP_IFE(hip_set_translation(entry, hit, is_peer), -1);
-
-       _HIP_DEBUG("translation: pid %p, orig socket %p, translated sock %p\n",
-                 entry->pid, entry->orig_socket, entry->translated_socket);
-       
-       return err;
-       
- out_err:
-       hip_translate_to_original(entry, is_peer);
-       return err;
+    int err                   = 0;
+    /*the ports needed to send the TCP SYN i1*/
+    in_port_t src_opptcp_port = 0, dst_opptcp_port = 0;
+    struct sockaddr_in6 src_hit, dst_hit,
+    *hit                      = (is_peer ? &dst_hit : &src_hit);
+    struct sockaddr_in6 mapped_addr;
+    struct sockaddr *sa       = NULL;
+
+    /* i.e. socket(PF_FILE), connect and read */
+    HIP_IFEL(!orig_id, 0, "No new id to translate, bailing out\n");
+
+    HIP_DEBUG("Translating to new socket (orig %d)\n", orig_socket);
+
+    memset(&src_hit, 0, sizeof(src_hit));
+    memset(&dst_hit, 0, sizeof(dst_hit));
+    src_hit.sin6_family = AF_INET6;
+
+    HIP_IFEL(hip_get_local_hit_wrapper(&src_hit.sin6_addr), -1,
+             "Querying of local HIT failed (no hipd running?)\n");
+
+    if (is_peer && !entry->local_id_is_translated) {
+        /* Can happen also with UDP based sockets with
+         * connect() + send() */
+        HIP_IFEL(hip_autobind_port(entry, &src_hit), -1,
+                 "autobind failed\n");
+    } else {
+        _HIP_DEBUG("autobind was not necessary\n");
+    }
+
+    _HIP_DEBUG_IN6ADDR("translate new: src addr", &src_hit.sin6_addr);
+
+    /* hipd requires IPv4 addresses in IPv6 mapped format */
+    if (orig_id->sa_family == AF_INET) {
+        IPV4_TO_IPV6_MAP(&((struct sockaddr_in *) orig_id)->sin_addr,
+                         &mapped_addr.sin6_addr);
+        _HIP_DEBUG_SOCKADDR("ipv4 addr", orig_id);
+        dst_opptcp_port = ((struct sockaddr_in *) orig_id)->sin_port;
+    } else if (orig_id->sa_family == AF_INET6) {
+        memcpy(&mapped_addr, orig_id, orig_id_len);
+        _HIP_DEBUG_SOCKADDR("ipv6 addr\n", orig_id);
+        dst_opptcp_port = ((struct sockaddr_in6 *) orig_id)->sin6_port;
+    } else {
+        HIP_ASSERT("Not an IPv4/IPv6 socket: wrapping_is_applicable 
failed?\n");
+    }
+    mapped_addr.sin6_family = orig_id->sa_family;
+    mapped_addr.sin6_port   = dst_opptcp_port;
+
+    hit->sin6_port          = dst_opptcp_port;
+
+    _HIP_DEBUG("sin_port=%d\n", ntohs(dst_opptcp_port));
+    _HIP_DEBUG_IN6ADDR("sin6_addr ip = ", ip);
+
+
+    /* Find the local TCP port where the application initiated the connection,
+     * We need it for sending the TCP SYN_I1 */
+    sa = (struct sockaddr *) &(entry->translated_local_id);
+    if (sa->sa_family == AF_INET) {
+        src_opptcp_port = ((struct sockaddr_in *) sa)->sin_port;
+    } else { /* AF_INET6 */
+        src_opptcp_port = ((struct sockaddr_in6 *) sa)->sin6_port;
+    }
+
+    /* Try opportunistic base exchange to retrieve peer's HIT */
+    if (is_peer) {
+        int fallback, reject;
+        /* Request a HIT of the peer from hipd. This will possibly
+         * launch an I1 with NULL HIT that will block until R1 is
+         * received. Called e.g. in connect() or sendto(). If
+         * opportunistic HIP fails, it can return an IP address
+         * instead of a HIT */
+        HIP_DEBUG("requesting hit from hipd\n");
+        HIP_DEBUG_IN6ADDR("ip addr", &mapped_addr.sin6_addr);
+        HIP_IFEL(hip_request_peer_hit_from_hipd(&mapped_addr.sin6_addr,
+                                                &dst_hit.sin6_addr,
+                                                &src_hit.sin6_addr,
+                                                (in_port_t *) &src_opptcp_port,
+                                                (in_port_t *) &dst_opptcp_port,
+                                                &fallback,
+                                                &reject),
+                 -1, "Request from hipd failed\n");
+        if (reject) {
+            HIP_DEBUG("Connection should be rejected\n");
+            err = -1;
+            goto out_err;
+        }
+
+        if (fallback) {
+            HIP_DEBUG("Peer does not support HIP, fallback\n");
+            goto out_err;
+        }
+        dst_hit.sin6_family = AF_INET6;
+    } else {
+        /* Called e.g. in bind() */
+        HIP_DEBUG("Binding to inaddr6_any\n");
+        src_hit.sin6_addr   = in6addr_any;
+        src_hit.sin6_family = AF_INET6;
+    }
+
+    if (err || IN6_IS_ADDR_V4MAPPED(&hit->sin6_addr)
+            || (!ipv6_addr_any(&hit->sin6_addr)
+                && !ipv6_addr_is_hit(&hit->sin6_addr))) {
+        HIP_DEBUG("Localhost/peer does not support HIP, falling back to IP\n");
+        goto out_err;
+    }
+
+    HIP_DEBUG("HIT translation was successful\n");
+
+    /* We have now successfully translated an IP to an HIT. The HIT
+     * requires a new socket. Also, we need set the return values
+     * correctly */
+    HIP_IFE(hip_set_translation(entry, hit, is_peer), -1);
+
+    _HIP_DEBUG("translation: pid %p, orig socket %p, translated sock %p\n",
+               entry->pid, entry->orig_socket, entry->translated_socket);
+
+    return err;
+
+out_err:
+    hip_translate_to_original(entry, is_peer);
+    return err;
 }
 
 /**
@@ -667,42 +697,42 @@
  * @param is_dgram one for datagram-oriented socket and zero for connection 
oriented
  * @param is_translated one when the socket has been translated already once 
and zero otherwise
  * @param wrap_applicable one when wrapping seems plausible and zero otherwise
- * @return 
+ * @return
  */
 int hip_old_translation_is_ok(hip_opp_socket_t *entry,
-                         const int orig_socket,
-                         const struct sockaddr *orig_id,
-                         const socklen_t orig_id_len,
-                         int is_peer, int is_dgram,
-                         int is_translated, int wrap_applicable)
+                              const int orig_socket,
+                              const struct sockaddr *orig_id,
+                              const socklen_t orig_id_len,
+                              int is_peer, int is_dgram,
+                              int is_translated, int wrap_applicable)
 {
-       void *translated_id =
-         (is_peer ? &entry->translated_peer_id : &entry->translated_local_id);
-
-       /**
-        * An entry does not require translation when...
-        *
-        * (1) the entry must be already translated once
-        *
-        * and one of the following:
-        *
-        * (2) connection oriented socket call does not require new translation
-        * (3) original id was not given (e.g. recvfrom with NULL src)
-        * (4) optimization: we don't do a new translation unless the app
-        *     layer id has changed. Note: this optimization may have
-        *     limitations when addressing hosts behind a remote NAT network
-        */
-       
-       if (is_translated &&                                /* 1 */
-           (!is_dgram ||                                   /* 2 */
-            !orig_id  ||                                   /* 3 */
-            !memcmp(translated_id, orig_id, orig_id_len))) /* 4 */ {
-               _HIP_DEBUG("Old translation ok %d\n", entry->orig_socket);
-               return 1;
-       } else {
-               _HIP_DEBUG("New translation required\n");
-               return 0;
-       }
+    void *translated_id =
+        (is_peer ? &entry->translated_peer_id : &entry->translated_local_id);
+
+    /**
+     * An entry does not require translation when...
+     *
+     * (1) the entry must be already translated once
+     *
+     * and one of the following:
+     *
+     * (2) connection oriented socket call does not require new translation
+     * (3) original id was not given (e.g. recvfrom with NULL src)
+     * (4) optimization: we don't do a new translation unless the app
+     *     layer id has changed. Note: this optimization may have
+     *     limitations when addressing hosts behind a remote NAT network
+     */
+
+    if (is_translated &&                                    /* 1 */
+        (!is_dgram ||                                       /* 2 */
+         !orig_id  ||                                       /* 3 */
+         !memcmp(translated_id, orig_id, orig_id_len))) {   /* 4 */
+        _HIP_DEBUG("Old translation ok %d\n", entry->orig_socket);
+        return 1;
+    } else {
+        _HIP_DEBUG("New translation required\n");
+        return 0;
+    }
 }
 
 /**
@@ -715,27 +745,28 @@
  */
 hip_opp_socket_t *hip_create_new_opp_entry(int pid, const int fd, pthread_t 
tid)
 {
-       hip_opp_socket_t *entry = NULL;
-       int err = 0;
-
-       _HIP_DEBUG("\n");
-       
-       hip_initialize_db_when_not_exist();
-
-       if (!hip_exists_translation(pid, fd, tid))
-               err = hip_socketdb_add_entry(pid, fd, tid);
-       if(err) {
-               HIP_ERROR("Could not add entry\n");
-               goto out_err;
-       }
-
-       entry = hip_socketdb_find_entry(pid, fd, pthread_self());
-       HIP_ASSERT(entry);
-       
- out_err:
-       _HIP_DEBUG("Called socket_dlsym fd=%d\n", fd);  
-
-       return entry;
+    hip_opp_socket_t *entry = NULL;
+    int err                 = 0;
+
+    _HIP_DEBUG("\n");
+
+    hip_initialize_db_when_not_exist();
+
+    if (!hip_exists_translation(pid, fd, tid)) {
+        err = hip_socketdb_add_entry(pid, fd, tid);
+    }
+    if (err) {
+        HIP_ERROR("Could not add entry\n");
+        goto out_err;
+    }
+
+    entry = hip_socketdb_find_entry(pid, fd, pthread_self());
+    HIP_ASSERT(entry);
+
+out_err:
+    _HIP_DEBUG("Called socket_dlsym fd=%d\n", fd);
+
+    return entry;
 }
 
 /**
@@ -748,42 +779,42 @@
  * @return zero on success, non-zero on error
  */
 int hip_add_orig_socket_to_db(int socket_fd, int domain, int type,
-                             int protocol)
+                              int protocol)
 {
-       hip_opp_socket_t *entry = NULL;
-       int pid = 0, err = 0;
-       pthread_t tid = pthread_self();
-
-       _HIP_DEBUG("socket fd %d\n", socket_fd);
-       
-       if(socket_fd == -1) {
-               HIP_ERROR("Socket error\n");
-               goto out_err;
-       }
-
-       pid = getpid();
-
-       //HIP_ASSERT(!hip_socketdb_find_entry(pid, socket_fd));
-
-       /* Workaround: see bug id 271. For some unknown reason, the library
-          is not catching all close() calls from libinet6. */
-       if ((entry = hip_socketdb_find_entry(pid, socket_fd, tid)) != NULL) {
-               hip_socketdb_del_entry_by_entry(entry);
-       }
-
-       entry = hip_create_new_opp_entry(pid, socket_fd, tid);
-       HIP_ASSERT(entry);
-       entry->domain = domain;
-       entry->type = type;
-       if (protocol == -1) {
-               entry->protocol = protocol;
-               entry->force_orig = 1;
-       } else {
-               entry->protocol = protocol;
-       }
-
- out_err:
-       return err;
+    hip_opp_socket_t *entry = NULL;
+    int pid                 = 0, err = 0;
+    pthread_t tid           = pthread_self();
+
+    _HIP_DEBUG("socket fd %d\n", socket_fd);
+
+    if (socket_fd == -1) {
+        HIP_ERROR("Socket error\n");
+        goto out_err;
+    }
+
+    pid = getpid();
+
+    //HIP_ASSERT(!hip_socketdb_find_entry(pid, socket_fd));
+
+    /* Workaround: see bug id 271. For some unknown reason, the library
+     * is not catching all close() calls from libinet6. */
+    if ((entry = hip_socketdb_find_entry(pid, socket_fd, tid)) != NULL) {
+        hip_socketdb_del_entry_by_entry(entry);
+    }
+
+    entry         = hip_create_new_opp_entry(pid, socket_fd, tid);
+    HIP_ASSERT(entry);
+    entry->domain = domain;
+    entry->type   = type;
+    if (protocol == -1) {
+        entry->protocol   = protocol;
+        entry->force_orig = 1;
+    } else {
+        entry->protocol = protocol;
+    }
+
+out_err:
+    return err;
 }
 
 /**
@@ -804,101 +835,106 @@
  * @return zero on success, non-zero on error
  */
 int hip_translate_socket(const int *orig_socket, const struct sockaddr 
*orig_id,
-                        const socklen_t *orig_id_len, int **translated_socket,
-                        struct sockaddr **translated_id,
-                        socklen_t **translated_id_len, int is_peer,
-                        int is_dgram, int force_orig)
+                         const socklen_t *orig_id_len, int **translated_socket,
+                         struct sockaddr **translated_id,
+                         socklen_t **translated_id_len, int is_peer,
+                         int is_dgram, int force_orig)
 {
-       int err = 0, pid = 0, is_translated = 0, wrap_applicable = 0;
-       hip_opp_socket_t *entry = NULL;
-       pthread_t tid;
-
-       pid = getpid();
-       tid = pthread_self();
-
-       hip_initialize_db_when_not_exist();
-
-       HIP_ASSERT(orig_socket);
-       entry = hip_socketdb_find_entry(pid, *orig_socket, tid);
-
-       if (!entry) {
-               _HIP_DEBUG("entry was not foundin db\n");
-               /* Can happen in the case of read() or write() on a fd;
-                  we are not wrapping open() or creat() calls which means
-                  that we don't have an entry for them. */
-               entry = hip_create_new_opp_entry(pid, *orig_socket, tid);
-               /* PF_LOCAL guarantees that the socket won't be translated */
-               entry->domain = PF_LOCAL;
-               _HIP_DEBUG("created untranslated entry\n");
-       }
-       HIP_ASSERT(entry);
-
-       entry->force_orig = entry->force_orig | force_orig;
-       
-       is_translated =
-               (is_peer ? entry->peer_id_is_translated :
-                entry->local_id_is_translated);
-       wrap_applicable = hip_wrapping_is_applicable(orig_id, entry);
-
-       _HIP_DEBUG("orig_id=%p is_dgram=%d wrap_applicable=%d already=%d 
is_peer=%d force=%d\n",
-                 orig_id, is_dgram, wrap_applicable, is_translated, is_peer,
-                 force_orig);
-
-       if (orig_id) {
-               if (orig_id->sa_family == AF_INET)
-                       _HIP_DEBUG_SOCKADDR("orig_id", orig_id);
-               else if (orig_id->sa_family == AF_INET6)
-                       _HIP_DEBUG_SOCKADDR("orig_id", orig_id);
-               else
-                       _HIP_DEBUG("orig_id family %d\n", orig_id->sa_family);
-       }
-       
-       if (!is_translated && orig_id)
-               hip_store_orig_socket_info(entry, is_peer, *orig_socket,
-                                          orig_id, *orig_id_len);
-
-       if (!wrap_applicable)
-               hip_translate_to_original(entry, is_peer);
-       else if (hip_old_translation_is_ok(entry, *orig_socket, orig_id,
-                                          *orig_id_len, is_peer, is_dgram,
-                                          is_translated, wrap_applicable))
-               _HIP_DEBUG("Keeping the existing translation\n");
-       else
-               err = hip_translate_new(entry, *orig_socket, orig_id,
-                                       *orig_id_len, is_peer, is_dgram,
-                                       is_translated, wrap_applicable);
-
-       if (err) {
-               HIP_ERROR("Error occurred during translation\n");
-       }
-
-       if (entry->orig_socket == entry->translated_socket) {
-               _HIP_DEBUG("No translation occured, returning original socket 
and id\n");
-               *translated_socket = (int *) orig_socket;
-               *translated_id = (struct sockaddr *) orig_id;
-               *translated_id_len = (socklen_t *) orig_id_len;
-       } else {
-               HIP_DEBUG("Returning translated socket and id\n");
-               *translated_socket = &entry->translated_socket;
-               *translated_id = (struct sockaddr *)
-                       (is_peer ? &entry->translated_peer_id :
-                        &entry->translated_local_id);
-               *translated_id_len =
-                       (is_peer ? &entry->translated_peer_id_len :
-                        &entry->translated_local_id_len);
-       }
-
-       _HIP_DEBUG("translation: pid %p, orig socket %p, translated sock %p\n",
-                 pid, orig_socket, *translated_socket);
-       _HIP_DEBUG_HIT("orig_local_id", 
hip_cast_sa_addr(&entry->orig_local_id));
-       _HIP_DEBUG_HIT("orig_dst_id", hip_cast_sa_addr(&entry->orig_peer_id));
-       _HIP_DEBUG_HIT("trans_local_id", 
hip_cast_sa_addr(&entry->translated_local_id));
-       _HIP_DEBUG_HIT("trans_dst_id", 
hip_cast_sa_addr(&entry->translated_peer_id));
-       _HIP_DEBUG("orig_id %p, translated_id %p\n", orig_id, *translated_id);
-       _HIP_DEBUG("orig fd %d, translated fd %d\n", entry->orig_socket,
-                 entry->translated_socket);
-
-       return err;
+    int err                 = 0, pid = 0, is_translated = 0, wrap_applicable = 
0;
+    hip_opp_socket_t *entry = NULL;
+    pthread_t tid;
+
+    pid = getpid();
+    tid = pthread_self();
+
+    hip_initialize_db_when_not_exist();
+
+    HIP_ASSERT(orig_socket);
+    entry = hip_socketdb_find_entry(pid, *orig_socket, tid);
+
+    if (!entry) {
+        _HIP_DEBUG("entry was not foundin db\n");
+        /* Can happen in the case of read() or write() on a fd;
+         * we are not wrapping open() or creat() calls which means
+         * that we don't have an entry for them. */
+        entry         = hip_create_new_opp_entry(pid, *orig_socket, tid);
+        /* PF_LOCAL guarantees that the socket won't be translated */
+        entry->domain = PF_LOCAL;
+        _HIP_DEBUG("created untranslated entry\n");
+    }
+    HIP_ASSERT(entry);
+
+    entry->force_orig = entry->force_orig | force_orig;
+
+    is_translated     =
+        (is_peer ? entry->peer_id_is_translated :
+         entry->local_id_is_translated);
+    wrap_applicable   = hip_wrapping_is_applicable(orig_id, entry);
+
+    _HIP_DEBUG("orig_id=%p is_dgram=%d wrap_applicable=%d already=%d 
is_peer=%d force=%d\n",
+               orig_id, is_dgram, wrap_applicable, is_translated, is_peer,
+               force_orig);
+
+    if (orig_id) {
+        if (orig_id->sa_family == AF_INET) {
+            _HIP_DEBUG_SOCKADDR("orig_id", orig_id);
+        } else if (orig_id->sa_family == AF_INET6) {
+            _HIP_DEBUG_SOCKADDR("orig_id", orig_id);
+        } else {
+            _HIP_DEBUG("orig_id family %d\n", orig_id->sa_family);
+        }
+    }
+
+    if (!is_translated && orig_id) {
+        hip_store_orig_socket_info(entry, is_peer, *orig_socket,
+                                   orig_id, *orig_id_len);
+    }
+
+    if (!wrap_applicable) {
+        hip_translate_to_original(entry, is_peer);
+    } else if (hip_old_translation_is_ok(entry, *orig_socket, orig_id,
+                                         *orig_id_len, is_peer, is_dgram,
+                                         is_translated, wrap_applicable)) {
+        _HIP_DEBUG("Keeping the existing translation\n");
+    } else {
+        err = hip_translate_new(entry, *orig_socket, orig_id,
+                                *orig_id_len, is_peer, is_dgram,
+                                is_translated, wrap_applicable);
+    }
+
+    if (err) {
+        HIP_ERROR("Error occurred during translation\n");
+    }
+
+    if (entry->orig_socket == entry->translated_socket) {
+        _HIP_DEBUG("No translation occured, returning original socket and 
id\n");
+        *translated_socket = (int *) orig_socket;
+        *translated_id     = (struct sockaddr *) orig_id;
+        *translated_id_len = (socklen_t *) orig_id_len;
+    } else {
+        HIP_DEBUG("Returning translated socket and id\n");
+        *translated_socket = &entry->translated_socket;
+        *translated_id     = (struct sockaddr *)
+                             (is_peer ? &entry->translated_peer_id :
+                          &entry->translated_local_id);
+        *translated_id_len =
+            (is_peer ? &entry->translated_peer_id_len :
+             &entry->translated_local_id_len);
+    }
+
+    _HIP_DEBUG("translation: pid %p, orig socket %p, translated sock %p\n",
+               pid, orig_socket, *translated_socket);
+    _HIP_DEBUG_HIT("orig_local_id", hip_cast_sa_addr(&entry->orig_local_id));
+    _HIP_DEBUG_HIT("orig_dst_id", hip_cast_sa_addr(&entry->orig_peer_id));
+    _HIP_DEBUG_HIT("trans_local_id",
+                   hip_cast_sa_addr(&entry->translated_local_id));
+    _HIP_DEBUG_HIT("trans_dst_id",
+                   hip_cast_sa_addr(&entry->translated_peer_id));
+    _HIP_DEBUG("orig_id %p, translated_id %p\n", orig_id, *translated_id);
+    _HIP_DEBUG("orig fd %d, translated fd %d\n", entry->orig_socket,
+               entry->translated_socket);
+
+    return err;
 }
 
 /**
@@ -911,25 +947,27 @@
  */
 int socket(int domain, int type, int protocol)
 {
-       int socket_fd = -1, err = 0;
-
-       hip_initialize_db_when_not_exist();
-       
-       _HIP_DEBUG("creating socket domain=%d type=%d protocol=%d\n",
-                 domain, type, protocol);
-
-       socket_fd = dl_function_ptr.socket_dlsym(domain, type, ((protocol == 
-1) ? 0 : protocol));
-
-       if (socket_fd > 0)
-               err = hip_add_orig_socket_to_db(socket_fd, domain, type, 
protocol);
-       if (err) {
-               HIP_ERROR("Failed to add orig socket to db\n");
-               goto out_err;
-       }
-
-  out_err:
-       _HIP_DEBUG("Called socket_dlsym socket_fd=%d\n", socket_fd);  
-        return socket_fd;
+    int socket_fd = -1, err = 0;
+
+    hip_initialize_db_when_not_exist();
+
+    _HIP_DEBUG("creating socket domain=%d type=%d protocol=%d\n",
+               domain, type, protocol);
+
+    socket_fd = dl_function_ptr.socket_dlsym(domain, type,
+                                             ((protocol == -1) ? 0 : 
protocol));
+
+    if (socket_fd > 0) {
+        err = hip_add_orig_socket_to_db(socket_fd, domain, type, protocol);
+    }
+    if (err) {
+        HIP_ERROR("Failed to add orig socket to db\n");
+        goto out_err;
+    }
+
+out_err:
+    _HIP_DEBUG("Called socket_dlsym socket_fd=%d\n", socket_fd);
+    return socket_fd;
 }
 
 /**
@@ -940,53 +978,55 @@
  */
 int close(int orig_fd)
 {
-       int err = 0, pid = 0;
-       hip_opp_socket_t *entry = NULL;
-       pthread_t tid = pthread_self();
-
-       /* The database and the function pointers may not be initialized
-          because e.g. open call is not wrapped. We need only the
-          dl_function_ptr.close_dlsym to be initialized here, but let's
-          initialize everything anyway. This way, there is no need to
-          check hip_db_exist value everywhere. */
-       hip_initialize_db_when_not_exist();
-       
-       _HIP_DEBUG("close() orig fd %d\n", orig_fd);
-
-       //if (hip_db_exist) hip_socketdb_dump();
-
-       /* close original socket */
-       err = dl_function_ptr.close_dlsym(orig_fd);
-
-       pid = getpid();
-
-       entry = hip_socketdb_find_entry(pid, orig_fd, tid);
-       if (!entry)
-               goto out_err;
-
-       //HIP_ASSERT(entry);
-
-       /* close new_socket */
-       if(entry->translated_socket &&
-          entry->orig_socket != entry->translated_socket) {
-               err = dl_function_ptr.close_dlsym(entry->translated_socket);
-               hip_socketdb_del_entry_by_entry(entry);
-               _HIP_DEBUG("old_socket %d new_socket %d  deleted!\n", 
-                         entry->orig_socket,
-                         entry->translated_socket);      
-       }else{
-               hip_socketdb_del_entry_by_entry(entry);
-               _HIP_DEBUG("old_socket %d new_socket %d  DELETED2!\n",
-                         entry->orig_socket,
-                         entry->translated_socket);      
-         }
-       if (err)
-               HIP_ERROR("Err %d close trans socket\n", err);
-       //hip_socketdb_dump();
- out_err:
-       _HIP_DEBUG("close_dlsym called with err %d\n", err);
-       
-  return err;
+    int err                 = 0, pid = 0;
+    hip_opp_socket_t *entry = NULL;
+    pthread_t tid           = pthread_self();
+
+    /* The database and the function pointers may not be initialized
+     * because e.g. open call is not wrapped. We need only the
+     * dl_function_ptr.close_dlsym to be initialized here, but let's
+     * initialize everything anyway. This way, there is no need to
+     * check hip_db_exist value everywhere. */
+    hip_initialize_db_when_not_exist();
+
+    _HIP_DEBUG("close() orig fd %d\n", orig_fd);
+
+    //if (hip_db_exist) hip_socketdb_dump();
+
+    /* close original socket */
+    err   = dl_function_ptr.close_dlsym(orig_fd);
+
+    pid   = getpid();
+
+    entry = hip_socketdb_find_entry(pid, orig_fd, tid);
+    if (!entry) {
+        goto out_err;
+    }
+
+    //HIP_ASSERT(entry);
+
+    /* close new_socket */
+    if (entry->translated_socket &&
+        entry->orig_socket != entry->translated_socket) {
+        err = dl_function_ptr.close_dlsym(entry->translated_socket);
+        hip_socketdb_del_entry_by_entry(entry);
+        _HIP_DEBUG("old_socket %d new_socket %d  deleted!\n",
+                   entry->orig_socket,
+                   entry->translated_socket);
+    } else {
+        hip_socketdb_del_entry_by_entry(entry);
+        _HIP_DEBUG("old_socket %d new_socket %d  DELETED2!\n",
+                   entry->orig_socket,
+                   entry->translated_socket);
+    }
+    if (err) {
+        HIP_ERROR("Err %d close trans socket\n", err);
+    }
+    //hip_socketdb_dump();
+out_err:
+    _HIP_DEBUG("close_dlsym called with err %d\n", err);
+
+    return err;
 }
 
 /**
@@ -998,33 +1038,33 @@
  *
  */
 int bind(int orig_socket, const struct sockaddr *orig_id,
-        socklen_t orig_id_len)
+         socklen_t orig_id_len)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len;
-       struct sockaddr *translated_id;
-
-       _HIP_DEBUG("bind: orig sock = %d\n", orig_socket);
-
-       /* the address will be translated to in6addr_any */
-
-       err = hip_translate_socket(&orig_socket, orig_id, &orig_id_len,
-                                  &translated_socket, &translated_id,
-                                  &translated_id_len, 0, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-       
-       err = dl_function_ptr.bind_dlsym(*translated_socket, translated_id,
-                                        *translated_id_len);
-       if (err) {
-               HIP_PERROR("bind error:");
-       }
-       
- out_err:
-       return err;
+    int err = 0, *translated_socket;
+    socklen_t *translated_id_len;
+    struct sockaddr *translated_id;
+
+    _HIP_DEBUG("bind: orig sock = %d\n", orig_socket);
+
+    /* the address will be translated to in6addr_any */
+
+    err = hip_translate_socket(&orig_socket, orig_id, &orig_id_len,
+                               &translated_socket, &translated_id,
+                               &translated_id_len, 0, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    err = dl_function_ptr.bind_dlsym(*translated_socket, translated_id,
+                                     *translated_id_len);
+    if (err) {
+        HIP_PERROR("bind error:");
+    }
+
+out_err:
+    return err;
 }
 
 /**
@@ -1036,29 +1076,29 @@
  */
 int listen(int orig_socket, int backlog)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len;
-       struct sockaddr *translated_id;
-       unsigned int zero = 0;
-
-       _HIP_DEBUG("listen: orig sock = %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket, NULL, &zero,
-                                  &translated_socket, &translated_id,
-                                  &translated_id_len, 0, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-       
-       err = dl_function_ptr.listen_dlsym(*translated_socket, backlog);
-       if (err) {
-               HIP_PERROR("connect error:");
-       }
-       
- out_err:
-       return err;
+    int err           = 0, *translated_socket;
+    socklen_t *translated_id_len;
+    struct sockaddr *translated_id;
+    unsigned int zero = 0;
+
+    _HIP_DEBUG("listen: orig sock = %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket, NULL, &zero,
+                               &translated_socket, &translated_id,
+                               &translated_id_len, 0, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    err = dl_function_ptr.listen_dlsym(*translated_socket, backlog);
+    if (err) {
+        HIP_PERROR("connect error:");
+    }
+
+out_err:
+    return err;
 }
 
 /**
@@ -1071,74 +1111,74 @@
  */
 int accept(int orig_socket, struct sockaddr *orig_id, socklen_t *orig_id_len)
 {
-       int err = 0, *translated_socket, new_sock;
-       socklen_t *translated_id_len;
-       struct sockaddr *translated_id;
-       hip_opp_socket_t *entry = NULL;
-       struct sockaddr_storage peer_id;
-       socklen_t peer_id_len = 0;
-       pthread_t tid = pthread_self();
-
-       _HIP_DEBUG("accept: orig_socket %d orig_id %p\n",
-                 orig_socket, orig_id);
-
-       entry = hip_socketdb_find_entry(getpid(), orig_socket, tid);
-       if (!entry) {
-               HIP_DEBUG("Did not find entry, should not happen? 
Fallbacking..\n");
-               new_sock = dl_function_ptr.accept_dlsym(orig_socket,
-                                                       (struct sockaddr *) 
&peer_id,
-                                                       &peer_id_len);
-               goto out_err;
-       }
-
-       HIP_ASSERT(entry);
-
-       /* The bind() was done on in6_addr any. It supports also ipv4 mapped
-          addresses and we can therefore safely just accept() that. */
-
-       new_sock = dl_function_ptr.accept_dlsym(entry->translated_socket,
-                                               (struct sockaddr *) &peer_id,
-                                               &peer_id_len);
-       if (new_sock < 0) {
-               HIP_PERROR("accept error:");
-               goto out_err;
-       }
-
-       err = hip_add_orig_socket_to_db(new_sock,
-                                       entry->domain,
-                                       entry->type,
-                                       entry->protocol);
-       if (err) {
-               HIP_ERROR("Failed to add orig socket to db\n");
-               goto out_err;
-       }
-       
-       err = hip_translate_socket(&new_sock,
-                                  (struct sockaddr *) 
&entry->translated_local_id,
-                                  &entry->translated_local_id_len,
-                                  &translated_socket,
-                                  &translated_id,
-                                  &translated_id_len, 0, 0, 1);
-       if (err) {
-               HIP_ERROR("Local id translation failure\n");
-               goto out_err;
-       }
-
-       err = hip_translate_socket(&new_sock, (struct sockaddr *) &peer_id,
-                                  &peer_id_len,
-                                  &translated_socket, &translated_id,
-                                  &translated_id_len, 1, 0, 1);
-       if (err) {
-               HIP_ERROR("Peer id translation failure\n");
-               goto out_err;
-       }
-
- out_err:
-
-       memcpy(orig_id, &peer_id, peer_id_len);
-       memcpy(orig_id_len, &peer_id_len, sizeof(socklen_t));
-
-       return new_sock;
+    int err                 = 0, *translated_socket, new_sock;
+    socklen_t *translated_id_len;
+    struct sockaddr *translated_id;
+    hip_opp_socket_t *entry = NULL;
+    struct sockaddr_storage peer_id;
+    socklen_t peer_id_len   = 0;
+    pthread_t tid           = pthread_self();
+
+    _HIP_DEBUG("accept: orig_socket %d orig_id %p\n",
+               orig_socket, orig_id);
+
+    entry = hip_socketdb_find_entry(getpid(), orig_socket, tid);
+    if (!entry) {
+        HIP_DEBUG("Did not find entry, should not happen? Fallbacking..\n");
+        new_sock = dl_function_ptr.accept_dlsym(orig_socket,
+                                                (struct sockaddr *) &peer_id,
+                                                &peer_id_len);
+        goto out_err;
+    }
+
+    HIP_ASSERT(entry);
+
+    /* The bind() was done on in6_addr any. It supports also ipv4 mapped
+     * addresses and we can therefore safely just accept() that. */
+
+    new_sock = dl_function_ptr.accept_dlsym(entry->translated_socket,
+                                            (struct sockaddr *) &peer_id,
+                                            &peer_id_len);
+    if (new_sock < 0) {
+        HIP_PERROR("accept error:");
+        goto out_err;
+    }
+
+    err = hip_add_orig_socket_to_db(new_sock,
+                                    entry->domain,
+                                    entry->type,
+                                    entry->protocol);
+    if (err) {
+        HIP_ERROR("Failed to add orig socket to db\n");
+        goto out_err;
+    }
+
+    err = hip_translate_socket(&new_sock,
+                               (struct sockaddr *) &entry->translated_local_id,
+                               &entry->translated_local_id_len,
+                               &translated_socket,
+                               &translated_id,
+                               &translated_id_len, 0, 0, 1);
+    if (err) {
+        HIP_ERROR("Local id translation failure\n");
+        goto out_err;
+    }
+
+    err = hip_translate_socket(&new_sock, (struct sockaddr *) &peer_id,
+                               &peer_id_len,
+                               &translated_socket, &translated_id,
+                               &translated_id_len, 1, 0, 1);
+    if (err) {
+        HIP_ERROR("Peer id translation failure\n");
+        goto out_err;
+    }
+
+out_err:
+
+    memcpy(orig_id, &peer_id, peer_id_len);
+    memcpy(orig_id_len, &peer_id_len, sizeof(socklen_t));
+
+    return new_sock;
 }
 
 /**
@@ -1150,32 +1190,32 @@
  *
  */
 int connect(int orig_socket, const struct sockaddr *orig_id,
-           socklen_t orig_id_len)
+            socklen_t orig_id_len)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len;
-       struct sockaddr *translated_id;
-       
-       _HIP_DEBUG("connect: orig_socket=%d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket, orig_id, &orig_id_len,
-                                  &translated_socket, &translated_id,
-                                  &translated_id_len, 1, 0, 0);
-
-       _HIP_DEBUG("connect: translated_socket=%d\n", translated_socket);
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-       
-       err = dl_function_ptr.connect_dlsym(*translated_socket, translated_id,
-                                           *translated_id_len);
-       if (err) {
-               HIP_PERROR("connect error\n");
-       }
-
- out_err:
-       return err;
+    int err = 0, *translated_socket;
+    socklen_t *translated_id_len;
+    struct sockaddr *translated_id;
+
+    _HIP_DEBUG("connect: orig_socket=%d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket, orig_id, &orig_id_len,
+                               &translated_socket, &translated_id,
+                               &translated_id_len, 1, 0, 0);
+
+    _HIP_DEBUG("connect: translated_socket=%d\n", translated_socket);
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    err = dl_function_ptr.connect_dlsym(*translated_socket, translated_id,
+                                        *translated_id_len);
+    if (err) {
+        HIP_PERROR("connect error\n");
+    }
+
+out_err:
+    return err;
 }
 
 /**
@@ -1187,32 +1227,32 @@
  * return as in man 2 send
  *
  */
-ssize_t send(int orig_socket, const void * b, size_t c, int flags)
+ssize_t send(int orig_socket, const void *b, size_t c, int flags)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len, zero = 0;
-       struct sockaddr *translated_id;
-       ssize_t chars = -1;
-
-       _HIP_DEBUG("send: %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket, NULL, &zero,
-                                  &translated_socket, &translated_id,
-                                  &translated_id_len, 1, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-       
-       chars = dl_function_ptr.send_dlsym(*translated_socket, b, c, flags);
-       
-       _HIP_DEBUG("Called send_dlsym with number of returned char=%d, 
err=%d\n",
-                 chars, err);
-       
- out_err:
-       
-       return chars;
+    int err       = 0, *translated_socket;
+    socklen_t *translated_id_len, zero = 0;
+    struct sockaddr *translated_id;
+    ssize_t chars = -1;
+
+    _HIP_DEBUG("send: %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket, NULL, &zero,
+                               &translated_socket, &translated_id,
+                               &translated_id_len, 1, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    chars = dl_function_ptr.send_dlsym(*translated_socket, b, c, flags);
+
+    _HIP_DEBUG("Called send_dlsym with number of returned char=%d, err=%d\n",
+               chars, err);
+
+out_err:
+
+    return chars;
 }
 
 /**
@@ -1223,38 +1263,38 @@
  * return as in man 2 write
  *
  */
-ssize_t write(int orig_socket, const void * b, size_t c)
+ssize_t write(int orig_socket, const void *b, size_t c)
 {
-       int err = 0, *translated_socket;
-       ssize_t chars = -1;
-       socklen_t *translated_id_len, zero = 0;
-       struct sockaddr *translated_id;
-       
-       /* This functions is almost identical with send() */
-
-       _HIP_DEBUG("write: orig_socket %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket,
-                                  NULL,
-                                  &zero,
-                                  &translated_socket,
-                                  &translated_id,
-                                  &translated_id_len,
-                                  1, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-
-       chars = dl_function_ptr.write_dlsym(*translated_socket, b, c);
-       
-       _HIP_DEBUG("Called write_dlsym with number of returned char=%d\n",
-                  chars);
-       
- out_err:
-       
-       return chars;
+    int err       = 0, *translated_socket;
+    ssize_t chars = -1;
+    socklen_t *translated_id_len, zero = 0;
+    struct sockaddr *translated_id;
+
+    /* This functions is almost identical with send() */
+
+    _HIP_DEBUG("write: orig_socket %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket,
+                               NULL,
+                               &zero,
+                               &translated_socket,
+                               &translated_id,
+                               &translated_id_len,
+                               1, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    chars = dl_function_ptr.write_dlsym(*translated_socket, b, c);
+
+    _HIP_DEBUG("Called write_dlsym with number of returned char=%d\n",
+               chars);
+
+out_err:
+
+    return chars;
 }
 
 /**
@@ -1267,36 +1307,36 @@
  */
 ssize_t writev(int orig_socket, const struct iovec *vector, int count)
 {
-       int err = 0, *translated_socket;
-       ssize_t chars = -1;
-       socklen_t *translated_id_len, zero = 0;
-       struct sockaddr *translated_id;
-       
-       /* This functions is almost identical with send() */
-
-       _HIP_DEBUG("writev: orig_socket %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket,
-                                  NULL,
-                                  &zero,
-                                  &translated_socket,
-                                  &translated_id,
-                                  &translated_id_len,
-                                  1, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-
-       chars = dl_function_ptr.writev_dlsym(*translated_socket, vector, count);
-       
-       _HIP_DEBUG("Called writev_dlsym with number of returned char=%d\n",
-                 chars);
-       
- out_err:
-       
-       return chars;
+    int err       = 0, *translated_socket;
+    ssize_t chars = -1;
+    socklen_t *translated_id_len, zero = 0;
+    struct sockaddr *translated_id;
+
+    /* This functions is almost identical with send() */
+
+    _HIP_DEBUG("writev: orig_socket %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket,
+                               NULL,
+                               &zero,
+                               &translated_socket,
+                               &translated_id,
+                               &translated_id_len,
+                               1, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    chars = dl_function_ptr.writev_dlsym(*translated_socket, vector, count);
+
+    _HIP_DEBUG("Called writev_dlsym with number of returned char=%d\n",
+               chars);
+
+out_err:
+
+    return chars;
 }
 
 /**
@@ -1310,37 +1350,37 @@
  * return as in man 2 sendto
  *
  */
-ssize_t sendto(int orig_socket, const void *buf, size_t buf_len, int flags, 
-              const struct sockaddr  *orig_id, socklen_t orig_id_len)
+ssize_t sendto(int orig_socket, const void *buf, size_t buf_len, int flags,
+               const struct sockaddr  *orig_id, socklen_t orig_id_len)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len;
-       struct sockaddr *translated_id;
-       ssize_t chars = -1;
-       
-       _HIP_DEBUG("sendto: orig sock = %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket,
-                                  orig_id,
-                                  &orig_id_len,
-                                  &translated_socket,
-                                  &translated_id,
-                                  &translated_id_len,
-                                  1, 1, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-       
-       chars = dl_function_ptr.sendto_dlsym(*translated_socket, buf, buf_len,
-                                          flags,
-                                          translated_id,
-                                          *translated_id_len);
-
- out_err:
-
-  return chars;
+    int err       = 0, *translated_socket;
+    socklen_t *translated_id_len;
+    struct sockaddr *translated_id;
+    ssize_t chars = -1;
+
+    _HIP_DEBUG("sendto: orig sock = %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket,
+                               orig_id,
+                               &orig_id_len,
+                               &translated_socket,
+                               &translated_id,
+                               &translated_id_len,
+                               1, 1, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    chars = dl_function_ptr.sendto_dlsym(*translated_socket, buf, buf_len,
+                                         flags,
+                                         translated_id,
+                                         *translated_id_len);
+
+out_err:
+
+    return chars;
 }
 
 /**
@@ -1353,13 +1393,14 @@
  */
 ssize_t sendmsg(int a, const struct msghdr *msg, int flags)
 {
-       int charnum;
-       /** @todo See hip_get_pktinfo_addr(). */
-       charnum = dl_function_ptr.sendmsg_dlsym(a, msg, flags);
-       
-       _HIP_DEBUG("Called sendmsg_dlsym with number of returned chars=%d\n", 
charnum);
-       
-       return charnum;
+    int charnum;
+    /** @todo See hip_get_pktinfo_addr(). */
+    charnum = dl_function_ptr.sendmsg_dlsym(a, msg, flags);
+
+    _HIP_DEBUG("Called sendmsg_dlsym with number of returned chars=%d\n",
+               charnum);
+
+    return charnum;
 }
 
 /**
@@ -1373,34 +1414,34 @@
  */
 ssize_t recv(int orig_socket, void *b, size_t c, int flags)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len, zero = 0;
-       struct sockaddr *translated_id;
-       ssize_t chars = -1;
-       
-       _HIP_DEBUG("recv: orig sock = %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket,
-                                  NULL,
-                                  &zero,
-                                  &translated_socket,
-                                  &translated_id,
-                                  &translated_id_len,
-                                  0, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-
-       chars = dl_function_ptr.recv_dlsym(*translated_socket, b, c, flags);
-
-       _HIP_DEBUG("Called recv_dlsym with number of returned char=%d, 
err=%d\n",
-                  chars, err);
-       
- out_err:
-       
-       return chars;
+    int err       = 0, *translated_socket;
+    socklen_t *translated_id_len, zero = 0;
+    struct sockaddr *translated_id;
+    ssize_t chars = -1;
+
+    _HIP_DEBUG("recv: orig sock = %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket,
+                               NULL,
+                               &zero,
+                               &translated_socket,
+                               &translated_id,
+                               &translated_id_len,
+                               0, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    chars = dl_function_ptr.recv_dlsym(*translated_socket, b, c, flags);
+
+    _HIP_DEBUG("Called recv_dlsym with number of returned char=%d, err=%d\n",
+               chars, err);
+
+out_err:
+
+    return chars;
 }
 
 /**
@@ -1413,38 +1454,39 @@
  */
 ssize_t read(int orig_socket, void *b, size_t c)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len, zero = 0;
-       struct sockaddr *translated_id;
-       ssize_t chars = -1;
-       
-       /* This functions is almost identical with recv() */
-
-       _HIP_DEBUG("read: orig_socket %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket,
-                                  NULL,
-                                  &zero,
-                                  &translated_socket,
-                                  &translated_id,
-                                  &translated_id_len,
-                                  0, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-       
-       if(translated_socket){
-         HIP_DEBUG("read: translated_socket %d\n", *translated_socket);
-         chars = dl_function_ptr.read_dlsym(*translated_socket, b, c);
-       }else
-         HIP_DEBUG("read: no translated_socket found!\n");
-
-       _HIP_DEBUG("Called read_dlsym with number of returned char=%d\n", 
chars);
-       
- out_err:
-       return chars;
+    int err       = 0, *translated_socket;
+    socklen_t *translated_id_len, zero = 0;
+    struct sockaddr *translated_id;
+    ssize_t chars = -1;
+
+    /* This functions is almost identical with recv() */
+
+    _HIP_DEBUG("read: orig_socket %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket,
+                               NULL,
+                               &zero,
+                               &translated_socket,
+                               &translated_id,
+                               &translated_id_len,
+                               0, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    if (translated_socket) {
+        HIP_DEBUG("read: translated_socket %d\n", *translated_socket);
+        chars = dl_function_ptr.read_dlsym(*translated_socket, b, c);
+    } else {
+        HIP_DEBUG("read: no translated_socket found!\n");
+    }
+
+    _HIP_DEBUG("Called read_dlsym with number of returned char=%d\n", chars);
+
+out_err:
+    return chars;
 }
 
 /**
@@ -1457,36 +1499,36 @@
  */
 ssize_t readv(int orig_socket, const struct iovec *vector, int count)
 {
-       int err = 0, *translated_socket;
-       socklen_t *translated_id_len, zero = 0;
-       struct sockaddr *translated_id;
-       ssize_t chars = -1;
-       
-       /* This functions is almost identical with recv() */
-
-       _HIP_DEBUG("readv: orig_socket %d\n", orig_socket);
-
-       err = hip_translate_socket(&orig_socket,
-                                  NULL,
-                                  &zero,
-                                  &translated_socket,
-                                  &translated_id,
-                                  &translated_id_len,
-                                  0, 0, 0);
-
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               goto out_err;
-       }
-       
-       chars = dl_function_ptr.readv_dlsym(*translated_socket, vector, count);
-       
-       _HIP_DEBUG("Called readv_dlsym with number of returned char=%d\n",
-                 chars);
-       
- out_err:
-       
-       return chars;
+    int err       = 0, *translated_socket;
+    socklen_t *translated_id_len, zero = 0;
+    struct sockaddr *translated_id;
+    ssize_t chars = -1;
+
+    /* This functions is almost identical with recv() */
+
+    _HIP_DEBUG("readv: orig_socket %d\n", orig_socket);
+
+    err = hip_translate_socket(&orig_socket,
+                               NULL,
+                               &zero,
+                               &translated_socket,
+                               &translated_id,
+                               &translated_id_len,
+                               0, 0, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        goto out_err;
+    }
+
+    chars = dl_function_ptr.readv_dlsym(*translated_socket, vector, count);
+
+    _HIP_DEBUG("Called readv_dlsym with number of returned char=%d\n",
+               chars);
+
+out_err:
+
+    return chars;
 }
 
 /**
@@ -1500,84 +1542,86 @@
  * return as in man 2 recvfrom
  *
  */
-ssize_t recvfrom(int orig_socket, void *buf, size_t len, int flags, 
-                struct sockaddr *orig_id, socklen_t *orig_id_len)
+ssize_t recvfrom(int orig_socket, void *buf, size_t len, int flags,
+                 struct sockaddr *orig_id, socklen_t *orig_id_len)
 {
-       int err = 0, *translated_socket = NULL;
-       socklen_t *translated_id_len = NULL;
-       struct sockaddr *translated_id = NULL;
-       ssize_t chars = -1;
-       
-       _HIP_DEBUG("recvfrom: orig sock = %d\n", orig_socket);
-
-       /** @todo In the case of UDP server, this creates additional
-           HIP traffic even though the connection is not necessarily
-           secured. */
-       err = hip_translate_socket(&orig_socket, orig_id, orig_id_len,
-                                  &translated_socket, &translated_id,
-                                  &translated_id_len, 0, 1, 0);
-       
-       if (err) {
-               HIP_ERROR("Translation failure\n");
-               chars = err;
-               goto out_err;
-       }
-       
-       chars = dl_function_ptr.recvfrom_dlsym(
-               *translated_socket, buf, len, flags, translated_id,
-               translated_id_len);
-       
-       _HIP_DEBUG("recvfrom: chars = %d\n", chars);
-
- out_err:
-       return chars;
+    int err                        = 0, *translated_socket = NULL;
+    socklen_t *translated_id_len   = NULL;
+    struct sockaddr *translated_id = NULL;
+    ssize_t chars                  = -1;
+
+    _HIP_DEBUG("recvfrom: orig sock = %d\n", orig_socket);
+
+    /** @todo In the case of UDP server, this creates additional
+     *  HIP traffic even though the connection is not necessarily
+     *  secured. */
+    err = hip_translate_socket(&orig_socket, orig_id, orig_id_len,
+                               &translated_socket, &translated_id,
+                               &translated_id_len, 0, 1, 0);
+
+    if (err) {
+        HIP_ERROR("Translation failure\n");
+        chars = err;
+        goto out_err;
+    }
+
+    chars = dl_function_ptr.recvfrom_dlsym(
+        *translated_socket, buf, len, flags, translated_id,
+        translated_id_len);
+
+    _HIP_DEBUG("recvfrom: chars = %d\n", chars);
+
+out_err:
+    return chars;
 }
 
 #if 0
-/* poll (and maybe ppoll) should be wrapped conveniently for 
-   applications such as ssh.*/
+/* poll (and maybe ppoll) should be wrapped conveniently for
+ * applications such as ssh.*/
 int poll(struct pollfd *orig_fds, nfds_t nfds, int timeout)
 {
-        int n, err = 0, zero = 0;
-       int *translated_socket;
-       struct pollfd *translated_fds;
-       socklen_t *translated_id_len;
-       struct sockaddr *translated_id;
-       pthread_t tid = pthread_self();
-       pid_t pid = getpid();
-
-       for (n = 0; n < nfds; n++){
-             HIP_DEBUG("poll: orig_socket=%d\n", orig_fds[n].fd);
-             HIP_DEBUG("poll: events=%d\n", orig_fds[n].events);
-             HIP_DEBUG("poll: revents=%d\n", orig_fds[n].revents);
-             HIP_DEBUG("poll:  nfds=%d\n", nfds);
-             hip_socketdb_dump();
-
-             if(hip_exists_translation(pid, orig_fds[n].fd, tid)){
-                    err = hip_translate_socket(&orig_fds[n].fd, NULL, &zero,
-                                        &translated_socket, &translated_id,
-                                        &translated_id_len, 1, 0, 0);
-                   orig_fds[n].fd = *translated_socket;
-                   HIP_DEBUG("poll: translation happened\n");
-             }
-             HIP_DEBUG("poll: translated_socket=%d\n", orig_fds[n].fd);
-             _HIP_DEBUG("poll: events=%d\n", translated_fds[n].events);
-             _HIP_DEBUG("poll: revents=%d\n", translated_fds[n].revents);
-             if (err) {
-                    HIP_ERROR("Translation failure\n");
-                    goto out_err;
-             }
-       }
-       HIP_DEBUG("calling poll: timeout=%d\n",timeout);
-       err = dl_function_ptr.poll_dlsym(orig_fds, nfds, timeout);
-       HIP_DEBUG("coming back from  poll: err=%d\n",err);
-       if (err) {
-               HIP_PERROR("connect error\n");
-       }
-
- out_err:
-       return err;
+    int n, err = 0, zero = 0;
+    int *translated_socket;
+    struct pollfd *translated_fds;
+    socklen_t *translated_id_len;
+    struct sockaddr *translated_id;
+    pthread_t tid = pthread_self();
+    pid_t pid     = getpid();
+
+    for (n = 0; n < nfds; n++) {
+        HIP_DEBUG("poll: orig_socket=%d\n", orig_fds[n].fd);
+        HIP_DEBUG("poll: events=%d\n", orig_fds[n].events);
+        HIP_DEBUG("poll: revents=%d\n", orig_fds[n].revents);
+        HIP_DEBUG("poll:  nfds=%d\n", nfds);
+        hip_socketdb_dump();
+
+        if (hip_exists_translation(pid, orig_fds[n].fd, tid)) {
+            err            = hip_translate_socket(&orig_fds[n].fd, NULL, &zero,
+                                                  &translated_socket,
+                                                  &translated_id,
+                                                  &translated_id_len, 1, 0, 0);
+            orig_fds[n].fd = *translated_socket;
+            HIP_DEBUG("poll: translation happened\n");
+        }
+        HIP_DEBUG("poll: translated_socket=%d\n", orig_fds[n].fd);
+        _HIP_DEBUG("poll: events=%d\n", translated_fds[n].events);
+        _HIP_DEBUG("poll: revents=%d\n", translated_fds[n].revents);
+        if (err) {
+            HIP_ERROR("Translation failure\n");
+            goto out_err;
+        }
+    }
+    HIP_DEBUG("calling poll: timeout=%d\n", timeout);
+    err = dl_function_ptr.poll_dlsym(orig_fds, nfds, timeout);
+    HIP_DEBUG("coming back from  poll: err=%d\n", err);
+    if (err) {
+        HIP_PERROR("connect error\n");
+    }
+
+out_err:
+    return err;
 }
+
 #endif
 
 
@@ -1591,100 +1635,101 @@
  */
 ssize_t recvmsg(int s, struct msghdr *msg, int flags)
 {
-       int charnum = 0;  
-       
-       // XX TODO: see hip_get_pktinfo_addr
-       charnum = dl_function_ptr.recvmsg_dlsym(s, msg, flags);
-       
-       _HIP_DEBUG("Called recvmsg_dlsym with number of returned chars=%d\n",
-                 charnum);
-       
-       return charnum;
+    int charnum = 0;
+
+    // XX TODO: see hip_get_pktinfo_addr
+    charnum = dl_function_ptr.recvmsg_dlsym(s, msg, flags);
+
+    _HIP_DEBUG("Called recvmsg_dlsym with number of returned chars=%d\n",
+               charnum);
+
+    return charnum;
 }
 
 #if 0
 void test_db(void)
 {
-       int pid = getpid();
-       int socket = 1;
-       int err = 0;
-       hip_opp_socket_t *entry = NULL;
-       //  struct hip_opp_socket_entry *entry = NULL;
-       
-       HIP_DEBUG("1111 pid=%d, socket=%d\n", pid, socket);
-       entry =   hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!entry);
-       err = hip_socketdb_add_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!err);
-       entry =  hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(entry);
-       hip_socketdb_dump();
-       
-       //  pid++; 
-       socket++;
-       HIP_DEBUG("2222 pid=%d, socket=%d\n", pid, socket);
-       entry = NULL;
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!entry);
-       err = hip_socketdb_add_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!err);
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       entry->translated_socket = socket+100;
-       HIP_ASSERT(entry);
-       hip_socketdb_dump();
-       
-       
-       //pid++; 
-       socket++;
-       HIP_DEBUG("3333 pid=%d, socket=%d\n", pid, socket);
-       entry = NULL;
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!entry);
-       err = hip_socketdb_add_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!err);
-       entry = NULL;
-       entry =  hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(entry);
-       hip_socketdb_dump();
-       
-       HIP_DEBUG("3333  testing del entry\n\n");
-       HIP_DEBUG("pid=%d, socket=%d\n", pid, socket);
-       entry = NULL;
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(entry);
-       entry = NULL;
-       err = hip_socketdb_del_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!err);
-       entry = NULL;
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!entry);
-       hip_socketdb_dump();
-       
-       
-       HIP_DEBUG("2222 testing del entry by entry\n\n");
-       socket--;
-       HIP_DEBUG("pid=%d, socket=%d\n", pid, socket);
-       entry = NULL;
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(entry);
-       hip_socketdb_del_entry_by_entry(entry);
-       entry = NULL;
-       entry = NULL;
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!entry);
-       hip_socketdb_dump();
-       
-       HIP_DEBUG("1111 testing del entry by entry\n\n");
-       socket--;
-       HIP_DEBUG("pid=%d, socket=%d\n", pid, socket);
-       entry = NULL;
-       entry = hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(entry);
-       hip_socketdb_del_entry_by_entry(entry);
-       entry = NULL;
-       entry =  hip_socketdb_find_entry(pid, socket, pthread_self());
-       HIP_ASSERT(!entry);
-       hip_socketdb_dump();
-       HIP_DEBUG("end of testing db\n");
+    int pid                 = getpid();
+    int socket              = 1;
+    int err                 = 0;
+    hip_opp_socket_t *entry = NULL;
+    //  struct hip_opp_socket_entry *entry = NULL;
+
+    HIP_DEBUG("1111 pid=%d, socket=%d\n", pid, socket);
+    entry =   hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!entry);
+    err   = hip_socketdb_add_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!err);
+    entry =  hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(entry);
+    hip_socketdb_dump();
+
+    //  pid++;
+    socket++;
+    HIP_DEBUG("2222 pid=%d, socket=%d\n", pid, socket);
+    entry = NULL;
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!entry);
+    err = hip_socketdb_add_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!err);
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    entry->translated_socket = socket + 100;
+    HIP_ASSERT(entry);
+    hip_socketdb_dump();
+
+
+    //pid++;
+    socket++;
+    HIP_DEBUG("3333 pid=%d, socket=%d\n", pid, socket);
+    entry = NULL;
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!entry);
+    err   = hip_socketdb_add_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!err);
+    entry = NULL;
+    entry =  hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(entry);
+    hip_socketdb_dump();
+
+    HIP_DEBUG("3333  testing del entry\n\n");
+    HIP_DEBUG("pid=%d, socket=%d\n", pid, socket);
+    entry = NULL;
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(entry);
+    entry = NULL;
+    err   = hip_socketdb_del_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!err);
+    entry = NULL;
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!entry);
+    hip_socketdb_dump();
+
+
+    HIP_DEBUG("2222 testing del entry by entry\n\n");
+    socket--;
+    HIP_DEBUG("pid=%d, socket=%d\n", pid, socket);
+    entry = NULL;
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(entry);
+    hip_socketdb_del_entry_by_entry(entry);
+    entry = NULL;
+    entry = NULL;
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!entry);
+    hip_socketdb_dump();
+
+    HIP_DEBUG("1111 testing del entry by entry\n\n");
+    socket--;
+    HIP_DEBUG("pid=%d, socket=%d\n", pid, socket);
+    entry = NULL;
+    entry = hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(entry);
+    hip_socketdb_del_entry_by_entry(entry);
+    entry = NULL;
+    entry =  hip_socketdb_find_entry(pid, socket, pthread_self());
+    HIP_ASSERT(!entry);
+    hip_socketdb_dump();
+    HIP_DEBUG("end of testing db\n");
 }
+
 #endif

=== modified file 'lib/opphip/wrap_db.c'
--- lib/opphip/wrap_db.c        2010-01-19 11:51:05 +0000
+++ lib/opphip/wrap_db.c        2010-02-11 00:11:39 +0000
@@ -3,7 +3,8 @@
  *
  * @author Bing Zhou <bingzhou@xxxxxxxxx>
  * @author Miika Komu <miika@xxxxxx>
- * @note Distributed under <a 
href="http://www.gnu.org/licenses/gpl2.txt";>GNU/GPL</a>
+ * @note Distributed under
+ * <a href="http://www.gnu.org/licenses/gpl2.txt";>GNU/GPL</a>
  *
  */
 #ifdef HAVE_CONFIG_H
@@ -27,25 +28,27 @@
 /**
  * check if a given socket has been recorded to the database
  *
- * @param pid process id 
+ * @param pid process id
  * @param socket socket file descriptor
  * @param tid thread id
  * @return one if socket existists in the database or zero otherwise
  */
 int hip_exists_translation(int pid, int socket, pthread_t tid)
 {
-       hip_opp_socket_t *entry = NULL;
-
-       entry = hip_socketdb_find_entry(pid, socket, tid);
-
-       if(entry) {
-               if(entry->pid == pid && entry->orig_socket == socket &&
-                  entry->tid == tid)
-                       return 1;
-               else
-                       return 0;
-       } else
-               return 0;
+    hip_opp_socket_t *entry = NULL;
+
+    entry = hip_socketdb_find_entry(pid, socket, tid);
+
+    if (entry) {
+        if (entry->pid == pid && entry->orig_socket == socket &&
+            entry->tid == tid) {
+            return 1;
+        } else {
+            return 0;
+        }
+    } else {
+        return 0;
+    }
 }
 
 /**
@@ -56,17 +59,17 @@
  */
 unsigned long hip_pid_socket_hash(const void *ptr)
 {
-       hip_opp_socket_t *entry = (hip_opp_socket_t *)ptr;
-       uint8_t hash[HIP_AH_SHA_LEN];
-
-       /* 
-          The hash table is indexed with three fields: 
-          pid, original socket, tid (thread id)
-        */
-       hip_build_digest(HIP_DIGEST_SHA1, entry, 
sizeof(pid_t)+sizeof(int)+sizeof(pthread_t), hash);
-
-       return *((unsigned long *)hash);
-
+    hip_opp_socket_t *entry = (hip_opp_socket_t *) ptr;
+    uint8_t hash[HIP_AH_SHA_LEN];
+
+    /*
+     * The hash table is indexed with three fields:
+     * pid, original socket, tid (thread id)
+     */
+    hip_build_digest(HIP_DIGEST_SHA1, entry,
+                     sizeof(pid_t) + sizeof(int) + sizeof(pthread_t), hash);
+
+    return *((unsigned long *) hash);
 }
 
 /** A callback wrapper of the prototype required by @c lh_new(). */
@@ -81,12 +84,12 @@
  */
 int hip_socketdb_cmp(const void *ptr1, const void *ptr2)
 {
-       unsigned long key1, key2;
-       
-       key1 = hip_pid_socket_hash(ptr1);
-       key2 = hip_pid_socket_hash(ptr2);
-       _HIP_DEBUG("key1=0x%x key2=0x%x\n", key1, key2);
-       return (key1 != key2);
+    unsigned long key1, key2;
+
+    key1 = hip_pid_socket_hash(ptr1);
+    key2 = hip_pid_socket_hash(ptr2);
+    _HIP_DEBUG("key1=0x%x key2=0x%x\n", key1, key2);
+    return key1 != key2;
 }
 
 /** A callback wrapper of the prototype required by @c lh_new(). */
@@ -98,10 +101,12 @@
  */
 void hip_init_socket_db()
 {
-       socketdb = hip_ht_init(LHASH_HASH_FN(hip_pid_socket),
-                           LHASH_COMP_FN(hip_socketdb));
+    socketdb = hip_ht_init(LHASH_HASH_FN(hip_pid_socket),
+                           LHASH_COMP_FN(hip_socketdb));
 
-       if (!socketdb) HIP_ERROR("hip_init_socket_db() error!\n");
+    if (!socketdb) {
+        HIP_ERROR("hip_init_socket_db() error!\n");
+    }
 }
 
 /**
@@ -111,10 +116,11 @@
  */
 void hip_socketdb_del_entry_by_entry(hip_opp_socket_t *entry)
 {
-       _HIP_DEBUG("entry=0x%p pid=%d, orig_socket=%d\n", entry,
-                 entry->pid, entry->orig_socket);
-       if (!hip_ht_delete(socketdb, entry))
-         HIP_DEBUG("No entry was found to delete.\n");
+    _HIP_DEBUG("entry=0x%p pid=%d, orig_socket=%d\n", entry,
+               entry->pid, entry->orig_socket);
+    if (!hip_ht_delete(socketdb, entry)) {
+        HIP_DEBUG("No entry was found to delete.\n");
+    }
 }
 
 /**
@@ -123,19 +129,18 @@
  */
 void hip_uninit_socket_db()
 {
-       int i = 0;
-       hip_list_t *item, *tmp;
-       hip_opp_socket_t *entry;
-       
-       _HIP_DEBUG("DEBUG: DUMP SOCKETDB LISTS\n");
-       
-       _HIP_DEBUG("DELETING\n");
-       list_for_each_safe(item, tmp, socketdb, i)
-       {
-               entry = (hip_opp_socket_t *)list_entry(item);
-               hip_socketdb_del_entry_by_entry(entry);
-       }  
-
+    int i = 0;
+    hip_list_t *item, *tmp;
+    hip_opp_socket_t *entry;
+
+    _HIP_DEBUG("DEBUG: DUMP SOCKETDB LISTS\n");
+
+    _HIP_DEBUG("DELETING\n");
+    list_for_each_safe(item, tmp, socketdb, i)
+    {
+        entry = (hip_opp_socket_t *) list_entry(item);
+        hip_socketdb_del_entry_by_entry(entry);
+    }
 }
 
 /**
@@ -149,16 +154,16 @@
  */
 hip_opp_socket_t *hip_socketdb_find_entry(int pid, int socket, pthread_t tid)
 {
-       hip_opp_socket_t opp, *ret;
-
-       opp.pid = pid;
-       opp.orig_socket = socket;
-       opp.tid = tid;
-       _HIP_DEBUG("pid %d socket %d computed key\n", pid, socket);
-       
-       ret = (hip_opp_socket_t *)hip_ht_find(socketdb, (void *)&opp);
-
-       return ret;
+    hip_opp_socket_t opp, *ret;
+
+    opp.pid         = pid;
+    opp.orig_socket = socket;
+    opp.tid         = tid;
+    _HIP_DEBUG("pid %d socket %d computed key\n", pid, socket);
+
+    ret             = (hip_opp_socket_t *) hip_ht_find(socketdb, (void *) 
&opp);
+
+    return ret;
 }
 
 /**
@@ -167,27 +172,25 @@
  */
 void hip_socketdb_dump()
 {
-       int i;
-       hip_list_t *item, *tmp;
-       hip_opp_socket_t *entry;
-
-       HIP_DEBUG("start socketdb dump\n");
-
-       list_for_each_safe(item, tmp, socketdb, i)
-       {
-               entry = (hip_opp_socket_t *)list_entry(item);
-
-               HIP_DEBUG("pid=%d orig_socket=%d tid=%d new_socket=%d 
domain=%d\n",
-                         entry->pid, entry->orig_socket, entry->tid,
-                         entry->translated_socket,
-                         entry->domain);
-
-       }
-       
-       HIP_DEBUG("end socketdb dump\n");
+    int i;
+    hip_list_t *item, *tmp;
+    hip_opp_socket_t *entry;
+
+    HIP_DEBUG("start socketdb dump\n");
+
+    list_for_each_safe(item, tmp, socketdb, i)
+    {
+        entry = (hip_opp_socket_t *) list_entry(item);
+
+        HIP_DEBUG("pid=%d orig_socket=%d tid=%d new_socket=%d domain=%d\n",
+                  entry->pid, entry->orig_socket, entry->tid,
+                  entry->translated_socket,
+                  entry->domain);
+    }
+
+    HIP_DEBUG("end socketdb dump\n");
 }
 
-
 /**
  * add a new translated entry to the opportunistic HIP database
  *
@@ -198,27 +201,26 @@
  */
 int hip_socketdb_add_entry(int pid, int socket, pthread_t tid)
 {
-       hip_opp_socket_t *new_item = NULL;
-       int err = 0;
-       
-       new_item = (hip_opp_socket_t *)malloc(sizeof(hip_opp_socket_t));
-       if (!new_item)
-       {
-               HIP_ERROR("new_item malloc failed\n");
-               err = -ENOMEM;
-               return err;
-       }
-       
-       memset(new_item, 0, sizeof(hip_opp_socket_t));
-       
-       new_item->pid = pid;
-       new_item->orig_socket = socket;
-       new_item->tid = tid;
-       err = hip_ht_add(socketdb, new_item);
-       _HIP_DEBUG("pid %d, orig_sock %d, tid %d are added to HT socketdb, 
entry=%p\n",
-                 new_item->pid, new_item->orig_socket, new_item->tid, 
new_item); 
-
-       return err;
+    hip_opp_socket_t *new_item = NULL;
+    int err                    = 0;
+
+    new_item = (hip_opp_socket_t *) malloc(sizeof(hip_opp_socket_t));
+    if (!new_item) {
+        HIP_ERROR("new_item malloc failed\n");
+        err = -ENOMEM;
+        return err;
+    }
+
+    memset(new_item, 0, sizeof(hip_opp_socket_t));
+
+    new_item->pid         = pid;
+    new_item->orig_socket = socket;
+    new_item->tid         = tid;
+    err                   = hip_ht_add(socketdb, new_item);
+    _HIP_DEBUG("pid %d, orig_sock %d, tid %d are added to HT socketdb, 
entry=%p\n",
+               new_item->pid, new_item->orig_socket, new_item->tid, new_item);
+
+    return err;
 }
 
 /**
@@ -231,13 +233,13 @@
  */
 int hip_socketdb_del_entry(int pid, int socket, pthread_t tid)
 {
-       hip_opp_socket_t *entry = NULL;
-
-       entry = hip_socketdb_find_entry(pid, socket, tid);
-       if (!entry) {
-               return -ENOENT;
-       }
-       hip_socketdb_del_entry_by_entry(entry);
-
-       return 0;
+    hip_opp_socket_t *entry = NULL;
+
+    entry = hip_socketdb_find_entry(pid, socket, tid);
+    if (!entry) {
+        return -ENOENT;
+    }
+    hip_socketdb_del_entry_by_entry(entry);
+
+    return 0;
 }

=== modified file 'lib/opphip/wrap_db.h'
--- lib/opphip/wrap_db.h        2010-01-19 11:51:05 +0000
+++ lib/opphip/wrap_db.h        2010-02-11 00:11:39 +0000
@@ -2,24 +2,24 @@
 #define WRAP_DB_H
 
 struct hip_opp_socket_entry {
-       pid_t                   pid;
-       int                     orig_socket;
-        pthread_t               tid;
-       int                     translated_socket;
-       int                     domain;
-       int                     type;
-       int                     protocol;
-       int                     local_id_is_translated;
-       int                     peer_id_is_translated;
-       int                     force_orig;
-       struct sockaddr_storage orig_local_id;
-       struct sockaddr_storage orig_peer_id;
-       struct sockaddr_storage translated_local_id;
-       struct sockaddr_storage translated_peer_id;
-       socklen_t               orig_local_id_len;
-       socklen_t               orig_peer_id_len;
-       socklen_t               translated_local_id_len;
-       socklen_t               translated_peer_id_len;
+    pid_t                   pid;
+    int                     orig_socket;
+    pthread_t               tid;
+    int                     translated_socket;
+    int                     domain;
+    int                     type;
+    int                     protocol;
+    int                     local_id_is_translated;
+    int                     peer_id_is_translated;
+    int                     force_orig;
+    struct sockaddr_storage orig_local_id;
+    struct sockaddr_storage orig_peer_id;
+    struct sockaddr_storage translated_local_id;
+    struct sockaddr_storage translated_peer_id;
+    socklen_t               orig_local_id_len;
+    socklen_t               orig_peer_id_len;
+    socklen_t               translated_local_id_len;
+    socklen_t               translated_peer_id_len;
 };
 
 typedef struct hip_opp_socket_entry hip_opp_socket_t;
@@ -27,10 +27,10 @@
 // not implemented for hs either
 #define HIP_LOCK_SOCKET_INIT(entry)
 #define HIP_UNLOCK_SOCKET_INIT(entry)
-#define HIP_LOCK_SOCKET(entry)  
+#define HIP_LOCK_SOCKET(entry)
 #define HIP_UNLOCK_SOCKET(entry)
 #define HIP_SOCKETDB_SIZE 533
-#define SOFILE "libc.so.6" 
+#define SOFILE "libc.so.6"
 
 void hip_init_socket_db(void);
 void hip_uninit_socket_db(void);
@@ -40,10 +40,11 @@
 int hip_socketdb_add_entry(int pid, int socket, pthread_t tid);
 int hip_socketdb_del_entry(int pid, int socket, pthread_t tid);
 // functions in wrap_db.c
-int request_pseudo_hit_from_hipd(const struct in6_addr *ip, struct in6_addr 
*phit);
-int request_peer_hit_from_hipd(const struct in6_addr *ip, 
-                              struct in6_addr *peer_hit,
-                              const struct in6_addr *local_hit);
+int request_pseudo_hit_from_hipd(const struct in6_addr *ip,
+                                 struct in6_addr *phit);
+int request_peer_hit_from_hipd(const struct in6_addr *ip,
+                               struct in6_addr *peer_hit,
+                               const struct in6_addr *local_hit);
 int exists_mapping(int pid, int socket);
 int hip_exists_translation(int pid, int socket, pthread_t tid);
 void hip_socketdb_del_entry_by_entry(hip_opp_socket_t *entry);

Other related posts:

  • » [hipl-commit] [trunk] Rev 3595: uncrustified lib/opphip - Rene Hummen