forked from KolibriOS/kolibrios
Pasta: fixed bug when there is no data on clipboard, use keep-alive connection.
git-svn-id: svn://kolibrios.org@5770 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
d191a775e6
commit
7e3fbc4991
@ -75,6 +75,8 @@ clipboard:
|
|||||||
mcall 54
|
mcall 54
|
||||||
cmp eax, -1
|
cmp eax, -1
|
||||||
je error
|
je error
|
||||||
|
cmp eax, 1
|
||||||
|
je error
|
||||||
|
|
||||||
; Verify if we can work with it
|
; Verify if we can work with it
|
||||||
mov [clipboard_data], eax
|
mov [clipboard_data], eax
|
||||||
@ -101,7 +103,7 @@ escape:
|
|||||||
pop [clipboard_data]
|
pop [clipboard_data]
|
||||||
|
|
||||||
; Connect to the server
|
; Connect to the server
|
||||||
invoke HTTP_get, sz_url, 0, 0, 0
|
invoke HTTP_get, sz_url, 0, FLAG_BLOCK or FLAG_KEEPALIVE, 0
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz error_free_clip
|
jz error_free_clip
|
||||||
mov [identifier], eax
|
mov [identifier], eax
|
||||||
@ -135,14 +137,11 @@ escape:
|
|||||||
xor al, al
|
xor al, al
|
||||||
stosb
|
stosb
|
||||||
|
|
||||||
invoke HTTP_free, [identifier]
|
|
||||||
|
|
||||||
mov ecx, [clipboard_data_length]
|
mov ecx, [clipboard_data_length]
|
||||||
add ecx, sz_paste_head.length + sz_paste_tail.length
|
add ecx, sz_paste_head.length + sz_paste_tail.length
|
||||||
invoke HTTP_post, sz_url, 0, 0, sz_cookie, sz_ctype, ecx
|
invoke HTTP_post, sz_url, [identifier], FLAG_BLOCK, sz_cookie, sz_ctype, ecx
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jz error_free_clip
|
jz error_free_clip_disconnect
|
||||||
mov [identifier], eax
|
|
||||||
|
|
||||||
; Send the data to the server
|
; Send the data to the server
|
||||||
mov ecx, [eax + http_msg.socket]
|
mov ecx, [eax + http_msg.socket]
|
||||||
@ -158,6 +157,8 @@ escape:
|
|||||||
test eax, eax
|
test eax, eax
|
||||||
jnz .again2
|
jnz .again2
|
||||||
|
|
||||||
|
invoke HTTP_disconnect, [identifier]
|
||||||
|
|
||||||
mov ebp, [identifier]
|
mov ebp, [identifier]
|
||||||
cmp [ebp + http_msg.status], 302 ; found
|
cmp [ebp + http_msg.status], 302 ; found
|
||||||
jne error_free_http
|
jne error_free_http
|
||||||
@ -205,6 +206,9 @@ escape:
|
|||||||
error_free_http:
|
error_free_http:
|
||||||
invoke HTTP_free, [identifier]
|
invoke HTTP_free, [identifier]
|
||||||
jmp error
|
jmp error
|
||||||
|
error_free_clip_disconnect:
|
||||||
|
invoke HTTP_disconnect, [identifier]
|
||||||
|
invoke HTTP_free, [identifier]
|
||||||
error_free_clip:
|
error_free_clip:
|
||||||
mcall 68, 13, [clipboard_data]
|
mcall 68, 13, [clipboard_data]
|
||||||
error:
|
error:
|
||||||
@ -228,7 +232,8 @@ import lib_http, \
|
|||||||
HTTP_receive, 'receive', \
|
HTTP_receive, 'receive', \
|
||||||
HTTP_find_header_field, 'find_header_field', \
|
HTTP_find_header_field, 'find_header_field', \
|
||||||
HTTP_free, 'free', \
|
HTTP_free, 'free', \
|
||||||
HTTP_escape, 'escape'
|
HTTP_escape, 'escape', \
|
||||||
|
HTTP_disconnect, 'disconnect'
|
||||||
|
|
||||||
IM_END:
|
IM_END:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user