![]() |
Apachemodul C -> Delphi
Hallo,
ich möchte gern ein Apachemodul erstellen. Ich möchte dafür die Prozedur ap_register_provider aufrufen. Allerdings ergibt das immer eine Access Violation. Folgende Strukturinformation habe ich gefunden...
Delphi-Quellcode:
Was ich aber nicht genau weiss, wie ist die Struktur von provider?
{
* This function is used to register a provider with the global * provider pool. * @param pool The pool to create any storage from * @param provider_group The group to store the provider in * @param provider_name The name for this provider * @param provider_version The version for this provider * @param provider Opaque structure for this provider * @return APR_SUCCESS if all went well } function ap_register_provider( const pool: Papr_pool_t; const provider_group, provider_name, provider_version: PAnsiChar; const provider: Pointer): apr_status_t; {$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF} ![]() Die Struktur habe ich wie folgt umgesetzt...
Delphi-Quellcode:
type
Tauthn_status = ( AUTH_DENIED, AUTH_GRANTED, AUTH_USER_FOUND, AUTH_USER_NOT_FOUND, AUTH_GENERAL_ERROR );
Delphi-Quellcode:
Aufruf...
function authn_external_check_password(r: Prequest_rec;
const user:PAnsiChar; const password:PAnsiChar):Tauthn_status; cdecl; begin result:=AUTH_USER_FOUND; end;
Delphi-Quellcode:
Oder muss die Struktur ein Record / variantes Record sein?
procedure RegisterHooks(p: Papr_pool_t); cdecl;
begin ap_register_provider( p, PAnsiChar(AUTHN_PROVIDER_GROUP), PAnsiChar('external'), PAnsiChar(AUTHN_PROVIDER_VERSION), @authn_external_check_password ); end; Eigentlich möchte ich ap_register_auth_provider aufrufen. Aber wo ist das deklariert bzw. in welcher DLL ist diese Prozedur zufinden? ![]() So in mod_auth.h habe ich jetzt folgendes gefunden...
Code:
Vielleicht habt ihr ja noch eine Idee für mich.
typedef enum {
AUTH_DENIED, AUTH_GRANTED, AUTH_USER_FOUND, AUTH_USER_NOT_FOUND, AUTH_GENERAL_ERROR } authn_status; typedef enum { AUTHZ_DENIED, AUTHZ_GRANTED, AUTHZ_NEUTRAL, AUTHZ_GENERAL_ERROR, AUTHZ_DENIED_NO_USER, /* denied because r->user == NULL */ } authz_status; typedef struct { /* Given a username and password, expected to return AUTH_GRANTED * if we can validate this user/password combination. */ authn_status (*check_password)(request_rec *r, const char *user, const char *password); /* Given a user and realm, expected to return AUTH_USER_FOUND if we * can find a md5 hash of 'user:realm:password' */ authn_status (*get_realm_hash)(request_rec *r, const char *user, const char *realm, char **rethash); } authn_provider; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz