diff options
| author | hpa <hpa> | 2003-11-21 08:56:49 +0000 |
|---|---|---|
| committer | hpa <hpa> | 2003-11-21 08:56:49 +0000 |
| commit | 8feb9b19ae0ab7c6f384e67aa8e757f327f3a7e8 (patch) | |
| tree | 1373fc7fed14391bc267c6b9bb732acc2640cf0b | |
| parent | cdf1944cf7bbce0d6f2c290746df9c9d8cf058d6 (diff) | |
| download | syslinux-2.07-pre9.tar.gz | |
Recognize pxelinux options in a vendor-option-space as well assyslinux-2.07-pre9
a site-option-space.
| -rw-r--r-- | NEWS | 3 | ||||
| -rw-r--r-- | pxelinux.asm | 20 |
2 files changed, 23 insertions, 0 deletions
@@ -14,6 +14,9 @@ Changes in 2.07: * MEMDISK: Fix bug that would occationally cause "ran out of input data" when using compressed disk images. * SYSLINUX: Updates for the win32 installer (from Lars Munch.) + * PXELINUX: PXELINUX-specific options are now recognized both + in a vendor-option-space (a.k.a. type 43 encapsulated) as + well as in a site-option-space (unencapsulated.) Changes in 2.06: * ALL: Fix problem that would occationally cause a diff --git a/pxelinux.asm b/pxelinux.asm index fd0d62cc..802118b4 100644 --- a/pxelinux.asm +++ b/pxelinux.asm @@ -2116,7 +2116,14 @@ parse_dhcp: ; size is CX -- some DHCP servers leave option fields unterminated ; in violation of the spec. ; +; For parse_some_dhcp_options, DH contains the minimum value for +; the option to recognize -- this is used to restrict parsing to +; PXELINUX-specific options only. +; parse_dhcp_options: + xor dx,dx + +parse_some_dhcp_options: .loop: and cx,cx jz .done @@ -2137,6 +2144,9 @@ parse_dhcp_options: sub cx,ax ; Decrement bytes left counter jb .done ; Malformed option: length > field size + cmp dl,dh ; Is the option value + jb .opt_done + cmp dl,1 ; SUBNET MASK option jne .not_subnet mov edx,[si] @@ -2151,6 +2161,16 @@ parse_dhcp_options: jmp .opt_done .not_router: + cmp dl,43 ; VENDOR ENCAPSULATED option + jne .not_vendor + pusha + mov dh,208 ; Only recognize PXELINUX options + mov cx,ax ; Length of option = max bytes to parse + call parse_some_dhcp_options ; Parse recursive structure + popa + jmp .opt_done +.not_vendor: + cmp dl,52 ; OPTION OVERLOAD option jne .not_overload mov dl,[si] |
