netsoul 1.6.0 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/netsoul-ruby +9 -10
- data/lib/netsoul/config.rb +24 -11
- data/lib/netsoul/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b43af38649f019edff2b067bc66257487e243e2f
|
4
|
+
data.tar.gz: b0633c0e8827bce922e290cc79fc401dd9c081fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e1bff48bdd2697033abc87d4cde2a0f5748c362fe36a0dc35b27aef055f0ca29a2da13707c85a2c234db10a125a2fc3c8cc8cb023b8b31ddf081f7670b0e702
|
7
|
+
data.tar.gz: 50973addb57c1e059eaee7617a52f13cbf454d72506d3052dea556df1ffcb8a9032c599726ba9712bd5d64fbc55eabbf1e02482fee79a3f5400d8415cae6f3af
|
data/bin/netsoul-ruby
CHANGED
@@ -51,10 +51,13 @@ module Netsoul
|
|
51
51
|
@sock = TCPSocket.new(@config.server_host, @config.server_port)
|
52
52
|
fail Netsoul::SocketError, 'Could not open a socket. Connection is unavailable.'.freeze unless @sock
|
53
53
|
_cmd, _socket_num, md5_hash, client_ip, client_port, _server_timestamp = sock_get.split
|
54
|
+
|
54
55
|
@config.build_user_connection_info md5_hash: md5_hash, client_ip: client_ip, client_port: client_port
|
56
|
+
|
55
57
|
auth_ag
|
56
58
|
auth_method
|
57
59
|
auth_status
|
60
|
+
|
58
61
|
@started = true
|
59
62
|
end
|
60
63
|
|
@@ -75,8 +78,8 @@ module Netsoul
|
|
75
78
|
sock, = IO.select([@sock], nil, nil, SOCKET_READ_TIMEOUT)
|
76
79
|
fail Netsoul::SocketError, 'Timeout or fail on read socket' if sock.nil? || sock.empty?
|
77
80
|
res = sock.first.gets
|
78
|
-
log :info, "[get ] #{res.chomp}"
|
79
|
-
res
|
81
|
+
log :info, "[get ] #{res.chomp}" if res
|
82
|
+
res || ''
|
80
83
|
end
|
81
84
|
|
82
85
|
def sock_close
|
@@ -99,12 +102,7 @@ OptionParser.new do |opts|
|
|
99
102
|
opts.separator 'Netsoul-Ruby options:'.freeze
|
100
103
|
|
101
104
|
opts.on('-c'.freeze, '--config FILE'.freeze, 'Configuration file in YAML'.freeze) do |file|
|
102
|
-
options[:
|
103
|
-
unless File.file?(options[:config])
|
104
|
-
puts '[ERROR] Configuration is not a valid file'
|
105
|
-
exit
|
106
|
-
end
|
107
|
-
options[:user_opts] = YAML.load_file(options[:config])
|
105
|
+
options[:user_opts] = YAML.load_file(file) if File.file?(file)
|
108
106
|
end
|
109
107
|
|
110
108
|
opts.on('-h', '--help', 'Display this screen') do
|
@@ -113,8 +111,9 @@ OptionParser.new do |opts|
|
|
113
111
|
end
|
114
112
|
end.parse!
|
115
113
|
|
116
|
-
unless
|
117
|
-
|
114
|
+
unless ENV.to_a.count { |k, _v| %w(NETSOUL_LOGIN NETSOUL_SOCKS_PASSWORD).include?(k) } == 2 ||
|
115
|
+
ENV.to_a.count { |k, _v| %w(NETSOUL_LOGIN NETSOUL_UNIX_PASSWORD NETSOUL_AUTH_METHOD).include?(k) } == 3
|
116
|
+
puts '[ERROR] You have to specify a configuration file or environment variables'
|
118
117
|
exit
|
119
118
|
end
|
120
119
|
|
data/lib/netsoul/config.rb
CHANGED
@@ -17,20 +17,33 @@ module Netsoul
|
|
17
17
|
|
18
18
|
attr_reader :client_name
|
19
19
|
|
20
|
-
#
|
20
|
+
# Supported environment variables:
|
21
|
+
#
|
22
|
+
# +NETSOUL_SERVER_HOST+: Netsoul server host, default 'ns-server.epita.fr'
|
23
|
+
# +NETSOUL_SERVER_PORT+: Netsoul server port, default 4242
|
24
|
+
# +NETSOUL_LOGIN+: IONIS account name
|
25
|
+
# +NETSOUL_SOCKS_PASSWORD+: IONIS socks password
|
26
|
+
# +NETSOUL_UNIX_PASSWORD+: IONIS unix password
|
27
|
+
# +NETSOUL_AUTH_METHOD+: Authentication method, default :std. Valid options are => @see +Config::AUTH_METHODS+
|
28
|
+
# +NETSOUL_STATE+: User status, default is :none. Valid options are => @see +Config::USER_STATES+
|
29
|
+
# +NETSOUL_LOCATION+: User location is free text of your position. If you ar in IONIS network an automatic mapping is proceed to detect your location
|
30
|
+
# +NETSOUL_USER_GROUP+: Free text specifying your promo or whatever else
|
31
|
+
# +NETSOUL_CLIENT_NAME+: Redefine the client name exposed to the Netsoul server
|
32
|
+
#
|
33
|
+
# rubocop:disable all
|
21
34
|
def initialize(opts = {})
|
22
|
-
@server_host = opts.fetch(:server_host, 'ns-server.epita.fr'.freeze)
|
23
|
-
@server_port = Integer(opts.fetch(:server_port, 4242))
|
24
|
-
@login = opts.fetch(:login, 'ionis'.freeze)
|
25
|
-
@socks_password = opts.fetch(:socks_password, 'socks_password'.freeze)
|
26
|
-
@unix_password = opts.fetch(:unix_password, 'unix_password'.freeze)
|
27
|
-
@auth_method = AUTH_METHODS.include?(opts[:auth_method]) ? opts[:auth_method] : :std
|
28
|
-
@state = USER_STATES.include?(opts[:state]) ? opts[:state] : :none
|
29
|
-
@location = opts.fetch(:location, 'Home'.freeze)
|
30
|
-
@user_group = opts.fetch(:user_group, 'ETNA_2008'.freeze)
|
35
|
+
@server_host = ENV['NETSOUL_SERVER_HOST'] || opts.fetch(:server_host, 'ns-server.epita.fr'.freeze)
|
36
|
+
@server_port = Integer(ENV['NETSOUL_SERVER_PORT'] || opts.fetch(:server_port, 4242))
|
37
|
+
@login = ENV['NETSOUL_LOGIN'] || opts.fetch(:login, 'ionis'.freeze)
|
38
|
+
@socks_password = ENV['NETSOUL_SOCKS_PASSWORD'] || opts.fetch(:socks_password, 'socks_password'.freeze)
|
39
|
+
@unix_password = ENV['NETSOUL_UNIX_PASSWORD'] || opts.fetch(:unix_password, 'unix_password'.freeze)
|
40
|
+
@auth_method = (ENV['NETSOUL_AUTH_METHOD'] || (AUTH_METHODS.include?(opts[:auth_method]) ? opts[:auth_method] : :std)).to_sym
|
41
|
+
@state = (ENV['NETSOUL_STATE'] || (USER_STATES.include?(opts[:state]) ? opts[:state] : :none)).to_sym
|
42
|
+
@location = ENV['NETSOUL_LOCATION'] || opts.fetch(:location, 'Home'.freeze)
|
43
|
+
@user_group = ENV['NETSOUL_USER_GROUP'] || opts.fetch(:user_group, 'ETNA_2008'.freeze)
|
31
44
|
@user_connection_info = {}
|
32
45
|
|
33
|
-
@client_name = opts.fetch(:client_name, '(Netsoul-Ruby) -> { Christian Kakesa, since 2009}'.freeze)
|
46
|
+
@client_name = ENV['NETSOUL_CLIENT_NAME'] || opts.fetch(:client_name, '(Netsoul-Ruby) -> { Christian Kakesa, since 2009}'.freeze)
|
34
47
|
end
|
35
48
|
|
36
49
|
def build_user_connection_info(opts = {})
|
data/lib/netsoul/version.rb
CHANGED