diff -r 1fdbf4170ef4 -r b8bf95b39952 src/server/pblock.h --- a/src/server/pblock.h Sun Jan 08 15:46:47 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,366 +0,0 @@ -/* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - * - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * - * THE BSD LICENSE - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of the nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef BASE_PBLOCK_H -#define BASE_PBLOCK_H - -#ifndef NOINTNSAPI -#define INTNSAPI -#endif /* !NOINTNSAPI */ - -/* - * pblock.h: Header for Parameter Block handling functions - * - * - * A parameter block is a set of name=value pairs which are generally used - * as parameters, but can be anything. They are kept in a hash table for - * reasonable speed, but if you are doing any intensive modification or - * access of them you should probably make a local copy of each parameter - * while working. - * - * Rob McCool - * - */ - -#ifndef NETSITE_H -#include "nsapi.h" -#include "netsite.h" -#endif /* !NETSITE_H */ - -#ifdef XP_WIN32 -#ifdef BUILD_DLL -#define BASE_DLL _declspec(dllexport) -#else -#define BASE_DLL _declspec(dllimport) -#endif -#else -#define BASE_DLL -#endif - -#ifdef INTNSAPI - -/* --- Begin function prototypes --- */ - -NSPR_BEGIN_EXTERN_C - -NSAPI_PUBLIC pb_param *INTparam_create(const char *name, const char *value); - -NSAPI_PUBLIC int INTparam_free(pb_param *pp); - -NSAPI_PUBLIC pblock *INTpblock_create(int n); - -NSAPI_PUBLIC void INTpblock_free(pblock *pb); - -NSAPI_PUBLIC char *INTpblock_findval(const char *name, const pblock *pb); - -NSAPI_PUBLIC pb_param *INTpblock_nvinsert(const char *name, const char *value, pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_nvlinsert(const char *name, int namelen, const char *value, int valuelen, pblock *pb); - -NSAPI_PUBLIC pb_param *INTpblock_nninsert(const char *name, int value, pblock *pb); - -NSAPI_PUBLIC void INTpblock_pinsert(pb_param *pp, pblock *pb); - -NSAPI_PUBLIC int INTpblock_str2pblock(const char *str, pblock *pb); - -NSAPI_PUBLIC char *INTpblock_pblock2str(const pblock *pb, char *str); - -NSAPI_PUBLIC int INTpblock_copy(const pblock *src, pblock *dst); - -NSAPI_PUBLIC pblock *INTpblock_dup(const pblock *src); - -NSAPI_PUBLIC char **INTpblock_pb2env(const pblock *pb, char **env); - -NSAPI_PUBLIC void pblock_nvreplace (const char *name, const char *value, pblock *pb); - -/* --------------------------- Internal things ---------------------------- */ - -typedef struct pb_key pb_key; - -BASE_DLL extern const pb_key *const pb_key_accept; -BASE_DLL extern const pb_key *const pb_key_accept_charset; -BASE_DLL extern const pb_key *const pb_key_accept_encoding; -BASE_DLL extern const pb_key *const pb_key_accept_language; -BASE_DLL extern const pb_key *const pb_key_accept_ranges; -BASE_DLL extern const pb_key *const pb_key_actual_route; -BASE_DLL extern const pb_key *const pb_key_age; -BASE_DLL extern const pb_key *const pb_key_always_allow_chunked; -BASE_DLL extern const pb_key *const pb_key_always_use_keep_alive; -BASE_DLL extern const pb_key *const pb_key_auth_cert; -BASE_DLL extern const pb_key *const pb_key_auth_expiring; -BASE_DLL extern const pb_key *const pb_key_auth_group; -BASE_DLL extern const pb_key *const pb_key_auth_type; -BASE_DLL extern const pb_key *const pb_key_auth_user; -BASE_DLL extern const pb_key *const pb_key_authorization; -BASE_DLL extern const pb_key *const pb_key_browser; -BASE_DLL extern const pb_key *const pb_key_c2p_cl; -BASE_DLL extern const pb_key *const pb_key_c2p_hl; -BASE_DLL extern const pb_key *const pb_key_cache_info; -BASE_DLL extern const pb_key *const pb_key_charset; -BASE_DLL extern const pb_key *const pb_key_check_http_server; -BASE_DLL extern const pb_key *const pb_key_ChunkedRequestBufferSize; -BASE_DLL extern const pb_key *const pb_key_ChunkedRequestTimeout; -BASE_DLL extern const pb_key *const pb_key_cipher; -BASE_DLL extern const pb_key *const pb_key_clf_request; -BASE_DLL extern const pb_key *const pb_key_cli_status; -BASE_DLL extern const pb_key *const pb_key_client_cert_nickname; -BASE_DLL extern const pb_key *const pb_key_client_ip; -BASE_DLL extern const pb_key *const pb_key_close; -BASE_DLL extern const pb_key *const pb_key_connect_timeout; -BASE_DLL extern const pb_key *const pb_key_connection; -BASE_DLL extern const pb_key *const pb_key_cont; -BASE_DLL extern const pb_key *const pb_key_content_encoding; -BASE_DLL extern const pb_key *const pb_key_content_language; -BASE_DLL extern const pb_key *const pb_key_content_length; -BASE_DLL extern const pb_key *const pb_key_content_location; -BASE_DLL extern const pb_key *const pb_key_content_md5; -BASE_DLL extern const pb_key *const pb_key_content_range; -BASE_DLL extern const pb_key *const pb_key_content_type; -BASE_DLL extern const pb_key *const pb_key_cookie; -BASE_DLL extern const pb_key *const pb_key_date; -BASE_DLL extern const pb_key *const pb_key_DATE_GMT; -BASE_DLL extern const pb_key *const pb_key_DATE_LOCAL; -BASE_DLL extern const pb_key *const pb_key_dir; -BASE_DLL extern const pb_key *const pb_key_Directive; -BASE_DLL extern const pb_key *const pb_key_dns; -BASE_DLL extern const pb_key *const pb_key_DOCUMENT_NAME; -BASE_DLL extern const pb_key *const pb_key_DOCUMENT_URI; -BASE_DLL extern const pb_key *const pb_key_domain; -BASE_DLL extern const pb_key *const pb_key_enc; -BASE_DLL extern const pb_key *const pb_key_engine; -BASE_DLL extern const pb_key *const pb_key_error_action; -BASE_DLL extern const pb_key *const pb_key_error_desc; -BASE_DLL extern const pb_key *const pb_key_error_fn; -BASE_DLL extern const pb_key *const pb_key_escape; -BASE_DLL extern const pb_key *const pb_key_escaped; -BASE_DLL extern const pb_key *const pb_key_etag; -BASE_DLL extern const pb_key *const pb_key_expect; -BASE_DLL extern const pb_key *const pb_key_expires; -BASE_DLL extern const pb_key *const pb_key_expr; -BASE_DLL extern const pb_key *const pb_key_filter; -BASE_DLL extern const pb_key *const pb_key_find_pathinfo_forward; -BASE_DLL extern const pb_key *const pb_key_flushTimer; -BASE_DLL extern const pb_key *const pb_key_fn; -BASE_DLL extern const pb_key *const pb_key_from; -BASE_DLL extern const pb_key *const pb_key_full_headers; -BASE_DLL extern const pb_key *const pb_key_hdr; -BASE_DLL extern const pb_key *const pb_key_host; -BASE_DLL extern const pb_key *const pb_key_hostname; -BASE_DLL extern const pb_key *const pb_key_if_match; -BASE_DLL extern const pb_key *const pb_key_if_modified_since; -BASE_DLL extern const pb_key *const pb_key_if_none_match; -BASE_DLL extern const pb_key *const pb_key_if_range; -BASE_DLL extern const pb_key *const pb_key_if_unmodified_since; -BASE_DLL extern const pb_key *const pb_key_ip; -BASE_DLL extern const pb_key *const pb_key_iponly; -BASE_DLL extern const pb_key *const pb_key_issuer_dn; -BASE_DLL extern const pb_key *const pb_key_jroute; -BASE_DLL extern const pb_key *const pb_key_keep_alive; -BASE_DLL extern const pb_key *const pb_key_keep_alive_timeout; -BASE_DLL extern const pb_key *const pb_key_keysize; -BASE_DLL extern const pb_key *const pb_key_lang; -BASE_DLL extern const pb_key *const pb_key_LAST_MODIFIED; -BASE_DLL extern const pb_key *const pb_key_last_modified; -BASE_DLL extern const pb_key *const pb_key_level; -BASE_DLL extern const pb_key *const pb_key_location; -BASE_DLL extern const pb_key *const pb_key_lock_owner; -BASE_DLL extern const pb_key *const pb_key_magnus_charset; -BASE_DLL extern const pb_key *const pb_key_magnus_internal; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_dav_src; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_default_acls_only; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_error_j2ee; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_j2ee_nsapi; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_preserve_srvhdrs; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_set_request_status; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_set_response_status; -BASE_DLL extern const pb_key *const pb_key_magnus_internal_webapp_errordesc; -BASE_DLL extern const pb_key *const pb_key_matched_browser; -BASE_DLL extern const pb_key *const pb_key_max_age; -BASE_DLL extern const pb_key *const pb_key_max_forwards; -BASE_DLL extern const pb_key *const pb_key_message; -BASE_DLL extern const pb_key *const pb_key_method; -BASE_DLL extern const pb_key *const pb_key_name; -BASE_DLL extern const pb_key *const pb_key_nocache; -BASE_DLL extern const pb_key *const pb_key_nostat; -BASE_DLL extern const pb_key *const pb_key_ntrans_base; -BASE_DLL extern const pb_key *const pb_key_offline_origin_addr; -BASE_DLL extern const pb_key *const pb_key_offline_proxy_addr; -BASE_DLL extern const pb_key *const pb_key_origin_addr; -BASE_DLL extern const pb_key *const pb_key_p2c_cl; -BASE_DLL extern const pb_key *const pb_key_p2c_hl; -BASE_DLL extern const pb_key *const pb_key_p2r_cl; -BASE_DLL extern const pb_key *const pb_key_p2r_hl; -BASE_DLL extern const pb_key *const pb_key_parse_timeout; -BASE_DLL extern const pb_key *const pb_key_password; -BASE_DLL extern const pb_key *const pb_key_path; -BASE_DLL extern const pb_key *const pb_key_PATH_INFO; -BASE_DLL extern const pb_key *const pb_key_path_info; -BASE_DLL extern const pb_key *const pb_key_pblock; -BASE_DLL extern const pb_key *const pb_key_poll_interval; -BASE_DLL extern const pb_key *const pb_key_port; -BASE_DLL extern const pb_key *const pb_key_ppath; -BASE_DLL extern const pb_key *const pb_key_pragma; -BASE_DLL extern const pb_key *const pb_key_process_request_body; -BASE_DLL extern const pb_key *const pb_key_process_response_body; -BASE_DLL extern const pb_key *const pb_key_protocol; -BASE_DLL extern const pb_key *const pb_key_proxy_addr; -BASE_DLL extern const pb_key *const pb_key_proxy_agent; -BASE_DLL extern const pb_key *const pb_key_proxy_auth_cert; -BASE_DLL extern const pb_key *const pb_key_proxy_authorization; -BASE_DLL extern const pb_key *const pb_key_proxy_cipher; -BASE_DLL extern const pb_key *const pb_key_proxy_issuer_dn; -BASE_DLL extern const pb_key *const pb_key_proxy_jroute; -BASE_DLL extern const pb_key *const pb_key_proxy_keysize; -BASE_DLL extern const pb_key *const pb_key_proxy_ping; -BASE_DLL extern const pb_key *const pb_key_proxy_request; -BASE_DLL extern const pb_key *const pb_key_proxy_secret_keysize; -BASE_DLL extern const pb_key *const pb_key_proxy_ssl_id; -BASE_DLL extern const pb_key *const pb_key_proxy_user_dn; -BASE_DLL extern const pb_key *const pb_key_query; -BASE_DLL extern const pb_key *const pb_key_QUERY_STRING; -BASE_DLL extern const pb_key *const pb_key_QUERY_STRING_UNESCAPED; -BASE_DLL extern const pb_key *const pb_key_r2p_cl; -BASE_DLL extern const pb_key *const pb_key_r2p_hl; -BASE_DLL extern const pb_key *const pb_key_range; -BASE_DLL extern const pb_key *const pb_key_referer; -BASE_DLL extern const pb_key *const pb_key_reformat_request_headers; -BASE_DLL extern const pb_key *const pb_key_remote_status; -BASE_DLL extern const pb_key *const pb_key_request_jroute; -BASE_DLL extern const pb_key *const pb_key_required_rights; -BASE_DLL extern const pb_key *const pb_key_retries; -BASE_DLL extern const pb_key *const pb_key_rewrite_content_location; -BASE_DLL extern const pb_key *const pb_key_rewrite_host; -BASE_DLL extern const pb_key *const pb_key_rewrite_location; -BASE_DLL extern const pb_key *const pb_key_rewrite_set_cookie; -BASE_DLL extern const pb_key *const pb_key_root; -BASE_DLL extern const pb_key *const pb_key_route; -BASE_DLL extern const pb_key *const pb_key_route_cookie; -BASE_DLL extern const pb_key *const pb_key_route_hdr; -BASE_DLL extern const pb_key *const pb_key_route_offline; -BASE_DLL extern const pb_key *const pb_key_script_name; -BASE_DLL extern const pb_key *const pb_key_secret_keysize; -BASE_DLL extern const pb_key *const pb_key_secure; -BASE_DLL extern const pb_key *const pb_key_server; -BASE_DLL extern const pb_key *const pb_key_set_cookie; -BASE_DLL extern const pb_key *const pb_key_socks_addr; -BASE_DLL extern const pb_key *const pb_key_ssl_id; -BASE_DLL extern const pb_key *const pb_key_ssl_unclean_shutdown; -BASE_DLL extern const pb_key *const pb_key_status; -BASE_DLL extern const pb_key *const pb_key_sticky_cookie; -BASE_DLL extern const pb_key *const pb_key_sticky_param; -BASE_DLL extern const pb_key *const pb_key_suppress_request_headers; -BASE_DLL extern const pb_key *const pb_key_svr_status; -BASE_DLL extern const pb_key *const pb_key_timeout; -BASE_DLL extern const pb_key *const pb_key_to; -BASE_DLL extern const pb_key *const pb_key_transfer_encoding; -BASE_DLL extern const pb_key *const pb_key_transmit_timeout; -BASE_DLL extern const pb_key *const pb_key_tunnel_non_http_response; -BASE_DLL extern const pb_key *const pb_key_type; -BASE_DLL extern const pb_key *const pb_key_upstream_jroute; -BASE_DLL extern const pb_key *const pb_key_uri; -BASE_DLL extern const pb_key *const pb_key_url; -BASE_DLL extern const pb_key *const pb_key_url_prefix; -BASE_DLL extern const pb_key *const pb_key_UseOutputStreamSize; -BASE_DLL extern const pb_key *const pb_key_user; -BASE_DLL extern const pb_key *const pb_key_user_agent; -BASE_DLL extern const pb_key *const pb_key_user_dn; -BASE_DLL extern const pb_key *const pb_key_validate_server_cert; -BASE_DLL extern const pb_key *const pb_key_value; -BASE_DLL extern const pb_key *const pb_key_vary; -BASE_DLL extern const pb_key *const pb_key_via; -BASE_DLL extern const pb_key *const pb_key_warning; - -NSAPI_PUBLIC pool_handle_t *pblock_pool(pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_param_create(pblock *pb, const char *name, const char *value); - -NSAPI_PUBLIC pblock *pblock_create_pool(pool_handle_t *pool_handle, int n); - -NSAPI_PUBLIC pb_param *INTpblock_fr(const char *name, pblock *pb, int remove); - -NSAPI_PUBLIC char *INTpblock_replace(const char *name,char * new_value,pblock *pb); - -NSAPI_PUBLIC int INTpblock_str2pblock_lowercasename(const char *str, pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_removeone(pblock *pb); - -NSAPI_PUBLIC const pb_key *pblock_key(const char *name); - -NSAPI_PUBLIC pb_param *pblock_key_param_create(pblock *pb, const pb_key *key, const char *value, int valuelen); - -NSAPI_PUBLIC char *pblock_findkeyval(const pb_key *key, const pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_findkey(const pb_key *key, const pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_removekey(const pb_key *key, pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_kvinsert(const pb_key *key, const char *value, int valuelen, pblock *pb); - -NSAPI_PUBLIC void pblock_kpinsert(const pb_key *key, pb_param *pp, pblock *pb); - -NSAPI_PUBLIC void pblock_kvreplace(const pb_key *key, const char *value, int valuelen, pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_kninsert(const pb_key *key, int value, pblock *pb); - -NSAPI_PUBLIC pb_param *pblock_kllinsert(const pb_key *key, PRInt64 value, pblock *pb); - -#ifdef __cplusplus -inline const pb_key *param_key(pb_param *pp) -{ - return *(const pb_key **)(pp + 1); /* XXX see plist_pvt.h */ -} -#endif - -#define PARAM_KEY(pp) *(const pb_key **)(pp + 1) /* new */ - -NSPR_END_EXTERN_C - -#define param_create INTparam_create -#define param_free INTparam_free -#define pblock_create INTpblock_create -#define pblock_free INTpblock_free -#define pblock_findval INTpblock_findval -#define pblock_nvinsert INTpblock_nvinsert -#define pblock_nninsert INTpblock_nninsert -#define pblock_pinsert INTpblock_pinsert -#define pblock_str2pblock INTpblock_str2pblock -#define pblock_pblock2str INTpblock_pblock2str -#define pblock_copy INTpblock_copy -#define pblock_dup INTpblock_dup -#define pblock_pb2env INTpblock_pb2env -#define pblock_fr INTpblock_fr -#define pblock_replace INTpblock_replace - -#endif /* INTNSAPI */ - -#endif /* !BASE_PBLOCK_H */