branch merge
authorTom Henderson <tomh@tomh.org>
Tue, 29 Dec 2009 16:22:06 -0800
changeset 5903 9c48446a0946
parent 5902 526381e48c1d (current diff)
parent 5898 d6ee673adda4 (diff)
child 5904 09a575cdf8db
branch merge
--- a/src/node/packetbb.cc	Tue Dec 29 16:05:50 2009 -0800
+++ b/src/node/packetbb.cc	Tue Dec 29 16:22:06 2009 -0800
@@ -2014,11 +2014,12 @@
 PbbAddressBlock::Serialize (Buffer::Iterator &start) const
 {
   start.WriteU8 (AddressSize ());
+  Buffer::Iterator bufref = start;
+  uint8_t flags = 0;
+  start.Next ();
 
   if (AddressSize () == 1)
     {
-      start.WriteU8 (0);
-
       uint8_t buf[GetAddressLength ()];
       SerializeAddress (buf, AddressBegin ());
       start.Write (buf, GetAddressLength ());
@@ -2026,14 +2027,12 @@
       if (PrefixSize () == 1)
         {
           start.WriteU8 (PrefixFront ());
+          flags |= AHAS_SINGLE_PRE_LEN;
         }
+      bufref.WriteU8 (flags);
     }
   else if (AddressSize () > 0)
     {
-      Buffer::Iterator bufref = start;
-      uint8_t flags = 0;
-      start.Next ();
-
       uint8_t head[GetAddressLength ()];
       uint8_t tail[GetAddressLength ()];
       uint8_t headlen = 0;