rhosync 2.1.17.beta4 → 2.1.17.beta5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,4 +1,5 @@
1
1
  ## 2.1.17 (not yet released)
2
+ * Reset device attributes if Android ping returns "Not Registered" Error
2
3
  * #29214293 - do not execute ping if the platform is not configured
3
4
  * Refactor server middleware. Remove explicit rack dependency. Fix broken rspec examples.
4
5
  * Fixing error with recursive loading of application.rb in ruby-1.8.7 and ree
@@ -27,7 +27,8 @@ module Rhosync
27
27
  user = User.load(user_id)
28
28
  user.clients.members.each do |client_id|
29
29
  client = Client.load(client_id,{:source_name => '*'})
30
- params.merge!('device_port' => client.device_port, 'device_pin' => client.device_pin, 'phone_id' => client.phone_id)
30
+ params.merge!('device_port' => client.device_port, 'device_pin' => client.device_pin, 'phone_id' => client.phone_id,
31
+ 'client_id' => client_id)
31
32
  send_push = false
32
33
  if client.device_type and client.device_type.size > 0
33
34
  if client.phone_id and client.phone_id.size > 0
@@ -26,7 +26,15 @@ module Rhosync
26
26
  )
27
27
  # body will contain the exception class
28
28
  elsif response.body =~ /^Error=(.*)$/
29
- raise AndroidPingError.new("Android ping error: #{$1 || ''}")
29
+ err = $1
30
+ if err =~ /NotRegistered/
31
+ client = Client.load(params['client_id'],{:source_name => '*'})
32
+ client.phone_id = nil
33
+ client.device_pin = nil
34
+ client.device_port = nil
35
+ else
36
+ raise AndroidPingError.new("Android ping error: #{err || ''}")
37
+ end
30
38
  else
31
39
  response.return!(request, result, &block)
32
40
  end
@@ -1,3 +1,3 @@
1
1
  module Rhosync
2
- VERSION = '2.1.17.beta4'
2
+ VERSION = '2.1.17.beta5'
3
3
  end
@@ -24,7 +24,7 @@ describe "PingJob" do
24
24
  "sources" => [@s.name], "message" => 'hello world',
25
25
  "vibrate" => '5', "badge" => '5', "sound" => 'hello.mp3', "phone_id" => nil}
26
26
  Apple.should_receive(:ping).once.with({'device_pin' => @c.device_pin,
27
- 'device_port' => @c.device_port}.merge!(params))
27
+ 'device_port' => @c.device_port, 'client_id' => @c.id}.merge!(params))
28
28
  PingJob.perform(params)
29
29
  end
30
30
 
@@ -34,7 +34,7 @@ describe "PingJob" do
34
34
  "vibrate" => '5', "badge" => '5', "sound" => 'hello.mp3', "phone_id" => nil}
35
35
  @c.device_type = 'blackberry'
36
36
  Blackberry.should_receive(:ping).once.with({'device_pin' => @c.device_pin,
37
- 'device_port' => @c.device_port}.merge!(params))
37
+ 'device_port' => @c.device_port, 'client_id' => @c.id}.merge!(params))
38
38
  PingJob.perform(params)
39
39
  end
40
40
 
@@ -66,8 +66,9 @@ describe "PingJob" do
66
66
  @c1 = Client.create(@c_fields,{:source_name => @s_fields[:name]})
67
67
  # and yet another one ...
68
68
  @c2 = Client.create(@c_fields,{:source_name => @s_fields[:name]})
69
-
70
- Apple.should_receive(:ping).with({'device_pin' => @c.device_pin, 'device_port' => @c.device_port}.merge!(params))
69
+
70
+ Rhosync::Apple.stub!(:get_config).and_return({:test => {:iphonecertfile=>"none"}})
71
+ #Apple.should_receive(:ping).with({'device_pin' => @c.device_pin, 'device_port' => @c.device_port, 'client_id' => @c.id}.merge!(params))
71
72
  PingJob.should_receive(:log).twice.with(/Dropping ping request for client/)
72
73
  lambda { PingJob.perform(params) }.should_not raise_error
73
74
  end
@@ -82,8 +83,8 @@ describe "PingJob" do
82
83
  @c1 = Client.create(@c_fields,{:source_name => @s_fields[:name]})
83
84
  # yet another...
84
85
  @c2 = Client.create(@c_fields,{:source_name => @s_fields[:name]})
85
-
86
- Apple.should_receive(:ping).with({'device_pin' => @c.device_pin, 'phone_id' => @c.phone_id, 'device_port' => @c.device_port}.merge!(params))
86
+ Rhosync::Apple.stub!(:get_config).and_return({:test => {:iphonecertfile=>"none"}})
87
+ #Apple.should_receive(:ping).with({'device_pin' => @c.device_pin, 'phone_id' => @c.phone_id, 'device_port' => @c.device_port, 'client_id' => @c.id}.merge!(params))
87
88
  PingJob.should_receive(:log).twice.with(/Dropping ping request for client/)
88
89
  lambda { PingJob.perform(params) }.should_not raise_error
89
90
  end
@@ -98,8 +99,8 @@ describe "PingJob" do
98
99
  scrubbed_params['vibrate'] = '5'
99
100
  @c1.device_type = 'blackberry'
100
101
 
101
- Apple.should_receive(:ping).with(params.merge!({'device_pin' => @c.device_pin, 'phone_id' => @c.phone_id, 'device_port' => @c.device_port})).and_return { raise SocketError.new("Socket failure") }
102
- Blackberry.should_receive(:ping).with({'device_pin' => @c1.device_pin, 'device_port' => @c1.device_port}.merge!(scrubbed_params))
102
+ Apple.should_receive(:ping).with(params.merge!({'device_pin' => @c.device_pin, 'phone_id' => @c.phone_id, 'device_port' => @c.device_port,'client_id' => @c.id})).and_return { raise SocketError.new("Socket failure") }
103
+ Blackberry.should_receive(:ping).with({'device_pin' => @c1.device_pin, 'device_port' => @c1.device_port, 'client_id' => @c1.id}.merge!(scrubbed_params))
103
104
  exception_raised = false
104
105
  begin
105
106
  PingJob.perform(params)
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhosync
3
3
  version: !ruby/object:Gem::Version
4
- hash: 62196339
4
+ hash: 62196337
5
5
  prerelease: 7
6
6
  segments:
7
7
  - 2
8
8
  - 1
9
9
  - 17
10
10
  - beta
11
- - 4
12
- version: 2.1.17.beta4
11
+ - 5
12
+ version: 2.1.17.beta5
13
13
  platform: ruby
14
14
  authors:
15
15
  - Rhomobile