/* this code is broken - there is a race condition with the unlink (tridge) */
-/*
+/*
Unix SMB/CIFS implementation.
pidfile handling
Copyright (C) Andrew Tridgell 1998
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* return the pid in a pidfile. return 0 if the process (or pidfile)
- * does not exist
+ * does not exist
*/
pid_t pidfile_pid(const char *piddir, const char *name)
{
pidFile));
goto noproc;
}
-
+
if (!process_exists_by_pid(ret)) {
DEBUG(10, ("Process with PID=%d does not exist.\n", (int)ret));
goto noproc;
}
/**
- * create a pid file in the pid directory. open it and leave it locked
+ * create a pid file in the pid directory. open it and leave it locked
*/
void pidfile_create(const char *piddir, const char *name)
{
pid = pidfile_pid(piddir, name);
if (pid != 0) {
- DEBUG(0,("ERROR: %s is already running. File %s exists and process id %d is running.\n",
+ DEBUG(0,("ERROR: %s is already running. File %s exists and process id %d is running.\n",
name, pidFile, (int)pid));
exit(1);
}
fd = open(pidFile, O_NONBLOCK | O_CREAT | O_WRONLY | O_EXCL, 0644);
if (fd == -1) {
- DEBUG(0,("ERROR: can't open %s: Error was %s\n", pidFile,
+ DEBUG(0,("ERROR: can't open %s: Error was %s\n", pidFile,
strerror(errno)));
exit(1);
}
smb_set_close_on_exec(fd);
if (fcntl_lock(fd,F_SETLK,0,1,F_WRLCK)==false) {
- DEBUG(0,("ERROR: %s : fcntl lock of file %s failed. Error was %s\n",
+ DEBUG(0,("ERROR: %s : fcntl lock of file %s failed. Error was %s\n",
name, pidFile, strerror(errno)));
exit(1);
}
memset(buf, 0, sizeof(buf));
slprintf(buf, sizeof(buf) - 1, "%u\n", (unsigned int) getpid());
if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) {
- DEBUG(0,("ERROR: can't write to file %s: %s\n",
+ DEBUG(0,("ERROR: can't write to file %s: %s\n",
pidFile, strerror(errno)));
exit(1);
}
-/*
+/*
Unix SMB/CIFS implementation.
Samba utility functions
Copyright (C) Andrew Tridgell 1992-1999
Copyright (C) Luke Kenneth Casson Leighton 1996 - 1999
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+
+ This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
uint32_t i;
printf("\tACL\tNum ACEs:\t%u\trevision:\t%x\n",
- sec_acl->num_aces, sec_acl->revision);
+ sec_acl->num_aces, sec_acl->revision);
printf("\t---\n");
if (sec_acl->size != 0 && sec_acl->num_aces != 0) {
printf("SEC_DESC_RM_CONTROL_VALID ");
if (type & SEC_DESC_SELF_RELATIVE) /* 0x8000 */
printf("SEC_DESC_SELF_RELATIVE ");
-
+
printf("\n");
}
-/*
+/*
Unix SMB/CIFS implementation.
Portable SMB ACL interface
Copyright (C) Jeremy Allison 2000
Copyright (C) Andrew Bartlett 2012
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/*
+/*
* Allow the smb_acl interface to be pushed into an NDR blob and
* read/written in python.
- *
+ *
* The exact layout of these stuctures is CRITICAL, as a SHA-256 hash is
* taken over these after they are pushed as NDR blobs, and stored in an
* xattr for ACL verification.
[case (SMB_ACL_GROUP)] smb_acl_group group;
[case (SMB_ACL_GROUP_OBJ)];
[case (SMB_ACL_OTHER)];
- [case (SMB_ACL_MASK)];
+ [case (SMB_ACL_MASK)];
} smb_acl_entry_info;
typedef struct {
[switch_is(a_type)] smb_acl_entry_info info;
mode_t a_perm;
} smb_acl_entry;
-
+
[public] typedef struct {
int count;
[value(0)] int next;
[size_is(count)] smb_acl_entry acl[*];
} smb_acl_t;
-
+
const int SMB_ACL_FIRST_ENTRY = 0;
const int SMB_ACL_NEXT_ENTRY = 1;
-
+
const int SMB_ACL_TYPE_ACCESS = 0;
const int SMB_ACL_TYPE_DEFAULT = 1;