// -------
+UserCert *Client::get_user_cert(int uid)
+{
+
+
+}
+
MClientReply *Client::make_request(MClientRequest *req,
bool auth_best,
int use_mds) // this param is icky, debug weirdness!
+
int Client::mknod(const char *relpath, mode_t mode)
{
client_lock.Lock();
mkabspath(relpath, abspath);
const char *path = abspath.c_str();
+ UserCert *uc = get_user_cert(getuid(), getgid());
+ // do work
+ put_user_cert(uc);
+
dout(3) << "op: client->mknod(\"" << path << "\", " << mode << ");" << endl;
tout << "mknod" << endl;
tout << path << endl;
--- /dev/null
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2004-2006 Sage Weil <sage@newdream.net>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation. See file COPYING.
+ *
+ */
+
+
+#ifndef __MCLIENTAUTHUSER_H
+#define __MCLIENTAUTHUSER_H
+
+#include "msg/Message.h"
+
+class MClientAuthUser : public Message {
+
+ public:
+ MClientAuthUser() : Message(MSG_CLIENT_AUTH_USER) {
+ }
+
+ char *get_type_name() { return "client_auth_user"; }
+
+ void decode_payload() {
+ }
+ void encode_payload() {
+ }
+};
+
+#endif
--- /dev/null
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2004-2006 Sage Weil <sage@newdream.net>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation. See file COPYING.
+ *
+ */
+
+
+#ifndef __MCLIENTAUTHUSERACK_H
+#define __MCLIENTAUTHUSERACK_H
+
+#include "msg/Message.h"
+
+class MClientAuthUserAck : public Message {
+
+ public:
+ MClientAuthUserAck() : Message(MSG_CLIENT_AUTH_USER_ACK) {
+ }
+
+ char *get_type_name() { return "client_auth_user_ack"; }
+
+ void decode_payload() {
+ }
+ void encode_payload() {
+ }
+};
+
+#endif
//void send_incremental(epoch_t since, msg_addr_t dest);
void handle_client_boot(class MClientBoot *m);
+ void handle_client_auth_user(class MClientAuthUser *m);
public:
ClientMonitor(Monitor *mn, Messenger *m, Mutex& l) : mon(mn), messenger(m), lock(l),
// clients
case MSG_CLIENT_BOOT:
+ case MSG_CLIENT_AUTH_USER:
clientmon->dispatch(m);
break;
#include "messages/MClientBoot.h"
#include "messages/MClientMount.h"
#include "messages/MClientMountAck.h"
+#include "messages/MClientAuthUser.h"
+#include "messages/MClientAuthUserAck.h"
#include "messages/MClientRequest.h"
#include "messages/MClientReply.h"
#include "messages/MClientFileCaps.h"
case MSG_CLIENT_MOUNTACK:
m = new MClientMountAck();
break;
+ case MSG_CLIENT_AUTH_USER:
+ m = new MClientAuthUser();
+ break;
+ case MSG_CLIENT_AUTH_USER_ACK:
+ m = new MClientAuthUserAck();
+ break;
case MSG_CLIENT_REQUEST:
m = new MClientRequest();
break;
#define MSG_CLIENT_MOUNT 71
#define MSG_CLIENT_MOUNTACK 72
#define MSG_CLIENT_UNMOUNT 73
+#define MSG_CLIENT_AUTH_USER 74
+#define MSG_CLIENT_AUTH_USER_ACK 75
// *** MDS ***
const utime_t& get_ctime() const { return ctime; }
bool is_mkfs() const { return epoch == 1; }
- //void set_mkfs() { assert(epoch == 1); }
/***** cluster state *****/
int num_osds() { return osds.size(); }