Subversion Repositories Kolibri OS

Rev

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

  1. #ifndef INCLUDE_LIBHTTP_H
  2. #define INCLUDE_LIBHTTP_H
  3. #print "[include <obj/http.h]\n"
  4.  
  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
  12.  
  13. dword libHTTP = #alibHTTP;
  14. char alibHTTP[] = "/sys/lib/http.obj";
  15.  
  16. dword http_lib_init          = #aLib_init;
  17. dword http_get               = #aHTTPget;
  18. dword http_head              = #aHTTPhead;
  19. dword http_post              = #aHTTPpost;
  20. dword http_find_header_field = #aFHF;
  21. dword http_send              = #aHTTPsend;
  22. dword http_receive           = #aHTTPreceive;
  23. dword http_disconnect        = #aHTTPdisconnect;
  24. dword http_free              = #aHTTPfree;
  25. dword uri_escape             = #aURIescape;
  26. dword uri_unescape           = #aURIunescape;
  27. $DD 2 dup 0
  28.  
  29. char aLib_init[]             = "lib_init";
  30. char aHTTPget[]              = "get";
  31. char aHTTPhead[]             = "head";
  32. char aHTTPpost[]             = "post";
  33. char aFHF[]                  = "find_header_field";
  34. char aHTTPsend[]             = "send";
  35. char aHTTPreceive[]          = "receive";
  36. char aHTTPdisconnect[]       = "disconnect";
  37. char aHTTPfree[]             = "free";
  38. char aURIescape[]            = "escape";
  39. char aURIunescape[]          = "unescape";
  40.  
  41. // status flags
  42. #define FLAG_HTTP11             1 << 0
  43. #define FLAG_GOT_HEADER         1 << 1
  44. #define FLAG_GOT_ALL_DATA       1 << 2
  45. #define FLAG_CONTENT_LENGTH     1 << 3
  46. #define FLAG_CHUNKED            1 << 4
  47. #define FLAG_CONNECTED          1 << 5
  48.  
  49. // user flags
  50. #define FLAG_KEEPALIVE          1 << 8
  51. #define FLAG_MULTIBUFF          1 << 9
  52.  
  53. // error flags
  54. #define FLAG_INVALID_HEADER     1 << 16
  55. #define FLAG_NO_RAM             1 << 17
  56. #define FLAG_SOCKET_ERROR       1 << 18
  57. #define FLAG_TIMEOUT_ERROR      1 << 19
  58. #define FLAG_TRANSFER_FAILED    1 << 20
  59.  
  60. struct  http_msg{
  61.         dword   socket;
  62.         dword   flags;
  63.         dword   write_ptr;
  64.         dword   buffer_length;
  65.         dword   chunk_ptr;
  66.         dword   timestamp;
  67.         dword   status;
  68.         dword   header_length;
  69.         dword   content_ptr;
  70.         dword   content_length;
  71.         dword   content_received;
  72.         char    http_header;
  73. };
  74.  
  75.  
  76. #endif