X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fhttp.h;h=be86bb205c0897f6db8b52a0e5ea5e039c8f8999;hb=592591ac165b4e844f3968e566d52ba20dbbf26a;hp=75014247fee977cd590f49c5f2f468499cffca94;hpb=fe3383c0559a453df1e5076fc6faac6d1a11685c;p=pazpar2-moved-to-github.git diff --git a/src/http.h b/src/http.h index 7501424..be86bb2 100644 --- a/src/http.h +++ b/src/http.h @@ -1,3 +1,24 @@ +/* $Id: http.h,v 1.7 2007-04-10 08:48:56 adam Exp $ + Copyright (c) 2006-2007, Index Data. + +This file is part of Pazpar2. + +Pazpar2 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, or (at your option) any later +version. + +Pazpar2 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 +along with Pazpar2; see the file LICENSE. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. + */ + #ifndef HTTP_H #define HTTP_H @@ -28,6 +49,7 @@ struct http_channel struct http_request *request; struct http_response *response; struct http_channel *next; // for freelist + char *addr; /* forwarded address */ }; struct http_proxy // attached to iochan for proxy connection @@ -35,6 +57,7 @@ struct http_proxy // attached to iochan for proxy connection IOCHAN iochan; struct http_channel *channel; struct http_buf *oqueue; + int first_response; }; struct http_header @@ -57,6 +80,7 @@ struct http_request char http_version[20]; char method[20]; char *path; + char *search; struct http_header *headers; struct http_argument *arguments; }; @@ -70,13 +94,19 @@ struct http_response char *payload; }; -void http_set_proxyaddr(char *url); +void http_set_proxyaddr(char *url, char *baseurl); void http_init(const char *addr); -void http_addheader(struct http_response *r, const char *name, const char *value); +void http_addheader(struct http_response *r, + const char *name, const char *value); +struct http_header * http_header_append(struct http_channel *ch, + struct http_header * hp, + const char *name, + const char *value); char *http_argbyname(struct http_request *r, char *name); -char *http_headerbyname(struct http_request *r, char *name); +char *http_headerbyname(struct http_header *r, char *name); struct http_response *http_create_response(struct http_channel *c); void http_send_response(struct http_channel *c); +void urlencode(const char *i, char *o); /* * Local variables: