Page 1 of 1

Network

Posted: Thu Oct 10, 2013 2:52 pm
by lordok-gr
Доброкодер, спасай!

Code: Select all

include 'macros.inc'
include 'network.inc'
;include 'debug-fdo.inc'

MEOS_APP_START

CODE
;-----------------------
; Open socket: [sockaddr1]
; RETURN: [socketnum]; EAX = -1 on error
;-----------------------
open_socket:
	mcall	socket, AF_INET4, SOCK_STREAM, 0
	cmp	eax, -1
	jz	finish
	mov	[socketnum], eax
	mcall	connect, [socketnum], sockaddr1, 18

;-----------------------
; Send request:
; RETURN:
;-----------------------
request:
	mcall   send, [socketnum], req_gr, 59, 0
	mcall   recv, [socketnum], bufer, 4096, 0
	mcall	close, [socketnum]
	cmp	eax, -1
	jz	finish
	mov	[file_st.count], eax
	;mcall  70, file_st
finish:
       mcall   -1

DATA
file_st:
		dd 0
.start		dd 0
		dd 0
.count		dd 0
.pointer	dd bufer
.file		db '/bd0/2/ya.txt'

;-------Network---------
socketnum	dd ?

sockaddr1:
		dw AF_INET4
server_port	dw 0x50 	; 80
server_ip	dd 0x5D9E86CB	; ya.ru
		rb 10

req_gr		db 'GET / HTTP/1.1',13,10,'Host: natribu.org',13,10,'Connection: close',13,10,13,10,0

UDATA
bufer		rb 4097

MEOS_APP_END
Отваливается на mcall connect и игнорирует попытки убийства

Re: Network

Posted: Thu Oct 10, 2013 3:28 pm
by Mario_r4
Недавно в чате обсуждалась тема блокировок в Qemu и прочих эмуляторах. Надо у автора сетевого стека спрашивать.

Re: Network

Posted: Thu Oct 10, 2013 3:32 pm
by lordok-gr
Mario_r4 wrote:Недавно в чате обсуждалась тема блокировок в Qemu и прочих эмуляторах. Надо у автора сетевого стека спрашивать.
Запускается всё с реальной машины, на которой работают downloader и nslookup.
Попробую пообщаться с автором..

Re: Network

Posted: Fri Oct 11, 2013 5:27 pm
by lordok-gr
Ну а проблема была собственно в том, что байты IP и порта надо было писать в обратном порядке

Re: Network

Posted: Mon Oct 14, 2013 12:38 am
by hidnplayr
Since #4020 I also implemented a timeout for 'connect' function.
Now 'connect' will not wait forever when a server does not respond, but return error code 60 instead.