bpoweski-apnserver 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/apnserver.gemspec +5 -4
- data/bin/apnsend +6 -5
- data/bin/apnserverd +22 -12
- data/lib/apnserver/client.rb +1 -1
- metadata +11 -3
- data/History.txt +0 -4
- data/Manifest.txt +0 -23
    
        data/Rakefile
    CHANGED
    
    
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.0. | 
| 1 | 
            +
            0.0.8
         | 
    
        data/apnserver.gemspec
    CHANGED
    
    | @@ -5,7 +5,7 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{apnserver}
         | 
| 8 | 
            -
              s.version = "0.0. | 
| 8 | 
            +
              s.version = "0.0.8"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Ben Poweski"]
         | 
| @@ -17,9 +17,7 @@ Gem::Specification.new do |s| | |
| 17 17 | 
             
                "README.rdoc"
         | 
| 18 18 | 
             
              ]
         | 
| 19 19 | 
             
              s.files = [
         | 
| 20 | 
            -
                " | 
| 21 | 
            -
                 "Manifest.txt",
         | 
| 22 | 
            -
                 "README.rdoc",
         | 
| 20 | 
            +
                "README.rdoc",
         | 
| 23 21 | 
             
                 "Rakefile",
         | 
| 24 22 | 
             
                 "VERSION",
         | 
| 25 23 | 
             
                 "apnserver.gemspec",
         | 
| @@ -58,12 +56,15 @@ Gem::Specification.new do |s| | |
| 58 56 | 
             
                if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
         | 
| 59 57 | 
             
                  s.add_runtime_dependency(%q<eventmachine>, [">= 0"])
         | 
| 60 58 | 
             
                  s.add_runtime_dependency(%q<daemons>, [">= 0"])
         | 
| 59 | 
            +
                  s.add_runtime_dependency(%q<json>, [">= 0"])
         | 
| 61 60 | 
             
                else
         | 
| 62 61 | 
             
                  s.add_dependency(%q<eventmachine>, [">= 0"])
         | 
| 63 62 | 
             
                  s.add_dependency(%q<daemons>, [">= 0"])
         | 
| 63 | 
            +
                  s.add_dependency(%q<json>, [">= 0"])
         | 
| 64 64 | 
             
                end
         | 
| 65 65 | 
             
              else
         | 
| 66 66 | 
             
                s.add_dependency(%q<eventmachine>, [">= 0"])
         | 
| 67 67 | 
             
                s.add_dependency(%q<daemons>, [">= 0"])
         | 
| 68 | 
            +
                s.add_dependency(%q<json>, [">= 0"])
         | 
| 68 69 | 
             
              end
         | 
| 69 70 | 
             
            end
         | 
    
        data/bin/apnsend
    CHANGED
    
    | @@ -37,7 +37,6 @@ opts = GetoptLong.new( | |
| 37 37 | 
             
            port = nil
         | 
| 38 38 | 
             
            server = nil
         | 
| 39 39 | 
             
            notification = ApnServer::Notification.new
         | 
| 40 | 
            -
            token = nil
         | 
| 41 40 | 
             
            pem = nil
         | 
| 42 41 |  | 
| 43 42 | 
             
            opts.each do |opt, arg|
         | 
| @@ -60,24 +59,26 @@ opts.each do |opt, arg| | |
| 60 59 | 
             
              when '--custom'
         | 
| 61 60 | 
             
                notification.custom = arg
         | 
| 62 61 | 
             
              when '--b64-token'
         | 
| 63 | 
            -
                 | 
| 62 | 
            +
                notification.device_token = Base64::decode64(arg)
         | 
| 64 63 | 
             
              when '--hex-token'
         | 
| 65 | 
            -
                 | 
| 64 | 
            +
                notification.device_token  = arg.unpack('H*')
         | 
| 66 65 | 
             
              end
         | 
| 67 66 | 
             
            end
         | 
| 68 67 |  | 
| 69 68 |  | 
| 70 | 
            -
            if  | 
| 69 | 
            +
            if notification.device_token.nil?
         | 
| 71 70 | 
             
              usage  
         | 
| 72 71 | 
             
              exit
         | 
| 73 72 | 
             
            end
         | 
| 74 73 |  | 
| 75 74 | 
             
            if pem.nil?
         | 
| 76 75 | 
             
              @client = TCPSocket.new(server || 'localhost', port || 22195)
         | 
| 76 | 
            +
              @client.write(notification.to_bytes)  
         | 
| 77 77 | 
             
            else
         | 
| 78 78 | 
             
              @client = ApnServer::Client.new(pem, server || 'gateway.push.apple.com', port || 2195)
         | 
| 79 | 
            +
              @client.connect!
         | 
| 80 | 
            +
              @client.write(notification)
         | 
| 79 81 | 
             
            end
         | 
| 80 82 |  | 
| 81 | 
            -
            @client.write(notification.to_bytes)
         | 
| 82 83 |  | 
| 83 84 |  | 
    
        data/bin/apnserverd
    CHANGED
    
    | @@ -15,20 +15,32 @@ def usage | |
| 15 15 | 
             
              puts " --help                               this message"
         | 
| 16 16 | 
             
            end
         | 
| 17 17 |  | 
| 18 | 
            +
            def daemonize
         | 
| 19 | 
            +
              Daemonize.daemonize('apnserverd', 'apnserverd')
         | 
| 20 | 
            +
              @pid_file = '/var/run/apnserverd.pid'
         | 
| 21 | 
            +
              open(@pid_file,"w") {|f| f.write(Process.pid) } # copied from mongrel
         | 
| 22 | 
            +
              open(@pid_file,"w") do |f|
         | 
| 23 | 
            +
                f.write(Process.pid)
         | 
| 24 | 
            +
                File.chmod(0644, @pid_file)
         | 
| 25 | 
            +
              end 
         | 
| 26 | 
            +
            end
         | 
| 27 | 
            +
             | 
| 18 28 | 
             
            opts = GetoptLong.new(
         | 
| 19 29 | 
             
              ["--bind-address", "-b", GetoptLong::REQUIRED_ARGUMENT],
         | 
| 20 30 | 
             
              ["--proxy-port", "-P", GetoptLong::REQUIRED_ARGUMENT],
         | 
| 21 31 | 
             
              ["--server", "-s", GetoptLong::REQUIRED_ARGUMENT],
         | 
| 22 32 | 
             
              ["--port", "-p", GetoptLong::REQUIRED_ARGUMENT],
         | 
| 23 33 | 
             
              ["--pem", "-c", GetoptLong::REQUIRED_ARGUMENT],
         | 
| 24 | 
            -
              ["--help", "-h", GetoptLong::NO_ARGUMENT]
         | 
| 34 | 
            +
              ["--help", "-h", GetoptLong::NO_ARGUMENT],
         | 
| 35 | 
            +
              ["--daemon", "-d", GetoptLong::NO_ARGUMENT]
         | 
| 25 36 | 
             
            )
         | 
| 26 37 |  | 
| 27 38 | 
             
            bind_address = '0.0.0.0'
         | 
| 28 39 | 
             
            proxy_port = 22195
         | 
| 29 | 
            -
             | 
| 40 | 
            +
            host = 'gateway.push.apple.com'
         | 
| 30 41 | 
             
            port = 2295
         | 
| 31 42 | 
             
            pem = nil
         | 
| 43 | 
            +
            daemon = false
         | 
| 32 44 |  | 
| 33 45 | 
             
            opts.each do |opt, arg|
         | 
| 34 46 | 
             
              case opt
         | 
| @@ -37,13 +49,15 @@ opts.each do |opt, arg| | |
| 37 49 | 
             
              when '--bind-address'
         | 
| 38 50 | 
             
                bind_address = arg
         | 
| 39 51 | 
             
              when '--proxy-port'
         | 
| 40 | 
            -
             | 
| 52 | 
            +
                proxy_port = arg.to_i
         | 
| 41 53 | 
             
              when '--server'
         | 
| 42 | 
            -
              	 | 
| 54 | 
            +
              	host = arg
         | 
| 43 55 | 
             
              when '--port'
         | 
| 44 | 
            -
              	port = arg
         | 
| 56 | 
            +
              	port = arg.to_i
         | 
| 45 57 | 
             
              when '--pem'
         | 
| 46 58 | 
             
                pem = arg
         | 
| 59 | 
            +
              when '--daemon'
         | 
| 60 | 
            +
                daemon = true
         | 
| 47 61 | 
             
              end
         | 
| 48 62 | 
             
            end
         | 
| 49 63 |  | 
| @@ -51,13 +65,9 @@ if pem.nil? | |
| 51 65 | 
             
              usage
         | 
| 52 66 | 
             
              exit 1
         | 
| 53 67 | 
             
            else
         | 
| 54 | 
            -
               | 
| 55 | 
            -
              @pid_file = '/var/run/apnserverd.pid'
         | 
| 56 | 
            -
              open(@pid_file,"w") {|f| f.write(Process.pid) } # copied from mongrel
         | 
| 57 | 
            -
              open(@pid_file,"w") do |f|
         | 
| 58 | 
            -
            	  f.write(Process.pid)
         | 
| 59 | 
            -
                  File.chmod(0644, @pid_file)
         | 
| 60 | 
            -
              end 
         | 
| 68 | 
            +
              daemonize if daemon
         | 
| 61 69 | 
             
              server = ApnServer::Server.new(pem, bind_address, proxy_port)
         | 
| 70 | 
            +
              server.client.host = host
         | 
| 71 | 
            +
              server.client.port = port
         | 
| 62 72 | 
             
              server.start!
         | 
| 63 73 | 
             
            end
         | 
    
        data/lib/apnserver/client.rb
    CHANGED
    
    | @@ -18,7 +18,7 @@ module ApnServer | |
| 18 18 | 
             
                  @context.cert = OpenSSL::X509::Certificate.new(File.read(self.pem))
         | 
| 19 19 | 
             
                  @context.key  = OpenSSL::PKey::RSA.new(File.read(self.pem), self.password)
         | 
| 20 20 |  | 
| 21 | 
            -
                  @sock         = TCPSocket.new(self.host, self.port)
         | 
| 21 | 
            +
                  @sock         = TCPSocket.new(self.host, self.port.to_i)
         | 
| 22 22 | 
             
                  @ssl          = OpenSSL::SSL::SSLSocket.new(@sock, @context)
         | 
| 23 23 | 
             
                  @ssl.connect
         | 
| 24 24 |  | 
    
        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. | 
| 4 | 
            +
              version: 0.0.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Ben Poweski
         | 
| @@ -32,6 +32,16 @@ dependencies: | |
| 32 32 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 33 33 | 
             
                    version: "0"
         | 
| 34 34 | 
             
                version: 
         | 
| 35 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 36 | 
            +
              name: json
         | 
| 37 | 
            +
              type: :runtime
         | 
| 38 | 
            +
              version_requirement: 
         | 
| 39 | 
            +
              version_requirements: !ruby/object:Gem::Requirement 
         | 
| 40 | 
            +
                requirements: 
         | 
| 41 | 
            +
                - - ">="
         | 
| 42 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 43 | 
            +
                    version: "0"
         | 
| 44 | 
            +
                version: 
         | 
| 35 45 | 
             
            description: A toolkit for proxying and sending Apple Push Notifications
         | 
| 36 46 | 
             
            email: bpoweski@3factors.com
         | 
| 37 47 | 
             
            executables: 
         | 
| @@ -42,8 +52,6 @@ extensions: [] | |
| 42 52 | 
             
            extra_rdoc_files: 
         | 
| 43 53 | 
             
            - README.rdoc
         | 
| 44 54 | 
             
            files: 
         | 
| 45 | 
            -
            - History.txt
         | 
| 46 | 
            -
            - Manifest.txt
         | 
| 47 55 | 
             
            - README.rdoc
         | 
| 48 56 | 
             
            - Rakefile
         | 
| 49 57 | 
             
            - VERSION
         | 
    
        data/History.txt
    DELETED
    
    
    
        data/Manifest.txt
    DELETED
    
    | @@ -1,23 +0,0 @@ | |
| 1 | 
            -
            History.txt
         | 
| 2 | 
            -
            Manifest.txt
         | 
| 3 | 
            -
            PostInstall.txt
         | 
| 4 | 
            -
            README
         | 
| 5 | 
            -
            README.rdoc
         | 
| 6 | 
            -
            Rakefile
         | 
| 7 | 
            -
            bin/apns
         | 
| 8 | 
            -
            bin/apnserverd
         | 
| 9 | 
            -
            lib/apnserver.rb
         | 
| 10 | 
            -
            lib/apnserver/client.rb
         | 
| 11 | 
            -
            lib/apnserver/notification.rb
         | 
| 12 | 
            -
            lib/apnserver/payload.rb
         | 
| 13 | 
            -
            lib/apnserver/server.rb
         | 
| 14 | 
            -
            script/console
         | 
| 15 | 
            -
            script/console.cmd
         | 
| 16 | 
            -
            script/destroy
         | 
| 17 | 
            -
            script/destroy.cmd
         | 
| 18 | 
            -
            script/generate
         | 
| 19 | 
            -
            script/generate.cmd
         | 
| 20 | 
            -
            test/notification_test.rb
         | 
| 21 | 
            -
            test/payload_test.rb
         | 
| 22 | 
            -
            test/test_apnserver.rb
         | 
| 23 | 
            -
            test/test_helper.rb
         |