projects
/
lcr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LCR now runs as a user.
[lcr.git]
/
main.c
diff --git
a/main.c
b/main.c
index
b66615f
..
59343ae
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-100,7
+100,7
@@
void debug(const char *function, int line, char *prefix, char *buffer)
}
}
-void _printdebug(const char *function, int line, unsigned
long
mask, const char *fmt, ...)
+void _printdebug(const char *function, int line, unsigned
int
mask, const char *fmt, ...)
{
char buffer[4096];
va_list args;
{
char buffer[4096];
va_list args;
@@
-189,7
+189,7
@@
int main(int argc, char *argv[])
created_lock = 0, created_signal = 0, created_debug = 0,
created_misdn = 0;
int idletime = 0, idlecheck = 0;
created_lock = 0, created_signal = 0, created_debug = 0,
created_misdn = 0;
int idletime = 0, idlecheck = 0;
- char tracetext[256];
+ char tracetext[256]
, lock[128]
;
#if 0
/* init fdset */
#if 0
/* init fdset */
@@
-226,13
+226,6
@@
int main(int argc, char *argv[])
/* init crc */
crc_init();
/* init crc */
crc_init();
- /* check for root (real or effective) */
- if (getuid() && geteuid())
- {
- fprintf(stderr, "Please run %s as super-user.\n", NAME);
- goto free;
- }
-
/* the mutex init */
if (pthread_mutex_init(&mutexd, NULL))
{
/* the mutex init */
if (pthread_mutex_init(&mutexd, NULL))
{
@@
-275,7
+268,8
@@
int main(int argc, char *argv[])
/* query available isdn ports */
if (!(strcasecmp(argv[1],"query")))
{
/* query available isdn ports */
if (!(strcasecmp(argv[1],"query")))
{
- mISDN_port_info();
+ fprintf(stderr, "-> Using 'isdninfo'\n");
+ system("isdninfo");
ret = 0;
goto free;
}
ret = 0;
goto free;
}
@@
-358,9
+352,11
@@
int main(int argc, char *argv[])
}
/* create lock and lock! */
}
/* create lock and lock! */
- if ((lockfd = open("/var/run/lcr.lock", O_CREAT, 0)) < 0)
+ SPRINT(lock, "%s/lcr.lock", options.lock);
+ if ((lockfd = open(lock, O_CREAT | O_WRONLY)) < 0)
{
{
- fprintf(stderr, "Cannot create lock file: /var/run/lcr.lock\n");
+ fprintf(stderr, "Cannot create lock file: %s\n", lock);
+ fprintf(stderr, "Check options.conf to change to path with permissions for you.\n");
goto free;
}
if (flock(lockfd, LOCK_EX|LOCK_NB) < 0)
goto free;
}
if (flock(lockfd, LOCK_EX|LOCK_NB) < 0)
@@
-414,18
+410,17
@@
int main(int argc, char *argv[])
switch(errno)
{
case ENOMEM:
switch(errno)
{
case ENOMEM:
- fprintf(stderr, "Not enough memory to lock paging, exitting...\n");
+ fprintf(stderr, "
Warning:
Not enough memory to lock paging, exitting...\n");
break;
case EPERM:
break;
case EPERM:
- fprintf(stderr, "No permission to lock paging, exitting...\n");
+ fprintf(stderr, "
Warning:
No permission to lock paging, exitting...\n");
break;
case EFAULT:
break;
case EFAULT:
- fprintf(stderr, "'Bad address' while locking paging, exitting...\n");
+ fprintf(stderr, "
Warning:
'Bad address' while locking paging, exitting...\n");
break;
default:
break;
default:
- fprintf(stderr, "Unknown error %d while locking paging, exitting...\n", errno);
+ fprintf(stderr, "
Warning:
Unknown error %d while locking paging, exitting...\n", errno);
}
}
- goto free;
}
/* set real time scheduler & priority */
}
/* set real time scheduler & priority */
@@
-716,7
+711,11
@@
free:
if (created_lock)
flock(lockfd, LOCK_UN);
if (lockfd >= 0)
if (created_lock)
flock(lockfd, LOCK_UN);
if (lockfd >= 0)
+ {
+ chmod(lock, 0700);
+ unlink(lock);
close(lockfd);
close(lockfd);
+ }
/* free rulesets */
if (ruleset_first)
/* free rulesets */
if (ruleset_first)