123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- {
- httpd.pas
- Copyright (C) 2006 Felipe Monteiro de Carvalho
- This unit is a pascal binding for the Apache 2.0.58 headers.
- The headers were released under the following copyright:
- }
- { 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.
- }
- unit httpd;
- {$ifdef fpc}
- {$mode delphi}{$H+}
- {$endif}
- {$IFNDEF FPC}
- {$DEFINE WINDOWS}
- {$ENDIF}
- {$IFDEF WIN32}
- {$DEFINE WINDOWS}
- {$ENDIF}
- {$ifdef Unix}
- {$PACKRECORDS C}
- {$endif}
- {$define Apache2_2}
- interface
- uses
- {$ifdef WINDOWS}
- Windows,
- {$ELSE}
- UnixType,
- {$ENDIF}
- apr, aprutil, ctypes;
- const
- {$ifndef fpc}
- LineEnding = #13#10;
- {$endif}
- {$IFDEF WINDOWS}
- LibHTTPD = 'libhttpd.dll';
- {$ELSE}
- LibHTTPD = '';
- {$ENDIF}
- { Declarations moved here to be on top of all declarations }
- { configuration vector structure }
- type
- ap_conf_vector_t = record end;
- Pap_conf_vector_t = ^ap_conf_vector_t;
- PPap_conf_vector_t = ^Pap_conf_vector_t;
- {
- Main httpd header files
-
- Note: There are more include files other then these, because some include files
- include more files.
- }
- {$include ap_provider.inc}
- {$include util_cfgtree.inc}
- {$include httpd.inc}
- {$include http_config.inc}
- {$include http_core.inc}
- {$include http_log.inc}
- {$include http_main.inc}
- {$include http_protocol.inc}
- {$include http_request.inc}
- {$include http_connection.inc}
- {$include http_vhost.inc}
- {$include util_script.inc}
- {$include util_time.inc}
- {$include util_md5.inc}
- {$include ap_mpm.inc}
- implementation
- {
- Macros transformed into functions in the translation
- }
- { from httpd.inc }
- { Internal representation for a HTTP protocol number, e.g., HTTP/1.1 }
- function HTTP_VERSION(major, minor: Integer): Integer;
- begin
- Result := (1000*(major)+(minor));
- end;
- { Major part of HTTP protocol }
- function HTTP_VERSION_MAJOR(number: Integer): Integer;
- begin
- Result := number div 1000;
- end;
- { Minor part of HTTP protocol }
- function HTTP_VERSION_MINOR(number: Integer): Integer;
- begin
- Result := number mod 1000;
- end;
- function ap_escape_uri(p: Papr_pool_t; const path: PChar): PChar;
- begin
- Result := ap_os_escape_path(p, path, 1);
- end;
- { from http_config.inc }
- { Use this in all standard modules }
- procedure STANDARD20_MODULE_STUFF(var mod_: module);
- begin
- mod_.version := MODULE_MAGIC_NUMBER_MAJOR;
- mod_.minor_version := MODULE_MAGIC_NUMBER_MINOR;
- mod_.module_index := -1;
- // mod_.name: PChar;
- mod_.dynamic_load_handle := nil;
- mod_.next := nil;
- mod_.magic := MODULE_MAGIC_COOKIE;
- mod_.rewrite_args := nil;
- end;
- { Use this only in MPMs }
- procedure MPM20_MODULE_STUFF(var mod_: module);
- begin
- mod_.version := MODULE_MAGIC_NUMBER_MAJOR;
- mod_.minor_version := MODULE_MAGIC_NUMBER_MINOR;
- mod_.module_index := -1;
- // mod_.name: PChar;
- mod_.dynamic_load_handle := nil;
- mod_.next := nil;
- mod_.magic := MODULE_MAGIC_COOKIE;
- end;
- function ap_get_module_config(v: Pap_conf_vector_t; m: Pmodule): Pap_conf_vector_t;
- begin
- Result := Pointer(Integer(v) + m^.module_index);
- end;
- procedure ap_set_module_config(v: Pap_conf_vector_t; m: Pmodule; val: Pap_conf_vector_t);
- var
- P: PPointer;
- begin
- P := PPointer(Integer(v) + m^.module_index);
- P^ := val;
- end;
- end.
|