OpenAFS
OpenAFS distributed network file system
|
00001 /* 00002 * Copyright (c) 2005,2006 Secure Endpoints Inc. 00003 * 00004 * Permission is hereby granted, free of charge, to any person 00005 * obtaining a copy of this software and associated documentation 00006 * files (the "Software"), to deal in the Software without 00007 * restriction, including without limitation the rights to use, copy, 00008 * modify, merge, publish, distribute, sublicense, and/or sell copies 00009 * of the Software, and to permit persons to whom the Software is 00010 * furnished to do so, subject to the following conditions: 00011 * 00012 * The above copyright notice and this permission notice shall be 00013 * included in all copies or substantial portions of the Software. 00014 * 00015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00016 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00017 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00018 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 00019 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 00020 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 00021 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 00022 * SOFTWARE. 00023 */ 00024 00025 /* $Id$ */ 00026 00027 #ifndef __AFSPLUGIN_EXT_H 00028 #define __AFSPLUGIN_EXT_H 00029 00043 #define MAXCELLCHARS 256 00044 #define MAXHOSTCHARS 256 00045 #define MAXHOSTSPERCELL 8 00046 00047 #define TRANSARCAFSDAEMON "TransarcAFSDaemon" 00048 00049 #define AFS_TOKENNAME_AUTO L"Auto" 00050 #define AFS_TOKENNAME_KRB5 L"Kerberos5" 00051 #define AFS_TOKENNAME_KRB524 L"Kerberos524" 00052 #define AFS_TOKENNAME_KRB4 L"Kerberos4" 00053 00059 typedef khm_int32 afs_tk_method; 00060 00062 enum afs_token_method { 00063 AFS_TOKEN_AUTO = 0, 00068 AFS_TOKEN_KRB5, 00069 AFS_TOKEN_KRB524, 00070 AFS_TOKEN_KRB4, 00071 }; 00072 00079 #define AFS_PLUGIN_VERSION 0x0000001 00080 00096 #define AFS_MSG_TYPENAME L"AfsExtMessage" 00097 00119 #define AFS_MSG_ANNOUNCE 1 00120 00125 typedef struct tag_afs_msg_announce_v1 { 00126 khm_size cbsize; 00134 khm_ui_4 version; 00144 const wchar_t * name; 00149 khm_handle sub; 00160 khm_boolean provide_token_acq; 00167 struct { 00168 const wchar_t * short_desc; 00173 const wchar_t * long_desc; 00177 afs_tk_method method_id; 00182 } token_acq; 00187 } afs_msg_announce; 00188 00212 #define AFS_MSG_RESOLVE_TOKEN 2 00213 00221 typedef struct tag_afs_msg_resolve_token_v1 { 00222 khm_size cbsize; 00226 const wchar_t * cell; 00229 const struct ktc_token * token; 00230 const struct ktc_principal * serverp; 00231 const struct ktc_principal * clientp; 00233 khm_handle ident; 00241 afs_tk_method method; 00251 } afs_msg_resolve_token; 00252 00265 #define AFS_MSG_KLOG 3 00266 00273 typedef struct tag_afs_conf_cellA_v1 { 00274 khm_size cbsize; 00276 char name[MAXCELLCHARS]; 00277 short numServers; 00279 short flags; 00280 struct sockaddr_in hostAddr[MAXHOSTSPERCELL]; 00283 char hostName[MAXHOSTSPERCELL][MAXHOSTCHARS]; 00286 char * linkedCell; 00287 } afs_conf_cell; 00288 00295 typedef struct tag_afs_msg_klogA_v1 { 00296 khm_size cbsize; 00298 khm_handle identity; 00301 const char * service; 00306 const char * cell; 00310 const char * realm; 00314 const afs_conf_cell * cell_config; 00317 khm_int32 lifetime; 00322 } afs_msg_klog; 00323 00328 #endif