OpenAFS
OpenAFS distributed network file system
OpenAFS Plugin extensions

This section documents messages and data structures used by AFS extension plugins. More...

Data Structures

struct  tag_afs_msg_announce_v1
 Parameter structure for announcing an extension plugin. More...
struct  tag_afs_msg_resolve_token_v1
 Message structure for AFS_MSG_RESOLVE_TOKEN. More...
struct  tag_afs_conf_cellA_v1
 Cell configuration information. More...
struct  tag_afs_msg_klogA_v1
 Message parameters for AFS_MSG_KLOG message. More...

Defines

#define MAXCELLCHARS   256
#define MAXHOSTCHARS   256
#define MAXHOSTSPERCELL   8
#define TRANSARCAFSDAEMON   "TransarcAFSDaemon"
#define AFS_TOKENNAME_AUTO   L"Auto"
#define AFS_TOKENNAME_KRB5   L"Kerberos5"
#define AFS_TOKENNAME_KRB524   L"Kerberos524"
#define AFS_TOKENNAME_KRB4   L"Kerberos4"
#define AFS_PLUGIN_VERSION   0x0000001
 Version of the OpenAFS Plugin.

Typedefs

typedef khm_int32 afs_tk_method
 An AFS token acquisition method identifier.

Enumerations

enum  afs_token_method { AFS_TOKEN_AUTO = 0, AFS_TOKEN_KRB5, AFS_TOKEN_KRB524, AFS_TOKEN_KRB4 }
 Predefined token acquisition methods. More...

Messages

The AFS plugin registers the message type named AFS_MSG_TYPENAME and sends messages of this type to notify any AFS extension plugins to notify them of various events.

typedef struct
tag_afs_msg_announce_v1 
afs_msg_announce
 Parameter structure for announcing an extension plugin.
typedef struct
tag_afs_msg_resolve_token_v1 
afs_msg_resolve_token
 Message structure for AFS_MSG_RESOLVE_TOKEN.
typedef struct
tag_afs_conf_cellA_v1 
afs_conf_cell
 Cell configuration information.
typedef struct tag_afs_msg_klogA_v1 afs_msg_klog
 Message parameters for AFS_MSG_KLOG message.
#define AFS_MSG_TYPENAME   L"AfsExtMessage"
 Name of the AFS plugin message.
#define AFS_MSG_ANNOUNCE   1
 Announce an extension plugin.
#define AFS_MSG_RESOLVE_TOKEN   2
 Sent to all extensions to resolve the identity of a token.
#define AFS_MSG_KLOG   3
 Sent to an extension plugin to obtain AFS tokens.

Detailed Description

This section documents messages and data structures used by AFS extension plugins.

These are plugins which augment the behavior of the AFS plugin.

When performing specific tasks for NetIDMgr, the AFS plugin will send out messages to the extension plugins either via broadcast or unicast. The extension plugins provide functionality by responding to these messages.


Define Documentation

#define AFS_MSG_ANNOUNCE   1

Announce an extension plugin.

Sent by an extension plugin to announce its existence to the AFS plugin. This message should be sent by the extension plugin when it has finished loading, and is the only message permitted to be sent by an extension. All other messages are sent by the AFS plugin.

Since this message contains pointer parameters and there is no cleanup performed on this, the message should be sent using kmq_send_message().

Typetype ID of AFS_MSG_TYPENAME
SubtypeAFS_MSG_ANNOUNCE
uparam0
vparamPointer to a afs_msg_announce structure
Note:
This message is only sent from extension plugins to the AFS plugin.
#define AFS_MSG_KLOG   3

Sent to an extension plugin to obtain AFS tokens.

Typetype ID of AFS_MSG_TYPENAME
SubtypeAFS_MSG_KLOG
uparam0
vparamPointer to a afs_msg_klog
Note:
Only sent from the AFS plugin to extension plugins
Only sent to extension plugins which have ::provide_token_acq set.
#define AFS_MSG_RESOLVE_TOKEN   2

Sent to all extensions to resolve the identity of a token.

If the identity and credentials acquisition method of an AFS token cannot be determined by the AFS plugin, this message is sent out to extension plugins to allow them a chance to resolve it.

If the extension plugin successfully resolves the identity and token acquisition method of the specified token, it should return ::KHM_ERROR_SUCCESS. Otherwise it should return a failure code. The actual return code is not interpreted other than whether or not it passes the ::KHM_SUCCEEDED() test.

Typetype ID of AFS_MSG_TYPENAME
SubtypeAFS_MSG_RESOLVE_TOKEN
uparam0
vparamPointer to a afs_msg_resolve_token structure
Note:
This message is only sent from the AFS plugin to extension plugins
Only sent if the extension plugin has ::provide_token_acq set.
#define AFS_MSG_TYPENAME   L"AfsExtMessage"

Name of the AFS plugin message.

This message type is registered when the AFS plugin starts and is unregistered when the plugin stops.

Use kmq_find_type() to find the type ID of this message type.

#define AFS_PLUGIN_VERSION   0x0000001

Version of the OpenAFS Plugin.

This is an internal number that identifies the version of the OpenAFS plugin API that this extension was built against. This number is specified when sending the AFS_MSG_ANNOUNCE message.


Typedef Documentation

Cell configuration information.

See also:
afs_msg_klog
Note:
This structure uses ANSI char fields instead of unicode fields.

Parameter structure for announcing an extension plugin.

See also:
AFS_MSG_ANNOUNCE

Message parameters for AFS_MSG_KLOG message.

See also:
AFS_MSG_KLOG
Note:
This structure uses ANSI char fields instead of unicode fields.

Message structure for AFS_MSG_RESOLVE_TOKEN.

Other than the fields marked as [OUT], all other fields should be considered read-only and should not be modified.

See also:
AFS_MSG_RESOLVE_TOKEN
typedef khm_int32 afs_tk_method

An AFS token acquisition method identifier.

This takes on a value from afs_token_method or a token acquisition method identifier assigned to an extension plugin.


Enumeration Type Documentation

Predefined token acquisition methods.

Enumerator:
AFS_TOKEN_AUTO 

Automatic.

This method iterates through Krb5, Krb524, Krb4 and then any extensions which provide token acquisition methods until one of them succeeds.

AFS_TOKEN_KRB5 

Kerberos 5.

AFS_TOKEN_KRB524 

Kerberos 5 with krb524 translation.

AFS_TOKEN_KRB4 

Kerberos 4.

 All Data Structures Files Functions Variables