~ubuntu-branches/ubuntu/lucid/fpc/lucid-proposed

« back to all changes in this revision

Viewing changes to fpcsrc/packages/base/httpd/httpd-1.3/http_protocol.inc

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-10-09 23:29:00 UTC
  • mfrom: (4.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20081009232900-553f61m37jkp6upv
Tags: 2.2.2-4
[ Torsten Werner ]
* Update ABI version in fpc-depends automatically.
* Remove empty directories from binary package fpc-source.

[ Mazen Neifer ]
* Removed leading path when calling update-alternatives to remove a Linitian
  error.
* Fixed clean target.
* Improved description of packages. (Closes: #498882)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{ Licensed to the Apache Software Foundation (ASF) under one or more
2
 
 * contributor license agreements.  See the NOTICE file distributed with
3
 
 * this work for additional information regarding copyright ownership.
4
 
 * The ASF licenses this file to You under the Apache License, Version 2.0
5
 
 * (the "License"); you may not use this file except in compliance with
6
 
 * the License.  You may obtain a copy of the License at
7
 
 *
8
 
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 
 *
10
 
 * Unless required by applicable law or agreed to in writing, software
11
 
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 
 * See the License for the specific language governing permissions and
14
 
 * limitations under the License.
15
 
 }
16
 
 
17
 
{
18
 
 * Prototypes for routines which either talk directly back to the user,
19
 
 * or control the ones that eventually do.
20
 
 }
21
 
 
22
 
{ Read a request and fill in the fields. }
23
 
 
24
 
function ap_read_request(c: Pconn_rec): Prequest_rec;
25
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
26
 
 
27
 
{ Send a single HTTP header field }
28
 
 
29
 
function ap_send_header_field(r: Prequest_rec; const fieldname, fieldval: PChar): cint;
30
 
 cdecl; external LibHTTPD;
31
 
 
32
 
{ Send the minimal part of an HTTP response header... but modules should be
33
 
 * very careful about using this, and should prefer ap_send_http_header().
34
 
 * Much of the HTTP/1.1 implementation correctness depends on code in
35
 
 * ap_send_http_header().
36
 
 }
37
 
procedure ap_basic_http_header(r: Prequest_rec);
38
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
39
 
 
40
 
{ Send the Status-Line and header fields for HTTP response }
41
 
 
42
 
procedure ap_send_http_header(l: Prequest_rec);
43
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
44
 
 
45
 
{ Send the response to special method requests }
46
 
 
47
 
function ap_send_http_trace(r: Prequest_rec): cint;
48
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
49
 
 
50
 
function ap_send_http_options(r: Prequest_rec): cint;
51
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
52
 
 
53
 
{ Finish up stuff after a request }
54
 
 
55
 
procedure ap_finalize_request_protocol(r: Prequest_rec);
56
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
57
 
 
58
 
{ Send error back to client... last arg indicates error status in case
59
 
 * we get an error in the process of trying to deal with an ErrorDocument
60
 
 * to handle some other error.  In that case, we print the default report
61
 
 * for the first thing that went wrong, and more briefly report on the
62
 
 * problem with the ErrorDocument.
63
 
 }
64
 
 
65
 
procedure ap_send_error_response(r: Prequest_rec; recursive_error: cint);
66
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
67
 
 
68
 
{ Set last modified header line from the lastmod date of the associated file.
69
 
 * Also, set content length.
70
 
 *
71
 
 * May return an error status, typically USE_LOCAL_COPY (that when the
72
 
 * permit_cache argument is set to one).
73
 
 }
74
 
 
75
 
function ap_set_content_length(r: Prequest_rec; length: clong): cint;
76
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
77
 
 
78
 
function ap_set_keepalive(r: Prequest_rec): cint;
79
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
80
 
 
81
 
function ap_rationalize_mtime(r: Prequest_rec; mtime: time_t): time_t;
82
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
83
 
 
84
 
function ap_make_etag(r: Prequest_rec; force_weak: cint): PChar;
85
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
86
 
 
87
 
procedure ap_set_etag(r: Prequest_rec);
88
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
89
 
 
90
 
procedure ap_set_last_modified(r: Prequest_rec);
91
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
92
 
 
93
 
function ap_meets_conditions(r: Prequest_rec): cint;
94
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
95
 
 
96
 
{ Other ways to send stuff at the client.  All of these keep track
97
 
 * of bytes_sent automatically.  This indirection is intended to make
98
 
 * it a little more painless to slide things like HTTP-NG packetization
99
 
 * underneath the main body of the code later.  In the meantime, it lets
100
 
 * us centralize a bit of accounting (bytes_sent).
101
 
 *
102
 
 * These also return the number of bytes written by the call.
103
 
 * They should only be called with a timeout registered, for obvious reaasons.
104
 
 * (Ditto the send_header stuff).
105
 
 }
106
 
 
107
 
//function ap_send_fd(f: PFILE; r: Prequest_rec): clong;
108
 
// {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
109
 
 
110
 
//function ap_send_fd_length(f: PFILE; r: Prequest_rec; length: clong): clong;
111
 
// {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
112
 
 
113
 
function ap_send_fb(f: PBUFF; r: Prequest_rec): clong;
114
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
115
 
 
116
 
function ap_send_fb_length(f: PBUFF; r: Prequest_rec): clong;
117
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
118
 
 
119
 
function ap_send_mmap(mm: Pointer; r: Prequest_rec; offset, length: size_t): size_t;
120
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
121
 
 
122
 
{ Hmmm... could macrofy these for now, and maybe forever, though the
123
 
 * definitions of the macros would get a whole lot hairier.
124
 
 }
125
 
 
126
 
function ap_rputc(c: cint; r: Prequest_rec): cint;
127
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
128
 
 
129
 
function ap_rputs(const str: PChar; r: Prequest_rec): cint;
130
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
131
 
 
132
 
function ap_rwrite(const buf: Pointer; nbyte: cint; r: Prequest_rec): cint;
133
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
134
 
 
135
 
function ap_rvputs(r: Prequest_rec; others: array of const): cint;
136
 
 cdecl; external LibHTTPD;
137
 
 
138
 
function ap_vrprintf(r: Prequest_rec; const fmt: PChar; vlist: va_list): cint;
139
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
140
 
 
141
 
function ap_rprintf(r: Prequest_rec; const fmt: PChar; others: array of const): cint;
142
 
 cdecl; external LibHTTPD;
143
 
 
144
 
{                               __attribute__((format(printf,2,3)));}
145
 
 
146
 
function ap_rflush(r: Prequest_rec): cint;
147
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
148
 
 
149
 
{
150
 
 * Index used in custom_responses array for a specific error code
151
 
 * (only use outside protocol.c is in getting them configured).
152
 
 }
153
 
 
154
 
function ap_index_of_response(status: cint): cint;
155
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
156
 
 
157
 
{ Reading a block of data from the client connection (e.g., POST arg) }
158
 
 
159
 
function ap_setup_client_block(r: Prequest_rec; read_policy: cint): cint;
160
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
161
 
 
162
 
function ap_should_client_block(r: Prequest_rec): cint;
163
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
164
 
 
165
 
function ap_get_client_block(r: Prequest_rec; buffer: PChar; bufsiz: cint): clong;
166
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
167
 
 
168
 
function ap_discard_request_body(r: Prequest_rec): cint;
169
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
170
 
 
171
 
{ Sending a byterange }
172
 
 
173
 
function ap_set_byterange(r: Prequest_rec): cint;
174
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
175
 
 
176
 
function ap_each_byterange(r: Prequest_rec; offset, length: Pclong): cint;
177
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
178
 
 
179
 
{ Support for the Basic authentication protocol.  Note that there's
180
 
 * nothing that prevents these from being in mod_auth.c, except that other
181
 
 * modules which wanted to provide their own variants on finding users and
182
 
 * passwords for Basic auth (a fairly common request) would then require
183
 
 * mod_auth to be loaded or they wouldn't work.
184
 
 *
185
 
 * get_basic_auth_pw returns 0 (OK) if it set the 'pw' argument (and assured
186
 
 * a correct value in r->connection->user); otherwise it returns an error
187
 
 * code, either SERVER_ERROR if things are really confused, AUTH_REQUIRED
188
 
 * if no authentication at all seemed to be in use, or DECLINED if there
189
 
 * was authentication but it wasn't Basic (in which case, the caller should
190
 
 * presumably decline as well).
191
 
 *
192
 
 * note_basic_auth_failure arranges for the right stuff to be scribbled on
193
 
 * the HTTP return so that the client knows how to authenticate itself the
194
 
 * next time. As does note_digest_auth_failure for Digest auth.
195
 
 *
196
 
 * note_auth_failure does the same thing, but will call the correct one
197
 
 * based on the authentication type in use.
198
 
 *
199
 
 }
