-/* $Id: module.h,v 1.2 2005-02-21 14:27:31 adam Exp $
- Copyright (c) 1998-2005, Index Data.
+/* $Id: module.h,v 1.7 2006-03-30 10:33:06 adam Exp $
+ Copyright (c) 1998-2006, Index Data.
-This file is part of the yaz-proxy.
+This file is part of the yazproxy.
YAZ proxy is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
void *(*init)(void); // Init handler - returns module-specific handle
void (*destroy)( // Destroy handler
- void *handle // module-specific handle as returned by init
- );
+ void *handle // module-specific handle as returned by init
+ );
int (*authenticate)( // Authenticate handler. Returns YAZPROXY_RET_..
- void *handle, // module-specific handle as returned by init
- const char *name, // target name (or NULL if default target)
- void *element_ptr, // xmlnodePtr thing to XML config this
- const char *user, // User ID (or NULL if no suppliied User ID)
- const char *group, // Group ID (or NULL if no supplied Group ID)
- const char *pw // Password (or NULL if no supplied password)
+ void *handle, // module-specific handle as returned by init
+ const char *name, // target name (or NULL if default target)
+ void *element_ptr, // xmlnodePtr thing to XML config this
+ const char *user, // User ID (or NULL if no suppliied User ID)
+ const char *group, // Group ID (or NULL if no supplied Group ID)
+ const char *pw, // Password (or NULL if no supplied password)
+ const char *peer_IP// IP address of client
);
};
+class Yaz_ProxyModule;
+
+class Yaz_ProxyModules {
+ friend class Proxy_Msg;
+ public:
+ Yaz_ProxyModules();
+ ~Yaz_ProxyModules();
+ int authenticate(const char *module_name,
+ const char *target_name, void *element_ptr,
+ const char *user,
+ const char *group,
+ const char *password,
+ const char *peer_IP);
+ int add_module(const char *fname);
+ void unload_modules();
+ private:
+ Yaz_ProxyModule *m_list;
+ int m_no_open;
+};
+
#endif
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+