Subversion Repositories Kolibri OS

Rev

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