PTLib  Version 2.10.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
httpsvc.h
Go to the documentation of this file.
1 /*
2  * httpsvc.h
3  *
4  * Common classes for service applications using HTTP as the user interface.
5  *
6  * Portable Windows Library
7  *
8  * Copyright (c) 1993-2002 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Portable Windows Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Contributor(s): ______________________________________.
25  *
26  * $Revision: 24177 $
27  * $Author: rjongbloed $
28  * $Date: 2010-04-05 06:52:04 -0500 (Mon, 05 Apr 2010) $
29  */
30 
31 #ifndef PTLIB_HTTPSVC_H
32 #define PTLIB_HTTPSVC_H
33 
34 #include <ptlib/svcproc.h>
35 #include <ptlib/sockets.h>
36 #include <ptclib/httpform.h>
37 #include <ptclib/cypher.h>
38 
39 
41 
42 
44 
46 {
48  public:
49  PHTTPServiceThread(PINDEX stackSize,
50  PHTTPServiceProcess & app);
52 
53  void Main();
54  void Close();
55 
56  protected:
57  PINDEX myStackSize;
60 };
61 
62 
64 
66 {
68 
69  public:
70  enum {
72  };
73  struct Info {
74  const char * productName;
75  const char * manufacturerName;
76 
81  const char * compilationDate;
82 
84  const char * securedKeys[MaxSecuredKeys];
86 
88 
89  const char * manufHomePage;
90  const char * email;
91  const char * productHTML;
92  const char * gifHTML;
94  const char * gifFilename;
96  int gifWidth;
97  int gifHeight;
98 
99  const char * copyrightHolder;
100  const char * copyrightHomePage;
101  const char * copyrightEmail;
102  };
103 
104  PHTTPServiceProcess(const Info & inf);
106 
107  PBoolean OnStart();
108  void OnStop();
109  PBoolean OnPause();
110  void OnContinue();
111  const char * GetServiceDependencies() const;
112 
113  virtual void OnConfigChanged() = 0;
114  virtual PBoolean Initialise(const char * initMsg) = 0;
115 
117  WORD port,
119  PINDEX stackSize = 0x4000
120  );
122  PSocket * listener,
124  PINDEX stackSize = 0x4000
125  );
126 
127  virtual PString GetPageGraphic();
128  void GetPageHeader(PHTML &);
129  void GetPageHeader(PHTML &, const PString & title);
130 
131  virtual PString GetCopyrightText();
132 
133  const PString & GetMacroKeyword() const { return macroKeyword; }
134  const PTime & GetCompilationDate() const { return compilationDate; }
135  const PString & GetHomePage() const { return manufacturersHomePage; }
136  const PString & GetEMailAddress() const { return manufacturersEmail; }
137  const PString & GetProductName() const { return productNameHTML; }
138  const PTEACypher::Key & GetProductKey() const { return productKey; }
139  const PStringArray & GetSecuredKeys() const { return securedKeys; }
140  const PTEACypher::Key & GetSignatureKey() const { return signatureKey; }
143 
144  static PHTTPServiceProcess & Current();
145 
146  virtual void AddRegisteredText(PHTML & html);
147  virtual void AddUnregisteredText(PHTML & html);
148  virtual PBoolean SubstituteEquivalSequence(PHTTPRequest & request, const PString &, PString &);
149  virtual PHTTPServer * CreateHTTPServer(PTCPSocket & socket);
150  virtual PHTTPServer * OnCreateHTTPServer(const PHTTPSpace & urlSpace);
152  PBoolean ProcessHTTP(PTCPSocket & socket);
153 
154  protected:
158 
163 
172 
173  void ShutdownListener();
174  void BeginRestartSystem();
175  void CompleteRestartSystem();
176 
178 
179  PLIST(ThreadList, PHTTPServiceThread);
180  ThreadList httpThreads;
182 
183  friend class PConfigPage;
184  friend class PConfigSectionsPage;
185  friend class PHTTPServiceThread;
186 };
187 
188 
190 
191 class PConfigPage : public PHTTPConfig
192 {
194  public:
195  PConfigPage(
196  PHTTPServiceProcess & app,
197  const PString & section,
198  const PHTTPAuthority & auth
199  );
200  PConfigPage(
201  PHTTPServiceProcess & app,
202  const PString & title,
203  const PString & section,
204  const PHTTPAuthority & auth
205  );
206 
207  void OnLoadedText(PHTTPRequest &, PString & text);
208 
210  PHTTPServer & server,
211  const PURL & url,
212  const PMIMEInfo & info,
213  const PStringToString & data,
214  const PHTTPConnectionInfo & connectInfo
215  );
216 
217  virtual PBoolean Post(
218  PHTTPRequest & request,
219  const PStringToString & data,
220  PHTML & replyMessage
221  );
222 
223  protected:
224  virtual PBoolean GetExpirationDate(
225  PTime & when
226  );
227 
229 };
230 
231 
233 
235 {
237  public:
239  PHTTPServiceProcess & app,
240  const PURL & url,
241  const PHTTPAuthority & auth,
242  const PString & prefix,
243  const PString & valueName,
244  const PURL & editSection,
245  const PURL & newSection,
246  const PString & newTitle,
247  PHTML & heading
248  );
249 
250  void OnLoadedText(PHTTPRequest &, PString & text);
251 
253  PHTTPServer & server,
254  const PURL & url,
255  const PMIMEInfo & info,
256  const PStringToString & data,
257  const PHTTPConnectionInfo & connectInfo
258  );
259 
260  virtual PBoolean Post(
261  PHTTPRequest & request,
262  const PStringToString & data,
263  PHTML & replyMessage
264  );
265 
266  protected:
267  virtual PBoolean GetExpirationDate(
268  PTime & when
269  );
270 
272 };
273 
274 
276 
278 {
280  public:
282  PHTTPServiceProcess & app,
283  const PHTTPAuthority & auth
284  );
285 
287  PHTTPRequest & request
288  );
289  void OnLoadedText(PHTTPRequest & request, PString & text);
290 
291  virtual PBoolean Post(
292  PHTTPRequest & request,
293  const PStringToString & data,
294  PHTML & replyMessage
295  );
296 
297  virtual void AddFields(
298  const PString & prefix
299  ) = 0;
300 
301  protected:
303 };
304 
305 
307 
308 class PServiceHTML : public PHTML
309 {
311  public:
312  PServiceHTML(const char * title,
313  const char * help = NULL,
314  const char * helpGif = "help.gif");
315 
317  static PString ExtractSignature(const PString & html,
318  PString & out,
319  const char * keyword = "#equival");
320 
322  static PString CalculateSignature(const PString & out);
323  static PString CalculateSignature(const PString & out, const PTEACypher::Key & sig);
324 
326  static PBoolean CheckSignature(const PString & html);
327 
334  };
335  static bool ProcessMacros(
336  PHTTPRequest & request,
337  PString & text,
338  const PString & filename,
339  unsigned options
340  );
341  static bool SpliceMacro(
342  PString & text,
343  const PString & tokens,
344  const PString & value
345  );
346 };
347 
348 
350 
351 class PServiceMacro : public PObject
352 {
353  public:
354  PServiceMacro(const char * name, PBoolean isBlock);
355  PServiceMacro(const PCaselessString & name, PBoolean isBlock);
356  Comparison Compare(const PObject & obj) const;
357  virtual PString Translate(
358  PHTTPRequest & request,
359  const PString & args,
360  const PString & block
361  ) const;
362  protected:
363  const char * macroName;
366  static PServiceMacro * list;
367  friend class PServiceMacros_list;
368 };
369 
370 
371 #define P_EMPTY
372 
373 #define PCREATE_SERVICE_MACRO(name, request, args) \
374  class PServiceMacro_##name : public PServiceMacro { \
375  public: \
376  PServiceMacro_##name() : PServiceMacro(#name, false) { } \
377  PString Translate(PHTTPRequest &, const PString &, const PString &) const; \
378  }; \
379  static const PServiceMacro_##name serviceMacro_##name; \
380  PString PServiceMacro_##name::Translate(PHTTPRequest & request, const PString & args, const PString &) const
381 
382 
383 
384 #define PCREATE_SERVICE_MACRO_BLOCK(name, request, args, block) \
385  class PServiceMacro_##name : public PServiceMacro { \
386  public: \
387  PServiceMacro_##name() : PServiceMacro(#name, true) { } \
388  PString Translate(PHTTPRequest &, const PString &, const PString &) const; \
389  }; \
390  static const PServiceMacro_##name serviceMacro_##name; \
391  PString PServiceMacro_##name::Translate(PHTTPRequest & request, const PString & args, const PString & block) const
392 
393 
394 
396 
398 {
400  public:
401  PServiceHTTPString(const PURL & url, const PString & string)
402  : PHTTPString(url, string) { }
403 
404  PServiceHTTPString(const PURL & url, const PHTTPAuthority & auth)
405  : PHTTPString(url, auth) { }
406 
407  PServiceHTTPString(const PURL & url, const PString & string, const PHTTPAuthority & auth)
408  : PHTTPString(url, string, auth) { }
409 
410  PServiceHTTPString(const PURL & url, const PString & string, const PString & contentType)
411  : PHTTPString(url, string, contentType) { }
412 
413  PServiceHTTPString(const PURL & url, const PString & string, const PString & contentType, const PHTTPAuthority & auth)
414  : PHTTPString(url, string, contentType, auth) { }
415 
417 
418  protected:
419  virtual PBoolean GetExpirationDate(
420  PTime & when
421  );
422 };
423 
424 
426 {
428  public:
429  PServiceHTTPFile(const PString & filename, PBoolean needSig = false)
430  : PHTTPFile(filename) { needSignature = needSig; }
431  PServiceHTTPFile(const PString & filename, const PFilePath & file, PBoolean needSig = false)
432  : PHTTPFile(filename, file) { needSignature = needSig; }
433  PServiceHTTPFile(const PString & filename, const PString & file, PBoolean needSig = false)
434  : PHTTPFile(filename, file) { needSignature = needSig; }
435  PServiceHTTPFile(const PString & filename, const PHTTPAuthority & auth, PBoolean needSig = false)
436  : PHTTPFile(filename, auth) { needSignature = needSig; }
437  PServiceHTTPFile(const PString & filename, const PFilePath & file, const PHTTPAuthority & auth, PBoolean needSig = false)
438  : PHTTPFile(filename, file, auth) { needSignature = needSig; }
439 
440  void OnLoadedText(PHTTPRequest &, PString & text);
441 
442  protected:
443  virtual PBoolean GetExpirationDate(
444  PTime & when
445  );
446 
448 };
449 
451 {
453  public:
454  PServiceHTTPDirectory(const PURL & url, const PDirectory & dirname, PBoolean needSig = false)
455  : PHTTPDirectory(url, dirname) { needSignature = needSig; }
456 
457  PServiceHTTPDirectory(const PURL & url, const PDirectory & dirname, const PHTTPAuthority & auth, PBoolean needSig = false)
458  : PHTTPDirectory(url, dirname, auth) { needSignature = needSig; }
459 
460  void OnLoadedText(PHTTPRequest &, PString & text);
461 
462  protected:
463  virtual PBoolean GetExpirationDate(
464  PTime & when
465  );
466 
468 };
469 
470 
471 #endif // PTLIB_HTTPSVC_H
472 
473 
474 // End Of File ///////////////////////////////////////////////////////////////
PHTTPServiceProcess & process
Definition: httpsvc.h:302
PTEACypher::Key signatureKey
Signature key for encryption of HTML files.
Definition: httpsvc.h:87
static bool ProcessMacros(PHTTPRequest &request, PString &text, const PString &filename, unsigned options)
PTCPSocket * socket
Definition: httpsvc.h:59
This class contains the Multipurpose Internet Mail Extensions parameters and variables.
Definition: mime.h:52
PTEACypher::Key signatureKey
Definition: httpsvc.h:161
PStringArray securedKeys
Definition: httpsvc.h:160
PBoolean CheckSignature()
Definition: httpsvc.h:73
virtual PBoolean SubstituteEquivalSequence(PHTTPRequest &request, const PString &, PString &)
PRegisterPage(PHTTPServiceProcess &app, const PHTTPAuthority &auth)
void OnLoadedText(PHTTPRequest &request, PString &text)
This is called after the text has been loaded and may be used to customise or otherwise mangle a load...
virtual PString GetCopyrightText()
PString productNameHTML
Definition: httpsvc.h:167
Definition: httpsvc.h:277
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:1049
virtual PBoolean Post(PHTTPRequest &request, const PStringToString &data, PHTML &replyMessage)
Get a block of data (eg HTML) that the resource contains.
const PStringArray & GetSecuredKeys() const
Definition: httpsvc.h:139
PString gifHTML
Definition: httpsvc.h:168
Definition: httpsvc.h:332
PSocket * httpListeningSocket
Definition: httpsvc.h:155
virtual PBoolean GetExpirationDate(PTime &when)
Get a block of data (eg HTML) that the resource contains.
This abstract class describes the authorisation mechanism for a Universal Resource Locator...
Definition: http.h:1002
This class defines an absolute time and date.
Definition: ptime.h:53
const PString & GetHomePage() const
Definition: httpsvc.h:135
void OnLoadedText(PHTTPRequest &, PString &text)
This is called after the text has been loaded and may be used to customise or otherwise mangle a load...
PConfigPage(PHTTPServiceProcess &app, const PString &section, const PHTTPAuthority &auth)
void SetIgnoreSignatures(PBoolean ig)
Definition: httpsvc.h:142
friend class PServiceMacros_list
Definition: httpsvc.h:367
PBoolean OnStart()
Called when the service is started.
virtual PBoolean GetExpirationDate(PTime &when)
Get a block of data (eg HTML) that the resource contains.
virtual PBoolean Post(PHTTPRequest &request, const PStringToString &data, PHTML &replyMessage)
Get a block of data (eg HTML) that the resource contains.
PServiceHTTPString(const PURL &url, const PString &string, const PString &contentType)
Definition: httpsvc.h:410
PServiceHTTPString(const PURL &url, const PString &string, const PString &contentType, const PHTTPAuthority &auth)
Definition: httpsvc.h:413
void CompleteRestartSystem()
const char * manufacturerName
Definition: httpsvc.h:75
PString copyrightHolder
Definition: httpsvc.h:169
This is a dictionary collection class of PString objects, keyed by another string.
Definition: pstring.h:2784
This class describes a full description for a file on the particular platform.
Definition: filepath.h:65
Comparison
Result of the comparison operation performed by the Compare() function.
Definition: object.h:1184
PServiceHTTPDirectory(const PURL &url, const PDirectory &dirname, PBoolean needSig=false)
Definition: httpsvc.h:454
PString manufacturersHomePage
Definition: httpsvc.h:165
PString macroKeyword
Definition: httpsvc.h:157
PServiceHTTPString(const PURL &url, const PHTTPAuthority &auth)
Definition: httpsvc.h:404
const PString & GetEMailAddress() const
Definition: httpsvc.h:136
virtual PBoolean Post(PHTTPRequest &request, const PStringToString &data, PHTML &replyMessage)
Get a block of data (eg HTML) that the resource contains.
PServiceHTTPFile(const PString &filename, const PFilePath &file, PBoolean needSig=false)
Definition: httpsvc.h:431
This class is a variation of a string that ignores case.
Definition: pstring.h:1708
PString copyrightEmail
Definition: httpsvc.h:171
PTEACypher::Key productKey
Definition: httpsvc.h:159
PBoolean needSignature
Definition: httpsvc.h:467
This object describes a HyperText Transport Protocol resource which is a single file.
Definition: http.h:1614
This is an array collection class of PString objects.
Definition: pstring.h:2024
const PTime & GetCompilationDate() const
Definition: httpsvc.h:134
Definition: httpsvc.h:397
const char * compilationDate
Definition: httpsvc.h:81
This object describes a HyperText Transport Protocol resource which is a string kept in memory...
Definition: http.h:1525
Definition: httpsvc.h:45
const char * macroName
Definition: httpsvc.h:363
void Main()
User override function for the main execution routine of the thread.
PBoolean ProcessHTTP(PTCPSocket &socket)
PINDEX myStackSize
Definition: httpsvc.h:57
This object describes a HyperText Transport Protocol resource which is a set of files in a directory...
Definition: http.h:1819
PHTTPServiceThread(PINDEX stackSize, PHTTPServiceProcess &app)
const char * productHTML
HTML for the product name, if NULL defaults to the productName variable.
Definition: httpsvc.h:91
const char * gifFilename
File name for the products GIF file.
Definition: httpsvc.h:95
BOOL PBoolean
Definition: object.h:102
PString section
Definition: httpform.h:876
Class to represent a directory in the operating system file system.
Definition: pdirect.h:182
Definition: httpsvc.h:308
virtual void AddUnregisteredText(PHTML &html)
PServiceHTTPFile(const PString &filename, PBoolean needSig=false)
Definition: httpsvc.h:429
PHTTPServiceProcess(const Info &inf)
int gifHeight
in the generated HTML.
Definition: httpsvc.h:97
CodeStatus buildStatus
AlphaCode, BetaCode or ReleaseCode.
Definition: httpsvc.h:79
Definition: socket.h:85
const char * manufHomePage
WWW address of manufacturers home page.
Definition: httpsvc.h:89
A process type that runs as a &quot;background&quot; service.
Definition: svcproc.h:49
const char * email
contact email for manufacturer
Definition: httpsvc.h:90
Definition: httpsvc.h:191
const char * securedKeys[MaxSecuredKeys]
Product secured keys for registration.
Definition: httpsvc.h:84
PLIST(ThreadList, PHTTPServiceThread)
int gifWidth
Size of GIF image, if zero then none is used.
Definition: httpsvc.h:96
void GetPageHeader(PHTML &)
Comparison Compare(const PObject &obj) const
Compare the two objects and return their relative rank.
virtual PBoolean GetExpirationDate(PTime &when)
Get a block of data (eg HTML) that the resource contains.
Definition: httpsvc.h:330
PBoolean needSignature
Definition: httpsvc.h:447
PINDEX securedKeyCount
Definition: httpsvc.h:85
PMutex httpThreadsMutex
Definition: httpsvc.h:181
virtual PBoolean GetExpirationDate(PTime &when)
Get a block of data (eg HTML) that the resource contains.
PTime compilationDate
Definition: httpsvc.h:164
PServiceMacro * link
Definition: httpsvc.h:365
virtual void AddRegisteredText(PHTML &html)
PBoolean OnPOST(PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PStringToString &data, const PHTTPConnectionInfo &connectInfo)
Handle the POST command passed from the HTTP socket.
virtual void AddFields(const PString &prefix)=0
virtual PBoolean GetExpirationDate(PTime &when)
Get a block of data (eg HTML) that the resource contains.
PTCPSocket * AcceptHTTP()
PConfigSectionsPage(PHTTPServiceProcess &app, const PURL &url, const PHTTPAuthority &auth, const PString &prefix, const PString &valueName, const PURL &editSection, const PURL &newSection, const PString &newTitle, PHTML &heading)
PBoolean ShouldIgnoreSignatures() const
Definition: httpsvc.h:141
static PHTTPServiceProcess & Current()
PString LoadText(PHTTPRequest &request)
Get a block of text data (eg HTML) that the resource contains.
const PString & GetProductName() const
Definition: httpsvc.h:137
The character string class.
Definition: pstring.h:108
Definition: cypher.h:639
Definition: httpsvc.h:351
void OnContinue()
Resume after the service was paused.
Definition: httpsvc.h:329
void OnLoadedText(PHTTPRequest &, PString &text)
This is called after the text has been loaded and may be used to customise or otherwise mangle a load...
A socket that uses the TCP transport on the Internet Protocol.
Definition: tcpsock.h:44
PTEACypher::Key productKey
Poduct key for registration.
Definition: httpsvc.h:83
PBoolean OnPOST(PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PStringToString &data, const PHTTPConnectionInfo &connectInfo)
Handle the POST command passed from the HTTP socket.
PHTTPServiceProcess & process
Definition: httpsvc.h:271
PThread * restartThread
Definition: httpsvc.h:177
Definition: httpsvc.h:425
PBoolean isMacroBlock
Definition: httpsvc.h:364
PString LoadText(PHTTPRequest &)
Get a block of text data (eg HTML) that the resource contains.
const char * productName
Definition: httpsvc.h:74
Definition: httpform.h:891
PBoolean ListenForHTTP(WORD port, PSocket::Reusability reuse=PSocket::CanReuseAddress, PINDEX stackSize=0x4000)
PString ExtractSignature(PString &out)
const char * GetServiceDependencies() const
PBoolean ignoreSignatures
Definition: httpsvc.h:162
PHTTPServiceProcess & process
Definition: httpsvc.h:58
This class defines a thread of execution in the system.
Definition: thread.h:66
WORD buildNumber
Definition: httpsvc.h:80
PBoolean OnPause()
Called by the system when the service is to be paused.
This class describes a name space that a Universal Resource Locator operates in.
Definition: http.h:58
const char * copyrightEmail
E-Mail address for copyright holder.
Definition: httpsvc.h:101
static PServiceMacro * list
Definition: httpsvc.h:366
This class describes a HyperText markup Language string as used by the World Wide Web and the PURL an...
Definition: html.h:49
Definition: httpsvc.h:333
PServiceHTTPDirectory(const PURL &url, const PDirectory &dirname, const PHTTPAuthority &auth, PBoolean needSig=false)
Definition: httpsvc.h:457
PServiceHTTPString(const PURL &url, const PString &string, const PHTTPAuthority &auth)
Definition: httpsvc.h:407
Definition: httpsvc.h:234
Definition: httpsvc.h:450
PServiceHTML(const char *title, const char *help=NULL, const char *helpGif="help.gif")
PServiceHTTPFile(const PString &filename, const PFilePath &file, const PHTTPAuthority &auth, PBoolean needSig=false)
Definition: httpsvc.h:437
virtual PString Translate(PHTTPRequest &request, const PString &args, const PString &block) const
PString manufacturersEmail
Definition: httpsvc.h:166
void OnLoadedText(PHTTPRequest &, PString &text)
This is called after the text has been loaded and may be used to customise or otherwise mangle a load...
PServiceHTTPFile(const PString &filename, const PHTTPAuthority &auth, PBoolean needSig=false)
Definition: httpsvc.h:435
Definition: httpsvc.h:331
virtual PHTTPServer * CreateHTTPServer(PTCPSocket &socket)
void OnLoadedText(PHTTPRequest &, PString &text)
This is called after the text has been loaded and may be used to customise or otherwise mangle a load...
Synonym for PTimedMutex.
WORD minorVersion
Definition: httpsvc.h:78
static bool SpliceMacro(PString &text, const PString &tokens, const PString &value)
const char * copyrightHolder
Name of copyright holder.
Definition: httpsvc.h:99
Definition: httpsvc.h:71
const PString & GetMacroKeyword() const
Definition: httpsvc.h:133
PString contentType
MIME content type for the resource.
Definition: http.h:1512
PString copyrightHomePage
Definition: httpsvc.h:170
void OnStop()
Called by the system when the service is stopped.
WORD majorVersion
Definition: httpsvc.h:77
virtual PString GetPageGraphic()
CodeStatus
Release status for the program.
Definition: pprocess.h:235
A network communications channel.
Definition: socket.h:58
PString CalculateSignature()
PServiceMacro(const char *name, PBoolean isBlock)
PServiceHTTPString(const PURL &url, const PString &string)
Definition: httpsvc.h:401
virtual PHTTPServer * OnCreateHTTPServer(const PHTTPSpace &urlSpace)
Definition: httpsvc.h:65
virtual void OnConfigChanged()=0
A TCP/IP socket for the HyperText Transfer Protocol version 1.0.
Definition: http.h:762
virtual PBoolean Initialise(const char *initMsg)=0
This object describes a HyperText Transport Protocol request.
Definition: http.h:968
Reusability
Flags to reuse of port numbers in Listen() function.
Definition: socket.h:84
Ultimate parent class for all objects in the class library.
Definition: object.h:1118
PHTTPServiceProcess & process
Definition: httpsvc.h:228
This object describes the connectiono associated with a HyperText Transport Protocol request...
Definition: http.h:665
const char * copyrightHomePage
Home page for copyright holder.
Definition: httpsvc.h:100
This class describes a Universal Resource Locator.
Definition: url.h:54
ThreadList httpThreads
Definition: httpsvc.h:180
const char * gifHTML
HTML to show GIF image in page headers, if NULL then the following are used to build one...
Definition: httpsvc.h:93
PServiceHTTPFile(const PString &filename, const PString &file, PBoolean needSig=false)
Definition: httpsvc.h:433
const PTEACypher::Key & GetProductKey() const
Definition: httpsvc.h:138
const PTEACypher::Key & GetSignatureKey() const
Definition: httpsvc.h:140
MacroOptions
Definition: httpsvc.h:328
PHTTPSpace httpNameSpace
Definition: httpsvc.h:156
Definition: httpform.h:804