gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r11149 - in gnunet: . src/hello src/hostlist src/include sr


From: gnunet
Subject: [GNUnet-SVN] r11149 - in gnunet: . src/hello src/hostlist src/include src/peerinfo src/peerinfo-tool src/topology src/transport
Date: Sun, 2 May 2010 14:01:06 +0200

Author: grothoff
Date: 2010-05-02 14:01:06 +0200 (Sun, 02 May 2010)
New Revision: 11149

Modified:
   gnunet/ChangeLog
   gnunet/src/hello/hello.c
   gnunet/src/hostlist/hostlist-server.c
   gnunet/src/include/gnunet_hello_lib.h
   gnunet/src/peerinfo-tool/gnunet-peerinfo.c
   gnunet/src/peerinfo/gnunet-service-peerinfo.c
   gnunet/src/topology/gnunet-daemon-topology.c
   gnunet/src/transport/gnunet-service-transport.c
   gnunet/src/transport/plugin_transport.h
   gnunet/src/transport/test_plugin_transport_http.c
Log:
reducing address size in hello to 16 bit

Modified: gnunet/ChangeLog
===================================================================
--- gnunet/ChangeLog    2010-05-02 11:48:52 UTC (rev 11148)
+++ gnunet/ChangeLog    2010-05-02 12:01:06 UTC (rev 11149)
@@ -1,3 +1,9 @@
+Sun May  2 13:49:10 CEST 2010
+       Fixed problem with platform-dependence of format for IP addresses
+       in HELLOs for TCP and UDP transport. 
+       Reduced address length field in HELLOs to 16 bit (was 32 bit).
+       These changes break transport compatibility.
+
 Fri Apr 16 18:19:05 CEST 2010
        Nearly complete rewrite and new overall architecture.  Many
        features are still missing, but basic system seems to be

Modified: gnunet/src/hello/hello.c
===================================================================
--- gnunet/src/hello/hello.c    2010-05-02 11:48:52 UTC (rev 11148)
+++ gnunet/src/hello/hello.c    2010-05-02 12:01:06 UTC (rev 11149)
@@ -35,7 +35,7 @@
  * the format:
  *
  * 1) transport-name (0-terminated)
- * 2) address-length (uint32_t, network byte order; possibly
+ * 2) address-length (uint16_t, network byte order; possibly
  *    unaligned!)
  * 3) address expiration (GNUNET_TIME_AbsoluteNBO); possibly
  *    unaligned!)
