Fix in-source builds
The internal header directory conflicted with in-source builds causing a build failure. This is fixed by renaming the internal header directory to something other than maxscale. The renaming pointed out a few problems in a couple of source files that appeared to include internal headers when the headers were in fact public headers. Fixed maxctrl in-source builds by making the copying of the sources optional.
This commit is contained in:
121
server/core/internal/admin.hh
Normal file
121
server/core/internal/admin.hh
Normal file
@ -0,0 +1,121 @@
|
||||
#pragma once
|
||||
/*
|
||||
* Copyright (c) 2016 MariaDB Corporation Ab
|
||||
*
|
||||
* Use of this software is governed by the Business Source License included
|
||||
* in the LICENSE.TXT file and at www.mariadb.com/bsl11.
|
||||
*
|
||||
* Change Date: 2020-01-01
|
||||
*
|
||||
* On the date above, in accordance with the Business Source License, use
|
||||
* of this software will be governed by version 2 or later of the General
|
||||
* Public License.
|
||||
*/
|
||||
|
||||
#include <maxscale/cppdefs.hh>
|
||||
|
||||
#include <string>
|
||||
#include <microhttpd.h>
|
||||
|
||||
#include <maxscale/thread.h>
|
||||
|
||||
class Client
|
||||
{
|
||||
Client(const Client&);
|
||||
Client& operator=(const Client&);
|
||||
|
||||
public:
|
||||
|
||||
enum state
|
||||
{
|
||||
OK,
|
||||
FAILED,
|
||||
INIT,
|
||||
CLOSED
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Create a new client
|
||||
*
|
||||
* @param connection The connection handle for this client
|
||||
*/
|
||||
Client(MHD_Connection *connection):
|
||||
m_connection(connection),
|
||||
m_state(INIT)
|
||||
{
|
||||
}
|
||||
|
||||
~Client()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Process a client request
|
||||
*
|
||||
* This function can be called multiple times if a PUT/POST/PATCH
|
||||
* uploads a large amount of data.
|
||||
*
|
||||
* @param url Requested URL
|
||||
* @param method Request method
|
||||
* @param data Pointer to request data
|
||||
* @param size Size of request data
|
||||
*
|
||||
* @return MHD_YES on success, MHD_NO on error
|
||||
*/
|
||||
int process(std::string url, std::string method, const char* data, size_t *size);
|
||||
|
||||
/**
|
||||
* @brief Authenticate the client
|
||||
*
|
||||
* @param connection The MHD connection object
|
||||
* @param url Requested URL
|
||||
* @param method The request method
|
||||
*
|
||||
* @return True if authentication was successful
|
||||
*/
|
||||
bool auth(MHD_Connection* connection, const char* url, const char* method);
|
||||
|
||||
/**
|
||||
* Get client state
|
||||
*
|
||||
* @return The client state
|
||||
*/
|
||||
state get_state() const
|
||||
{
|
||||
return m_state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the client connection
|
||||
*
|
||||
* All further requests will be rejected immediately
|
||||
*/
|
||||
void close()
|
||||
{
|
||||
m_state = CLOSED;
|
||||
}
|
||||
|
||||
private:
|
||||
MHD_Connection* m_connection; /**< Connection handle */
|
||||
std::string m_data; /**< Uploaded data */
|
||||
state m_state; /**< Client state */
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Start the administrative interface
|
||||
*
|
||||
* @return True if the interface was successfully started
|
||||
*/
|
||||
bool mxs_admin_init();
|
||||
|
||||
/**
|
||||
* @brief Shutdown the administrative interface
|
||||
*/
|
||||
void mxs_admin_shutdown();
|
||||
|
||||
/**
|
||||
* @brief Check if admin interface uses HTTPS protocol
|
||||
*
|
||||
* @return True if HTTPS is enabled
|
||||
*/
|
||||
bool mxs_admin_https_enabled();
|
Reference in New Issue
Block a user