Subversion Repositories Kolibri OS

Rev

Rev 4536 | Rev 5576 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. //HTTP library
  2.  
  3. dword libHTTP = #alibHTTP;
  4. char alibHTTP[23] = "/sys/lib/http.obj\0";
  5.  
  6. dword http_lib_init       = #aLib_init;
  7. dword http_get            = #aHTTPget;
  8. dword http_head           = #aHTTPhead;
  9. dword http_post           = #aHTTPpost;
  10. dword http_find_header_field = #aFHF;
  11. dword http_process        = #aHTTPprocess;
  12. dword http_free           = #aHTTPfree;
  13. dword http_stop           = #aHTTPstop;
  14. dword uri_escape          = #aURIescape;
  15. dword uri_unescape        = #aURIunescape;
  16. $DD 2 dup 0
  17.  
  18. char aLib_init[9]              = "lib_init\0";
  19. char aHTTPget[4]               = "get\0";
  20. char aHTTPhead[5]              = "head\0";
  21. char aHTTPpost[5]              = "post\0";
  22. char aFHF[18]                  = "find_header_field\0";
  23. char aHTTPprocess[8]           = "process\0";
  24. char aHTTPfree[5]              = "free\0";
  25. char aHTTPstop[5]              = "stop\0";
  26. char aURIescape[7]             = "escape\0";
  27. char aURIunescape[9]           = "unescape\0";
  28.  
  29. #define FLAG_HTTP11             1 << 0
  30. #define FLAG_GOT_HEADER         1 << 1
  31. #define FLAG_GOT_ALL_DATA       1 << 2
  32. #define FLAG_CONTENT_LENGTH     1 << 3
  33. #define FLAG_CHUNKED            1 << 4
  34. #define FLAG_CONNECTED          1 << 5
  35.  
  36. // error flags go into the upper word
  37. #define FLAG_INVALID_HEADER     1 << 16
  38. #define FLAG_NO_RAM             1 << 17
  39. #define FLAG_SOCKET_ERROR       1 << 18
  40. #define FLAG_TIMEOUT_ERROR      1 << 19
  41. #define FLAG_TRANSFER_FAILED    1 << 20
  42.  
  43. struct  http_msg{
  44.         dword   socket;
  45.         dword   flags;
  46.         dword   write_ptr;
  47.         dword   buffer_length;
  48.         dword   chunk_ptr;
  49.         dword   timestamp;
  50.         dword   status;
  51.         dword   header_length;
  52.                 dword   content_ptr;
  53.         dword   content_length;
  54.         dword   content_received;
  55.         char    http_header;
  56. };