200
 
 
201
 
procedure ap_note_auth_failure(r: Prequest_rec);
202
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
203
 
 
204
 
procedure ap_note_basic_auth_failure(r: Prequest_rec);
205
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
206
 
 
207
 
procedure ap_note_digest_auth_failure(r: Prequest_rec);
208
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
209
 
 
210
 
function ap_get_basic_auth_pw(r: Prequest_rec; const pw: PPChar): cint;
211
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
212
 
 
213
 
{
214
 
 * Setting up the protocol fields for subsidiary requests...
215
 
 * Also, a wrapup function to keep the internal accounting straight.
216
 
 }
217
 
 
218
 
procedure ap_set_sub_req_protocol(rnew, r: Prequest_rec);
219
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
220
 
 
221
 
procedure ap_finalize_sub_req_protocol(sub_r: Prequest_rec);
222
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
223
 
 
224
 
{ This is also useful for putting sub_reqs and internal_redirects together }
225
 
 
226
 
//CORE_EXPORT(void) ap_parse_uri(request_rec *r, const char *uri);
227
 
 
228
 
{ Get the method number associated with the given string, assumed to
229
 
 * contain an HTTP method.  Returns M_INVALID if not recognized.
230
 
 }
231
 
function ap_method_number_of(const method: PChar): cint;
232
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
233
 
 
234
 
function ap_getline(s: PChar; n: cint; in_: PBUFF; fold: cint): cint;
235
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
236
 
 
237
 
function ap_get_chunk_size(b: PChar): clong;
238
 
 {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} external LibHTTPD;
239