From eade2778dd4c35fe94894f72fe8ff82f713f957c Mon Sep 17 00:00:00 2001 From: jonnosan Date: Thu, 14 May 2009 03:12:40 +0000 Subject: [PATCH] git-svn-id: http://svn.code.sf.net/p/netboot65/code@135 93682198-c243-4bdb-bd91-e943c89aac3b --- client/nb65/set_ip_config.rb | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/client/nb65/set_ip_config.rb b/client/nb65/set_ip_config.rb index ad60a4b..fdd45d5 100644 --- a/client/nb65/set_ip_config.rb +++ b/client/nb65/set_ip_config.rb @@ -59,15 +59,21 @@ end option_length=offsets[1] if option_length==6 then - split_values=value.split(":") - if (split_values.length!=6) || (split_values[5].nil?) then - puts "'#{value}' is not a valid MAC address. (e.g. 12:34:56:78:ab:cd)" - exit - end - mac=[] - 6.times do |j| - mac[j]=split_values[j].hex -# puts "#{split_values[j]}->#{"%02X" % mac[j]}" + if value.downcase=="auto" then + require 'digest/md5' + digest = Digest::MD5.digest(Time.now.to_s) + mac=[0x00,0x80,0x10,digest[0],digest[1],Kernel.rand(255)] + else + split_values=value.split(":") + if (split_values.length!=6) || (split_values[5].nil?) then + puts "'#{value}' is not a valid MAC address. (e.g. 12:34:56:78:ab:cd)" + exit + end + mac=[] + 6.times do |j| + mac[j]=split_values[j].hex + # puts "#{split_values[j]}->#{"%02X" % mac[j]}" + end end packed_option=mac.pack("cccccc") else #it must be an IP