Subversion Repositories Kolibri OS

Rev

Rev 3081 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

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