lua: Adding dhcp support
authorTimm Gleason <timmgleason@gmail.com>
Sat, 7 Jan 2012 16:09:18 +0000 (17:09 +0100)
committerErwan Velu <erwanaliasr1@gmail.com>
Sat, 7 Jan 2012 16:09:18 +0000 (17:09 +0100)
commit442c60166a9165e4253fd091aba92c04c699017d
tree2c73e262c4deeb3f1d03b5c582a06edabc5d675e
parent287de3be5708ee186a1b1f9fffbdeab66b261383
lua: Adding dhcp support

Adds DHCPINFO functionality to the lua.c32 binary

 gettable() returns a table of the BOOTP message fields returned by
 the DHCP server for use in a Lua pxeboot script
 See http://tools.ietf.org/html/rfc1542

     lua key value           RFC key
 -----------------------------------------------------------------------
      opcode                  op       message opcode
      hardware.type           htype    Hardware address type
      hardware.length         hlen     Hardware address length
      hops                    hops     Used by relay agents
      transaction.id          xid      transaction id
      elapsed.seconds         secs     Secs elapsed since client boot
      flags                   flags    DHCP Flags field
      client.ip.addr          ciaddr   client IP addr
      your.ip.addr            yiaddr   'Your' IP addr. (from server)
      server.ip.addr          siaddr   Boot server IP addr
      gateway.ip.addr         giaddr   Relay agent IP addr
      client.mac              chaddr   Client hardware addr
      server.hostname         sname    Optl. boot server hostname
      boot.file               file     boot file name (ascii path)
      magic.cookie            cookie   Magic cookie

 getoptions() returns a table of the DHCP Options field of the BOOTP
 message returned by the DHCP server for use in a Lua pxeboot script.
 Many of the options are reurned formatted in as strings in a
 standard,
 recognizable format, such as IP addresses.

 1, 2, and 4 byte numerical options are returned as integers.

 Other Options with non-standard formats are returned as strings of
 the
 raw binary number that was returned by the DHCP server and must be
 decoded in a Lua script

 The Options table returns the Option code as the key except where
 there
 are multiple values returned. In those cases, an extra key increment
 number
 is added to allow individual access to each Option value.

      lua key value           value Name
 -----------------------------------------------------------------------
      1                       Subnet Mask
      6.1                     DNS Server [element 1]
      6.2                     DNS Server [element 2]
      6.3                     DNS Server [element 3]
      209                     PXE Configuration File
      21.1                    Policy Filter [element 1]
      21.2                    Policy Filter [element 2]

 Options that can have a list of values, but contain only one (like
 Option 6)
 will not return with .sub key values.

 Usage:
            t = dhcp.gettable()

            for k,v in pairs(t) do
              print(k.." : "..v)
            end
com32/lua/src/Makefile
com32/lua/src/dhcp.c [new file with mode: 0644]
com32/lua/src/dhcp.h [new file with mode: 0644]
com32/lua/src/linit.c
com32/lua/src/lualib.h