File: jk_url.h

package info (click to toggle)
libapache-mod-jk 1%3A1.2.46-1%2Bdeb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 16,792 kB
  • sloc: ansic: 98,607; xml: 14,925; sh: 9,989; cpp: 4,222; java: 1,921; perl: 1,256; makefile: 821; pascal: 617; awk: 59
file content (72 lines) | stat: -rw-r--r-- 2,842 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

/***************************************************************************
 * Description: URL manipulation subroutines header file. (mod_proxy)      *
 * Version:     $Revision: 500534 $                                        *
 ***************************************************************************/
#ifndef _JK_URL_H
#define _JK_URL_H

#include "jk_global.h"
#include "jk_pool.h"
#include "jk_util.h"

#ifdef __cplusplus
extern "C"
{
#endif                          /* __cplusplus */

/*
 * Do a canonical encoding of the url x.
 * String y contains the result and is pre-allocated
 * for at least maxlen bytes, including a '\0' terminator.
 */
int jk_canonenc(const char *x, char *y, int maxlen);

/**
 * Unescapes a URL, leaving reserved characters intact.
 * @param escaped Optional buffer to write the encoded string, can be
 * NULL, in which case the URL decoding does not actually take place
 * but the result length of the decoded URL will be returned.
 * @param url String to be unescaped
 * @param slen The length of the original url, or -1 to decode until
 * a terminating '\0' is seen
 * @param forbid Optional list of forbidden characters, in addition to
 * 0x00
 * @param reserved Optional list of reserved characters that will be
 * left unescaped
 * @param plus If non zero, '+' is converted to ' ' as per
 * application/x-www-form-urlencoded encoding
 * @param len If set, the length of the escaped string will be returned
 * @return JK_TRUE on success, JK_FALSE if no characters are
 * decoded or the string is NULL, if a bad escape sequence is
 * found, or if a character on the forbid list is found.
 * Implementation copied from APR 1.5.x.
 */
int jk_unescape_url(char *const escaped,
                    const char *const url,
                    size_t slen,
                    const char *const forbid,
                    const char *const reserved,
                    const int plus,
                    size_t *len);

#ifdef __cplusplus
}
#endif  /* __cplusplus */
#endif  /* _JK_URL_H */