Show
Ignore:
Timestamp:
01/07/12 16:09:18 (5 months ago)
Author:
Erwan Velu <erwanaliasr1@…>
Children:
02055a8310be4faf56040fee5713d24235d9786e, 5f2c9a20039de2af5afbd7151734e3a682f19a6f
Parents:
287de3be5708ee186a1b1f9fffbdeab66b261383
git-author:
Timm Gleason <timmgleason@gmail.com> / 2012-01-07T17:09:18Z+0100
git-committer:
Erwan Velu <erwanaliasr1@gmail.com> / 2012-01-07T17:09:18Z+0100
Message:

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

Location:
com32/lua/src
Files:
2 added
3 modified

Legend:

Unmodified
Added
Removed
  • com32/lua/src/Makefile

    r5b726d r442c60  
    4545LIBLUA_OBJS += pci.o 
    4646LIBLUA_OBJS += vesa.o 
     47LIBLUA_OBJS += dhcp.o 
    4748 
    4849CFLAGS += -DLUA_ANSI 
  • com32/lua/src/linit.c

    r0a8f78 r442c60  
    3434  {LUA_SYSLINUXLIBNAME, luaopen_syslinux}, 
    3535  {LUA_VESALIBNAME, luaopen_vesa}, 
     36  {LUA_DHCPLIBNAME, luaopen_dhcp}, 
    3637#endif 
    3738  {NULL, NULL} 
  • com32/lua/src/lualib.h

    r0a8f78 r442c60  
    5555#define LUA_CPULIBNAME  "cpu" 
    5656LUALIB_API int (luaopen_cpu) (lua_State *L); 
     57 
     58#define LUA_DHCPLIBNAME "dhcp" 
     59LUALIB_API int (luaopen_dhcp) (lua_State *L); 
    5760#endif 
    5861