win32-eventlog 0.4.2 → 0.4.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.
data/CHANGES CHANGED
@@ -1,3 +1,10 @@
1
+ = 0.4.3 - 18-Dec-2006
2
+ * Removed the FORMAT_MESSAGE_FROM_SYSTEM flag to the FormatMessage function
3
+ in the get_description private method because it could sometimes return
4
+ bogus information. Thanks go to Greg Holmes for the spot.
5
+ * Added the string_inserts member to the EventLogStruct. This contains an
6
+ array of only the raw string inserts, rather than the entire text message.
7
+
1
8
  = 0.4.2 - 6-Aug-2006
2
9
  * Fixed a bug in the EventLog.read method related to the
3
10
  EVENTLOG_BACKWARDS_READ flag.
data/README CHANGED
@@ -44,11 +44,8 @@ installed or they're not in your %PATH%. If you have MSVC++, you should have
44
44
  them somewhere on your system.
45
45
 
46
46
  = Known Issues
47
- You may see this warning during the build and/or test phase:
48
-
49
- LINK : warning LNK4068: /MACHINE not specified; defaulting to X86
50
-
51
- You may ignore this warning.
47
+ The code currently only checks the EventMessage file, it does not check the
48
+ CategoryMessage or ParameterMessage files.
52
49
 
53
50
  = License
54
51
  Ruby's
data/install.rb ADDED
@@ -0,0 +1,13 @@
1
+ # For those who don't like gems...
2
+ require 'rbconfig'
3
+ require 'ftools'
4
+ include Config
5
+
6
+ sitelibdir = CONFIG['sitelibdir']
7
+ installdir = sitelibdir + '/win32'
8
+ file1 = 'lib\win32\eventlog.rb'
9
+ file2 = 'lib\win32\mc.rb'
10
+
11
+ Dir.mkdir(installdir) unless File.exists?(installdir)
12
+ File.copy(file1, installdir, true)
13
+ File.copy(file2, installdir, true)
@@ -29,7 +29,7 @@ module Win32
29
29
  extend Windows::Error
30
30
  extend Windows::Registry
31
31
 
32
- VERSION = '0.4.2'
32
+ VERSION = '0.4.3'
33
33
 
34
34
  # Aliased read flags
35
35
  FORWARDS_READ = EVENTLOG_FORWARDS_READ
@@ -53,7 +53,7 @@ module Win32
53
53
 
54
54
  EventLogStruct = Struct.new('EventLogStruct', :record_number,
55
55
  :time_generated, :time_written, :event_id, :event_type, :category,
56
- :source, :computer, :user, :description
56
+ :source, :computer, :user, :string_inserts, :description
57
57
  )
58
58
 
59
59
  # The name of the event log source. This will typically be
@@ -430,6 +430,10 @@ module Win32
430
430
  # ignored. If no flags are specified, then the default flags are:
431
431
  #
432
432
  # EventLog::SEQUENTIAL_READ | EventLog::FORWARDS_READ
433
+ #
434
+ # Note that, if you're performing a SEEK_READ, then the offset must
435
+ # refer to a record number that actually exists. The default of 0
436
+ # may or may not work for your particular event log.
433
437
  #
434
438
  # The EventLogStruct struct contains the following members:
435
439
  #
@@ -443,6 +447,7 @@ module Win32
443
447
  # computer # String
444
448
  # user # String or nil
445
449
  # description # String or nil
450
+ # string_inserts # An array of Strings or nil
446
451
  #
447
452
  # If no block is given the method returns an array of EventLogStruct's.
448
453
  #
@@ -473,7 +478,7 @@ module Win32
473
478
  computer = buf[56 + event_source.length + 1..-1].nstrip
474
479
 
475
480
  user = get_user(buf)
476
- desc = get_description(buf, event_source)
481
+ strings, desc = get_description(buf, event_source)
477
482
 
478
483
  struct.source = event_source
479
484
  struct.computer = computer
@@ -484,6 +489,7 @@ module Win32
484
489
  struct.event_type = get_event_type(buf[24,2].unpack('S').first)
485
490
  struct.user = user
486
491
  struct.category = buf[28,2].unpack('S').first
492
+ struct.string_inserts = strings
487
493
  struct.description = desc
488
494
 
489
495
  if block_given?
@@ -646,15 +652,17 @@ module Win32
646
652
  struct
647
653
  end
648
654
 
