Browse Source

* Added option to turn off login server logging
* Moved char server starting logging to after we've read the configuration file first

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@513 54d463be-8e91-2dee-dedb-b68131a5f0ec

celest 20 years ago
parent
commit
7ef9c70b13
4 changed files with 34 additions and 21 deletions
  1. 3 0
      Changelog.txt
  2. 3 0
      conf-tmpl/login_athena.conf
  3. 5 4
      src/char/char.c
  4. 23 17
      src/login/login.c

+ 3 - 0
Changelog.txt

@@ -1,5 +1,8 @@
 Date	Added
 12/8
+        * Added option to turn off login server logging [celest]
+        * Moved char server starting logging to after we've read the configuration
+          file first [celest]
         * Fixed crash with supernovices with 100% base exp [celest]
 	* Updated the readme a little. [Mass Zero]
 

+ 3 - 0
conf-tmpl/login_athena.conf

@@ -55,6 +55,9 @@ gm_account_filename_check_timer: 15
 // Log Filename. All operations received by the server are logged in this file.
 login_log_filename: log/login.log
 
+// To log the login server?
+log_login: 1
+
 // Name of the file of that logs the unknown packets (for debug or hack check)
 login_log_unknown_packets_filename: log/login_unknown_packets.log
 

+ 5 - 4
src/char/char.c

@@ -3348,13 +3348,14 @@ void do_final(void) {
 int do_init(int argc, char **argv) {
 	int i;
 
-	// a newline in the log...
-	char_log("");
-	char_log("The char-server starting..." RETCODE);
-
 	char_config_read((argc < 2) ? CHAR_CONF_NAME : argv[1]);
 	lan_config_read((argc > 1) ? argv[1] : LOGIN_LAN_CONF_NAME);
 
+		// a newline in the log...
+		char_log("");
+		// moved behind char_config_read in case we changed the filename [celest]
+		char_log("The char-server starting..." RETCODE);
+
         if ((naddr_ != 0) && (login_ip_set_ == 0 || char_ip_set_ == 0)) { 
           // The char server should know what IP address it is running on
           //   - MouseJstr

+ 23 - 17
src/login/login.c

@@ -69,6 +69,8 @@ int save_unknown_packets = 0;
 long creation_time_GM_account_file;
 int gm_account_filename_check_timer = 15; // Timer to check if GM_account file has been changed and reload GM account automaticaly (in seconds; default: 15)
 
+int log_login = 1;
+
 int display_parse_login = 0; // 0: no, 1: yes
 int display_parse_admin = 0; // 0: no, 1: yes
 int display_parse_fromchar = 0; // 0: no, 1: yes (without packet 0x2714), 2: all packets
@@ -169,26 +171,28 @@ int console = 0;
 // Writing function of logs file
 //------------------------------
 int login_log(char *fmt, ...) {
-	va_list ap;
-	struct timeval tv;
-	char tmpstr[2048];
+	if (log_login) {
+		va_list ap;
+		struct timeval tv;
+		char tmpstr[2048];
 
-	if(!log_fp)
-		log_fp = fopen(login_log_filename, "a");
+		if(!log_fp)
+			log_fp = fopen(login_log_filename, "a");
 
-	log_fp = fopen(login_log_filename, "a");
-	if (log_fp) {
-		if (fmt[0] == '\0') // jump a line if no message
-			fprintf(log_fp, RETCODE);
-		else {
-			va_start(ap, fmt);
-			gettimeofday(&tv, NULL);
-			strftime(tmpstr, 24, date_format, localtime(&(tv.tv_sec)));
-			sprintf(tmpstr + strlen(tmpstr), ".%03d: %s", (int)tv.tv_usec / 1000, fmt);
-			vfprintf(log_fp, tmpstr, ap);
-			va_end(ap);
+		log_fp = fopen(login_log_filename, "a");
+		if (log_fp) {
+			if (fmt[0] == '\0') // jump a line if no message
+				fprintf(log_fp, RETCODE);
+			else {
+				va_start(ap, fmt);
+				gettimeofday(&tv, NULL);
+				strftime(tmpstr, 24, date_format, localtime(&(tv.tv_sec)));
+				sprintf(tmpstr + strlen(tmpstr), ".%03d: %s", (int)tv.tv_usec / 1000, fmt);
+				vfprintf(log_fp, tmpstr, ap);
+				va_end(ap);
+			}
+			fflush(log_fp); // under cygwin or windows, if software is stopped, data are not written in the file -> fflush at every line
 		}
-		fflush(log_fp); // under cygwin or windows, if software is stopped, data are not written in the file -> fflush at every line
 	}
 
 	return 0;
@@ -3416,6 +3420,8 @@ int login_config_read(const char *cfgName) {
 				memset(login_log_filename, 0, sizeof(login_log_filename));
 				strncpy(login_log_filename, w2, sizeof(login_log_filename));
 				login_log_filename[sizeof(login_log_filename)-1] = '\0';
+			} else if (strcmpi(w1, "log_login") == 0) {
+				log_login = atoi(w2);
 			} else if (strcmpi(w1, "login_log_unknown_packets_filename") == 0) {
 				memset(login_log_unknown_packets_filename, 0, sizeof(login_log_unknown_packets_filename));
 				strncpy(login_log_unknown_packets_filename, w2, sizeof(login_log_unknown_packets_filename));