APR_HOOK_LINK(session_encode)
APR_HOOK_LINK(session_decode)
)
-AP_IMPLEMENT_HOOK_RUN_FIRST(int, session_load,
+APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(session, SESSION, int, session_load,
(request_rec * r, session_rec ** z), (r, z), DECLINED)
-AP_IMPLEMENT_HOOK_RUN_FIRST(int, session_save,
+APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(session, SESSION, int, session_save,
(request_rec * r, session_rec * z), (r, z), DECLINED)
-AP_IMPLEMENT_HOOK_RUN_ALL(int, session_encode,
+APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(session, SESSION, int, session_encode,
(request_rec * r, session_rec * z), (r, z), OK, DECLINED)
-AP_IMPLEMENT_HOOK_RUN_ALL(int, session_decode,
+APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(session, SESSION, int, session_decode,
(request_rec * r, session_rec * z), (r, z), OK, DECLINED)
-AP_DECLARE(int) ap_session_identity_encode(request_rec * r, session_rec * z);
-AP_DECLARE(int) ap_session_identity_decode(request_rec * r, session_rec * z);
-AP_DECLARE(int) ap_session_fixups(request_rec * r);
+static int session_identity_encode(request_rec * r, session_rec * z);
+static int session_identity_decode(request_rec * r, session_rec * z);
+static int session_fixups(request_rec * r);
/**
* Should the session be included within this URL.
* @param key The key to get.
* @param value The buffer to write the value to.
*/
-AP_DECLARE(void) ap_session_get(request_rec * r, session_rec * z, const char *key, const char **value)
+SESSION_DECLARE(void) ap_session_get(request_rec * r, session_rec * z, const char *key, const char **value)
{
if (!z) {
ap_session_load(r, &z);
* @param key The key to set. The existing key value will be replaced.
* @param value The value to set.
*/
-AP_DECLARE(void) ap_session_set(request_rec * r, session_rec * z,
+SESSION_DECLARE(void) ap_session_set(request_rec * r, session_rec * z,
const char *key, const char *value)
{
if (!z) {
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE(int) ap_session_load(request_rec * r, session_rec ** z)
+SESSION_DECLARE(int) ap_session_load(request_rec * r, session_rec ** z)
{
session_dir_conf *dconf = ap_get_module_config(r->per_dir_config,
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE(int) ap_session_save(request_rec * r, session_rec * z)
+SESSION_DECLARE(int) ap_session_save(request_rec * r, session_rec * z)
{
if (z) {
apr_time_t now = apr_time_now();
* @param r The request pointer.
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE(int) ap_session_identity_encode(request_rec * r, session_rec * z)
+static int session_identity_encode(request_rec * r, session_rec * z)
{
char *buffer = NULL;
* @param r The request pointer.
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE(int) ap_session_identity_decode(request_rec * r, session_rec * z)
+static int session_identity_decode(request_rec * r, session_rec * z)
{
char *last = NULL;
}
if (override) {
z->encoded = override;
- ap_session_identity_decode(r, z);
+ session_identity_decode(r, z);
}
}
*
* @param r The request
*/
-AP_DECLARE(int) ap_session_fixups(request_rec * r)
+static int session_fixups(request_rec * r)
{
session_dir_conf *conf = ap_get_module_config(r->per_dir_config,
&session_module);
ap_session_load(r, &z);
if (conf->env) {
- ap_session_identity_encode(r, z);
+ session_identity_encode(r, z);
if (z->encoded) {
apr_table_set(r->subprocess_env, HTTP_SESSION, z->encoded);
z->encoded = NULL;
ap_hook_insert_filter(ap_session_insert_output_filter, NULL, NULL, APR_HOOK_MIDDLE);
ap_hook_insert_error_filter(ap_session_insert_output_filter,
NULL, NULL, APR_HOOK_MIDDLE);
- ap_hook_fixups(ap_session_fixups, NULL, NULL, APR_HOOK_MIDDLE);
- ap_hook_session_encode(ap_session_identity_encode, NULL, NULL, APR_HOOK_REALLY_FIRST);
- ap_hook_session_decode(ap_session_identity_decode, NULL, NULL, APR_HOOK_REALLY_LAST);
+ ap_hook_fixups(session_fixups, NULL, NULL, APR_HOOK_MIDDLE);
+ ap_hook_session_encode(session_identity_encode, NULL, NULL, APR_HOOK_REALLY_FIRST);
+ ap_hook_session_decode(session_identity_decode, NULL, NULL, APR_HOOK_REALLY_LAST);
APR_REGISTER_OPTIONAL_FN(ap_session_get);
APR_REGISTER_OPTIONAL_FN(ap_session_set);
APR_REGISTER_OPTIONAL_FN(ap_session_load);
#ifndef MOD_SESSION_H
#define MOD_SESSION_H
+/* Create a set of SESSION_DECLARE(type), SESSION_DECLARE_NONSTD(type) and
+ * SESSION_DECLARE_DATA with appropriate export and import tags for the platform
+ */
+#if !defined(WIN32)
+#define SESSION_DECLARE(type) type
+#define SESSION_DECLARE_NONSTD(type) type
+#define SESSION_DECLARE_DATA
+#elif defined(SESSION_DECLARE_STATIC)
+#define SESSION_DECLARE(type) type __stdcall
+#define SESSION_DECLARE_NONSTD(type) type
+#define SESSION_DECLARE_DATA
+#elif defined(SESSION_DECLARE_EXPORT)
+#define SESSION_DECLARE(type) __declspec(dllexport) type __stdcall
+#define SESSION_DECLARE_NONSTD(type) __declspec(dllexport) type
+#define SESSION_DECLARE_DATA __declspec(dllexport)
+#else
+#define SESSION_DECLARE(type) __declspec(dllimport) type __stdcall
+#define SESSION_DECLARE_NONSTD(type) __declspec(dllimport) type
+#define SESSION_DECLARE_DATA __declspec(dllimport)
+#endif
+
/**
* @file mod_session.h
* @brief Session Module for Apache
* @param key The key to get.
* @param value The buffer to write the value to.
*/
-AP_DECLARE(void) ap_session_get(request_rec * r, session_rec * z, const char *key, const char **value);
+SESSION_DECLARE(void) ap_session_get(request_rec * r, session_rec * z, const char *key, const char **value);
/**
* Set a particular value to the session.
* @param key The key to set. The existing key value will be replaced.
* @param value The value to set.
*/
-AP_DECLARE(void) ap_session_set(request_rec * r, session_rec * z,
+SESSION_DECLARE(void) ap_session_set(request_rec * r, session_rec * z,
const char *key, const char *value);
/**
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE(int) ap_session_load(request_rec * r, session_rec ** z);
+SESSION_DECLARE(int) ap_session_load(request_rec * r, session_rec ** z);
/**
* Hook to load the session.
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE_HOOK(int, session_load, (request_rec * r, session_rec ** z))
+APR_DECLARE_EXTERNAL_HOOK(session, SESSION, int, session_load,
+ (request_rec * r, session_rec ** z))
/**
* Save the session.
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE(int) ap_session_save(request_rec * r, session_rec * z);
+SESSION_DECLARE(int) ap_session_save(request_rec * r, session_rec * z);
/**
* Hook to save the session.
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE_HOOK(int, session_save, (request_rec * r, session_rec * z))
+APR_DECLARE_EXTERNAL_HOOK(session, SESSION, int, session_save,
+ (request_rec * r, session_rec * z))
/**
* Hook to encode the session.
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE_HOOK(int, session_encode, (request_rec * r, session_rec * z))
+APR_DECLARE_EXTERNAL_HOOK(session, SESSION, int, session_encode,
+ (request_rec * r, session_rec * z))
/**
* Hook to decode the session.
* @param r The request
* @param z A pointer to where the session will be written.
*/
-AP_DECLARE_HOOK(int, session_decode, (request_rec * r, session_rec * z))
+APR_DECLARE_EXTERNAL_HOOK(session, SESSION, int, session_decode,
+ (request_rec * r, session_rec * z))
APR_DECLARE_OPTIONAL_FN(void, ap_session_get, (request_rec * r, session_rec * z,
const char *key, const char **value));