649
- # Private method that gets the event description (text) based on data
650
- # from the EVENTLOGRECORD buffer.
655
+ # Private method that gets the string inserts (Array) and the full
656
+ # event description (String) based on data from the EVENTLOGRECORD
657
+ # buffer.
651
658
  #
652
659
  def get_description(rec, event_source)
653
- str = rec[ rec[36,4].unpack('L').first .. -1]
660
+ str = rec[rec[36,4].unpack('L').first .. -1]
654
661
  num = rec[26,2].unpack('S').first # NumStrings
655
662
  hkey = [0].pack('L')
656
663
  key = BASE_KEY + "#{@source}\\#{event_source}"
657
664
  buf = 0.chr * 1024
665
+ va_list = nil
658
666
 
659
667
  if num == 0
660
668
  va_list_ptr = 0.chr * 4
@@ -684,7 +692,6 @@ module Win32
684
692
  if hmodule != 0
685
693
  FormatMessage(
686
694
  FORMAT_MESSAGE_FROM_HMODULE |
687
- FORMAT_MESSAGE_FROM_SYSTEM |
688
695
  FORMAT_MESSAGE_ARGUMENT_ARRAY,
689
696
  hmodule,
690
697
  event_id,
@@ -693,6 +700,7 @@ module Win32
693
700
  buf.size,
694
701
  va_list_ptr
695
702
  )
703
+
696
704
  FreeLibrary(hmodule)
697
705
  end
698
706
  }
@@ -700,7 +708,7 @@ module Win32
700
708
 
701
709
  RegCloseKey(hkey)
702
710
  end
703
- buf.strip
711
+ [va_list, buf.strip]
704
712
  end
705
713
 
706
714
  # Private method that retrieves the user name based on data in the
@@ -751,4 +759,4 @@ module Win32
751
759
  end
752
760
  end
753
761
  end
754
- end
762
+ end
@@ -0,0 +1,24 @@
1
+ require "rubygems"
2
+
3
+ spec = Gem::Specification.new do |gem|
4
+ gem.name = "win32-eventlog"
5
+ gem.version = "0.4.3"
6
+ gem.author = "Daniel J. Berger"
7
+ gem.email = "djberg96@gmail.com"
8
+ gem.homepage = "http://www.rubyforge.org/projects/win32utils"
9
+ gem.platform = Gem::Platform::RUBY
10
+ gem.summary = "Interface for the MS Windows Event Log."
11
+ gem.description = "Interface for the MS Windows Event Log."
12
+ gem.test_file = "test/ts_all.rb"
13
+ gem.has_rdoc = true
14
+ gem.files = Dir["lib/win32/*.rb"] + Dir["test/*"] + Dir["[A-Z]*"]
15
+ gem.files.reject! { |fn| fn.include? "CVS" }
16
+ gem.require_path = "lib"
17
+ gem.extra_rdoc_files = ["README", "CHANGES", "doc/tutorial.txt"]
18
+ gem.add_dependency("windows-pr", ">= 0.5.0")
19
+ end
20
+
21
+ if $0 == __FILE__
22
+ Gem.manage_gems
23
+ Gem::Builder.new(spec).build
24
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: win32-eventlog
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.4.2
7
- date: 2006-08-06 00:00:00 -06:00
6
+ version: 0.4.3
7
+ date: 2006-12-18 00:00:00 -07:00
8
8
  summary: Interface for the MS Windows Event Log.
9
9
  require_paths:
10
10
  - lib
@@ -31,7 +31,6 @@ authors:
31
31
  files:
32
32
  - lib/win32/eventlog.rb
33
33
  - lib/win32/mc.rb
34
- - lib/win32/test.rb
35
34
  - test/CVS
36
35
  - test/foo.mc
37
36
  - test/tc_eventlog.rb
@@ -39,8 +38,15 @@ files:
39
38
  - test/ts_all.rb
40
39
  - CHANGES
41
40
  - CVS
41
+ - doc
42
+ - examples
43
+ - install.rb
44
+ - lib
42
45
  - MANIFEST
46
+ - misc
43
47
  - README
48
+ - test
49
+ - win32-eventlog.gemspec
44
50
  - doc/tutorial.txt
45
51
  test_files:
46
52
  - test/ts_all.rb
data/lib/win32/test.rb DELETED
@@ -1,8 +0,0 @@
1
- $:.unshift Dir.pwd
2
- require 'eventlog'
3
-
4
- include Win32
5
-
6
- EventLog.open('System').tail{ |log|
7
- p log
8
- }