win32-service 0.8.8 → 0.8.9
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +3 -2
- data/CHANGES +5 -0
- data/MANIFEST +3 -0
- data/lib/win32/daemon.rb +1 -2
- data/lib/win32/service.rb +4 -4
- data/lib/win32/windows/functions.rb +1 -1
- data/lib/win32/windows/structs.rb +5 -0
- data/test/test_win32_daemon.rb +1 -1
- data/test/test_win32_service.rb +1 -1
- data/win32-service.gemspec +3 -1
- metadata +16 -3
- metadata.gz.sig +0 -0
- data/lib/win32/windows/helper.rb +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c044a38b8fd66f998b0db20693a785662116fb3b
|
4
|
+
data.tar.gz: d2b046ab3d2b41d7bef5c6ef7061d712bb580163
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22a107a68f5931c3efc0ad941db38330427189472e77fbb4952219f140af83a0d67f99bd3f808d12b1c822a40022ff87638e5dfe2589ce30b17429c07c4ee8a2
|
7
|
+
data.tar.gz: 9bd9c2828ac50944a97a09cabb9c8dac296cee1b18efe77f0dec7936a940bfa63997ff8d4e88bd21cf9922216472158e181ee64804eab2cd1b12680689e19bd0
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
5#�LwN�";F�T9�� *:�o[q1,��m�]h@.WL%��"
|
2
|
+
������!��]E��#'F|<����Z,M��
|
3
|
+
��A��o�%Y��Tp�� ��U*ɈR�SS�����y�:# :�����txV���Іψ8X��QOU���{����uxm%ceh Xk��_��.��Ju�??�� SWe�m��E!tl�D���.lhu�-��J�nюM�>aUF����V9{�r����mfQ���˰���a$
|
data/CHANGES
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 0.8.9 - 26-Jun-2016
|
2
|
+
* Added the ffi-win32-extensions dependency.
|
3
|
+
* Changed the way service dependencies are determined.
|
4
|
+
* Removed the helper.rb file since it's no longer used.
|
5
|
+
|
1
6
|
== 0.8.8 - 24-Jun-2016
|
2
7
|
* Fixed the function prototypes for CreateEvent and AdjustTokenPrivileges
|
3
8
|
where I was using :bool instead of :int.
|
data/MANIFEST
CHANGED
@@ -13,6 +13,9 @@
|
|
13
13
|
* lib/win32-service.rb
|
14
14
|
* lib/win32/service.rb
|
15
15
|
* lib/win32/daemon.rb
|
16
|
+
* lib/win32/windows/constants.rb
|
17
|
+
* lib/win32/windows/functions.rb
|
18
|
+
* lib/win32/windows/structs.rb
|
16
19
|
* test/test_win32_daemon.rb
|
17
20
|
* test/test_win32_service_configure.rb
|
18
21
|
* test/test_win32_service_create.rb
|
data/lib/win32/daemon.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require_relative 'windows/helper'
|
2
1
|
require_relative 'windows/constants'
|
3
2
|
require_relative 'windows/structs'
|
4
3
|
require_relative 'windows/functions'
|
@@ -16,7 +15,7 @@ module Win32
|
|
16
15
|
extend Windows::ServiceFunctions
|
17
16
|
|
18
17
|
# The version of this library
|
19
|
-
VERSION = '0.8.
|
18
|
+
VERSION = '0.8.9'.freeze
|
20
19
|
|
21
20
|
private
|
22
21
|
|
data/lib/win32/service.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require 'ffi/win32/extensions'
|
2
2
|
require_relative 'windows/constants'
|
3
3
|
require_relative 'windows/structs'
|
4
4
|
require_relative 'windows/functions'
|
@@ -17,7 +17,7 @@ module Win32
|
|
17
17
|
extend Windows::ServiceFunctions
|
18
18
|
|
19
19
|
# The version of the win32-service library
|
20
|
-
VERSION = '0.8.
|
20
|
+
VERSION = '0.8.9'.freeze
|
21
21
|
|
22
22
|
# SCM security and access rights
|
23
23
|
|
@@ -886,7 +886,7 @@ module Win32
|
|
886
886
|
struct[:lpBinaryPathName].read_string,
|
887
887
|
struct[:lpLoadOrderGroup].read_string,
|
888
888
|
struct[:dwTagId],
|
889
|
-
struct
|
889
|
+
struct.dependencies,
|
890
890
|
struct[:lpServiceStartName].read_string,
|
891
891
|
struct[:lpDisplayName].read_string
|
892
892
|
)
|
@@ -1073,7 +1073,7 @@ module Win32
|
|
1073
1073
|
start_type = get_start_type(config_struct[:dwStartType])
|
1074
1074
|
error_ctrl = get_error_control(config_struct[:dwErrorControl])
|
1075
1075
|
|
1076
|
-
deps = config_struct
|
1076
|
+
deps = config_struct.dependencies
|
1077
1077
|
|
1078
1078
|
begin
|
1079
1079
|
buf = get_config2_info(handle_scs, SERVICE_CONFIG_DESCRIPTION)
|
@@ -41,7 +41,7 @@ module Windows
|
|
41
41
|
attach_pfunc :CloseServiceHandle, [:handle], :bool
|
42
42
|
|
43
43
|
attach_pfunc :ChangeServiceConfig, :ChangeServiceConfigA,
|
44
|
-
[:handle, :dword, :dword, :dword, :str, :str, :ptr, :
|
44
|
+
[:handle, :dword, :dword, :dword, :str, :str, :ptr, :ptr, :str, :str, :str],
|
45
45
|
:bool
|
46
46
|
|
47
47
|
attach_pfunc :ChangeServiceConfig2, :ChangeServiceConfig2A, [:handle, :dword, :ptr], :bool
|
@@ -61,6 +61,11 @@ module Windows
|
|
61
61
|
:lpServiceStartName, :pointer,
|
62
62
|
:lpDisplayName, :pointer
|
63
63
|
)
|
64
|
+
|
65
|
+
def dependencies
|
66
|
+
length = self[:lpServiceStartName].address - self[:lpDependencies].address - 1
|
67
|
+
self[:lpDependencies].read_bytes(length).split(0.chr)
|
68
|
+
end
|
64
69
|
end
|
65
70
|
|
66
71
|
class SERVICE_STATUS_PROCESS < FFI::Struct
|
data/test/test_win32_daemon.rb
CHANGED
data/test/test_win32_service.rb
CHANGED
data/win32-service.gemspec
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'win32-service'
|
5
|
-
spec.version = '0.8.
|
5
|
+
spec.version = '0.8.9'
|
6
6
|
spec.authors = ['Daniel J. Berger', 'Park Heesob']
|
7
7
|
spec.license = 'Artistic 2.0'
|
8
8
|
spec.email = 'djberg96@gmail.com'
|
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
]
|
23
23
|
|
24
24
|
spec.add_dependency('ffi')
|
25
|
+
spec.add_dependency('ffi-win32-extensions')
|
26
|
+
|
25
27
|
spec.add_development_dependency('test-unit')
|
26
28
|
spec.add_development_dependency('rake')
|
27
29
|
spec.add_development_dependency('win32-security')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: win32-service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
EJYzxdPOrx2n6NYR3Hk+vHP0U7UBSveI6+qx+ndQYaeyCn+GRX2PKS9h66YF/Q1V
|
32
32
|
tGSHgAmcLlkdGgan182qsE/4kKM=
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2016-06-
|
34
|
+
date: 2016-06-26 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ffi
|
@@ -47,6 +47,20 @@ dependencies:
|
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0'
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: ffi-win32-extensions
|
52
|
+
requirement: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
50
64
|
- !ruby/object:Gem::Dependency
|
51
65
|
name: test-unit
|
52
66
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,7 +138,6 @@ files:
|
|
124
138
|
- lib/win32/windows
|
125
139
|
- lib/win32/windows/constants.rb
|
126
140
|
- lib/win32/windows/functions.rb
|
127
|
-
- lib/win32/windows/helper.rb
|
128
141
|
- lib/win32/windows/structs.rb
|
129
142
|
- lib/win32-daemon.rb
|
130
143
|
- lib/win32-service.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/lib/win32/windows/helper.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'ffi'
|
2
|
-
|
3
|
-
class FFI::Pointer
|
4
|
-
def read_array_of_null_separated_strings
|
5
|
-
elements = []
|
6
|
-
loc = self
|
7
|
-
|
8
|
-
while element = loc.read_string
|
9
|
-
break if element.nil? || element == ""
|
10
|
-
elements << element
|
11
|
-
loc += element.size + 1
|
12
|
-
end
|
13
|
-
|
14
|
-
elements
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
module FFI
|
19
|
-
extend FFI::Library
|
20
|
-
|
21
|
-
ffi_lib :kernel32
|
22
|
-
|
23
|
-
attach_function :FormatMessage, :FormatMessageA,
|
24
|
-
[:ulong, :pointer, :ulong, :ulong, :pointer, :ulong, :pointer], :ulong
|
25
|
-
|
26
|
-
def win_error(function, err=FFI.errno)
|
27
|
-
flags = 0x00001000 | 0x00000200
|
28
|
-
buf = FFI::MemoryPointer.new(:char, 1024)
|
29
|
-
|
30
|
-
FormatMessage(flags, nil, err , 0x0409, buf, 1024, nil)
|
31
|
-
|
32
|
-
function + ': ' + buf.read_string.strip
|
33
|
-
end
|
34
|
-
|
35
|
-
def raise_windows_error(function, err=FFI.errno)
|
36
|
-
raise SystemCallError.new(win_error(function, err), err)
|
37
|
-
end
|
38
|
-
|
39
|
-
module_function :win_error
|
40
|
-
module_function :raise_windows_error
|
41
|
-
end
|