332,8 → 332,8 |
cmp ecx, AF_PPP |
jne .no_ppp |
|
; cmp esi, PPP_PROTO_ETHERNET |
; je .pppoe |
cmp esi, PPP_PROTO_ETHERNET |
je .pppoe |
|
.no_ppp: |
.unsupported: |
404,17 → 404,17 |
mov [eax + SOCKET.connect_proc], ipv4_connect |
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 |
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: Bind to a local port. ; |
774,7 → 774,7 |
; ; |
; IN: ecx = socket number ; |
; edx = addr to application buffer ; |
; esi = length of application buffer ; |
; edx = length of application buffer ; |
; edi = flags ; |
; ; |
; OUT: eax = number of bytes copied ; |
792,9 → 792,6 |
test eax, eax |
jz .invalid |
|
stdcall is_region_userspace, edx, esi |
jnz .invalid |
|
.loop: |
push edi |
call [eax + SOCKET.rcv_proc] |
1001,9 → 998,6 |
test eax, eax |
jz .invalid |
|
stdcall is_region_userspace, edx, esi |
jnz .invalid |
|
mov ecx, esi |
mov esi, edx |
|
1086,26 → 1080,26 |
ret |
|
|
;align 4 |
;socket_send_pppoe: |
; |
; DEBUGF DEBUG_NETWORK_VERBOSE, "SOCKET_send: PPPoE\n" |
; |
; mov [esp+32], ecx |
; mov ebx, [eax + SOCKET.device] |
; |
; call pppoe_discovery_output ; FIXME: errorcodes |
; cmp eax, -1 |
; je .error |
; ret |
; |
; .error: |
; mov dword[esp+32], -1 |
; mov dword[esp+20], EMSGSIZE |
; ret |
align 4 |
socket_send_pppoe: |
|
DEBUGF DEBUG_NETWORK_VERBOSE, "SOCKET_send: PPPoE\n" |
|
mov [esp+32], ecx |
mov ebx, [eax + SOCKET.device] |
|
call pppoe_discovery_output ; FIXME: errorcodes |
cmp eax, -1 |
je .error |
ret |
|
.error: |
mov dword[esp+32], -1 |
mov dword[esp+20], EMSGSIZE |
ret |
|
|
|
align 4 |
socket_send_local: |
|
1389,9 → 1383,6 |
test eax, eax |
jz .invalid |
|
stdcall is_region_userspace, edi, SOCKET_STRUCT_SIZE |
jnz .invalid |
|
mov esi, eax |
mov ecx, SOCKET_STRUCT_SIZE/4 |
rep movsd |