aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/http_client.h
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2005-12-17 21:56:50 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2005-12-17 21:56:50 +0100
commit7c0a4975a538ab75405e64919bbdfee51b898b2e (patch)
tree47d211522bbed3fda3b33b0233e91e3cf5cb9e23 /protocols/http_client.h
parentb5a22e33a1aa2500093e783e79de2f44bf53c150 (diff)
parentad8b8a367c8e5dd2816096959682e2187df07c6c (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.h54
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 );