299,6 → 299,13 |
je .raw |
|
.no_inet4: |
cmp ecx, AF_PPP |
jne .no_ppp |
|
cmp esi, PPP_PROTO_ETHERNET |
je .pppoe |
|
.no_ppp: |
ret |
|
align 4 |
347,8 → 354,17 |
mov [eax + SOCKET.rcv_proc], SOCKET_receive_dgram |
ret |
|
align 4 |
.pppoe: |
push eax |
init_queue (eax + SOCKET_QUEUE_LOCATION) ; Set up data receiving queue |
pop eax |
|
mov [eax + SOCKET.snd_proc], SOCKET_send_pppoe |
mov [eax + SOCKET.rcv_proc], SOCKET_receive_dgram |
ret |
|
|
;----------------------------------------------------------------- |
; |
; SOCKET_bind |
872,8 → 888,23 |
ret |
|
|
align 4 |
SOCKET_send_pppoe: |
|
DEBUGF 1,"SOCKET_send: PPPoE\n" |
|
mov [esp+32], ecx |
mov ebx, [eax + SOCKET.device] |
|
mov ecx, esi |
call PPPoE_discovery_output |
cmp eax, -1 |
je s_error |
ret |
|
|
|
|
;----------------------------------------------------------------- |
; |
; SOCKET_get_options |
1126,7 → 1157,6 |
; Note: the mutex should already be set ! |
; |
; IN: eax = socket ptr |
; ebx = pointer to device struct |
; ecx = data size |
; esi = ptr to data |
; [esp] = ptr to buf |