1/*
2    This file is part of libmicrospdy
3    Copyright Copyright (C) 2012 Andrey Uzunov
4
5    This program is free software: you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation, either version 3 of the License, or
8    (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.
17*/
18
19/**
20 * @file alstructures.h
21 * @brief  structures only for the application layer
22 * @author Andrey Uzunov
23 */
24
25#ifndef ALSTRUCTURES_H
26#define ALSTRUCTURES_H
27
28#include "platform.h"
29
30
31/**
32 * Represents a SPDY request.
33 */
34struct SPDY_Request
35{
36	/**
37	 * SPDY stream in whose context the request was received
38	 */
39	struct SPDYF_Stream *stream;
40
41	/**
42	 * Other HTTP headers from the request
43	 */
44	struct SPDY_NameValue *headers;
45
46	/**
47	 * HTTP method
48	 */
49	char *method;
50
51	/**
52	 * HTTP path
53	 */
54	char *path;
55
56	/**
57	 * HTTP version just like in HTTP request/response:
58	 * 			"HTTP/1.0" or "HTTP/1.1" currently
59	 */
60	char *version;
61
62	/**
63	 * called host as in HTTP
64	 */
65	char *host;
66
67	/**
68	 * The scheme used ("http" or "https")
69	 */
70	char *scheme;
71
72	/**
73	 * Extra field to be used by the user with set/get func for whatever
74	 * purpose he wants.
75	 */
76	void *user_cls;
77};
78
79#endif
80