-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/worker.c,v 6.30 2008-05-28 14:56:16 hadaq Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/worker.c,v 6.31 2010-07-06 15:35:08 hadaq Exp $";
#define WORKER_NEW_PROTOCOL
{
int retVal;
char ipcNameS[_POSIX_PATH_MAX];
+ char ipcFullNameS[_POSIX_PATH_MAX] = "/dev/shm/";
char *ipcName;
strcpy(ipcNameS, my->name);
ipcName = basename(ipcNameS);
strcat(ipcName, ".shm");
+ strcat(ipcFullNameS, ipcName);
if (-1 == PsxShm_unlink(ipcName) && errno != ENOENT) {
syslog(LOG_DEBUG, "%s:%d: %s", __FILE__, __LINE__, strerror(errno));
} else {
my->statistics = my->shm->addr;
strcpy(my->statistics[0].name, "");
+
+ if (-1 == chmod(ipcFullNameS, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)) {
+ syslog(LOG_ERR, "%s:%d: %s", __FILE__, __LINE__, strerror(errno));
+ }
+
retVal = 0;
}
}
static int removeSigHandlers(Worker *my)
{
- return sigaction(my->signal0, my->oldSigAction0, NULL)
- | sigaction(my->signal1, my->oldSigAction1, NULL)
- | sigaction(my->signal2, my->oldSigAction2, NULL);
+ return sigaction(my->signal0, my->oldSigAction0, NULL)
+ | sigaction(my->signal1, my->oldSigAction1, NULL)
+ | sigaction(my->signal2, my->oldSigAction2, NULL);
}
static int installSigHandlers(Worker *my, int s0, int s1, int s2, void (*sigHandler) (int))
strcpy(my->name, argv[0]);
#ifndef WORKER_NEW_PROTOCOL
- installSigHandlers(my, SIGCHLD, SIGUSR1, SIGHUP , noopHandler);
+ installSigHandlers(my, SIGCHLD, SIGUSR1, SIGHUP, noopHandler);
#endif
my->pid = fork();