Index: Makefile.appserv-native =================================================================== --- Makefile.appserv-native (revision 23356) +++ Makefile.appserv-native (working copy) @@ -40,7 +40,8 @@ BUILD_ROOT=. include $(BUILD_ROOT)/make/defines.mk -DIRS=src/cpp/solaris src/cpp/as8syslog src/cpp/jvminfo src/cpp/cli src/cpp/launcher +# DIRS=src/cpp/solaris src/cpp/as8syslog src/cpp/jvminfo src/cpp/cli src/cpp/launcher +DIRS=src/cpp/as8syslog CLOBBER_COMPONENT=1 Index: src/cpp/as8syslog/libutilforsyslog.spec =================================================================== --- src/cpp/as8syslog/libutilforsyslog.spec (revision 23356) +++ src/cpp/as8syslog/libutilforsyslog.spec (working copy) @@ -3,3 +3,8 @@ version SUNWprivate end +function Java_com_sun_enterprise_server_logging_SystemLogHandler_syslogMessage +arch all +version SUNWprivate +end + Index: src/cpp/as8syslog/utilforsyslog.c =================================================================== --- src/cpp/as8syslog/utilforsyslog.c (revision 23356) +++ src/cpp/as8syslog/utilforsyslog.c (working copy) @@ -49,6 +49,104 @@ #endif +static int find_facility(const char *value) { + if (value == NULL) { + value = getenv("GF_LOG_FACILITY"); + } + + if (value == NULL) { + return LOG_DAEMON; + } + + if (strncasecmp("LOG_", value, 4) == 0) { + value += 4; + } + + if (strcasecmp("USER", value) == 0) { + return LOG_USER; + } + else if (strcasecmp("MAIL", value) == 0) { + return LOG_MAIL; + } + else if (strcasecmp("DAEMON", value) == 0) { + return LOG_DAEMON; + } + else if (strcasecmp("LPR", value) == 0) { + return LOG_LPR; + } + else if (strcasecmp("NEWS", value) == 0) { + return LOG_NEWS; + } + else if (strcasecmp("UUCP", value) == 0) { + return LOG_UUCP; + } + else if (strncasecmp("LOCAL", value, 5) == 0) { + value += 5; + + if (*value == '0') { + return LOG_LOCAL0; + } + else if (*value == '1') { + return LOG_LOCAL1; + } + else if (*value == '2') { + return LOG_LOCAL2; + } + else if (*value == '3') { + return LOG_LOCAL3; + } + else if (*value == '4') { + return LOG_LOCAL4; + } + else if (*value == '5') { + return LOG_LOCAL5; + } + else if (*value == '6') { + return LOG_LOCAL6; + } + else { + return LOG_LOCAL7; + } + } + + return LOG_DAEMON; +} + + +static int find_level(const char *value) { + if (value == NULL) { + return LOG_DEBUG; + } + + if (strncasecmp("LOG_", value, 4) == 0) { + value += 4; + } + + if (strcasecmp("EMERG", value) == 0) { + return LOG_EMERG; + } + else if (strcasecmp("ALERT", value) == 0) { + return LOG_ALERT; + } + else if (strcasecmp("CRIT", value) == 0) { + return LOG_CRIT; + } + else if (strcasecmp("ERR", value) == 0 || strcasecmp("SEVERE", value) == 0) { + return LOG_ERR; + } + else if (strcasecmp("WARNING", value) == 0) { + return LOG_WARNING; + } + else if (strcasecmp("NOTICE", value) == 0) { + return LOG_NOTICE; + } + else if (strcasecmp("INFO", value) == 0) { + return LOG_INFO; + } + + return LOG_DEBUG; +} + /* * Class: UtilForSyslog * Method: logMessage @@ -66,32 +164,59 @@ static char *FINER = "FINER"; static char *FINEST = "FINEST"; + static int log_daemon = 0; + const char *fileName = (*env)->GetStringUTFChars(env, fName, 0); const char *loggedLevel = (*env)->GetStringUTFChars(env, level, 0); const char *loggedMessage = (*env)->GetStringUTFChars(env, message, 0); + if (log_daemon == 0) { + log_daemon = find_facility(NULL); + } + if( strcmp( loggedLevel, SEVERE ) == 0 ) { - openlog (fileName, LOG_NDELAY, LOG_DAEMON); - syslog (LOG_ERR, loggedMessage ); + openlog (fileName, LOG_NDELAY, log_daemon); + syslog (LOG_ERR, "%s", loggedMessage); closelog (); } else if( strcmp( loggedLevel, WARNING ) == 0 ) { - openlog (fileName, LOG_NDELAY, LOG_DAEMON); - syslog (LOG_WARNING, loggedMessage ); + openlog (fileName, LOG_NDELAY, log_daemon); + syslog (LOG_WARNING, "%s", loggedMessage); closelog (); } else if( strcmp( loggedLevel, INFO ) == 0 ) { - openlog (fileName, LOG_NDELAY, LOG_DAEMON); - syslog (LOG_INFO, loggedMessage ); + openlog (fileName, LOG_NDELAY, log_daemon); + syslog (LOG_INFO, "%s", loggedMessage); closelog (); } else if( ( strcmp( loggedLevel, CONFIG ) == 0 ) ||( strcmp( loggedLevel, FINE ) == 0 ) ||( strcmp( loggedLevel, FINER ) == 0 ) ||( strcmp( loggedLevel, FINEST) == 0 ) ) { - openlog (fileName, LOG_NDELAY, LOG_MAIL); // LOG_CONS | LOG_PID | - syslog (LOG_DEBUG, loggedMessage ); + openlog (fileName, LOG_NDELAY, (log_daemon == LOG_DAEMON ? LOG_MAIL : log_daemon)); // LOG_CONS | LOG_PID | + syslog (LOG_DEBUG, "%s", loggedMessage); closelog (); } (*env)->ReleaseStringUTFChars(env, fName, fileName); (*env)->ReleaseStringUTFChars(env, level, loggedLevel); (*env)->ReleaseStringUTFChars(env, message, loggedMessage); } + +/* + * Class: com_sun_enterprise_server_logging_SystemLogHandler + * Method: syslogMessage + * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + */ +JNIEXPORT void JNICALL Java_com_sun_enterprise_server_logging_SystemLogHandler_syslogMessage +(JNIEnv *env, jobject obj, jstring jFac, jstring jLevel, jstring jMessage) { + const char *facName = (*env)->GetStringUTFChars(env, jFac, 0); + const char *levelName = (*env)->GetStringUTFChars(env, jLevel, 0); + const char *loggedMessage = (*env)->GetStringUTFChars(env, jMessage, 0); + + openlog("", LOG_NDELAY | LOG_PID, find_facility(facName)); + syslog(find_level(levelName), "%s", loggedMessage); + closelog(); + + (*env)->ReleaseStringUTFChars(env, jFac, facName); + (*env)->ReleaseStringUTFChars(env, jLevel, levelName); + (*env)->ReleaseStringUTFChars(env, jMessage, loggedMessage); +} + Index: make/defines_SPARC_SOLARIS.mk =================================================================== --- make/defines_SPARC_SOLARIS.mk (revision 23356) +++ make/defines_SPARC_SOLARIS.mk (working copy) @@ -43,7 +43,7 @@ #SUNWSPRO_DIR_61 = /usr/suntools/internal/SUNWspro #SUNWSPRO_DIR_62 = /usr/dist/share/forte_dev,v6.2/SUNWspro #SUNWSPRO_DIR = $(SUNWSPRO_DIR_62) -SUNWSPRO_DIR = /usr/dist/share/sunstudio_sparc/SUNWspro +SUNWSPRO_DIR = /opt/SUNWspro SYSTEM_LIBDIRS += $(SUNWSPRO_DIR)/lib $(SUNWSPRO_DIR)/lib/CC4 # -compat=4/-compat=5 selection Index: make/defines.mk =================================================================== --- make/defines.mk (revision 23356) +++ make/defines.mk (working copy) @@ -147,6 +147,10 @@ BUILD_VER=2.8 OS_RELEASE=5.8 endif +ifeq ($(OS_RELEASE),5.11) +BUILD_VER=2.8 +OS_RELEASE=5.8 +endif ifeq ($(shell arch), i86pc) BUILD_ARCH=i86pc BUILD_VER=2.8