- merge -r15463:15564 from busybox_scratch branch through these changesets:
------------------------------------------------------------------------
r15465 | aldot | 2006-06-21 20:48:06 +0200 (Wed, 21 Jun 2006) | 3 lines
- use CONFIG_BUSYBOX_EXEC_PATH as before it one was broken by a recent revert.
- use xchdir() since all is invain if it fails there anyways, supposedly
------------------------------------------------------------------------
r15466 | aldot | 2006-06-21 20:55:16 +0200 (Wed, 21 Jun 2006) | 2 lines
- adjust docs to take CONFIG_BUSYBOX_EXEC_PATH into account.
------------------------------------------------------------------------
r15467 | aldot | 2006-06-21 21:31:24 +0200 (Wed, 21 Jun 2006) | 18 lines
- partial fallout of my TREE_USED touchup against gcc-4.2: rip unused vars, save
s 144 bytes
   text    data     bss     dec     hex filename
 862434   10156  645924 1518514  172bb2 busybox.old
 862322   10156  645892 1518370  172b22 busybox
function                                             old     new   delta
z_len                                                  4       -      -4
textend                                                4       -      -4
part_nb                                                4       -      -4
insize                                                 4       -      -4
ifile_size                                             4       -      -4
do_link                                                4       -      -4
new_text                                              70      60     -10
ipaddr_list_link                                      33      23     -10
gzip_main                                            898     822     -76
------------------------------------------------------------------------------
(add/remove: 0/6 grow/shrink: 0/3 up/down: 0/-120)           Total: -120 bytes
------------------------------------------------------------------------
r15468 | aldot | 2006-06-21 21:43:05 +0200 (Wed, 21 Jun 2006) | 19 lines
- remove useless global exports
function                                             old     new   delta
rpm_main                                             940    1601    +661
rpm_getstring                                        107     112      +5
rpm_getint                                           148     153      +5
loop_through_files                                   103     106      +3
fileaction_dobackup                                  115     113      -2
fileaction_list                                        5       -      -5
rpm_getcount                                          42       -     -42
extract_cpio_gz                                      161       -    -161
rpm_gettags                                          504       -    -504
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 4/1 up/down: 674/-714)          Total: -40 bytes
   text    data     bss     dec     hex filename
 862322   10156  645892 1518370  172b22 busybox.old
 862290   10156  645892 1518338  172b02 busybox
------------------------------------------------------------------------
r15555 | aldot | 2006-06-30 14:10:11 +0200 (Fri, 30 Jun 2006) | 22 lines
- shrink syslog a little bit, move a big buffer (for 'line') off the bss, fold s
emaphore stuff into single caller manually.
  stats:
function                                             old     new   delta
logMessage                                           395     427     +32
message                                             1245    1257     +12
opts                                                   -       4      +4
small                                                  1       -      -1
local_logging                                          4       -      -4
doRemoteLog                                            4       -      -4
circular_logging                                       4       -      -4
syslogd_main                                        1299    1285     -14
static.res                                            36      16     -20
.rodata                                           186650  186586     -64
static.line                                         1025       -   -1025
------------------------------------------------------------------------------
(add/remove: 1/5 grow/shrink: 2/3 up/down: 48/-1136)        Total: -1088 bytes
cow@s37:~/src/busybox_scratch$ size sysklogd/syslogd.o{.orig,}
   text    data     bss     dec     hex filename
   3723     348    5242    9313    2461 sysklogd/syslogd.o.orig
   3697     348    4188    8233    2029 sysklogd/syslogd.o
