Repository URL to install this package:
|
Version:
3.2.0 ▾
|
{ 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.
}
{
* Prototypes for routines which either talk directly back to the user,
* or control the ones that eventually do.
}
{ Read a request and fill in the fields. }
function ap_read_request(c: Pconn_rec): Prequest_rec;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Send a single HTTP header field }
function ap_send_header_field(r: Prequest_rec; const fieldname, fieldval: PChar): cint;
cdecl; external LibHTTPD;
{ Send the minimal part of an HTTP response header... but modules should be
* very careful about using this, and should prefer ap_send_http_header().
* Much of the HTTP/1.1 implementation correctness depends on code in
* ap_send_http_header().
}
procedure ap_basic_http_header(r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Send the Status-Line and header fields for HTTP response }
procedure ap_send_http_header(l: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Send the response to special method requests }
function ap_send_http_trace(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_send_http_options(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Finish up stuff after a request }
procedure ap_finalize_request_protocol(r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Send error back to client... last arg indicates error status in case
* we get an error in the process of trying to deal with an ErrorDocument
* to handle some other error. In that case, we print the default report
* for the first thing that went wrong, and more briefly report on the
* problem with the ErrorDocument.
}
procedure ap_send_error_response(r: Prequest_rec; recursive_error: cint);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Set last modified header line from the lastmod date of the associated file.
* Also, set content length.
*
* May return an error status, typically USE_LOCAL_COPY (that when the
* permit_cache argument is set to one).
}
function ap_set_content_length(r: Prequest_rec; length: clong): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_set_keepalive(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_rationalize_mtime(r: Prequest_rec; mtime: time_t): time_t;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_make_etag(r: Prequest_rec; force_weak: cint): PChar;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
procedure ap_set_etag(r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
procedure ap_set_last_modified(r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_meets_conditions(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Other ways to send stuff at the client. All of these keep track
* of bytes_sent automatically. This indirection is intended to make
* it a little more painless to slide things like HTTP-NG packetization
* underneath the main body of the code later. In the meantime, it lets
* us centralize a bit of accounting (bytes_sent).
*
* These also return the number of bytes written by the call.
* They should only be called with a timeout registered, for obvious reaasons.
* (Ditto the send_header stuff).
}
//function ap_send_fd(f: PFILE; r: Prequest_rec): clong;
// {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
//function ap_send_fd_length(f: PFILE; r: Prequest_rec; length: clong): clong;
// {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_send_fb(f: PBUFF; r: Prequest_rec): clong;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_send_fb_length(f: PBUFF; r: Prequest_rec): clong;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_send_mmap(mm: Pointer; r: Prequest_rec; offset, length: size_t): size_t;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Hmmm... could macrofy these for now, and maybe forever, though the
* definitions of the macros would get a whole lot hairier.
}
function ap_rputc(c: cint; r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_rputs(const str: PChar; r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_rwrite(const buf: Pointer; nbyte: cint; r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_rvputs(r: Prequest_rec; others: array of const): cint;
cdecl; external LibHTTPD;
function ap_vrprintf(r: Prequest_rec; const fmt: PChar; vlist: va_list): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_rprintf(r: Prequest_rec; const fmt: PChar; others: array of const): cint;
cdecl; external LibHTTPD;
{ __attribute__((format(printf,2,3)));}
function ap_rflush(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{
* Index used in custom_responses array for a specific error code
* (only use outside protocol.c is in getting them configured).
}
function ap_index_of_response(status: cint): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Reading a block of data from the client connection (e.g., POST arg) }
function ap_setup_client_block(r: Prequest_rec; read_policy: cint): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_should_client_block(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_get_client_block(r: Prequest_rec; buffer: PChar; bufsiz: cint): clong;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_discard_request_body(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Sending a byterange }
function ap_set_byterange(r: Prequest_rec): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_each_byterange(r: Prequest_rec; offset, length: Pclong): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ Support for the Basic authentication protocol. Note that there's
* nothing that prevents these from being in mod_auth.c, except that other
* modules which wanted to provide their own variants on finding users and
* passwords for Basic auth (a fairly common request) would then require
* mod_auth to be loaded or they wouldn't work.
*
* get_basic_auth_pw returns 0 (OK) if it set the 'pw' argument (and assured
* a correct value in r->connection->user); otherwise it returns an error
* code, either SERVER_ERROR if things are really confused, AUTH_REQUIRED
* if no authentication at all seemed to be in use, or DECLINED if there
* was authentication but it wasn't Basic (in which case, the caller should
* presumably decline as well).
*
* note_basic_auth_failure arranges for the right stuff to be scribbled on
* the HTTP return so that the client knows how to authenticate itself the
* next time. As does note_digest_auth_failure for Digest auth.
*
* note_auth_failure does the same thing, but will call the correct one
* based on the authentication type in use.
*
}
procedure ap_note_auth_failure(r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
procedure ap_note_basic_auth_failure(r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
procedure ap_note_digest_auth_failure(r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_get_basic_auth_pw(r: Prequest_rec; const pw: PPChar): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{
* Setting up the protocol fields for subsidiary requests...
* Also, a wrapup function to keep the internal accounting straight.
}
procedure ap_set_sub_req_protocol(rnew, r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
procedure ap_finalize_sub_req_protocol(sub_r: Prequest_rec);
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
{ This is also useful for putting sub_reqs and internal_redirects together }
//CORE_EXPORT(void) ap_parse_uri(request_rec *r, const char *uri);
{ Get the method number associated with the given string, assumed to
* contain an HTTP method. Returns M_INVALID if not recognized.
}
function ap_method_number_of(const method: PChar): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_getline(s: PChar; n: cint; in_: PBUFF; fold: cint): cint;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
function ap_get_chunk_size(b: PChar): clong;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;