@@ -78,21 +78,21 @@
 GNUNET_HELLO_add_address (const char *tname,
                           struct GNUNET_TIME_Absolute expiration,
                           const void *addr,
-                          size_t addr_len, char *target, size_t max)
+                          uint16_t addr_len, char *target, size_t max)
 {
-  uint32_t alen;
+  uint16_t alen;
   size_t slen;
   struct GNUNET_TIME_AbsoluteNBO exp;
 
   slen = strlen (tname) + 1;
-  if (slen + sizeof (uint32_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO) +
+  if (slen + sizeof (uint16_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO) +
       addr_len > max)
     return 0;
   exp = GNUNET_TIME_absolute_hton (expiration);
-  alen = htonl ((uint32_t) addr_len);
+  alen = htons (addr_len);
   memcpy (target, tname, slen);
-  memcpy (&target[slen], &alen, sizeof (uint32_t));
-  slen += sizeof (uint32_t);
+  memcpy (&target[slen], &alen, sizeof (uint16_t));
+  slen += sizeof (uint16_t);
   memcpy (&target[slen], &exp, sizeof (struct GNUNET_TIME_AbsoluteNBO));
   slen += sizeof (struct GNUNET_TIME_AbsoluteNBO);
   memcpy (&target[slen], addr, addr_len);
@@ -110,10 +110,10 @@
  * @return size of the entry, or 0 if max is not large enough
  */
 static size_t
-get_hello_address_size (const char *buf, size_t max, uint32_t * ralen)
+get_hello_address_size (const char *buf, size_t max, uint16_t * ralen)
 {
   const char *pos;
-  uint32_t alen;
+  uint16_t alen;
   size_t left;
   size_t slen;
 
@@ -134,16 +134,16 @@
       return 0;
     }
   pos++;
-  if (left < sizeof (uint32_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO))
+  if (left < sizeof (uint16_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO))
     {
       /* not enough space for addrlen */
       GNUNET_break_op (0);
       return 0;
     }
-  memcpy (&alen, pos, sizeof (uint32_t));
-  alen = ntohl (alen);
+  memcpy (&alen, pos, sizeof (uint16_t));
+  alen = ntohs (alen);
   *ralen = alen;
-  slen += alen + sizeof (uint32_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO);
+  slen += alen + sizeof (uint16_t) + sizeof (struct GNUNET_TIME_AbsoluteNBO);
   if (max < slen)
     {
       /* not enough space for addr */
@@ -215,7 +215,7 @@
   size_t esize;
   size_t wpos;
   char *woff;
-  uint32_t alen;
+  uint16_t alen;
   struct GNUNET_TIME_AbsoluteNBO expire;
   int iret;
 
@@ -275,7 +275,7 @@
 {
   const void *addr;
   const char *tname;
-  size_t addrlen;
+  uint16_t addrlen;
   int found;
   struct GNUNET_TIME_Absolute expiration;
 };
@@ -285,7 +285,7 @@
 get_match_exp (void *cls,
                const char *tname,
                struct GNUNET_TIME_Absolute expiration,
-               const void *addr, size_t addrlen)
+               const void *addr, uint16_t addrlen)
 {
   struct ExpireContext *ec = cls;
 
@@ -318,7 +318,7 @@
 copy_latest (void *cls,
              const char *tname,
              struct GNUNET_TIME_Absolute expiration,
-             const void *addr, size_t addrlen)
+             const void *addr, uint16_t addrlen)
 {
   struct MergeContext *mc = cls;
   struct ExpireContext ec;
@@ -400,7 +400,7 @@
 delta_match (void *cls,
              const char *tname,
              struct GNUNET_TIME_Absolute expiration,
-             const void *addr, size_t addrlen)
+             const void *addr, uint16_t addrlen)
 {
   struct DeltaContext *dc = cls;
   int ret;
@@ -545,9 +545,10 @@
   
   struct GNUNET_TIME_Absolute expiration;
 
-  size_t addrlen;
+  int found;
 
-  int found;
+  uint16_t addrlen;
+
 };
 
 
@@ -555,7 +556,7 @@
 find_other_matching (void *cls,
                     const char *tname,
                     struct GNUNET_TIME_Absolute expiration,
-                    const void *addr, size_t addrlen)
+                    const void *addr, uint16_t addrlen)
 {
   struct EqualsContext *ec = cls;
 
@@ -584,7 +585,7 @@
 find_matching (void *cls,
                const char *tname,
                struct GNUNET_TIME_Absolute expiration,
-               const void *addr, size_t addrlen)
+               const void *addr, uint16_t addrlen)
 {
   struct EqualsContext *ec = cls;
 

Modified: gnunet/src/hostlist/hostlist-server.c
===================================================================
--- gnunet/src/hostlist/hostlist-server.c       2010-05-02 11:48:52 UTC (rev 
11148)
+++ gnunet/src/hostlist/hostlist-server.c       2010-05-02 12:01:06 UTC (rev 
11149)
@@ -163,7 +163,8 @@
 check_has_addr (void *cls,
                const char *tname,
                struct GNUNET_TIME_Absolute expiration,
-               const void *addr, size_t addrlen)
+               const void *addr,
+               uint16_t addrlen)
 {
   int *arg = cls;
 

Modified: gnunet/src/include/gnunet_hello_lib.h
===================================================================
--- gnunet/src/include/gnunet_hello_lib.h       2010-05-02 11:48:52 UTC (rev 
11148)
+++ gnunet/src/include/gnunet_hello_lib.h       2010-05-02 12:01:06 UTC (rev 
11149)
@@ -64,7 +64,7 @@
 GNUNET_HELLO_add_address (const char *tname,
                           struct GNUNET_TIME_Absolute expiration,
                           const void *addr,
-                          size_t addr_len, char *target, size_t max);
+                          uint16_t addr_len, char *target, size_t max);
 
 
 /**
@@ -160,7 +160,8 @@
   (*GNUNET_HELLO_AddressIterator) (void *cls,
                                    const char *tname,
                                    struct GNUNET_TIME_Absolute expiration,
-                                   const void *addr, size_t addrlen);
+                                   const void *addr, 
+                                  uint16_t addrlen);
 
 
 /**

Modified: gnunet/src/peerinfo/gnunet-service-peerinfo.c
===================================================================
--- gnunet/src/peerinfo/gnunet-service-peerinfo.c       2010-05-02 11:48:52 UTC 
(rev 11148)
+++ gnunet/src/peerinfo/gnunet-service-peerinfo.c       2010-05-02 12:01:06 UTC 
(rev 11149)
@@ -151,7 +151,7 @@
 discard_expired (void *cls,
                  const char *tname,
                  struct GNUNET_TIME_Absolute expiration,
-                 const void *addr, size_t addrlen)
+                 const void *addr, uint16_t addrlen)
 {
   const struct GNUNET_TIME_Absolute *now = cls;
   if (now->value > expiration.value)

Modified: gnunet/src/peerinfo-tool/gnunet-peerinfo.c
===================================================================
--- gnunet/src/peerinfo-tool/gnunet-peerinfo.c  2010-05-02 11:48:52 UTC (rev 
11148)
+++ gnunet/src/peerinfo-tool/gnunet-peerinfo.c  2010-05-02 12:01:06 UTC (rev 
11149)
@@ -116,7 +116,7 @@
 count_address (void *cls,
               const char *tname,
               struct GNUNET_TIME_Absolute expiration,
-              const void *addr, size_t addrlen)
+              const void *addr, uint16_t addrlen)
 {
   struct PrintContext *pc = cls;
   pc->off++;
@@ -138,7 +138,7 @@
 print_address (void *cls,
               const char *tname,
               struct GNUNET_TIME_Absolute expiration,
-              const void *addr, size_t addrlen)
+              const void *addr, uint16_t addrlen)
 {
   struct PrintContext *pc = cls;
   GNUNET_TRANSPORT_address_lookup (sched,

Modified: gnunet/src/topology/gnunet-daemon-topology.c
===================================================================
--- gnunet/src/topology/gnunet-daemon-topology.c        2010-05-02 11:48:52 UTC 
(rev 11148)
+++ gnunet/src/topology/gnunet-daemon-topology.c        2010-05-02 12:01:06 UTC 
(rev 11149)
@@ -841,7 +841,8 @@
 address_iterator (void *cls,
                  const char *tname,
                  struct GNUNET_TIME_Absolute expiration,
-                 const void *addr, size_t addrlen)
+                 const void *addr, 
+                 uint16_t addrlen)
 {
   int *flag = cls;
   *flag = GNUNET_YES;

Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2010-05-02 11:48:52 UTC 
(rev 11148)
+++ gnunet/src/transport/gnunet-service-transport.c     2010-05-02 12:01:06 UTC 
(rev 11149)
@@ -166,11 +166,6 @@
   GNUNET_SCHEDULER_TaskIdentifier revalidate_task;
 
   /**
-   * Length of addr.
-   */
-  size_t addrlen;
-
-  /**
    * The address.
    */
   const void *addr;
@@ -209,6 +204,11 @@
   uint32_t distance;
 
   /**
+   * Length of addr.
+   */
+  uint16_t addrlen;
+
+  /**
    * Have we ever estimated the latency of this address?  Used to
    * ensure that the first time we add an address, we immediately
    * probe its latency.
@@ -264,7 +264,7 @@
   /**
    * Length of addr.
    */
-  size_t addrlen;
+  uint16_t addrlen;
 
 };
 
