home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F277288_util_script.h < prev    next >
C/C++ Source or Header  |  2004-02-09  |  6KB  |  142 lines

  1. /* Copyright 1999-2004 The Apache Software Foundation
  2.  *
  3.  * Licensed under the Apache License, Version 2.0 (the "License");
  4.  * you may not use this file except in compliance with the License.
  5.  * You may obtain a copy of the License at
  6.  *
  7.  *     http://www.apache.org/licenses/LICENSE-2.0
  8.  *
  9.  * Unless required by applicable law or agreed to in writing, software
  10.  * distributed under the License is distributed on an "AS IS" BASIS,
  11.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12.  * See the License for the specific language governing permissions and
  13.  * limitations under the License.
  14.  */
  15.  
  16. #ifndef APACHE_UTIL_SCRIPT_H
  17. #define APACHE_UTIL_SCRIPT_H
  18.  
  19. #include "apr_buckets.h"
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. /**
  26.  * @package Apache script tools
  27.  */
  28.  
  29. #ifndef APACHE_ARG_MAX
  30. #ifdef _POSIX_ARG_MAX
  31. #define APACHE_ARG_MAX _POSIX_ARG_MAX
  32. #else
  33. #define APACHE_ARG_MAX 512
  34. #endif
  35. #endif
  36.  
  37. /**
  38.  * Create an environment variable out of an Apache table of key-value pairs
  39.  * @param p pool to allocate out of
  40.  * @param t Apache table of key-value pairs
  41.  * @return An array containing the same key-value pairs suitable for
  42.  *         use with an exec call.
  43.  * @deffunc char **ap_create_environment(apr_pool_t *p, apr_table_t *t)
  44.  */
  45. AP_DECLARE(char **) ap_create_environment(apr_pool_t *p, apr_table_t *t);
  46.  
  47. /**
  48.  * This "cute" little function comes about because the path info on
  49.  * filenames and URLs aren't always the same. So we take the two,
  50.  * and find as much of the two that match as possible.
  51.  * @param uri The uri we are currently parsing
  52.  * @param path_info The current path info
  53.  * @return The length of the path info
  54.  * @deffunc int ap_find_path_info(const char *uri, const char *path_info)
  55.  */
  56. AP_DECLARE(int) ap_find_path_info(const char *uri, const char *path_info);
  57.  
  58. /**
  59.  * Add CGI environment variables required by HTTP/1.1 to the request's 
  60.  * environment table
  61.  * @param r the current request
  62.  * @deffunc void ap_add_cgi_vars(request_rec *r)
  63.  */
  64. AP_DECLARE(void) ap_add_cgi_vars(request_rec *r);
  65.  
  66. /**
  67.  * Add common CGI environment variables to the requests environment table
  68.  * @param r The current request
  69.  * @deffunc void ap_add_common_vars(request_rec *r)
  70.  */
  71. AP_DECLARE(void) ap_add_common_vars(request_rec *r);
  72.  
  73. /**
  74.  * Read headers output from a script, ensuring that the output is valid.  If
  75.  * the output is valid, then the headers are added to the headers out of the
  76.  * current request
  77.  * @param r The current request
  78.  * @param f The file to read from
  79.  * @param buffer Empty when calling the function.  On output, if there was an
  80.  *               error, the string that cause the error is stored here. 
  81.  * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise
  82.  * @deffunc int ap_scan_script_header_err(request_rec *r, apr_file_t *f, char *buffer)
  83.  */ 
  84. AP_DECLARE(int) ap_scan_script_header_err(request_rec *r, apr_file_t *f, char *buffer);
  85.  
  86. /**
  87.  * Read headers output from a script, ensuring that the output is valid.  If
  88.  * the output is valid, then the headers are added to the headers out of the
  89.  * current request
  90.  * @param r The current request
  91.  * @param bb The brigade from which to read
  92.  * @param buffer Empty when calling the function.  On output, if there was an
  93.  *               error, the string that cause the error is stored here. 
  94.  * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise
  95.  * @deffunc int ap_scan_script_header_err_brigade(request_rec *r, apr_bucket_brigade *bb, char *buffer)
  96.  */ 
  97. AP_DECLARE(int) ap_scan_script_header_err_brigade(request_rec *r,
  98.                                                   apr_bucket_brigade *bb,
  99.                                                   char *buffer);
  100.  
  101. /**
  102.  * Read headers strings from a script, ensuring that the output is valid.  If
  103.  * the output is valid, then the headers are added to the headers out of the
  104.  * current request
  105.  * @param r The current request
  106.  * @param buffer Empty when calling the function.  On output, if there was an
  107.  *               error, the string that cause the error is stored here. 
  108.  * @param termch Pointer to the last character parsed.
  109.  * @param termarg Pointer to an int to capture the last argument parsed.
  110.  * @param args   String arguments to parse consecutively for headers, 
  111.  *               a NULL argument terminates the list.
  112.  * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise
  113.  * @deffunc int ap_scan_script_header_err_core(request_rec *r, char *buffer, int (*getsfunc)(char *, int, void *), void *getsfunc_data)
  114.  */ 
  115. AP_DECLARE_NONSTD(int) ap_scan_script_header_err_strs(request_rec *r, 
  116.                                                       char *buffer, 
  117.                                                       const char **termch,
  118.                                                       int *termarg, ...);
  119.  
  120. /**
  121.  * Read headers output from a script, ensuring that the output is valid.  If
  122.  * the output is valid, then the headers are added to the headers out of the
  123.  * current request
  124.  * @param r The current request
  125.  * @param buffer Empty when calling the function.  On output, if there was an
  126.  *               error, the string that cause the error is stored here. 
  127.  * @param getsfunc Function to read the headers from.  This function should
  128.                    act like gets()
  129.  * @param getsfunc_data The place to read from
  130.  * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise
  131.  * @deffunc int ap_scan_script_header_err_core(request_rec *r, char *buffer, int (*getsfunc)(char *, int, void *), void *getsfunc_data)
  132.  */ 
  133. AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer,
  134.                        int (*getsfunc) (char *, int, void *),
  135.                        void *getsfunc_data);
  136.  
  137. #ifdef __cplusplus
  138. }
  139. #endif
  140.  
  141. #endif    /* !APACHE_UTIL_SCRIPT_H */
  142.