bpoweski-apnserver 0.0.17 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -10,11 +10,10 @@ opening up and tearing down SSL connections reapeated. To solve this problem an
10
10
  network server is introduced that queues are requests to the APN service and sends them via a
11
11
  persistent connection.
12
12
 
13
- h2. TODO
13
+ h2. Remaining Tasks
14
14
 
15
15
  * Implement feedback service mechanism
16
- * Investigate possible badge number issue
17
- * Implement a robust logging mechanism for transactions
16
+ * Implement robust notification sending in reactor periodic scheduler
18
17
 
19
18
  h2. APN Server Daemon
20
19
 
@@ -43,7 +42,6 @@ Usage: apnserverd [options] --pem /path/to/pem
43
42
 
44
43
  --daemon
45
44
  Runs process as daemon, not available on Windows
46
-
47
45
  </code>
48
46
  </pre>
49
47
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.17
1
+ 0.1.2
data/apnserver.gemspec ADDED
@@ -0,0 +1,71 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{apnserver}
8
+ s.version = "0.1.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Ben Poweski"]
12
+ s.date = %q{2009-09-18}
13
+ s.description = %q{A toolkit for proxying and sending Apple Push Notifications}
14
+ s.email = %q{bpoweski@3factors.com}
15
+ s.executables = ["apnsend", "apnserverd", "apnserverd.fedora.init"]
16
+ s.extra_rdoc_files = [
17
+ "README.textile"
18
+ ]
19
+ s.files = [
20
+ "README.textile",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "apnserver.gemspec",
24
+ "bin/apnsend",
25
+ "bin/apnserverd",
26
+ "bin/apnserverd.fedora.init",
27
+ "lib/apnserver.rb",
28
+ "lib/apnserver/client.rb",
29
+ "lib/apnserver/notification.rb",
30
+ "lib/apnserver/payload.rb",
31
+ "lib/apnserver/protocol.rb",
32
+ "lib/apnserver/server.rb",
33
+ "lib/apnserver/server_connection.rb",
34
+ "test/test_client.rb",
35
+ "test/test_helper.rb",
36
+ "test/test_notification.rb",
37
+ "test/test_payload.rb",
38
+ "test/test_protocol.rb"
39
+ ]
40
+ s.homepage = %q{http://github.com/bpoweski/apnserver}
41
+ s.rdoc_options = ["--charset=UTF-8"]
42
+ s.require_paths = ["lib"]
43
+ s.rubygems_version = %q{1.3.5}
44
+ s.summary = %q{Apple Push Notification Server}
45
+ s.test_files = [
46
+ "test/test_client.rb",
47
+ "test/test_helper.rb",
48
+ "test/test_notification.rb",
49
+ "test/test_payload.rb",
50
+ "test/test_protocol.rb"
51
+ ]
52
+
53
+ if s.respond_to? :specification_version then
54
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
55
+ s.specification_version = 3
56
+
57
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
58
+ s.add_runtime_dependency(%q<eventmachine>, [">= 0"])
59
+ s.add_runtime_dependency(%q<daemons>, [">= 0"])
60
+ s.add_runtime_dependency(%q<json>, [">= 0"])
61
+ else
62
+ s.add_dependency(%q<eventmachine>, [">= 0"])
63
+ s.add_dependency(%q<daemons>, [">= 0"])
64
+ s.add_dependency(%q<json>, [">= 0"])
65
+ end
66
+ else
67
+ s.add_dependency(%q<eventmachine>, [">= 0"])
68
+ s.add_dependency(%q<daemons>, [">= 0"])
69
+ s.add_dependency(%q<json>, [">= 0"])
70
+ end
71
+ end
data/bin/apnsend CHANGED
@@ -4,7 +4,6 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
  require 'logger'
5
5
  require 'getoptlong'
6
6
  require 'rubygems'
7
- gem 'bpoweski-apnserver'
8
7
  require 'apnserver'
9
8
  require 'base64'
10
9
  require 'socket'
@@ -54,7 +53,7 @@ opts.each do |opt, arg|
54
53
  when '--sound'
55
54
  notification.sound = arg
56
55
  when '--badge'
57
- notification.badge = arg
56
+ notification.badge = arg.to_i
58
57
  when '--custom'
59
58
  notification.custom = arg
60
59
  when '--b64-token'
data/bin/apnserverd CHANGED
@@ -16,7 +16,7 @@ def usage
16
16
  end
17
17
 
18
18
  def daemonize
19
- Daemonize.daemonize('apnserverd', 'apnserverd')
19
+ Daemonize.daemonize('/var/log/apnserverd.log', 'apnserverd')
20
20
  @pid_file = '/var/run/apnserverd.pid'
21
21
  open(@pid_file,"w") {|f| f.write(Process.pid) } # copied from mongrel
22
22
  open(@pid_file,"w") do |f|
@@ -65,10 +65,7 @@ if pem.nil?
65
65
  usage
66
66
  exit 1
67
67
  else
68
- if daemon
69
- daemonize
70
- $stdout = File.new('/var/log/apnserverd', 'a')
71
- end
68
+ daemonize if daemon
72
69
  server = ApnServer::Server.new(pem, bind_address, proxy_port)
73
70
  server.client.host = host
74
71
  server.client.port = port
@@ -31,7 +31,7 @@ module ApnServer
31
31
  end
32
32
 
33
33
  def write(notification)
34
- puts "[#{host}:#{port}] Device: #{notification.device_token.unpack('H*')} sending #{notification.json_payload}"
34
+ puts "#{Time.now} [#{host}:#{port}] Device: #{notification.device_token.unpack('H*')} sending #{notification.json_payload}"
35
35
  @ssl.write(notification.to_bytes)
36
36
  end
37
37
 
@@ -3,11 +3,11 @@ module ApnServer
3
3
 
4
4
  def post_init
5
5
  @address = Socket.unpack_sockaddr_in(self.get_peername)
6
- puts "[#{address.last}:#{address.first}] CONNECT"
6
+ puts "#{Time.now} [#{address.last}:#{address.first}] CONNECT"
7
7
  end
8
8
 
9
9
  def unbind
10
- puts "[#{address.last}:#{address.first}] DISCONNECT"
10
+ puts "#{Time.now} [#{address.last}:#{address.first}] DISCONNECT"
11
11
  end
12
12
 
13
13
  def receive_data(data)
@@ -11,7 +11,7 @@ module ApnServer
11
11
 
12
12
  def start!
13
13
  EventMachine::run do
14
- puts "Starting APN Server on #{bind_address}:#{port}"
14
+ puts "#{Time.now} Starting APN Server on #{bind_address}:#{port}"
15
15
 
16
16
  EM.start_server(bind_address, port, ApnServer::ServerConnection) do |s|
17
17
  s.queue = @queue
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bpoweski-apnserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Poweski
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-17 00:00:00 -07:00
12
+ date: 2009-09-18 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -56,6 +56,7 @@ files:
56
56
  - README.textile
57
57
  - Rakefile
58
58
  - VERSION
59
+ - apnserver.gemspec
59
60
  - bin/apnsend
60
61
  - bin/apnserverd
61
62
  - bin/apnserverd.fedora.init