vinesmod 0.4.5 → 0.4.5.2
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 -1
- data/bin/vines +5 -0
- data/lib/vines.rb +1 -21
- data/lib/vines/command/start.rb +9 -2
- data/lib/vines/config.rb +3 -0
- data/lib/vines/kit.rb +7 -0
- data/lib/vines/stream.rb +1 -0
- data/lib/vines/stream/server.rb +5 -1
- data/lib/vines/version.rb +1 -1
- data/vines.gemspec +2 -2
- metadata +4 -5
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ directory 'pkg'
|
|
13
13
|
|
14
14
|
desc 'Build distributable packages'
|
15
15
|
task :build => [:assets, :pkg] do
|
16
|
-
system 'gem build vines.gemspec && mv
|
16
|
+
system 'gem build vines.gemspec && mv vinesmod-*.gem pkg/'
|
17
17
|
end
|
18
18
|
|
19
19
|
Rake::TestTask.new(:test) do |test|
|
data/bin/vines
CHANGED
@@ -38,6 +38,10 @@ def parse(args)
|
|
38
38
|
opts.on('-v', '--version', 'Show version') do |version|
|
39
39
|
options[:version] = version
|
40
40
|
end
|
41
|
+
|
42
|
+
opts.on('-D', '--debug', 'Override log level') do |debug|
|
43
|
+
options[:debug] = debug
|
44
|
+
end
|
41
45
|
end
|
42
46
|
|
43
47
|
begin
|
@@ -83,6 +87,7 @@ end
|
|
83
87
|
opts = parse(ARGV)
|
84
88
|
check_config(opts)
|
85
89
|
command = Vines::Command.const_get(opts[:command].capitalize).new
|
90
|
+
|
86
91
|
begin
|
87
92
|
command.run(opts)
|
88
93
|
rescue SystemExit
|
data/lib/vines.rb
CHANGED
@@ -5,6 +5,7 @@ module Vines
|
|
5
5
|
:stream => 'http://etherx.jabber.org/streams'.freeze,
|
6
6
|
:client => 'jabber:client'.freeze,
|
7
7
|
:server => 'jabber:server'.freeze,
|
8
|
+
:dialback => 'jabber:server:dialback'.freeze,
|
8
9
|
:component => 'jabber:component:accept'.freeze,
|
9
10
|
:roster => 'jabber:iq:roster'.freeze,
|
10
11
|
:register => 'jabber:iq:register'.freeze,
|
@@ -32,27 +33,6 @@ module Vines
|
|
32
33
|
:si => 'http://jabber.org/protocol/si'.freeze,
|
33
34
|
:byte_streams => 'http://jabber.org/protocol/bytestreams'.freeze
|
34
35
|
}.freeze
|
35
|
-
|
36
|
-
module Log
|
37
|
-
@@logger = nil
|
38
|
-
def log
|
39
|
-
unless @@logger
|
40
|
-
@@logger = Logger.new(STDOUT)
|
41
|
-
@@logger.level = Logger::INFO
|
42
|
-
@@logger.progname = 'vines'
|
43
|
-
@@logger.formatter = Class.new(Logger::Formatter) do
|
44
|
-
def initialize
|
45
|
-
@time = "%Y-%m-%dT%H:%M:%SZ".freeze
|
46
|
-
@fmt = "[%s] %5s -- %s: %s\n".freeze
|
47
|
-
end
|
48
|
-
def call(severity, time, program, msg)
|
49
|
-
@fmt % [time.utc.strftime(@time), severity, program, msg2str(msg)]
|
50
|
-
end
|
51
|
-
end.new
|
52
|
-
end
|
53
|
-
@@logger
|
54
|
-
end
|
55
|
-
end
|
56
36
|
end
|
57
37
|
|
58
38
|
%w[
|
data/lib/vines/command/start.rb
CHANGED
@@ -6,7 +6,14 @@ module Vines
|
|
6
6
|
def run(opts)
|
7
7
|
raise 'vines [--pid FILE] start' unless opts[:args].size == 0
|
8
8
|
require opts[:config]
|
9
|
-
|
9
|
+
|
10
|
+
config = Config.instance
|
11
|
+
if opts[:debug]
|
12
|
+
config.debug = true
|
13
|
+
config.log("debug")
|
14
|
+
end
|
15
|
+
|
16
|
+
server = XmppServer.new(config)
|
10
17
|
daemonize(opts) if opts[:daemonize]
|
11
18
|
server.start
|
12
19
|
end
|
@@ -25,4 +32,4 @@ module Vines
|
|
25
32
|
end
|
26
33
|
end
|
27
34
|
end
|
28
|
-
end
|
35
|
+
end
|
data/lib/vines/config.rb
CHANGED
@@ -10,6 +10,7 @@ module Vines
|
|
10
10
|
LOG_LEVELS = %w[debug info warn error fatal].freeze
|
11
11
|
|
12
12
|
attr_reader :router
|
13
|
+
attr_accessor :debug
|
13
14
|
|
14
15
|
@@instance = nil
|
15
16
|
def self.configure(&block)
|
@@ -25,6 +26,8 @@ module Vines
|
|
25
26
|
@vhosts, @ports, @cluster = {}, {}, nil
|
26
27
|
@null = Storage::Null.new
|
27
28
|
@router = Router.new(self)
|
29
|
+
@debug = nil
|
30
|
+
|
28
31
|
instance_eval(&block)
|
29
32
|
raise "must define at least one virtual host" if @vhosts.empty?
|
30
33
|
|
data/lib/vines/kit.rb
CHANGED
@@ -31,5 +31,12 @@ module Vines
|
|
31
31
|
ensure
|
32
32
|
Socket.do_not_reverse_lookup = orig
|
33
33
|
end
|
34
|
+
|
35
|
+
# Generates dialback key as described in XEP-0185
|
36
|
+
def self.dialback_key(receiving_server, originating_server, stream_id)
|
37
|
+
sha = Digest::SHA2.new(256)
|
38
|
+
sha.update("#{receiving_server} #{originating_server} #{stream_id}")
|
39
|
+
sha.to_s
|
40
|
+
end
|
34
41
|
end
|
35
42
|
end
|
data/lib/vines/stream.rb
CHANGED
data/lib/vines/stream/server.rb
CHANGED
@@ -73,7 +73,10 @@ module Vines
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def ssl_handshake_completed
|
76
|
-
|
76
|
+
unless cert_domain_matches?(@remote_domain)
|
77
|
+
log.info { 'Cert domain not maches' }
|
78
|
+
close_connection
|
79
|
+
end
|
77
80
|
end
|
78
81
|
|
79
82
|
# Return an array of allowed authentication mechanisms advertised as
|
@@ -137,6 +140,7 @@ module Vines
|
|
137
140
|
attrs = {
|
138
141
|
'xmlns' => NAMESPACES[:server],
|
139
142
|
'xmlns:stream' => NAMESPACES[:stream],
|
143
|
+
# 'xmlns:db' => NAMESPACES[:dialback],
|
140
144
|
'xml:lang' => 'en',
|
141
145
|
'id' => Kit.uuid,
|
142
146
|
'from' => @domain,
|
data/lib/vines/version.rb
CHANGED
data/vines.gemspec
CHANGED
@@ -3,8 +3,8 @@ require './lib/vines/version'
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'vinesmod'
|
5
5
|
s.version = Vines::VERSION
|
6
|
-
s.summary = %q[
|
7
|
-
s.description = %q[
|
6
|
+
s.summary = %q[VinesMod is fork of Vines XMPP chat server]
|
7
|
+
s.description = %q[VinesMod goal is to make full featured XMPP server]
|
8
8
|
|
9
9
|
s.authors = ['David Graham', 'Damian Lesiuk']
|
10
10
|
s.email = %w[ja@lesiuk.net]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vinesmod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.5
|
4
|
+
version: 0.4.5.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-10-
|
13
|
+
date: 2012-10-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -236,8 +236,7 @@ dependencies:
|
|
236
236
|
- - ! '>='
|
237
237
|
- !ruby/object:Gem::Version
|
238
238
|
version: '0'
|
239
|
-
description:
|
240
|
-
connections, using EventMachine and Nokogiri.
|
239
|
+
description: VinesMod goal is to make full featured XMPP server
|
241
240
|
email:
|
242
241
|
- ja@lesiuk.net
|
243
242
|
executables:
|
@@ -419,5 +418,5 @@ rubyforge_project:
|
|
419
418
|
rubygems_version: 1.8.24
|
420
419
|
signing_key:
|
421
420
|
specification_version: 3
|
422
|
-
summary:
|
421
|
+
summary: VinesMod is fork of Vines XMPP chat server
|
423
422
|
test_files: []
|