From 144f939cfbc349771eed9cb98bb7dc7c0899ef3f Mon Sep 17 00:00:00 2001 From: Emmett Shear Date: Tue, 24 Aug 2010 11:26:47 -0700 Subject: [PATCH 1/6] Allow the use of JIDs where the server to connect to is not deducible from the JID, by allowing an optional override to the client. --- lib/xmpp4r-simple.rb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/xmpp4r-simple.rb b/lib/xmpp4r-simple.rb index b6df207..2a5fc57 100644 --- a/lib/xmpp4r-simple.rb +++ b/lib/xmpp4r-simple.rb @@ -82,11 +82,17 @@ class Simple # to the Jabber server and your status message will be set to the string # passed in as the status_message argument. # + # If you'd like to connect to a different talk server than the one which would + # be guessed from your jid, you may provide a server. For example, to connect + # to the gmail talk servers with a jid that doesn't end in @gmail.com, just provide + # 'talk.l.google.com' as the server. You may leave server as nil to use the default. + # # jabber = Jabber::Simple.new("me@example.com", "password", "Chat with me - Please!") - def initialize(jid, password, status = nil, status_message = "Available") + def initialize(jid, password, status = nil, status_message = "Available", server=nil) @jid = jid @password = password @disconnected = false + @server = server status(status, status_message) start_deferred_delivery_thread end @@ -391,7 +397,7 @@ def connect! # Connect jid = JID.new(@jid) my_client = Client.new(@jid) - my_client.connect + my_client.connect(@server) my_client.auth(@password) self.client = my_client From 35b75869dd89dac277a24fe9ae07518cecd9335e Mon Sep 17 00:00:00 2001 From: thelinuxlich Date: Tue, 21 May 2013 18:00:24 -0300 Subject: [PATCH 2/6] Adding optional server parameter --- lib/xmpp4r-simple.rb | 7 ++++--- xmpp4r-simple-0.8.8.gem | Bin 0 -> 17408 bytes 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 xmpp4r-simple-0.8.8.gem diff --git a/lib/xmpp4r-simple.rb b/lib/xmpp4r-simple.rb index b6df207..eaf9ff9 100644 --- a/lib/xmpp4r-simple.rb +++ b/lib/xmpp4r-simple.rb @@ -82,11 +82,12 @@ class Simple # to the Jabber server and your status message will be set to the string # passed in as the status_message argument. # - # jabber = Jabber::Simple.new("me@example.com", "password", "Chat with me - Please!") - def initialize(jid, password, status = nil, status_message = "Available") + # jabber = Jabber::Simple.new("me@example.com", "password", "Chat with me - Please!",'talk.l.google.com') + def initialize(jid, password, status = nil, status_message = "Available",server = nil) @jid = jid @password = password @disconnected = false + @server = server status(status, status_message) start_deferred_delivery_thread end @@ -391,7 +392,7 @@ def connect! # Connect jid = JID.new(@jid) my_client = Client.new(@jid) - my_client.connect + my_client.connect(@server) my_client.auth(@password) self.client = my_client diff --git a/xmpp4r-simple-0.8.8.gem b/xmpp4r-simple-0.8.8.gem new file mode 100644 index 0000000000000000000000000000000000000000..2a3e67966c405c584fb03ba351e327c746e4f2f1 GIT binary patch literal 17408 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 wTzT?M;j3{QnepaU Date: Thu, 30 Apr 2015 14:47:30 +0300 Subject: [PATCH 3/6] Added connection options --- lib/xmpp4r-simple.rb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/xmpp4r-simple.rb b/lib/xmpp4r-simple.rb index 08cd618..db11f0c 100644 --- a/lib/xmpp4r-simple.rb +++ b/lib/xmpp4r-simple.rb @@ -85,14 +85,18 @@ class Simple # If you'd like to connect to a different talk server than the one which would # be guessed from your jid, you may provide a server. For example, to connect # to the gmail talk servers with a jid that doesn't end in @gmail.com, just provide - # 'talk.l.google.com' as the server. You may leave server as nil to use the default. + # options {:host => 'talk.l.google.com'}. # - # jabber = Jabber::Simple.new("me@example.com", "password", "Chat with me - Please!", "Available", "host-not-from-jid.tld") - def initialize(jid, password, status = nil, status_message = "Available", server = nil) + # jabber = Jabber::Simple.new("me@example.com", "password", "Chat with me - Please!", "Available", {:host => "host-not-from-jid.tld", :port => 64321}) + def initialize(jid, password, status = nil, status_message = "Available", opts= {}) @jid = jid @password = password @disconnected = false - @server = server + @opts = { + :host => opts[:host], # nil by default as in xmpp4r. + :port => !opts[:port].nil? ? opts[:port] : 5222, # xmpp4r default. + :allow_tls => !opts[:allow_tls].nil? ? opts[:allow_tls] : true # xmpp4r default. + } status(status, status_message) start_deferred_delivery_thread end @@ -397,7 +401,8 @@ def connect! # Connect jid = JID.new(@jid) my_client = Client.new(@jid) - my_client.connect(@server) + my_client.allow_tls = @opts[:allow_tls] + my_client.connect @opts[:host], @opts[:port] my_client.auth(@password) self.client = my_client From 618867e2c3101c9323eb4f3296822b239dfd4a43 Mon Sep 17 00:00:00 2001 From: Alexander Pervakov Date: Thu, 30 Apr 2015 14:12:32 +0300 Subject: [PATCH 4/6] Change reconnect timeout according to RFC 6120 --- lib/xmpp4r-simple.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/xmpp4r-simple.rb b/lib/xmpp4r-simple.rb index db11f0c..6e9a39c 100644 --- a/lib/xmpp4r-simple.rb +++ b/lib/xmpp4r-simple.rb @@ -346,7 +346,8 @@ def send!(msg) retry unless attempts > 3 raise e rescue Errno::ECONNRESET => e - sleep (attempts^2) * 60 + 60 + # @see http://xmpp.org/rfcs/rfc6120.html#tcp-reconnect XMPP: Core - Reconnection + sleep 1 + rand(60) + (attempts - 1) * 20 disconnect reconnect retry unless attempts > 3 From 89b595f5f0dd3efbf2971b1cdf986b22c3dc758e Mon Sep 17 00:00:00 2001 From: Alexander Pervakov Date: Mon, 4 May 2015 15:15:49 +0300 Subject: [PATCH 5/6] Update CHANGELOG --- CHANGELOG | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 41d996a..cbae8db 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,19 @@ +xmpp4r-simple (0.8.9) + + [ Alexander Pervakov ] + * Changed reconnect timeout according to RFC 6120. + + [ Emmett Shear, thelinuxlich, Alexander Pervakov ] + * Adding connection options (host, port, allow_tls). + + [ David Rice ] + * Ruby 1.9 compatibility fix. + +-- Alexander Pervakov Monday, 04 May 2015 15:09:00 +0300 + xmpp4r-simple (0.8.8) - [ Blaine Cook] + [ Blaine Cook ] * Add xmpp4r-simple.gemspec, remove gem-related code from Rakefile -- Blaine Cook Wed, 30 Jul 2008 16:03:00 -0800 @@ -8,7 +21,7 @@ xmpp4r-simple (0.8.8) xmpp4r-simple (0.8.7) [ Blaine Cook ] - * If using Jabber::Simple in a DRb environment, the Jabber::Simple object + * If using Jabber::Simple in a DRb environment, the Jabber::Simple object will execute in the DRb server's environment to improve efficiency. * Jabber::Simple will now recover gracefully from server-side disconnects. * Updated Rakefile to pass tests on firebrigade (http://firebrigade.seattlerb.org) From f8de6e8e69891c7d0a478529560331118e7dfd1e Mon Sep 17 00:00:00 2001 From: Alexander Pervakov Date: Mon, 4 May 2015 15:16:18 +0300 Subject: [PATCH 6/6] Bump version to 0.8.9 --- xmpp4r-simple.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmpp4r-simple.gemspec b/xmpp4r-simple.gemspec index 63f7b3f..549995a 100644 --- a/xmpp4r-simple.gemspec +++ b/xmpp4r-simple.gemspec @@ -3,7 +3,7 @@ Gem::Specification.new do |s| s.add_development_dependency('rake') s.add_development_dependency('rcov') s.name = "xmpp4r-simple" - s.version = "0.8.8" + s.version = "0.8.9" s.author = "Blaine Cook" s.email = "romeda@gmail.com" s.homepage = "http://xmpp4r-simple.rubyforge.org/"