native/common/jk_url.h (21 lines of code) (raw):
/*
* 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) *
***************************************************************************/
#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 */