forked from KolibriOS/kolibrios
-Fixed bug #150: ping reply length
-Fixed bug where some commands were terminated with \n\r instead of \r\n git-svn-id: svn://kolibrios.org@9979 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
32b5aca57d
commit
1c69f80f04
@ -13,7 +13,7 @@
|
||||
;; ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
version equ '0.35'
|
||||
version equ '0.35b'
|
||||
|
||||
; connection status
|
||||
STATUS_DISCONNECTED = 0
|
||||
|
@ -1,6 +1,6 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2021. All rights reserved. ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2024. All rights reserved. ;;
|
||||
;; Distributed under terms of the GNU General Public License ;;
|
||||
;; ;;
|
||||
;; Written by hidnplayr@kolibrios.org ;;
|
||||
@ -14,6 +14,7 @@
|
||||
server_parser:
|
||||
|
||||
mov esi, servercommand
|
||||
mov ebx, ecx
|
||||
|
||||
cmp byte [esi], ':'
|
||||
jne .parse
|
||||
@ -27,7 +28,7 @@ server_parser:
|
||||
|
||||
.parse:
|
||||
mov eax, [esi]
|
||||
or eax, 0x20202020
|
||||
or eax, 0x20202020 ; convert to lowercase
|
||||
mov edi, server_commands
|
||||
mov ecx, server_commands.number
|
||||
|
||||
@ -42,6 +43,7 @@ server_parser:
|
||||
ret
|
||||
|
||||
.got_cmd:
|
||||
mov ecx, ebx
|
||||
jmp dword[edi]
|
||||
|
||||
|
||||
@ -232,18 +234,12 @@ cmd_ping:
|
||||
; Just change PING to PONG
|
||||
mov dword[esi], 'PONG'
|
||||
|
||||
; Find the end of the command
|
||||
lea edi, [esi + 5]
|
||||
xor al, al
|
||||
repne scasb
|
||||
; Append \r\n
|
||||
mov word[esi+ecx], 0x0a0d
|
||||
|
||||
; Now send it back
|
||||
; And send the response to the server
|
||||
mov edx, esi
|
||||
mov esi, edi
|
||||
mov word [esi], 0x0d0a
|
||||
inc esi
|
||||
inc esi
|
||||
sub esi, edx
|
||||
lea esi, [ecx+2]
|
||||
mcall send, [socketnum], , , 0
|
||||
|
||||
ret
|
||||
|
@ -1,6 +1,6 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2018. All rights reserved. ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2024. All rights reserved. ;;
|
||||
;; Distributed under terms of the GNU General Public License ;;
|
||||
;; ;;
|
||||
;; Written by hidnplayr@kolibrios.org ;;
|
||||
@ -226,26 +226,30 @@ socket_receive:
|
||||
.nextcommand:
|
||||
mov edi, servercommand
|
||||
.byteloop:
|
||||
test ecx, ecx
|
||||
jz .nextpacket
|
||||
lodsb
|
||||
dec ecx
|
||||
cmp al, 10
|
||||
je .got_command
|
||||
cmp al, 13
|
||||
je .got_command
|
||||
stosb
|
||||
dec ecx
|
||||
jnz .byteloop
|
||||
;;; FIXME
|
||||
jmp .nextpacket
|
||||
jmp .byteloop
|
||||
|
||||
; we have a command, call the serverparser
|
||||
|
||||
.got_command:
|
||||
cmp edi, servercommand + 4
|
||||
jb .nextcommand
|
||||
|
||||
mov byte[edi], 0 ; mark the end of the command
|
||||
push esi ecx
|
||||
mov ecx, edi
|
||||
sub ecx, servercommand ; put length in ecx
|
||||
call server_parser
|
||||
pop ecx esi
|
||||
test ecx, ecx
|
||||
jnz .nextcommand
|
||||
jmp .nextcommand
|
||||
|
||||
.done:
|
||||
popa
|
||||
|
@ -1,6 +1,6 @@
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2018. All rights reserved. ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2024. All rights reserved. ;;
|
||||
;; Distributed under terms of the GNU General Public License ;;
|
||||
;; ;;
|
||||
;; Written by hidnplayr@kolibrios.org ;;
|
||||
@ -659,7 +659,7 @@ cmd_usr_send:
|
||||
mov esi, [user_command.size]
|
||||
mov eax, [user_command.size]
|
||||
add eax, user_command+1
|
||||
mov word[eax], 0x0d0a
|
||||
mov word[eax], 0x0a0d
|
||||
inc esi
|
||||
mcall send, [socketnum], user_command+1, , 0
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user