nserver 1.1.0 → 1.1.1

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.
Files changed (4) hide show
  1. data/History.txt +9 -0
  2. data/bin/nserver +11 -0
  3. data/lib/nserver.rb +14 -5
  4. metadata +2 -2
data/History.txt CHANGED
@@ -1,3 +1,12 @@
1
+ == 1.1.1 /
2
+
3
+ * Fixes to incoming IP address checks
4
+ * Read defaults from config file ($HOME/.nserverrc)
5
+ * It's a YAML file with (:bind_ip, :allowed_client_ips, and :port as keys)
6
+ * Don't explode when no 'RNotify' library present, just don't allow a server
7
+ to be instanciated. This lets the 'nclient' work on any machine.
8
+
9
+
1
10
  == 1.1.0 / 2007-11.07
2
11
 
3
12
  * Major feature - accept connections from any host
data/bin/nserver CHANGED
@@ -4,11 +4,22 @@ require 'rubygems'
4
4
  require 'daemons'
5
5
  require 'nserver'
6
6
  require 'getoptlong'
7
+ require 'yaml'
7
8
 
8
9
  bind_ip = nil
9
10
  allowed_client_ips = nil
10
11
  port = nil
11
12
 
13
+ ## Check for config file.
14
+ config_file = File.join( ENV['HOME'], '.nserverrc' )
15
+
16
+ if File.exists?( config_file )
17
+ config = YAML.load( File.open(config_file, 'r') {|f| f.read } )
18
+ bind_ip = config[:bind_ip]
19
+ allowed_client_ips = config[:allowed_client_ips]
20
+ port = config[:port]
21
+ end
22
+
12
23
  opts = GetoptLong.new(
13
24
  ['--bind-ip', GetoptLong::REQUIRED_ARGUMENT ],
14
25
  ['--allowed-client-ips', GetoptLong::REQUIRED_ARGUMENT ],
data/lib/nserver.rb CHANGED
@@ -1,12 +1,18 @@
1
- require 'RNotify'
1
+
2
+ begin
3
+ require 'RNotifyx'
4
+ RNOTIFY_FOUND = true
5
+ rescue LoadError
6
+ RNOTIFY_FOUND = false
7
+ end
8
+
2
9
  require 'gserver'
3
10
  require 'socket'
4
11
  require 'ipaddr'
5
12
 
6
13
  module NServer
7
- VERSION = '1.1.0'
14
+ VERSION = '1.1.1'
8
15
  class Server < GServer
9
-
10
16
  # Create a NServer::Server instance
11
17
  #
12
18
  # Options:
@@ -28,6 +34,9 @@ module NServer
28
34
  # msg_timeout::
29
35
  # Message display timeout. Default is 5000ms (5s).
30
36
  def initialize( opts = {} )
37
+ unless RNOTIFY_FOUND
38
+ raise StandardError.new("RNotify library not found.")
39
+ end
31
40
  opts[:port] ||= 10001
32
41
  opts[:host] ||= "127.0.0.1"
33
42
 
@@ -86,8 +95,8 @@ module NServer
86
95
 
87
96
  # Get and add a message to the list. GServer method.
88
97
  def serve(io)
89
- unless @allowed_clients.include?( IPAddr.new(io.peeraddr.last) )
90
- io.puts "#{io.addr.last} is not allowed."
98
+ unless @allowed_clients.any? {|allowed| allowed.include?(IPAddr.new(io.peeraddr.last)) }
99
+ io.puts "#{io.peeraddr.last} is not allowed."
91
100
  return
92
101
  end
93
102
  io.puts("Enter message, terminate with line break.")
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4.5
3
3
  specification_version: 2
4
4
  name: nserver
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.1.0
7
- date: 2007-11-07 00:00:00 -05:00
6
+ version: 1.1.1
7
+ date: 2007-11-08 00:00:00 -05:00
8
8
  summary: Notification server for ruby using libnotify
9
9
  require_paths:
10
10
  - lib