mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-29 12:18:01 +01:00
* Some cleanup in the root CMakeLists.txt
* Cleanup cmake targets
* Add find openssl modul for older cmake version
* Set proper scope
* Change crypto default to off
* Fix openssl default to on
* Remove global setting of C99 standard
* Set from C11 to C99
* Fix for NetSSL win build
* Set C99 compile features
* Fix Windows build
* Fix windows build
* Cleanup poco unbundle definition
* Fix PDF build
* Remove unused set affinity
* Add _CRT_SECURE_NO_WARNINGS as target compile definitions
* Add _AFXDLL as target compile definitions
* Remove commented out line
* Refactor add_definitions to target_compile_definitons in Util
* Refactor add_definitions to target_compile_definitons in XML
* Remove THREADSAFE in data sql cmake build
* Refactor add_definitions to target_compile_definition in cmake mysql
* Refactor add_definitions to target_compile_definition in cmake odbc
* Refactor add_definitions to target_compile_definition in cmake sqlite
* Refactor add_definitions to target_compile_definitions in platform specific cmake
* Add _DEBUG as compile definition
* Add build dependencies between Foundation-testrunner and TestApp, TestLibrary in cmake build
* Use cmake property to build shared libs
* Cleanup POCO_NO_AUTOMATIC_LIBS. Set only for Windows in cmake build system
* cleanup LIB_MODE_DEFINITIONS in cmake buld system
* Add POCO_STATIC for CppUnit
* Cleanup target link libraries and add option dependencies.
* Add dependencies management in cmake
* Update cmake documentation
* Squashed commit of the following:
commit 38c233f93fc8e9ad6e24d686c905eb18c86e19a7
Fix "invalid new-expression of abstract class type ApacheServerRequest" (#2231)
- abstract method "bool secure() const" defined in HTTPServerRequest was implemented in ApacheServerRequest, one of its derived classes
- a ap_log_error had one of its parameters changed for fixing a warning "passing NULL to non-pointer argument"
- minor indentation problems corrected
commit 4cbdfbe828943871618172f9e042176f115d61d8
Fix build dependencies
* Improve database cmake build dependencies
* Update doc
* Update doc
* Update cmake build commands
* Set public on target link libraries in cmake build system
* Fix PostgreSQL build
* Fix PostgreSQL build in cmake
* Fix PostgreSQL from SQL to Data
* Squashed commit of the following:
commit 1ba7d5dcbfb8d07860dd4efda33b31bedf6184c4
Add missing cmake file
* Set path to PostgresSQL in AppVoyer
* Try to fix AppVeyor build
* show dir in appvoyer
* Disable PostgreSQL build on Appvoyer
* Refactor add_definitions to target_compile_definitions
93 lines
2.8 KiB
C++
93 lines
2.8 KiB
C++
//
|
|
// ApacheConnector.h
|
|
//
|
|
// Copyright (c) 2006-2011, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#ifndef ApacheConnector_ApacheConnector_INCLUDED
|
|
#define ApacheConnector_ApacheConnector_INCLUDED
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
struct request_rec;
|
|
class ApacheServerRequest;
|
|
|
|
|
|
class ApacheRequestRec
|
|
/// This class wraps an Apache request_rec.
|
|
{
|
|
public:
|
|
ApacheRequestRec(request_rec* _pRec);
|
|
/// Creates the ApacheRequestRec;
|
|
|
|
bool haveRequestBody();
|
|
/// Returns true if the request contains a body.
|
|
|
|
int readRequest(char* buffer, int length);
|
|
/// Read up to length bytes from request body into buffer.
|
|
/// Returns the number of bytes read, 0 if eof or -1 if an error occured.
|
|
|
|
void writeResponse(const char* buffer, int length);
|
|
/// Writes the given characters as response to the given request_rec.
|
|
|
|
void addHeader(const std::string& key, const std::string& value);
|
|
/// Adds the given key / value pair to the outgoing headers of the
|
|
/// http response.
|
|
|
|
void setContentType(const std::string& mediaType);
|
|
/// Sets the response content type.
|
|
|
|
void redirect(const std::string& uri, int status);
|
|
/// Redirects the response to the given uri.
|
|
|
|
void sendErrorResponse(int status);
|
|
/// Sends an error response with the given HTTP status code.
|
|
|
|
int sendFile(const std::string& path, unsigned int fileSize, const std::string& mediaType);
|
|
/// Sends the file given by fileName as response.
|
|
|
|
void copyHeaders(ApacheServerRequest& request);
|
|
/// Copies the request uri and header fields from the Apache request
|
|
/// to the ApacheServerRequest.
|
|
|
|
bool secure();
|
|
/// Returns true if the request is using a secure
|
|
/// connection. Returns false if no secure connection
|
|
/// is used, or if it is not known whether a secure
|
|
/// connection is used.
|
|
|
|
private:
|
|
request_rec* _pRec;
|
|
};
|
|
|
|
|
|
class ApacheConnector
|
|
/// This class provides static methods wrapping the
|
|
/// Apache API.
|
|
{
|
|
public:
|
|
enum LogLevel
|
|
{
|
|
PRIO_FATAL = 1, /// A fatal error. The application will most likely terminate. This is the highest priority.
|
|
PRIO_CRITICAL, /// A critical error. The application might not be able to continue running successfully.
|
|
PRIO_ERROR, /// An error. An operation did not complete successfully, but the application as a whole is not affected.
|
|
PRIO_WARNING, /// A warning. An operation completed with an unexpected result.
|
|
PRIO_NOTICE, /// A notice, which is an information with just a higher priority.
|
|
PRIO_INFORMATION, /// An informational message, usually denoting the successful completion of an operation.
|
|
PRIO_DEBUG, /// A debugging message.
|
|
PRIO_TRACE /// A tracing message. This is the lowest priority.
|
|
};
|
|
|
|
static void log(const char* file, int line, int level, int status, const char* text);
|
|
/// Log the given message.
|
|
};
|
|
|
|
|
|
#endif // ApacheConnector_ApacheConnector_INCLUDED
|