VLC  4.0.0-dev
vlc_http.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * vlc_http.h: Shared code for HTTP clients
3  *****************************************************************************
4  * Copyright (C) 2001-2008 VLC authors and VideoLAN
5  *
6  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
7  * Christophe Massiot <massiot@via.ecp.fr>
8  * RĂ©mi Denis-Courmont
9  * Antoine Cellerier <dionoea at videolan dot org>
10  *
11  * This program is free software; you can redistribute it and/or modify it
12  * under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation; either version 2.1 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
24  *****************************************************************************/
25 
26 #ifndef VLC_HTTP_H
27 #define VLC_HTTP_H 1
28 
29 /**
30  * \file
31  * This file defines functions, structures, enums and macros shared between
32  * HTTP clients.
33  */
34 
35 #include <vlc_url.h>
36 #include <vlc_arrays.h>
37 
38 /* RFC 2617: Basic and Digest Access Authentication */
39 typedef struct vlc_http_auth_t
40 {
41  char *psz_realm;
42  char *psz_domain;
43  char *psz_nonce;
44  char *psz_opaque;
45  char *psz_stale;
47  char *psz_qop;
48  int i_nonce;
49  char *psz_cnonce;
50  char *psz_HA1; /* stored H(A1) value if algorithm = "MD5-sess" */
52 
53 
57  ( vlc_object_t *, vlc_http_auth_t * , const char * );
60  const char *, const char *,
61  const char *, const char *,
62  const char * );
65  const char *, const char *,
66  const char *, const char * ) VLC_USED;
67 
68 /* RFC 6265: cookies */
69 
71 
74 
75 /**
76  * Parse a value of an incoming Set-Cookie header and append the
77  * cookie to the cookie jar if appropriate.
78  *
79  * @param jar cookie jar object
80  * @param cookie header field value of Set-Cookie
81  * @return true, if the cookie was added, false otherwise
82  */
84  const char *cookie, const char *host, const char *path );
85 
86 /**
87  * Returns a cookie value that match the given URL.
88  *
89  * @param p_jar a cookie jar
90  * @param p_url the URL for which the cookies are returned
91  * @return A string consisting of semicolon-separated cookie NAME=VALUE pairs.
92  */
94  const char *host, const char *path );
95 
96 #endif /* VLC_HTTP_H */
char * psz_qop
Definition: vlc_http.h:48
char * psz_opaque
Definition: vlc_http.h:45
void vlc_http_auth_ParseWwwAuthenticateHeader(vlc_object_t *, vlc_http_auth_t *, const char *)
Definition: http_auth.c:230
char * psz_realm
Definition: vlc_http.h:42
char * psz_algorithm
Definition: vlc_http.h:47
char * psz_domain
Definition: vlc_http.h:43
This file defines functions for manipulating URL in vlc.
char * psz_nonce
Definition: vlc_http.h:44
char * vlc_http_auth_FormatAuthorizationHeader(vlc_object_t *, vlc_http_auth_t *, const char *, const char *, const char *, const char *)
Definition: http_auth.c:387
int i_nonce
Definition: vlc_http.h:49
char * psz_HA1
Definition: vlc_http.h:51
int vlc_http_auth_ParseAuthenticationInfoHeader(vlc_object_t *, vlc_http_auth_t *, const char *, const char *, const char *, const char *, const char *)
Definition: http_auth.c:308
char * vlc_http_cookies_fetch(vlc_http_cookie_jar_t *jar, bool secure, const char *host, const char *path)
Returns a cookie value that match the given URL.
Definition: httpcookies.c:351
Definition: vlc_http.h:40
void vlc_http_auth_Init(vlc_http_auth_t *)
Definition: http_auth.c:488
char * psz_stale
Definition: vlc_http.h:46
struct vlc_http_auth_t vlc_http_auth_t
#define VLC_API
Definition: fourcc_gen.c:31
void vlc_http_auth_Deinit(vlc_http_auth_t *)
Definition: http_auth.c:493
void vlc_http_cookies_destroy(vlc_http_cookie_jar_t *p_jar)
Definition: httpcookies.c:283
char * psz_cnonce
Definition: vlc_http.h:50
vlc_http_cookie_jar_t * vlc_http_cookies_new(void)
Definition: httpcookies.c:271
This file defines functions, structures and macros for handling arrays in vlc.
bool vlc_http_cookies_store(vlc_http_cookie_jar_t *jar, const char *cookie, const char *host, const char *path)
Parse a value of an incoming Set-Cookie header and append the cookie to the cookie jar if appropriate...
Definition: httpcookies.c:296
VLC object common members.
Definition: vlc_objects.h:43
#define VLC_USED
Definition: fourcc_gen.c:32