4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 only,
8 * as published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License version 2 for more details (a copy is included
14 * in the LICENSE file that accompanied this code).
16 * You should have received a copy of the GNU General Public License
17 * version 2 along with this program; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 021110-1307, USA
24 * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
25 * Use is subject to license terms.
27 * Copyright (c) 2014, Intel Corporation.
30 * This file is part of Lustre, http://www.lustre.org/
32 * lustre/utils/gss/lsupport.h
35 #ifndef __LSUPPORT_H__
36 #define __LSUPPORT_H__
45 #include <libcfs/util/list.h>
46 #include <linux/lnet/lnet-types.h>
47 #include <linux/lnet/nidstr.h>
48 #include <uapi/linux/lustre/lgss.h>
55 void gssd_init_unique(int type);
56 void gssd_exit_unique(int type);
59 * copied from lustre source
62 #define LUSTRE_GSS_SVC_MGS 0
63 #define LUSTRE_GSS_SVC_MDS 1
64 #define LUSTRE_GSS_SVC_OSS 2
66 #define LUSTRE_GSS_SVC_MASK 0x0000FFFF
67 #define LUSTRE_GSS_MECH_MASK 0xFFFF0000
68 #define LUSTRE_GSS_MECH_SHIFT 16
70 extern const char * lustre_svc_name[];
71 extern char *krb5_this_realm;
81 LGSS_ROOT_CRED_ROOT = 0x01,
82 LGSS_ROOT_CRED_MDT = 0x02,
83 LGSS_ROOT_CRED_OST = 0x04,
84 /* service type flags */
91 struct lgssd_upcall_data {
100 #define GSSD_INTERFACE_VERSION GSSD_INTERFACE_VERSION_V2
101 #define GSSD_INTERFACE_VERSION_V2 (2)
102 #define GSSD_INTERFACE_VERSION_V1 (1)
104 #define GSSD_DEFAULT_GETHOSTNAME_EX "/etc/lustre/nid2hostname"
105 #define MAPPING_DATABASE_FILE "/etc/lustre/idmap.conf"
107 int getcanonname(const char *host, char *buf, int buflen);
108 int lnet_nid2hostname(lnet_nid_t nid, char *buf, int buflen);
109 void cleanup_mapping(void);
110 uid_t parse_uid(char *uidstr);
111 void load_mapping(void);
112 int mapping_empty(void);
113 int lookup_mapping(char *princ, lnet_nid_t nid, uid_t *uid);
114 int gss_get_realm(char *realm);
117 * gss_buffer_write() - write some buffer to stream
119 static inline int gss_buffer_write_file(FILE *f, void *value, size_t length)
123 /* write size of data */
124 if (fwrite(&length, sizeof(__u32), 1, f) != 1) {
129 if (!length || !value)
132 /* write data itself */
133 if (fwrite(value, length, 1, f) != 1) {
142 #endif /* __LSUPPORT_H__ */