@@ -623,7 +623,7 @@
   /**
    * Size of address appended to this message
    */
-  size_t addrlen;
+  uint16_t addrlen;
 
 };
 
@@ -734,14 +734,14 @@
   struct Session *session;
 
   /**
-   * Length of addr.
+   * Challenge number we used.
    */
-  size_t addrlen;
+  uint32_t challenge;
 
   /**
-   * Challenge number we used.
+   * Length of addr.
    */
-  uint32_t challenge;
+  uint16_t addrlen;
 
 };
 
@@ -1403,7 +1403,7 @@
 static const char*
 a2s (const char *plugin,
      const void *addr,
-     size_t addr_len)
+     uint16_t addr_len)
 {
   struct TransportPlugin *p;
 
@@ -2040,7 +2040,7 @@
 plugin_env_notify_address (void *cls,
                            const char *name,
                            const void *addr,
-                           size_t addrlen,
+                           uint16_t addrlen,
                            struct GNUNET_TIME_Relative expires)
 {
   struct TransportPlugin *p = cls;
@@ -2156,7 +2156,7 @@
                  const char *tname,
                  struct Session *session,
                  const char *addr,
-                 size_t addrlen)
+                 uint16_t addrlen)
 {
   struct ReadyList *head;
   struct ForeignAddressList *pos;
@@ -2202,7 +2202,7 @@
                  const char *tname,
                  struct Session *session,
                  const char *addr, 
-                 size_t addrlen)
+                 uint16_t addrlen)
 {
   struct ReadyList *head;
   struct ForeignAddressList *ret;
@@ -2315,14 +2315,15 @@
   struct Session *session;
 
   /**
-   * Length of addr.
+   * Set to GNUNET_YES if the address exists.
    */
-  size_t addrlen;
+  int exists;
 
   /**
-   * Set to GNUNET_YES if the address exists.
+   * Length of addr.
    */
-  int exists;
+  uint16_t addrlen;
+
 };
 
 
