Handle HTTP redirections automatically.
[doldaconnect.git] / include / http.h
index e6d1020..8403e35 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Dolda Connect - Modular multiuser Direct Connect-style client
- *  Copyright (C) 2007 Fredrik Tolf (fredrik@dolda2000.com)
+ *  Copyright (C) 2007 Fredrik Tolf <fredrik@dolda2000.com>
  *  
  *  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
 
 #include <netdb.h>
 
+#include "utils.h"
+
 struct hturlinfo {
     char *host;
     int port;
     char *path;
     char *query;
+    char *fragment;
 };
 
 struct htconn {
     int state;
     int fd;
     struct addrinfo *ailist, *curai;
-    char *outbuf, *inbuf;
+    char *outbuf, *inbuf, *databuf;
     size_t outbufsize, outbufdata;
     size_t inbufsize, inbufdata;
+    size_t databufsize, databufdata;
     struct hturlinfo *url;
+    int rescode;
+    char *resstr;
+    struct strpair *headers;
+    ssize_t tlen, rxd, chl;
+    int autoredir;
 };
 
 struct htcookie {
@@ -46,7 +55,9 @@ struct htcookie {
 
 struct hturlinfo *parseurl(char *url);
 void freeurl(struct hturlinfo *ui);
+void freehtconn(struct htconn *cn);
 struct htconn *htconnect(struct hturlinfo *ui);
 int htpollflags(struct htconn *hc);
+int htprocess(struct htconn *hc, int pollflags);
 
 #endif