X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Fgss%2Flgss_utils.h;h=51a8f4599a208f1b14e7df792fe54e87280be47b;hb=4817574ad5a31d6dbafc2bd0dfc2b6a33851ea11;hp=7a519ea6ac57c53d99db82786af9f940e873e517;hpb=70e80ade90af09300396706b8910e196a7928520;p=fs%2Flustre-release.git diff --git a/lustre/utils/gss/lgss_utils.h b/lustre/utils/gss/lgss_utils.h index 7a519ea..51a8f45 100644 --- a/lustre/utils/gss/lgss_utils.h +++ b/lustre/utils/gss/lgss_utils.h @@ -1,9 +1,7 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * Modifications for Lustre * - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * * Author: Eric Mei */ @@ -45,17 +43,15 @@ #include #include -#include - -#define LGSS_SVC_MDS_STR "lustre_mds" -#define LGSS_SVC_OST_STR "lustre_oss" #define LGSS_SVC_MGS_STR "lustre_mgs" +#define LGSS_SVC_MDS_STR "lustre_mds" +#define LGSS_SVC_OSS_STR "lustre_oss" #define LGSS_USR_ROOT_STR "lustre_root" typedef enum { - LGSS_SVC_MDS = 0, - LGSS_SVC_OSS = 1, - LGSS_SVC_MGS = 2, + LGSS_SVC_MGS = 0, + LGSS_SVC_MDS = 1, + LGSS_SVC_OSS = 2, LGSS_SVC_MAX } lgss_svc_t; @@ -96,26 +92,31 @@ typedef enum { extern loglevel_t g_log_level; -void __logmsg(loglevel_t level, const char *func, const char *format, ...); +void lgss_set_loglevel(loglevel_t level); + +void __logmsg(loglevel_t level, const char *func, const char *format, ...) + __attribute__((format(printf, 3, 4))); + void __logmsg_gss(loglevel_t level, const char *func, const gss_OID mech, - uint32_t major, uint32_t minor, const char *format, ...); + uint32_t major, uint32_t minor, const char *format, ...) + __attribute__((format(printf, 6, 7))); #define logmsg(loglevel, format, args...) \ do { \ - if (unlikely(loglevel <= g_log_level)) \ + if (loglevel <= g_log_level) \ __logmsg(loglevel, __FUNCTION__, format, ##args); \ } while (0) #define logmsg_gss(loglevel, mech, major, minor, format, args...) \ do { \ - if (unlikely(loglevel <= g_log_level)) \ + if (loglevel <= g_log_level) \ __logmsg_gss(loglevel, __FUNCTION__, mech, \ major, minor, format, ##args); \ } while (0) #define lassert(exp) \ do { \ - if ((int)(exp) == 0) { \ + if (!(exp)) { \ logmsg(LL_ERR, "ASSERTION FAILED: %s", #exp); \ exit(-1); \ } \ @@ -127,8 +128,8 @@ do { \ #define printerr(priority, format, args...) \ logmsg(priority, format, ##args) -#define pgsserr(msg, maj_stat, min_stat, mech) \ - logmsg_gss(LL_ERR, mech, maj_stat, min_stat, "") +#define pgsserr(msg, maj_stat, min_stat, mech) \ + logmsg_gss(LL_ERR, mech, maj_stat, min_stat, msg) /**************************************** * GSS MECH, OIDs * @@ -158,15 +159,23 @@ struct lgss_mech_type { int (*lmt_using_cred)(struct lgss_cred *cred); }; +enum { + LGSS_ROOT_CRED_ROOT = 0x01, + LGSS_ROOT_CRED_MDT = 0x02, + LGSS_ROOT_CRED_OST = 0x04, + + LGSS_ROOT_CRED_NR = 3 +}; + struct lgss_cred { - int lc_uid; - unsigned int lc_fl_root:1, - lc_fl_mds:1; - uint64_t lc_tgt_nid; - uint32_t lc_tgt_svc; - - struct lgss_mech_type *lc_mech; - void *lc_mech_cred; + int lc_uid; + unsigned int lc_root_flags; + uint64_t lc_self_nid; + uint64_t lc_tgt_nid; + uint32_t lc_tgt_svc; + + struct lgss_mech_type *lc_mech; + void *lc_mech_cred; }; struct lgss_mech_type *lgss_name2mech(const char *mech_name);