diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2005-12-17 21:56:50 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2005-12-17 21:56:50 +0100 |
commit | 7c0a4975a538ab75405e64919bbdfee51b898b2e (patch) | |
tree | 47d211522bbed3fda3b33b0233e91e3cf5cb9e23 /protocols/http_client.h | |
parent | b5a22e33a1aa2500093e783e79de2f44bf53c150 (diff) | |
parent | ad8b8a367c8e5dd2816096959682e2187df07c6c (diff) |
Moved HTTP-stuff (right now only for passport) into a separate module. This
all works 100% asynchronous and non-blocking, so almost all I/O in BitlBee
should be completely non-blocking now!
Right now support for other modules than GnuTLS is probably broken, I'll fix
it later.
Diffstat (limited to 'protocols/http_client.h')
-rw-r--r-- | protocols/http_client.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/protocols/http_client.h b/protocols/http_client.h new file mode 100644 index 00000000..53c6fcd6 --- /dev/null +++ b/protocols/http_client.h @@ -0,0 +1,54 @@ + /********************************************************************\ + * BitlBee -- An IRC to other IM-networks gateway * + * * + * Copyright 2002-2005 Wilmer van der Gaast and others * + \********************************************************************/ + +/* HTTP(S) module */ + +/* + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License with + the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL; + if not, write to the Free Software Foundation, Inc., 59 Temple Place, + Suite 330, Boston, MA 02111-1307 USA +*/ + +#include <glib.h> + +#include "ssl_client.h" + +struct http_request; + +typedef void (*http_input_function)( struct http_request * ); + +struct http_request +{ + char *request; + int request_length; + int status_code; + char *reply_headers; + char *reply_body; + int finished; + + void *ssl; + int fd; + + int inpa; + int bytes_written; + int bytes_read; + + http_input_function func; + gpointer data; +}; + +void *http_dorequest( char *host, int port, int ssl, char *request, http_input_function func, gpointer data ); |