rfetion 0.3.9 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/rfetion/fetion.rb +22 -2
  3. data/rfetion.gemspec +2 -2
  4. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.9
1
+ 0.3.10
@@ -105,9 +105,24 @@ class Fetion
105
105
 
106
106
  def register
107
107
  @logger.info "fetion http register"
108
+ call = next_call
108
109
  arg = '<args><device type="PC" version="44" client-version="3.2.0540" /><caps value="simple-im;im-session;temp-group;personal-group" /><events value="contact;permission;system-message;personal-group" /><user-info attributes="all" /><presence><basic value="400" desc="" /></presence></args>'
109
110
 
110
- call = next_call
111
+ register_first(call, arg)
112
+
113
+ # get nonce, it failed, try again 16s later
114
+ begin
115
+ register_second(call, arg)
116
+ rescue
117
+ sleep(16)
118
+ register_second(call, arg)
119
+ end
120
+ @logger.info "fetion http register success"
121
+ end
122
+
123
+ def register_first(call, arg)
124
+ @logger.debug "fetion http register first"
125
+
111
126
  curl_exec(next_url, @ssic, FETION_SIPP)
112
127
 
113
128
  msg = sip_create("R fetion.com.cn SIP-C/2.0", {'F' => @sid, 'I' => call, 'Q' => '1 R'}, arg) + FETION_SIPP
@@ -125,13 +140,18 @@ class Fetion
125
140
  @logger.debug "salt: #{@salt}"
126
141
  @logger.debug "cnonce: #{@cnonce}"
127
142
  @logger.debug "response: #{@response}"
143
+ @logger.debug "fetion http register first success"
144
+ end
145
+
146
+ def register_second(call, arg)
147
+ @logger.debug "fetion http register second"
128
148
 
129
149
  msg = sip_create('R fetion.com.cn SIP-C/2.0', {'F' => @sid, 'I' => call, 'Q' => '2 R', 'A' => "Digest algorithm=\"SHA1-sess\",response=\"#{@response}\",cnonce=\"#{@cnonce}\",salt=\"#{@salt}\""}, arg) + FETION_SIPP
130
150
  curl_exec(next_url, @ssic, msg)
131
151
  response = curl_exec(next_url, @ssic, FETION_SIPP)
132
152
 
133
153
  raise FetionException.new('Fetion Error: Register failed.') unless response.is_a? Net::HTTPSuccess
134
- @logger.info "fetion http register success"
154
+ @logger.debug "fetion http register second success"
135
155
  end
136
156
 
137
157
  def get_buddy_list
data/rfetion.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rfetion}
8
- s.version = "0.3.9"
8
+ s.version = "0.3.10"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Richard Huang"]
12
- s.date = %q{2009-11-21}
12
+ s.date = %q{2009-11-22}
13
13
  s.description = %q{rfetion is a ruby gem for China Mobile fetion service that you can send SMS free.}
14
14
  s.email = %q{flyerhzm@gmail.com}
15
15
  s.executables = ["rfetion", "rfetion"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfetion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.9
4
+ version: 0.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-11-21 00:00:00 +08:00
12
+ date: 2009-11-22 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency