summaryrefslogtreecommitdiff
path: root/packages/httpd13/src/httpd.pas
diff options
context:
space:
mode:
Diffstat (limited to 'packages/httpd13/src/httpd.pas')
-rw-r--r--packages/httpd13/src/httpd.pas178
1 files changed, 178 insertions, 0 deletions
diff --git a/packages/httpd13/src/httpd.pas b/packages/httpd13/src/httpd.pas
new file mode 100644
index 0000000000..d050e1573a
--- /dev/null
+++ b/packages/httpd13/src/httpd.pas
@@ -0,0 +1,178 @@
+{
+ httpd.pas
+
+ Copyright (C) 2006 Felipe Monteiro de Carvalho
+
+ This unit is a pascal binding for the Apache 1.3.37 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 WIN64}
+ {$DEFINE WINDOWS}
+{$ENDIF}
+
+{$ifdef Unix}
+ {$PACKRECORDS C}
+{$endif}
+
+{$define Apache1_3}
+
+interface
+
+uses
+{$ifdef WINDOWS}
+ Windows,
+{$ELSE}
+ UnixType,
+{$ENDIF}
+ ctypes;
+
+const
+{$ifndef fpc}
+ LineEnding = #13#10;
+{$endif}
+
+{$IFDEF WINDOWS}
+ LibHTTPD = 'ApacheCore.dll';
+{$ELSE}
+ LibHTTPD = '';
+{$ENDIF}
+
+{ Declarations moved here to be on top of all declarations }
+
+{ Various types}
+type
+ time_t = LongInt;
+ size_t = Integer;
+
+{ 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_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 STANDARD_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;
+
+{ 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(PtrInt(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(PtrInt(v) + m^.module_index);
+ P^ := val;
+end;
+
+end.
+