mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-11-19 12:30:51 +00:00
DHCPDISCOVER now includes option 55 (Parameter Request List) which seems to be required for some DHCP servers to send back values for router and DNS server
git-svn-id: http://svn.code.sf.net/p/netboot65/code@205 93682198-c243-4bdb-bd91-e943c89aac3b
This commit is contained in:
parent
fcce859d2d
commit
c4772efba2
@ -281,14 +281,13 @@ send_dhcpdiscover:
|
|||||||
lda #$80 ;broadcast flag =1, all other bits 0
|
lda #$80 ;broadcast flag =1, all other bits 0
|
||||||
sta output_buffer+dhcp_flags
|
sta output_buffer+dhcp_flags
|
||||||
|
|
||||||
lda #53 ;option 53 - DHCP message type
|
|
||||||
sta output_buffer+dhcp_options+0
|
ldx #dhcp_discover_options_length ; set destination address
|
||||||
lda #1 ;option length is 1
|
:
|
||||||
sta output_buffer+dhcp_options+1
|
lda dhcp_discover_options,x
|
||||||
lda #DHCPDISCOVER
|
sta output_buffer+dhcp_options,x
|
||||||
sta output_buffer+dhcp_options+2
|
dex
|
||||||
lda #$FF ;option FF = end of options
|
bpl :-
|
||||||
sta output_buffer+dhcp_options+3
|
|
||||||
|
|
||||||
ldx #3 ; set destination address
|
ldx #3 ; set destination address
|
||||||
lda #$FF ; des = 255.255.255.255 (broadcast)
|
lda #$FF ; des = 255.255.255.255 (broadcast)
|
||||||
@ -296,7 +295,7 @@ send_dhcpdiscover:
|
|||||||
dex
|
dex
|
||||||
bpl :-
|
bpl :-
|
||||||
|
|
||||||
ldax #dhcp_options+4
|
ldax #dhcp_options+dhcp_discover_options_length
|
||||||
stax udp_send_len
|
stax udp_send_len
|
||||||
ldax #output_buffer
|
ldax #output_buffer
|
||||||
jsr udp_send
|
jsr udp_send
|
||||||
@ -307,6 +306,19 @@ send_dhcpdiscover:
|
|||||||
sta dhcp_state
|
sta dhcp_state
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
dhcp_discover_options:
|
||||||
|
.byte 53 ;option 53 - DHCP message type
|
||||||
|
.byte 1 ;option length =1
|
||||||
|
.byte DHCPDISCOVER ; message type
|
||||||
|
.byte 55 ; option 55 - Parameter Request List
|
||||||
|
.byte 3 ;option length
|
||||||
|
.byte 1 ; subnet mask
|
||||||
|
.byte 3 ; router (gateway)
|
||||||
|
.byte 6 ; DNS server
|
||||||
|
.byte $FF ; end of options
|
||||||
|
|
||||||
|
dhcp_discover_options_length=*-dhcp_discover_options
|
||||||
|
|
||||||
;got a message on port 68
|
;got a message on port 68
|
||||||
dhcp_in:
|
dhcp_in:
|
||||||
|
|
||||||
@ -374,7 +386,7 @@ dhcp_in:
|
|||||||
|
|
||||||
@not_gateway:
|
@not_gateway:
|
||||||
|
|
||||||
cmp #6 ;option 3 6 is dns server
|
cmp #6 ;option 6 is dns server
|
||||||
bne @not_dns_server
|
bne @not_dns_server
|
||||||
lda dhcp_inp+dhcp_options+2,x
|
lda dhcp_inp+dhcp_options+2,x
|
||||||
sta cfg_dns
|
sta cfg_dns
|
||||||
@ -460,9 +472,9 @@ send_dhcprequest:
|
|||||||
|
|
||||||
;A still = option FF = end of options
|
;A still = option FF = end of options
|
||||||
|
|
||||||
sta output_buffer+dhcp_options+17
|
sta output_buffer+dhcp_options+15
|
||||||
|
|
||||||
ldax #dhcp_options+18
|
ldax #dhcp_options+16
|
||||||
stax udp_send_len
|
stax udp_send_len
|
||||||
|
|
||||||
ldax #output_buffer
|
ldax #output_buffer
|
||||||
|
Loading…
Reference in New Issue
Block a user