==============================================================================
Overall bloatcheck for the changeset mentioned above:
function                                             old     new   delta
rpm_main                                             953    1608    +655
logMessage                                           395     427     +32
message                                             1245    1257     +12
opts                                                   -       4      +4
rpm_getstring                                        107     110      +3
rpm_getint                                           148     151      +3
loop_through_files                                   103     104      +1
small                                                  1       -      -1
fileaction_dobackup                                  115     113      -2
z_len                                                  4       -      -4
textend                                                4       -      -4
part_nb                                                4       -      -4
local_logging                                          4       -      -4
insize                                                 4       -      -4
ifile_size                                             4       -      -4
do_link                                                4       -      -4
doRemoteLog                                            4       -      -4
circular_logging                                       4       -      -4
fileaction_list                                        5       -      -5
new_text                                              70      60     -10
ipaddr_list_link                                      33      23     -10
clear_bufs                                            31      21     -10
syslogd_main                                        1287    1273     -14
builtin_help                                         190     176     -14
static.res                                            36      16     -20
builtin_source                                       229     199     -30
rpm_getcount                                          42       -     -42
gzip_main                                            842     786     -56
.rodata                                           227176  227112     -64
lash_main                                            609     527     -82
busy_loop                                           3883    3739    -144
extract_cpio_gz                                      155       -    -155
rpm_gettags                                          501       -    -501
static.line                                         1025       -   -1025
------------------------------------------------------------------------------
(add/remove: 1/15 grow/shrink: 6/12 up/down: 710/-2221)     Total: -1511 bytes
			
			
This commit is contained in:
		| @@ -57,14 +57,14 @@ static char *RemoteHost; | ||||
