1. 25 Feb, 2010 3 commits
  2. 24 Feb, 2010 8 commits
  3. 23 Feb, 2010 8 commits
  4. 22 Feb, 2010 1 commit
    • Ryan Jackson's avatar
      Add .gitattributes · 2c5b0262
      Ryan Jackson authored
      Unset the crlf attribute for all files with DOS line endings to ensure
      they don't get converted to LF by mistake.
      2c5b0262
  5. 19 Feb, 2010 1 commit
    • Leigh B Stoller's avatar
      Okay, I think I have solved the problem with interoperability between · 350bc54e
      Leigh B Stoller authored
      event clients and servers that do not have the same value of
      ELVIN_COMPAT compiled in. Most of use know this as the dreaded "HMAC
      mismatch" failure that clients spit out.
      
      Bottom line: My tests so far have ELVIN_COMPAT and non ELVIN_COMPAT
      clients sending and receiving events to/from each other okay. Events
      work in both directions.
      
      More details:
      
      The basic problem is that non ELVIN_COMPAT clients generate the hmac
      by traversing the notification in linear order. Very simple.
      
      When ELVIN_COMPAT is compiled in, we want to be able to take a
      notification that started in an actual elvin client, was converted to
      a pubsub notification, and then passed along. In this case the hmac
      that was in the original elvin packet was generated using the elvin
      traversal, which is not linear but a hash function. Annoying.
      
      To deal with this, our ELVIN_COMPAT clients take the notification and
      compute what the hash ordering is supposed to be, and then generates
      the HMAC for comparison. Ditto for outgoing notifications, which is
      why we have the interoperability problems.
      
      If I had been thinking ahead, I would have put a version number into
      pubsub notifications. Oh wait, thats another story ... lets get back
      to ELVIN_COMPAT ...  Instead of computing an order, I should have just
      put them into the notification in the proper elvin order, so that all
      clients only had to traverse it in linear order to compute the hmac.
      
      This is essentially what my changes have done. All notifications go
      out with the hmac computed from the linear ordering. When ELVIN_COMPAT
      is on, I use a hash table to generate the proper ordering, and then
      insert them into the notification.
      
      By putting adding a version number into the notification (refer to
      Mike's Rule of Version Numbers), I can tell old clients from new
      clients, and so new clients know what to do with a notification from
      an old client.
      350bc54e
  6. 16 Feb, 2010 4 commits
  7. 12 Feb, 2010 7 commits
  8. 11 Feb, 2010 6 commits
  9. 10 Feb, 2010 2 commits