@@ -2437,7 +2438,8 @@
 add_to_foreign_address_list (void *cls,
                             const char *tname,
                             struct GNUNET_TIME_Absolute expiration,
-                            const void *addr, size_t addrlen)
+                            const void *addr,
+                            uint16_t addrlen)
 {
   struct NeighbourList *n = cls;
   struct ForeignAddressList *fal;
@@ -3492,7 +3494,8 @@
 run_validation (void *cls,
                 const char *tname,
                 struct GNUNET_TIME_Absolute expiration,
-                const void *addr, size_t addrlen)
+                const void *addr, 
+               uint16_t addrlen)
 {
   struct CheckHelloValidatedContext *chvc = cls;
   struct GNUNET_PeerIdentity id;
@@ -3932,7 +3935,7 @@
 handle_ping(void *cls, const struct GNUNET_MessageHeader *message,
            const struct GNUNET_PeerIdentity *peer,
            const char *sender_address,
-           size_t sender_address_len)
+           uint16_t sender_address_len)
 {
   struct TransportPlugin *plugin = cls;
   struct TransportPingMessage *ping;
@@ -4072,7 +4075,7 @@
                     uint32_t distance,
                    struct Session *session,
                    const char *sender_address,
-                    size_t sender_address_len)
+                    uint16_t sender_address_len)
 {
   struct TransportPlugin *plugin = cls;
   struct ReadyList *service_context;

Modified: gnunet/src/transport/plugin_transport.h
===================================================================
--- gnunet/src/transport/plugin_transport.h     2010-05-02 11:48:52 UTC (rev 
11148)
+++ gnunet/src/transport/plugin_transport.h     2010-05-02 12:01:06 UTC (rev 
11149)
@@ -90,7 +90,7 @@
                                                                               
uint32_t distance,
                                                                               
struct Session *session,
                                                                               
const char *sender_address,
-                                                                              
size_t sender_address_len);
+                                                                              
uint16_t sender_address_len);
 
 
 /**
@@ -107,7 +107,7 @@
 typedef void (*GNUNET_TRANSPORT_AddressNotification) (void *cls,
                                                       const char *name,
                                                       const void *addr,
-                                                      size_t addrlen,
+                                                      uint16_t addrlen,
                                                       struct
                                                       GNUNET_TIME_Relative
                                                       expires);

Modified: gnunet/src/transport/test_plugin_transport_http.c
===================================================================
--- gnunet/src/transport/test_plugin_transport_http.c   2010-05-02 11:48:52 UTC 
(rev 11148)
+++ gnunet/src/transport/test_plugin_transport_http.c   2010-05-02 12:01:06 UTC 
(rev 11149)
@@ -98,7 +98,7 @@
         uint32_t distance,
         struct Session *session,
         const char *sender_address,
-        size_t sender_address_len)
+        uint16_t sender_address_len)
 {
   /* do nothing */
   return GNUNET_TIME_UNIT_ZERO;
@@ -108,7 +108,8 @@
 notify_address (void *cls,
                 const char *name,
                 const void *addr,
-                size_t addrlen, struct GNUNET_TIME_Relative expires)
+                uint16_t addrlen, 
+               struct GNUNET_TIME_Relative expires)
 {
 }
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]