diff options
Diffstat (limited to 'src/mount/mount.ceph.h')
-rw-r--r-- | src/mount/mount.ceph.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/mount/mount.ceph.h b/src/mount/mount.ceph.h new file mode 100644 index 000000000..9bd6bbfcc --- /dev/null +++ b/src/mount/mount.ceph.h @@ -0,0 +1,44 @@ +#ifndef _SRC_MOUNT_MOUNT_CEPH_H +#define _SRC_MOUNT_MOUNT_CEPH_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * See class CryptoKey + * + * 2 (for the type of secret) + + * 8 (for the timestamp) + + * 2 (for the length of secret) + + * 16 (for an AES-128 key) + */ +#define MAX_RAW_SECRET_LEN (2 + 8 + 2 + 16) + +/* Max length of base64 encoded secret. 4/3 original size (rounded up) */ +#define MAX_SECRET_LEN ((MAX_RAW_SECRET_LEN + (3 - 1)) * 4 / 3) + +/* Max Including null terminator */ +#define SECRET_BUFSIZE (MAX_SECRET_LEN + 1) + +/* 2k should be enough for anyone? */ +#define MON_LIST_BUFSIZE 2048 + +#define CLUSTER_FSID_LEN 37 + +void mount_ceph_debug(const char *fmt, ...); + +struct ceph_config_info { + char cci_secret[SECRET_BUFSIZE]; // auth secret + char cci_mons[MON_LIST_BUFSIZE]; // monitor addrs + char cci_fsid[CLUSTER_FSID_LEN]; // cluster fsid +}; + +void mount_ceph_get_config_info(const char *config_file, const char *name, + bool v2_addrs, struct ceph_config_info *cci); + +#ifdef __cplusplus +} +#endif + +#endif /* _SRC_MOUNT_MOUNT_CEPH_H */ |