2 Unix SMB/CIFS implementation.
4 Copyright (C) Andrew Tridgell 1992-1998
5 Copyright (C) Jeremy Allison 1998-2002
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 * @brief Capabilities functions
27 capabilities fns - will be needed when we enable kernel oplocks
31 #include "system/network.h"
32 #include "system/wait.h"
33 #include "system/filesys.h"
36 #if defined(HAVE_IRIX_SPECIFIC_CAPABILITIES)
37 /**************************************************************************
38 Try and abstract process capabilities (for systems that have them).
39 ****************************************************************************/
40 static bool set_process_capability( uint32_t cap_flag
, bool enable
)
42 if(cap_flag
== KERNEL_OPLOCK_CAPABILITY
) {
43 cap_t cap
= cap_get_proc();
46 DEBUG(0,("set_process_capability: cap_get_proc failed. Error was %s\n",
52 cap
->cap_effective
|= CAP_NETWORK_MGT
;
54 cap
->cap_effective
&= ~CAP_NETWORK_MGT
;
56 if (cap_set_proc(cap
) == -1) {
57 DEBUG(0,("set_process_capability: cap_set_proc failed. Error was %s\n",
65 DEBUG(10,("set_process_capability: Set KERNEL_OPLOCK_CAPABILITY.\n"));
70 /**************************************************************************
71 Try and abstract inherited process capabilities (for systems that have them).
72 ****************************************************************************/
74 static bool set_inherited_process_capability( uint32_t cap_flag
, bool enable
)
76 if(cap_flag
== KERNEL_OPLOCK_CAPABILITY
) {
77 cap_t cap
= cap_get_proc();
80 DEBUG(0,("set_inherited_process_capability: cap_get_proc failed. Error was %s\n",
86 cap
->cap_inheritable
|= CAP_NETWORK_MGT
;
88 cap
->cap_inheritable
&= ~CAP_NETWORK_MGT
;
90 if (cap_set_proc(cap
) == -1) {
91 DEBUG(0,("set_inherited_process_capability: cap_set_proc failed. Error was %s\n",
99 DEBUG(10,("set_inherited_process_capability: Set KERNEL_OPLOCK_CAPABILITY.\n"));