winevt_c 0.9.2 → 0.9.3
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
- data/ext/winevt/winevt_c.h +2 -1
- data/ext/winevt/winevt_query.c +3 -4
- data/ext/winevt/winevt_subscribe.c +4 -5
- data/ext/winevt/winevt_utils.cpp +6 -2
- data/lib/winevt/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8e0f057816ea6023a893cda0b9af765f4f0b47bab15491fb71862114be55e61
|
4
|
+
data.tar.gz: 2dee722cd48e235222fb891106ba4c8fbe80f5141db4fad0237784acd8804704
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 442e12311a0ad1f3d26255a4d841174072e4fd1f50ab9b113654231a95f3d779c1b91e04449e1126cd16432f11de9427b4436e9954ac0ae1fa78cfcc45b378a2
|
7
|
+
data.tar.gz: 9f8d8c1d10a1c589514039de18acb0a0c2910f99928d44d90c1a21b523e145e1946f585438f52f1a5a4ddde5c9a4b54503ce1f96aa9d30e9b4d20a5169fc135f
|
data/ext/winevt/winevt_c.h
CHANGED
@@ -41,7 +41,8 @@ void raise_system_error(VALUE error, DWORD errorCode);
|
|
41
41
|
VALUE render_to_rb_str(EVT_HANDLE handle, DWORD flags);
|
42
42
|
EVT_HANDLE connect_to_remote(LPWSTR computerName, LPWSTR domain,
|
43
43
|
LPWSTR username, LPWSTR password,
|
44
|
-
EVT_RPC_LOGIN_FLAGS flags
|
44
|
+
EVT_RPC_LOGIN_FLAGS flags,
|
45
|
+
DWORD *error_code);
|
45
46
|
WCHAR* get_description(EVT_HANDLE handle, LANGID langID, EVT_HANDLE hRemote);
|
46
47
|
VALUE get_values(EVT_HANDLE handle);
|
47
48
|
VALUE render_system_event(EVT_HANDLE handle, BOOL preserve_qualifiers);
|
data/ext/winevt/winevt_query.c
CHANGED
@@ -91,7 +91,7 @@ rb_winevt_query_initialize(VALUE argc, VALUE *argv, VALUE self)
|
|
91
91
|
EVT_HANDLE hRemoteHandle = NULL;
|
92
92
|
DWORD len;
|
93
93
|
VALUE wchannelBuf, wpathBuf;
|
94
|
-
DWORD err;
|
94
|
+
DWORD err = ERROR_SUCCESS;
|
95
95
|
|
96
96
|
rb_scan_args(argc, argv, "21", &channel, &xpath, &session);
|
97
97
|
Check_Type(channel, T_STRING);
|
@@ -104,9 +104,8 @@ rb_winevt_query_initialize(VALUE argc, VALUE *argv, VALUE self)
|
|
104
104
|
winevtSession->domain,
|
105
105
|
winevtSession->username,
|
106
106
|
winevtSession->password,
|
107
|
-
winevtSession->flags
|
108
|
-
|
109
|
-
err = GetLastError();
|
107
|
+
winevtSession->flags,
|
108
|
+
&err);
|
110
109
|
if (err != ERROR_SUCCESS) {
|
111
110
|
raise_system_error(rb_eRuntimeError, err);
|
112
111
|
}
|
@@ -208,9 +208,8 @@ rb_winevt_subscribe_subscribe(int argc, VALUE* argv, VALUE self)
|
|
208
208
|
winevtSession->domain,
|
209
209
|
winevtSession->username,
|
210
210
|
winevtSession->password,
|
211
|
-
winevtSession->flags
|
212
|
-
|
213
|
-
err = GetLastError();
|
211
|
+
winevtSession->flags,
|
212
|
+
&err);
|
214
213
|
if (err != ERROR_SUCCESS) {
|
215
214
|
raise_system_error(rb_eRuntimeError, err);
|
216
215
|
}
|
@@ -242,13 +241,13 @@ rb_winevt_subscribe_subscribe(int argc, VALUE* argv, VALUE self)
|
|
242
241
|
hSubscription =
|
243
242
|
EvtSubscribe(hRemoteHandle, hSignalEvent, path, query, hBookmark, NULL, NULL, flags);
|
244
243
|
if (!hSubscription) {
|
244
|
+
status = GetLastError();
|
245
245
|
if (hBookmark != NULL) {
|
246
246
|
EvtClose(hBookmark);
|
247
247
|
}
|
248
248
|
if (hSignalEvent != NULL) {
|
249
249
|
CloseHandle(hSignalEvent);
|
250
250
|
}
|
251
|
-
status = GetLastError();
|
252
251
|
if (rb_obj_is_kind_of(rb_session, rb_cSession)) {
|
253
252
|
rb_raise(rb_eRemoteHandlerError, "Remoting subscription is not working. errCode: %ld\n", status);
|
254
253
|
} else {
|
@@ -272,13 +271,13 @@ rb_winevt_subscribe_subscribe(int argc, VALUE* argv, VALUE self)
|
|
272
271
|
} else {
|
273
272
|
winevtSubscribe->bookmark = EvtCreateBookmark(NULL);
|
274
273
|
if (winevtSubscribe->bookmark == NULL) {
|
274
|
+
status = GetLastError();
|
275
275
|
if (hSubscription != NULL) {
|
276
276
|
EvtClose(hSubscription);
|
277
277
|
}
|
278
278
|
if (hSignalEvent != NULL) {
|
279
279
|
CloseHandle(hSignalEvent);
|
280
280
|
}
|
281
|
-
status = GetLastError();
|
282
281
|
raise_system_error(rb_eWinevtQueryError, status);
|
283
282
|
}
|
284
283
|
}
|
data/ext/winevt/winevt_utils.cpp
CHANGED
@@ -78,7 +78,7 @@ render_to_rb_str(EVT_HANDLE handle, DWORD flags)
|
|
78
78
|
|
79
79
|
EVT_HANDLE
|
80
80
|
connect_to_remote(LPWSTR computerName, LPWSTR domain, LPWSTR username, LPWSTR password,
|
81
|
-
EVT_RPC_LOGIN_FLAGS flags)
|
81
|
+
EVT_RPC_LOGIN_FLAGS flags, DWORD *error_code)
|
82
82
|
{
|
83
83
|
EVT_HANDLE hRemote = NULL;
|
84
84
|
EVT_RPC_LOGIN Credentials;
|
@@ -92,6 +92,10 @@ connect_to_remote(LPWSTR computerName, LPWSTR domain, LPWSTR username, LPWSTR pa
|
|
92
92
|
Credentials.Flags = flags;
|
93
93
|
|
94
94
|
hRemote = EvtOpenSession(EvtRpcLogin, &Credentials, 0, 0);
|
95
|
+
if (!hRemote) {
|
96
|
+
*error_code = GetLastError();
|
97
|
+
return hRemote;
|
98
|
+
}
|
95
99
|
|
96
100
|
SecureZeroMemory(&Credentials, sizeof(EVT_RPC_LOGIN));
|
97
101
|
|
@@ -569,13 +573,13 @@ render_system_event(EVT_HANDLE hEvent, BOOL preserve_qualifiers)
|
|
569
573
|
pRenderedValues,
|
570
574
|
&dwBufferUsed,
|
571
575
|
&dwPropertyCount);
|
576
|
+
status = GetLastError();
|
572
577
|
} else {
|
573
578
|
EvtClose(hContext);
|
574
579
|
rb_raise(rb_eRuntimeError, "Failed to malloc memory with %lu\n", status);
|
575
580
|
}
|
576
581
|
}
|
577
582
|
|
578
|
-
status = GetLastError();
|
579
583
|
if (ERROR_SUCCESS != status) {
|
580
584
|
EvtClose(hContext);
|
581
585
|
ALLOCV_END(vRenderedValues);
|
data/lib/winevt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: winevt_c
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroshi Hatake
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -161,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '0'
|
163
163
|
requirements: []
|
164
|
-
rubygems_version: 3.
|
164
|
+
rubygems_version: 3.1.6
|
165
165
|
signing_key:
|
166
166
|
specification_version: 4
|
167
167
|
summary: Windows Event Log API bindings from winevt.h.
|