mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 21:24:08 +08:00
3d14c5d2b6
This factors out protocol and low-level storage parts of ceph into a separate libceph module living in net/ceph and include/linux/ceph. This is mostly a matter of moving files around. However, a few key pieces of the interface change as well: - ceph_client becomes ceph_fs_client and ceph_client, where the latter captures the mon and osd clients, and the fs_client gets the mds client and file system specific pieces. - Mount option parsing and debugfs setup is correspondingly broken into two pieces. - The mon client gets a generic handler callback for otherwise unknown messages (mds map, in this case). - The basic supported/required feature bits can be expanded (and are by ceph_fs_client). No functional change, aside from some subtle error handling cases that got cleaned up in the refactoring process. Signed-off-by: Sage Weil <sage@newdream.net>
51 lines
847 B
C
51 lines
847 B
C
#ifndef _FS_CEPH_AUTH_X_H
|
|
#define _FS_CEPH_AUTH_X_H
|
|
|
|
#include <linux/rbtree.h>
|
|
|
|
#include <linux/ceph/auth.h>
|
|
|
|
#include "crypto.h"
|
|
#include "auth_x_protocol.h"
|
|
|
|
/*
|
|
* Handle ticket for a single service.
|
|
*/
|
|
struct ceph_x_ticket_handler {
|
|
struct rb_node node;
|
|
unsigned service;
|
|
|
|
struct ceph_crypto_key session_key;
|
|
struct ceph_timespec validity;
|
|
|
|
u64 secret_id;
|
|
struct ceph_buffer *ticket_blob;
|
|
|
|
unsigned long renew_after, expires;
|
|
};
|
|
|
|
|
|
struct ceph_x_authorizer {
|
|
struct ceph_buffer *buf;
|
|
unsigned service;
|
|
u64 nonce;
|
|
char reply_buf[128]; /* big enough for encrypted blob */
|
|
};
|
|
|
|
struct ceph_x_info {
|
|
struct ceph_crypto_key secret;
|
|
|
|
bool starting;
|
|
u64 server_challenge;
|
|
|
|
unsigned have_keys;
|
|
struct rb_root ticket_handlers;
|
|
|
|
struct ceph_x_authorizer auth_authorizer;
|
|
};
|
|
|
|
extern int ceph_x_init(struct ceph_auth_client *ac);
|
|
|
|
#endif
|
|
|