Subversion Repositories Kolibri OS

Rev

Rev 7252 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3107 leency 1
//Network library
5598 pavelyakov 2
#ifndef INCLUDE_NETWORK_H
3
#define INCLUDE_NETWORK_H
3107 leency 4
 
5598 pavelyakov 5
#ifndef INCLUDE_KOLIBRI_H
6
#include "../lib/kolibri.h"
7
#endif
8
 
9
#ifndef INCLUDE_DLL_H
10
#include "../lib/dll.h"
11
#endif
3107 leency 12
dword network_lib = #a_network_lib;
7252 leency 13
char a_network_lib[]="/sys/lib/network.obj";
3107 leency 14
 
7283 leency 15
dword network_lib_init    = #aInet_init;
3107 leency 16
dword inet_addr           = #aInet_addr;  //"192.168.0.1" -> dword IP
17
dword inet_ntoa           = #aInet_ntoa;
18
dword getaddrinfo         = #aGetaddrinfo;
19
dword getaddrinfo_start   = #aGetaddrinfo_start;
20
dword getaddrinfo_process = #aGetaddrinfo_process;
21
dword getaddrinfo_abort   = #aGetaddrinfo_abort;
22
dword freeaddrinfo        = #aFreeaddrinfo;
3839 Asper 23
$DD 2 dup 0
3107 leency 24
 
7283 leency 25
char aInet_init[]              = "lib_init";
7252 leency 26
char aInet_addr[]            = "inet_addr";
27
char aInet_ntoa[]            = "inet_ntoa";
28
char aGetaddrinfo[]          = "getaddrinfo";
29
char aGetaddrinfo_start[]    = "getaddrinfo_start";
30
char aGetaddrinfo_process[]  = "getaddrinfo_process";
31
char aGetaddrinfo_abort[]    = "getaddrinfo_abort";
32
char aFreeaddrinfo[]         = "freeaddrinfo";
3107 leency 33
 
34
/*
35
addr соответствует IP 10.101.102.103
36
itoa((addr&0xFF000000)>>24) равно 103
37
itoa((addr&0xFF0000)>>16) —это 102
38
itoa((addr&0xFF00)>>8) — это 101
39
itoa(addr&0xFF) — это 10
40
*/
41
 
42
dword GetIPfromAdress(dword addr)
43
{
44
	dword lpointer, IPa;
45
	getaddrinfo stdcall (addr, 0, 0, #lpointer);
46
	if (EAX!=0) IPa = 0; else IPa = DSDWORD[DSDWORD[lpointer+24]+4];
47
	freeaddrinfo stdcall (lpointer);
48
	return IPa;
49
}
50
 
51
/*
52
//Convert the string from standard IPv4 dotted notation to integer IP addr.
53
inet_addr stdcall ("192.168.0.1");
54
server_IP = EAX;
55
 
56
 
57
char* __stdcall inet_ntoa(struct in_addr in);
58
Convert the Internet host address to standard IPv4 dotted notation.
59
 
60
getaddrinfo(__in const char* hostname, __in const char* servname,
61
            __in const struct addrinfo* hints, __out struct addrinfo **res);
62
struct addrinfo {
63
    int     ai_flags;
64
    int     ai_family;
65
    int     ai_socktype;
66
    int     ai_protocol;
67
    size_t  ai_addrlen;
68
    struct sockaddr *ai_addr;
69
    char   *ai_canonname;
70
    struct addrinfo *ai_next;
71
};
72
*/
5598 pavelyakov 73
 
74
#endif