| /* what port to log to? */ | ||||
| static int RemotePort = 514; | ||||
|  | ||||
| /* To remote log or not to remote log, that is the question. */ | ||||
| static int doRemoteLog = FALSE; | ||||
| static int local_logging = FALSE; | ||||
| #endif | ||||
|  | ||||
| /* Make loging output smaller. */ | ||||
| static bool small = false; | ||||
|  | ||||
| /* options */ | ||||
| static unsigned opts; | ||||
| #define SYSLOG_OPT_small     (1) | ||||
| #define SYSLOG_OPT_remotelog (2) | ||||
| #define SYSLOG_OPT_locallog  (4) | ||||
| #define SYSLOG_OPT_circularlog (8) | ||||
|  | ||||
| #define MAXLINE         1024	/* maximum line length */ | ||||
|  | ||||
| @@ -98,28 +98,6 @@ static struct sembuf SMwdn[3] = { {0, 0}, {1, 0}, {1, +1} };	// set SMwdn | ||||
| static int shmid = -1;	// ipc shared memory id | ||||
| static int s_semid = -1;	// ipc semaphore id | ||||
| static int shm_size = ((CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE)*1024);	// default shm size | ||||
| static int circular_logging = FALSE; | ||||
|  | ||||
| /* | ||||
|  * sem_up - up()'s a semaphore. | ||||
|  */ | ||||
| static inline void sem_up(int semid) | ||||
| { | ||||
| 	if (semop(semid, SMwup, 1) == -1) { | ||||
| 		bb_perror_msg_and_die("semop[SMwup]"); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * sem_down - down()'s a semaphore | ||||
|  */ | ||||
| static inline void sem_down(int semid) | ||||
| { | ||||
| 	if (semop(semid, SMwdn, 3) == -1) { | ||||
| 		bb_perror_msg_and_die("semop[SMwdn]"); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|  | ||||
| static void ipcsyslog_cleanup(void) | ||||
| { | ||||
| @@ -169,8 +147,11 @@ static void ipcsyslog_init(void) | ||||
| static void circ_message(const char *msg) | ||||
| { | ||||
| 	int l = strlen(msg) + 1;	/* count the whole message w/ '\0' included */ | ||||
| 	const char * const fail_msg = "Can't find the terminator token%s?\n"; | ||||
|  | ||||
| 	sem_down(s_semid); | ||||
| 	if (semop(s_semid, SMwdn, 3) == -1) { | ||||
| 		bb_perror_msg_and_die("SMwdn"); | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * Circular Buffer Algorithm: | ||||
| @@ -220,7 +201,7 @@ static void circ_message(const char *msg) | ||||
| 					/* Note: HEAD is only used to "retrieve" messages, it's not used | ||||
| 					   when writing messages into our buffer */ | ||||
| 				} else {	/* show an error message to know we messed up? */ | ||||
| 					printf("Weird! Can't find the terminator token?\n"); | ||||
| 					printf(fail_msg,""); | ||||
| 					buf->head = 0; | ||||
| 				} | ||||
| 			} | ||||
| @@ -256,13 +237,15 @@ static void circ_message(const char *msg) | ||||
| 			/* we need to place the TAIL at the end of the message */ | ||||
| 			buf->tail = k + 1; | ||||
| 		} else { | ||||
| 			printf | ||||
| 				("Weird! Can't find the terminator token from the beginning?\n"); | ||||
| 			printf(fail_msg, " from the beginning"); | ||||
| 			buf->head = buf->tail = 0;	/* reset buffer, since it's probably corrupted */ | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
| 	sem_up(s_semid); | ||||
| 	if (semop(s_semid, SMwup, 1) == -1) { | ||||
| 		bb_perror_msg_and_die("SMwup"); | ||||
| 	} | ||||
|  | ||||
| } | ||||
| #endif							/* CONFIG_FEATURE_IPC_SYSLOG */ | ||||
|  | ||||
| @@ -280,7 +263,7 @@ static void message(char *fmt, ...) | ||||
| 	fl.l_len = 1; | ||||
|  | ||||
| #ifdef CONFIG_FEATURE_IPC_SYSLOG | ||||
| 	if ((circular_logging == TRUE) && (buf != NULL)) { | ||||
| 	if ((opts & SYSLOG_OPT_circularlog) && (buf != NULL)) { | ||||
| 		char b[1024]; | ||||
|  | ||||
| 		va_start(arguments, fmt); | ||||
| @@ -295,8 +278,8 @@ static void message(char *fmt, ...) | ||||
| 							 O_NONBLOCK)) >= 0) { | ||||
| 		fl.l_type = F_WRLCK; | ||||
| 		fcntl(fd, F_SETLKW, &fl); | ||||
| #ifdef CONFIG_FEATURE_ROTATE_LOGFILE | ||||
| 		if ( logFileSize > 0 ) { | ||||
|  | ||||
| 		if (ENABLE_FEATURE_ROTATE_LOGFILE && logFileSize > 0 ) { | ||||
| 			struct stat statf; | ||||
| 			int r = fstat(fd, &statf); | ||||
| 			if( !r && (statf.st_mode & S_IFREG) | ||||
| @@ -324,7 +307,7 @@ static void message(char *fmt, ...) | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| #endif | ||||
|  | ||||
| 		va_start(arguments, fmt); | ||||
| 		vdprintf(fd, fmt, arguments); | ||||
| 		va_end(arguments); | ||||
| @@ -364,10 +347,7 @@ static void logMessage(int pri, char *msg) | ||||
| { | ||||
| 	time_t now; | ||||
| 	char *timestamp; | ||||
| 	static char res[20]; | ||||
| #ifdef CONFIG_FEATURE_REMOTE_LOG | ||||
| 	static char line[MAXLINE + 1]; | ||||
| #endif | ||||
| 	char res[20]; | ||||
| 	CODE *c_pri, *c_fac; | ||||
|  | ||||
| 	if (pri != 0) { | ||||
| @@ -396,7 +376,8 @@ static void logMessage(int pri, char *msg) | ||||
| 	/* todo: supress duplicates */ | ||||
|  | ||||
| #ifdef CONFIG_FEATURE_REMOTE_LOG | ||||
| 	if (doRemoteLog == TRUE) { | ||||
| 	if (opts & SYSLOG_OPT_remotelog) { | ||||
| 		char line[MAXLINE + 1]; | ||||
| 		/* trying connect the socket */ | ||||
| 		if (-1 == remotefd) { | ||||
| 			init_RemoteLog(); | ||||
| @@ -407,7 +388,7 @@ static void logMessage(int pri, char *msg) | ||||
| 			now = 1; | ||||
| 			snprintf(line, sizeof(line), "<%d>%s", pri, msg); | ||||
|  | ||||
| 		retry: | ||||
| retry: | ||||
| 			/* send message to remote logger */ | ||||
| 			if(( -1 == sendto(remotefd, line, strlen(line), 0, | ||||
| 							(struct sockaddr *) &remoteaddr, | ||||
| @@ -420,11 +401,11 @@ static void logMessage(int pri, char *msg) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if (local_logging == TRUE) | ||||
| 	if (opts & SYSLOG_OPT_locallog) | ||||
| #endif | ||||
| 	{ | ||||
| 		/* now spew out the message to wherever it is supposed to go */ | ||||
| 		if (small) | ||||
| 		if (opts & SYSLOG_OPT_small) | ||||
| 			message("%s %s\n", timestamp, msg); | ||||
| 		else | ||||
| 			message("%s %s %s %s\n", timestamp, LocalHostName, res, msg); | ||||
| @@ -435,9 +416,8 @@ static void quit_signal(int sig) | ||||
| { | ||||
| 	logMessage(LOG_SYSLOG | LOG_INFO, "System log daemon exiting."); | ||||
| 	unlink(lfile); | ||||
| #ifdef CONFIG_FEATURE_IPC_SYSLOG | ||||
| 	ipcsyslog_cleanup(); | ||||
| #endif | ||||
| 	if (ENABLE_FEATURE_IPC_SYSLOG) | ||||
| 		ipcsyslog_cleanup(); | ||||
|  | ||||
| 	exit(TRUE); | ||||
| } | ||||
| @@ -531,17 +511,13 @@ static void doSyslogd(void) | ||||
| 	if (chmod(lfile, 0666) < 0) { | ||||
| 		bb_perror_msg_and_die("Could not set permission on " _PATH_LOG); | ||||
| 	} | ||||
| #ifdef CONFIG_FEATURE_IPC_SYSLOG | ||||
| 	if (circular_logging == TRUE) { | ||||
| 	if (ENABLE_FEATURE_IPC_SYSLOG && opts & SYSLOG_OPT_circularlog) { | ||||
| 		ipcsyslog_init(); | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| #ifdef CONFIG_FEATURE_REMOTE_LOG | ||||
| 	if (doRemoteLog == TRUE) { | ||||
| 	if (ENABLE_FEATURE_REMOTE_LOG && opts & SYSLOG_OPT_remotelog) { | ||||
| 		init_RemoteLog(); | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| 	logMessage(LOG_SYSLOG | LOG_INFO, "syslogd started: " "BusyBox v" BB_VER ); | ||||
|  | ||||
| @@ -613,10 +589,10 @@ int syslogd_main(int argc, char **argv) | ||||
| 				RemotePort = atoi(p + 1); | ||||
| 				*p = '\0'; | ||||
| 			} | ||||
| 			doRemoteLog = TRUE; | ||||
| 			opts |= SYSLOG_OPT_remotelog; | ||||
| 			break; | ||||
| 		case 'L': | ||||
| 			local_logging = TRUE; | ||||
| 			opts |= SYSLOG_OPT_locallog; | ||||
| 			break; | ||||
| #endif | ||||
| #ifdef CONFIG_FEATURE_IPC_SYSLOG | ||||
| @@ -627,22 +603,20 @@ int syslogd_main(int argc, char **argv) | ||||
| 					shm_size = buf_size * 1024; | ||||
| 				} | ||||
| 			} | ||||
| 			circular_logging = TRUE; | ||||
| 			opts |= SYSLOG_OPT_circularlog; | ||||
| 			break; | ||||
| #endif | ||||
| 		case 'S': | ||||
| 			small = true; | ||||
| 			opts |= SYSLOG_OPT_small; | ||||
| 			break; | ||||
| 		default: | ||||
| 			bb_show_usage(); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| #ifdef CONFIG_FEATURE_REMOTE_LOG | ||||
| 	/* If they have not specified remote logging, then log locally */ | ||||
| 	if (doRemoteLog == FALSE) | ||||
| 		local_logging = TRUE; | ||||
| #endif | ||||
| 	if (ENABLE_FEATURE_REMOTE_LOG && !(opts & SYSLOG_OPT_remotelog)) | ||||
| 		opts |= SYSLOG_OPT_locallog; | ||||
|  | ||||
|  | ||||
| 	/* Store away localhost's name before the fork */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user