forked from KolibriOS/kolibrios
Bugfixes for ZeroConf
git-svn-id: svn://kolibrios.org@2859 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
80ecf0f5ee
commit
bd062d9661
@ -262,7 +262,7 @@ buildRequest: ; Creates a DHCP request packet.
|
|||||||
mov eax, [dhcpLease]
|
mov eax, [dhcpLease]
|
||||||
mov [edx+240+5], eax
|
mov [edx+240+5], eax
|
||||||
mov [edx+240+9], word 0x0432 ; option requested IP address
|
mov [edx+240+9], word 0x0432 ; option requested IP address
|
||||||
mov eax, [dhcpClientIP]
|
mov eax, [dhcp.ip]
|
||||||
mov [edx+240+11], eax
|
mov [edx+240+11], eax
|
||||||
mov [edx+240+15], word 0x0437 ; option request list
|
mov [edx+240+15], word 0x0437 ; option request list
|
||||||
mov [edx+240+17], dword 0x0f060301
|
mov [edx+240+17], dword 0x0f060301
|
||||||
@ -333,6 +333,11 @@ request:
|
|||||||
cmp [dhcpMsgType], byte 0x05 ; Was the response an ACK? It should be
|
cmp [dhcpMsgType], byte 0x05 ; Was the response an ACK? It should be
|
||||||
jne apipa ; NO - so we do zeroconf
|
jne apipa ; NO - so we do zeroconf
|
||||||
|
|
||||||
|
mcall 76, API_IPv4 + 3, [dhcp.ip] ; ip
|
||||||
|
mcall 76, API_IPv4 + 5, [dhcp.dns] ; dns
|
||||||
|
mcall 76, API_IPv4 + 7, [dhcp.subnet] ; subnet
|
||||||
|
mcall 76, API_IPv4 + 9, [dhcp.gateway] ; gateway
|
||||||
|
|
||||||
jmp exit
|
jmp exit
|
||||||
|
|
||||||
;***************************************************************************
|
;***************************************************************************
|
||||||
@ -352,12 +357,9 @@ parseResponse:
|
|||||||
DEBUGF 1,"Data received, parsing response\n"
|
DEBUGF 1,"Data received, parsing response\n"
|
||||||
mov edx, [dhcpMsg]
|
mov edx, [dhcpMsg]
|
||||||
|
|
||||||
pusha
|
push dword [edx+16]
|
||||||
mcall 76, API_IPv4 + 3, [edx+16]
|
pop [dhcp.ip]
|
||||||
mov eax,[edx]
|
|
||||||
mov [dhcpClientIP],eax
|
|
||||||
DEBUGF 1,"Client: %u.%u.%u.%u\n",[edx+16]:1,[edx+17]:1,[edx+18]:1,[edx+19]:1
|
DEBUGF 1,"Client: %u.%u.%u.%u\n",[edx+16]:1,[edx+17]:1,[edx+18]:1,[edx+19]:1
|
||||||
popa
|
|
||||||
|
|
||||||
add edx, 240 ; Point to first option
|
add edx, 240 ; Point to first option
|
||||||
xor ecx, ecx
|
xor ecx, ecx
|
||||||
@ -374,6 +376,9 @@ pr001:
|
|||||||
|
|
||||||
mov al, [edx+2]
|
mov al, [edx+2]
|
||||||
mov [dhcpMsgType], al
|
mov [dhcpMsgType], al
|
||||||
|
|
||||||
|
DEBUGF 1,"DHCP Msg type: %u\n", al
|
||||||
|
|
||||||
add edx, 3
|
add edx, 3
|
||||||
jmp pr001 ; Get next option
|
jmp pr001 ; Get next option
|
||||||
|
|
||||||
@ -406,22 +411,18 @@ pr001:
|
|||||||
cmp al, dhcp_subnet_mask
|
cmp al, dhcp_subnet_mask
|
||||||
jne @f
|
jne @f
|
||||||
|
|
||||||
pusha
|
push dword [edx]
|
||||||
mcall 76, API_IPv4 + 7, [edx]
|
pop [dhcp.subnet]
|
||||||
DEBUGF 1,"Subnet: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1
|
DEBUGF 1,"Subnet: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1
|
||||||
popa
|
|
||||||
|
|
||||||
jmp next_option
|
jmp next_option
|
||||||
|
|
||||||
@@:
|
@@:
|
||||||
cmp al, dhcp_router
|
cmp al, dhcp_router
|
||||||
jne @f
|
jne @f
|
||||||
|
|
||||||
pusha
|
push dword [edx]
|
||||||
mcall 76, API_IPv4 + 9, [edx]
|
pop [dhcp.gateway]
|
||||||
DEBUGF 1,"Gateway: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1
|
DEBUGF 1,"Gateway: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1
|
||||||
popa
|
|
||||||
|
|
||||||
jmp next_option
|
jmp next_option
|
||||||
|
|
||||||
|
|
||||||
@ -429,11 +430,9 @@ pr001:
|
|||||||
cmp al, dhcp_domain_server
|
cmp al, dhcp_domain_server
|
||||||
jne next_option
|
jne next_option
|
||||||
|
|
||||||
pusha
|
push dword [edx]
|
||||||
mcall 76, API_IPv4 + 5, [edx]
|
pop [dhcp.dns]
|
||||||
DEBUGF 1,"DNS: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1
|
DEBUGF 1,"DNS: %u.%u.%u.%u\n",[edx]:1,[edx+1]:1,[edx+2]:1,[edx+3]:1
|
||||||
popa
|
|
||||||
|
|
||||||
jmp next_option
|
jmp next_option
|
||||||
|
|
||||||
pr_exit:
|
pr_exit:
|
||||||
@ -568,11 +567,17 @@ IM_END:
|
|||||||
|
|
||||||
inibuf rb 16
|
inibuf rb 16
|
||||||
|
|
||||||
dhcpClientIP dd ?
|
|
||||||
dhcpMsgType db ?
|
dhcpMsgType db ?
|
||||||
dhcpLease dd ?
|
dhcpLease dd ?
|
||||||
dhcpServerIP dd ?
|
dhcpServerIP dd ?
|
||||||
|
|
||||||
|
dhcp:
|
||||||
|
.ip dd ?
|
||||||
|
.subnet dd ?
|
||||||
|
.dns dd ?
|
||||||
|
.gateway dd ?
|
||||||
|
|
||||||
|
|
||||||
dhcpMsgLen dd ?
|
dhcpMsgLen dd ?
|
||||||
socketNum dd ?
|
socketNum dd ?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user