1. 15 Sep, 2017 2 commits
  2. 26 Apr, 2017 1 commit
    • Guus der Kinderen's avatar
      Replace dangling javadoc with block comment. · 65f1f7f1
      Guus der Kinderen authored
      Javadoc comment are dangling if they don't belong to any class, method or field. For example a Javadoc comment in between method declarations that have their own javadoc comments.
      
      These generate needless warnings, which are in most instances easily solved. By far most problems occur in the license block that's in most files.
      65f1f7f1
  3. 04 Jan, 2017 1 commit
  4. 09 Apr, 2016 1 commit
    • Guus der Kinderen's avatar
      OF-1125: Should use StreamID class instead of String. · 2cc0a948
      Guus der Kinderen authored
      To represent a stream ID, Openfire defines the StreamID interface. However,
      that interface is hardly used. Instead, simple String representations are used
      in most places.
      
      StreamIDs should conform to some specifications (notably: they shouldn't
      include XML special characters). An implementation of the StreamID interface
      is a good place to enforce specifications like that.
      
      This commit replaces all String-based stream ID representations with an
      implemenation of StreamID. For clustering/hazelcast, the serialized string
      is still being used to exchange data between nodes (I expect that this allows
      older and newer cluster nodes to continue to exchange cache information within
      the same cluster).
      
      Also in this commit:
      - StreamID implementations check for (and escape) XML special characters.
      - Duplicate implemenations of the StreamID interface are removed.
      
      Some code refers to streamID while in reality session IDs are implemented. This
      commit does not affect those pieces of code.
      2cc0a948
  5. 09 Jan, 2016 1 commit
  6. 08 Jan, 2016 2 commits
  7. 11 Dec, 2015 1 commit
  8. 04 Dec, 2015 1 commit
  9. 27 Nov, 2015 1 commit
    • Dave Cridland's avatar
      OF-115 Remove race during outgoing session creation · d0667e21
      Dave Cridland authored
      This one is hard to duplicate in the lab, so this may not actually cure the
      issue, however I suspect it does.
      
      The existing code is based around a route of last resort, the
      OutgoingSessionPromise, which builds a helper - the PacketsProcessor - and
      creates the new session. The PacketsProcessors operate from within a thread
      pool, and thus have contended execution time.
      
      As new packets arrives from onward transmission during the session setup, the
      PacketsProcessor queues them for retransmission. However, the act of session
      creation also creates the outgoing route, meaning that later packets will
      bypass the queue, and be transmitted out of order.
      
      This should give the impression of a randomly reordered set of stanzas, but
      would in fact be two consecutive sequences of ordered stanzas which are
      interleaved, hence if the two sequences are A-E, F-J, one might see:
      
      A, B, F, G, C, H, I, D, J, E
      
      The fix here is two ensure that all packets are queued until the queue itself
      is empty. In the solution provided, an additional helper class acts as the
      route's RoutableChannelHandler, and stores packets in a queue until the real
      ServerSession can catch up with the pending traffic. After that it simply
      passes the process() call argument through.
      d0667e21
  10. 23 Nov, 2015 1 commit
  11. 21 Nov, 2015 1 commit
    • Christian Schudt's avatar
      Language info should be in the Session, not in the Connection · 170b20cc
      Christian Schudt authored
      I feel the language (the stream's "xml:lang" attribute) should be in the Session interface rather than the Connection (similar as the stream id), because it's unrelated to the session's transport.
      
      The HttpSession already did that.
      
      Otherwise the used language is not easy to retrieve, e.g. when using SessionManager to get the session and OF-208 is hard to solve.
      
      Alternatively we can expose the Connection in the Session interface, but this approach feels wrong to me.
      
      Also use `java.util.Locale` rather than String, because it better reflects what can be in `xml:lang` (it can also have country codes, e.g. "de-CH")
      170b20cc
  12. 09 Nov, 2015 2 commits
  13. 28 Jul, 2015 1 commit
    • Dave Cridland's avatar
      Use Deque instead of Map, and add delay stamping · a6ea2b4b
      Dave Cridland authored
      After discussion with Jonny, switched the existing Map to a Deque, and in
      response to Tom's suggestion, added XEP-0203 (and legacy) delay stamping.
      
      Tested using Gajim and Swift; testing the delay stamping was done by disabling
      the acknowledgement handling to force retransmission.
      a6ea2b4b
  14. 24 Jul, 2015 1 commit
    • JonnyHeavey's avatar
      Initial xep-0198 message ack implementation · ea56ccdd
      JonnyHeavey authored
      This patch adds a basic, non-resumable, XEP-0198 acking solution. It will
      redirect "lost" messages to offline storage, but does not attempt to suspend
      the session, so will not allow any resumptions.
      ea56ccdd
  15. 09 Mar, 2015 1 commit
  16. 09 Feb, 2015 1 commit
    • Christian Schudt's avatar
      Revert fix for OF-874 because it introduced a critical regression. · c677c99b
      Christian Schudt authored
      Appearently there can only be one ServerItemsProvider. What happened here is that disco#items requests were now routed to SessionManager, which returned an empty result, which means service discovery fails.
      
      It seems like Openfire can only host items for the whole server, not for single users, so the real fix needs some more investigation.
      c677c99b
  17. 06 Feb, 2015 1 commit
  18. 03 Feb, 2015 1 commit
  19. 26 Jan, 2015 1 commit
  20. 14 Jan, 2015 1 commit
  21. 13 Jan, 2015 1 commit
    • Tom Evans's avatar
      OF-857: Mark connection closed before notifying · 4c4949eb
      Tom Evans authored
      The connection close listener initiates a presence broadcast to
      advertise its "unavailable" status. The current connection must be
      marked closed before this occurs, so the presence stanza will not be
      delivered to the newly closed connection.
      
      Note that the synchronized block alone does not accomplish this because
      the presence broadcast is delivered via that same thread that is
      currently closing the connection, thus it already possesses the sync
      object lock.
      
      Also, note that the SessionManager should exclude the originating JID
      when sending presence broadcasts to the user's other available
      session(s).
      4c4949eb
  22. 11 Jan, 2015 1 commit
    • Tom Evans's avatar
      OF-863: Fix multiple NPEs in cluster mode · b1599c97
      Tom Evans authored
      This patch fixes several NullPointerExceptions that were observed in an
      cluster when running under high load and latency, including related
      issues in the BOSH connector and hazelcast plugin. Some related logging
      improvements are also included.
      
      Some of the NPEs were generated during the startup phase before the
      server was fully initialized. These have been corrected by checking
      appropriate "ready state" indicators.
      
      In general, sessions hosted in remote cluster nodes that cannot be
      addressed due to timeouts during remote task execution should be
      considered temporarily "unavailable" to the cluster member that
      initiated the call.
      b1599c97
  23. 05 Aug, 2014 1 commit
    • Dave Cridland's avatar
      More S2S fixes · dc21027b
      Dave Cridland authored
      Kim 'Zash' Alvefur commented that an empty authzid in EXTERNAL wasn't working.
      
      This patch adds this handling, and also changes authorization checks from a
      domain.contains() to a domain.equals().
      dc21027b
  24. 06 Feb, 2014 1 commit
  25. 23 Sep, 2013 1 commit
  26. 20 Sep, 2013 1 commit
  27. 23 Feb, 2013 1 commit
  28. 07 Feb, 2010 1 commit
  29. 09 Nov, 2009 1 commit
  30. 30 Sep, 2009 1 commit
  31. 11 Jun, 2008 1 commit
  32. 15 Apr, 2008 1 commit
  33. 11 Apr, 2008 1 commit
  34. 18 Mar, 2008 1 commit
  35. 13 Mar, 2008 1 commit
  36. 18 Feb, 2008 1 commit
  37. 14 Feb, 2008 1 commit