Subversion Repositories Kolibri OS

Rev

Rev 1762 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1762 Rev 1763
Line 1... Line 1...
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                                 ;;
2
;;                                                                 ;;
3
;; Copyright (C) KolibriOS team 2004-2010. All rights reserved.    ;;
3
;; Copyright (C) KolibriOS team 2004-2011. All rights reserved.    ;;
4
;; Distributed under terms of the GNU General Public License       ;;
4
;; Distributed under terms of the GNU General Public License       ;;
5
;;                                                                 ;;
5
;;                                                                 ;;
6
;;  SOCKET.INC                                                     ;;
-
 
7
;;                                                                 ;;
-
 
8
;;    Written by hidnplayr@kolibrios.org,                          ;;
6
;;    Written by hidnplayr@kolibrios.org,                          ;;
9
;;     and Clevermouse.                                            ;;
7
;;     and Clevermouse.                                            ;;
10
;;                                                                 ;;
8
;;                                                                 ;;
11
;;       Based on code by mike.dld                                 ;;
9
;;       Based on code by mike.dld                                 ;;
12
;;                                                                 ;;
10
;;                                                                 ;;
13
;;         GNU GENERAL PUBLIC LICENSE                              ;;
11
;;         GNU GENERAL PUBLIC LICENSE                              ;;
14
;;          Version 2, June 1991                                   ;;
12
;;          Version 2, June 1991                                   ;;
15
;;                                                                 ;;
13
;;                                                                 ;;
16
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 17... Line 15...
17
 
15
 
Line 18... Line 16...
18
$Revision: 1762 $
16
$Revision: 1763 $
Line 19... Line 17...
19
 
17
 
20
virtual at 0
18
virtual at 0
Line 43... Line 41...
43
end virtual
41
end virtual
Line 44... Line 42...
44
 
42
 
Line 45... Line 43...
45
virtual at SOCKET.end
43
virtual at SOCKET.end
46
 
-
 
47
	IP_SOCKET:
44
 
48
 
-
 
49
	.LocalIP		dd ?
-
 
50
				rd 3 ; for IPv6 addresses
45
	IP_SOCKET:
51
 
-
 
Line 52... Line 46...
52
	.RemoteIP		dd ?
46
	.LocalIP		rd 4
53
				rd 3 ; for IPv6 addresses
47
	.RemoteIP		rd 4
Line 54... Line 48...
54
 
48
 
Line 786... Line 780...
786
	DEBUGF	1,"SOCKET_send: socknum: %u data ptr: %x, length: %u, flags: %x, ", ecx, edx, esi, edi
780
	DEBUGF	1,"SOCKET_send: socknum: %u data ptr: %x, length: %u, flags: %x, ", ecx, edx, esi, edi
Line 787... Line 781...
787
 
781
 
788
	call	SOCKET_num_to_ptr
782
	call	SOCKET_num_to_ptr
Line -... Line 783...
-
 
783
	jz	s_error
-
 
784
 
-
 
785
	mov	ecx, esi
789
	jz	s_error
786
	mov	esi, edx
Line 790... Line 787...
790
 
787
 
791
	jmp	[eax + SOCKET.snd_proc]
788
	jmp	[eax + SOCKET.snd_proc]
Line 792... Line 789...
792
 
789
 
Line 793... Line -...
793
 
-
 
794
align 4
-
 
795
SOCKET_send_udp:
-
 
796
 
790
 
Line 797... Line 791...
797
	DEBUGF	1,"SOCKET_send: UDP\n"
791
align 4
798
 
792
SOCKET_send_udp:
Line 809... Line 803...
809
SOCKET_send_tcp:
803
SOCKET_send_tcp:
Line 810... Line 804...
810
 
804
 
Line 811... Line 805...
811
	DEBUGF	1,"SOCKET_send: TCP\n"
805
	DEBUGF	1,"SOCKET_send: TCP\n"
812
 
-
 
813
	push	eax
-
 
814
	mov	ecx, esi
806
 
815
	mov	esi, edx
807
	push	eax
816
	add	eax, STREAM_SOCKET.snd
808
	add	eax, STREAM_SOCKET.snd
Line 817... Line 809...
817
	call	SOCKET_ring_write
809
	call	SOCKET_ring_write
Line 826... Line 818...
826
align 4
818
align 4
827
SOCKET_send_ip:
819
SOCKET_send_ip:
Line 828... Line 820...
828
 
820
 
Line 829... Line -...
829
	DEBUGF	1,"type: IP\n"
-
 
830
 
-
 
831
	mov	ecx, esi
-
 
832
	mov	esi, edx
821
	DEBUGF	1,"type: IP\n"
Line 833... Line 822...
833
 
822
 
834
	call	IPv4_output_raw
823
	call	IPv4_output_raw
Line 835... Line 824...
835
 
824
 
836
	mov	dword [esp+32], eax
825
	mov	[esp+32], eax
Line 837... Line 826...
837
	ret
826
	ret
Line 838... Line -...
838
 
-
 
839
align 4
827
 
Line 840... Line 828...
840
SOCKET_send_icmp:
828
align 4
841
 
829
SOCKET_send_icmp: