add size parameter to syslogd -C
Patch by Padraig, resubmitted by Fillod Stephane
This commit is contained in:
parent
6b0658f5c0
commit
a79220db6e
@ -106,8 +106,7 @@ static struct sembuf SMwdn[3] = { {0, 0}, {1, 0}, {1, +1} }; // set SMwdn
|
|||||||
|
|
||||||
static int shmid = -1; // ipc shared memory id
|
static int shmid = -1; // ipc shared memory id
|
||||||
static int s_semid = -1; // ipc semaphore id
|
static int s_semid = -1; // ipc semaphore id
|
||||||
int data_size = 16000; // data size
|
static int data_size = 16000; // default data size
|
||||||
int shm_size = 16000 + sizeof(*buf); // our buffer size
|
|
||||||
static int circular_logging = FALSE;
|
static int circular_logging = FALSE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -149,7 +148,7 @@ void ipcsyslog_cleanup(void)
|
|||||||
void ipcsyslog_init(void)
|
void ipcsyslog_init(void)
|
||||||
{
|
{
|
||||||
if (buf == NULL) {
|
if (buf == NULL) {
|
||||||
if ((shmid = shmget(KEY_ID, shm_size, IPC_CREAT | 1023)) == -1) {
|
if ((shmid = shmget(KEY_ID, data_size, IPC_CREAT | 1023)) == -1) {
|
||||||
bb_perror_msg_and_die("shmget");
|
bb_perror_msg_and_die("shmget");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,7 +156,7 @@ void ipcsyslog_init(void)
|
|||||||
bb_perror_msg_and_die("shmat");
|
bb_perror_msg_and_die("shmat");
|
||||||
}
|
}
|
||||||
|
|
||||||
buf->size = data_size;
|
buf->size = data_size - sizeof(*buf);
|
||||||
buf->head = buf->tail = 0;
|
buf->head = buf->tail = 0;
|
||||||
|
|
||||||
// we'll trust the OS to set initial semval to 0 (let's hope)
|
// we'll trust the OS to set initial semval to 0 (let's hope)
|
||||||
@ -579,7 +578,7 @@ extern int syslogd_main(int argc, char **argv)
|
|||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
/* do normal option parsing */
|
/* do normal option parsing */
|
||||||
while ((opt = getopt(argc, argv, "m:nO:R:LC")) > 0) {
|
while ((opt = getopt(argc, argv, "m:nO:R:LC::")) > 0) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'm':
|
case 'm':
|
||||||
MarkInterval = atoi(optarg) * 60;
|
MarkInterval = atoi(optarg) * 60;
|
||||||
@ -605,6 +604,12 @@ extern int syslogd_main(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_FEATURE_IPC_SYSLOG
|
#ifdef CONFIG_FEATURE_IPC_SYSLOG
|
||||||
case 'C':
|
case 'C':
|
||||||
|
if (optarg) {
|
||||||
|
int buf_size = atoi(optarg);
|
||||||
|
if (buf_size >= 4) {
|
||||||
|
data_size = buf_size;
|
||||||
|
}
|
||||||
|
}
|
||||||
circular_logging = TRUE;
|
circular_logging = TRUE;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user