Method: UPnP::UUID#initialize

Defined in:
lib/UPnP/UUID.rb

#initialize(nic_file = NIC_FILE) ⇒ UUID

Creates a new UUID generator using the NIC stored in NIC_FILE.



119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/UPnP/UUID.rb', line 119

def initialize(nic_file = NIC_FILE)
  if File.exist? nic_file then
    address = File.read nic_file

    raise Error, "invalid MAC address #{address}" unless
      address =~ /([\da-f]{2}[:\-]){5}[\da-f]{2}/i
    @address = address.scan(/[0-9a-fA-F]{2}/).join.hex & 0x7FFFFFFFFFFF
  else
    @address = rand(0x800000000000) | 0xF00000000000
  end

  @drift = 0
  @last_clock = (Time.new.to_f * CLOCK_MULTIPLIER).to_i
  @mutex = Mutex.new
  @sequence = rand 0x10000
end