Mercurial > pidgin
comparison libpurple/protocols/jabber/bosh.h @ 25042:1cbe5a9f6efb
* adding bosh files to Makefile.am & .mingw
* establishing HTTP connection for BOSH
author | Tobias Markmann <tfar@soc.pidgin.im> |
---|---|
date | Tue, 05 Aug 2008 18:44:42 +0000 |
parents | b238da95f39a |
children | 15d9825a5621 |
comparison
equal
deleted
inserted
replaced
25041:3176d5a0b9dd | 25042:1cbe5a9f6efb |
---|---|
24 | 24 |
25 #include <glib.h> | 25 #include <glib.h> |
26 | 26 |
27 typedef struct _PurpleHTTPRequest PurpleHTTPRequest; | 27 typedef struct _PurpleHTTPRequest PurpleHTTPRequest; |
28 typedef struct _PurpleHTTPResponse PurpleHTTPResponse; | 28 typedef struct _PurpleHTTPResponse PurpleHTTPResponse; |
29 typedef struct _PurpleHTTPHeaderField PurpleHTTPHeaderField; | 29 typedef struct _PurpleHTTPConnection PurpleHTTPConnection; |
30 typedef struct _PurpleBOSHConnection PurpleBOSHConnection; | |
30 | 31 |
32 typedef void (*PurpleHTTPConnectionConnectFunction)(PurpleHTTPConnection *conn); | |
31 typedef void (*PurpleHTTPRequestCallback)(PurpleHTTPRequest *req, PurpleHTTPResponse *res, void *userdata); | 33 typedef void (*PurpleHTTPRequestCallback)(PurpleHTTPRequest *req, PurpleHTTPResponse *res, void *userdata); |
34 typedef void (*PurpleBOSHConnectionConnectFunction)(PurpleBOSHConnection *conn); | |
35 typedef void (*PurpleBOSHConnectionReciveFunction)(PurpleBOSHConnection *conn, xmlnode *node); | |
32 | 36 |
33 typedef struct { | 37 struct _PurpleBOSHConnection { |
34 int fd; | 38 /* decoded URL */ |
35 PurpleConnection *conn; | 39 char *host; |
36 GQueue *requests; | 40 int port; |
41 char *path; | |
42 char *user; | |
43 char *passwd; | |
44 | |
37 void *userdata; | 45 void *userdata; |
38 } PurpleHTTPConnection; | 46 PurpleAccount *account; |
39 | |
40 typedef struct { | |
41 char *url; | |
42 gboolean pipelining; | 47 gboolean pipelining; |
43 PurpleHTTPConnection *conn_a; | 48 PurpleHTTPConnection *conn_a; |
44 PurpleHTTPConnection *conn_b; | 49 PurpleHTTPConnection *conn_b; |
45 } PurpleBOSHConnection; | 50 |
51 PurpleBOSHConnectionConnectFunction connect_cb; | |
52 PurpleBOSHConnectionReciveFunction receive_cb; | |
53 }; | |
54 | |
55 struct _PurpleHTTPConnection { | |
56 int fd; | |
57 char *host; | |
58 int port; | |
59 int handle; | |
60 PurpleConnection *conn; | |
61 PurpleAccount *account; | |
62 GQueue *requests; | |
63 | |
64 PurpleHTTPConnectionConnectFunction connect_cb; | |
65 void *userdata; | |
66 }; | |
46 | 67 |
47 struct _PurpleHTTPRequest { | 68 struct _PurpleHTTPRequest { |
48 PurpleHTTPRequestCallback cb; | 69 PurpleHTTPRequestCallback cb; |
49 char *method; | 70 char *method; |
50 char *url; | 71 char *url; |
53 void *userdata; | 74 void *userdata; |
54 }; | 75 }; |
55 | 76 |
56 struct _PurpleHTTPResponse { | 77 struct _PurpleHTTPResponse { |
57 int status; | 78 int status; |
58 GList *header; | 79 GHashTable *header; |
59 char *data; | 80 char *data; |
60 }; | 81 }; |
61 | 82 |
62 struct _PurpleHTTPHeaderField { | 83 void jabber_bosh_connection_init(PurpleBOSHConnection *conn, PurpleAccount *account, char *url); |
63 char *name; | 84 void jabber_bosh_connection_connect(PurpleBOSHConnection *conn); |
64 char *value; | |
65 }; | |
66 | 85 |
67 PurpleHTTPHeaderField *jabber_bosh_http_header_field(const char *name, const char *value); | 86 void jabber_bosh_http_connection_init(PurpleHTTPConnection *conn, PurpleAccount *account, char *host, int port); |
68 | |
69 void jabber_bosh_http_connection_connect(PurpleHTTPConnection *conn); | 87 void jabber_bosh_http_connection_connect(PurpleHTTPConnection *conn); |
70 void jabber_bosh_http_send_request(PurpleHTTPConnection *conn, PurpleHTTPRequest *req); | 88 void jabber_bosh_http_send_request(PurpleHTTPConnection *conn, PurpleHTTPRequest *req); |
71 void jabber_bosh_http_connection_clean(PurpleHTTPConnection *conn); | 89 void jabber_bosh_http_connection_clean(PurpleHTTPConnection *conn); |
72 | 90 |
73 void jabber_bosh_http_request_init(PurpleHTTPRequest *req, const char *method, const char *url, PurpleHTTPRequestCallback cb, void *userdata); | 91 void jabber_bosh_http_request_init(PurpleHTTPRequest *req, const char *method, const char *path, PurpleHTTPRequestCallback cb, void *userdata); |
74 void jabber_bosh_http_request_clean(PurpleHTTPRequest *req); | 92 void jabber_bosh_http_request_clean(PurpleHTTPRequest *req); |
75 #endif /* _PURPLE_JABBER_BOSH_H_ */ | 93 #endif /* _PURPLE_JABBER_BOSH_H_ */ |