diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index e05ba4126b1e4040af0e1539a106a3a9f8b49217..8c9c7b4810774207b4f35771a3b3d44ad22b95d8 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -1658,7 +1658,21 @@ int main(int argc, char **argv) { } else { log4cxx::helpers::Properties p; - log4cxx::helpers::FileInputStream *istream = new log4cxx::helpers::FileInputStream(KEYFILE_STRING("logging", "backend_config")); + log4cxx::helpers::FileInputStream *istream = NULL; + try { + istream = new log4cxx::helpers::FileInputStream(KEYFILE_STRING("logging", "backend_config")); + } + catch(log4cxx::helpers::IOException &ex) { + std::cerr << "Can't create FileInputStream logger instance: " << ex.what() << "\n"; + } + catch (...) { + std::cerr << "Can't create FileInputStream logger instance\n"; + } + + if (!istream) { + return 1; + } + p.load(istream); LogString pid, jid; log4cxx::helpers::Transcoder::decode(stringOf(getpid()), pid); diff --git a/plugin/cpp/CMakeLists.txt b/plugin/cpp/CMakeLists.txt index dde42f388092a58d2e115eb559fed67c0860bab8..544e2ec2d07a3b29356597ca969f99d1e43d0b06 100644 --- a/plugin/cpp/CMakeLists.txt +++ b/plugin/cpp/CMakeLists.txt @@ -2,10 +2,13 @@ cmake_minimum_required(VERSION 2.6) FILE(GLOB SRC *.cpp *.h) FILE(GLOB HEADERS ../include/transport/*.h) +set(EXTRA_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/../../src/memoryusage.cpp) +set(EXTRA_SOURCES ${EXTRA_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/../../include/transport/protocol.pb.cc) + if (NOT WIN32) - ADD_LIBRARY(transport-plugin SHARED ${HEADERS} ${SRC} ${PROTOBUF_SRC} ${PROTOBUF_HDRS} ../../src/memoryusage.cpp ${CMAKE_CURRENT_BINARY_DIR}/../../include/transport/protocol.pb.cc) + ADD_LIBRARY(transport-plugin SHARED ${HEADERS} ${SRC} ${PROTOBUF_SRC} ${PROTOBUF_HDRS} ${EXTRA_SOURCES}) else() - ADD_LIBRARY(transport-plugin STATIC ${HEADERS} ${SRC} ${PROTOBUF_SRC} ${PROTOBUF_HDRS} ../../src/memoryusage.cpp ${CMAKE_CURRENT_BINARY_DIR}/../../include/transport/protocol.pb.cc) + ADD_LIBRARY(transport-plugin STATIC ${HEADERS} ${SRC} ${PROTOBUF_SRC} ${PROTOBUF_HDRS} ${EXTRA_SOURCES}) endif() ADD_DEPENDENCIES(transport-plugin pb) SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/../../include/transport/protocol.pb.cc PROPERTIES GENERATED 1) diff --git a/src/logging.cpp b/src/logging.cpp index dfc3f447969d47b147a2d4ade706616f718211cf..fc9f94b3b832165819a10303d6dea8479f782b52 100644 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -67,7 +67,21 @@ static void initLogging(Config *config, std::string key) { } else { log4cxx::helpers::Properties p; - log4cxx::helpers::FileInputStream *istream = new log4cxx::helpers::FileInputStream(CONFIG_STRING(config, key)); + + log4cxx::helpers::FileInputStream *istream = NULL; + try { + istream = new log4cxx::helpers::FileInputStream(CONFIG_STRING(config, key)); + } + catch(log4cxx::helpers::IOException &ex) { + std::cerr << "Can't create FileInputStream logger instance: " << ex.what() << "\n"; + } + catch (...) { + std::cerr << "Can't create FileInputStream logger instance\n"; + } + + if (!istream) { + return; + } p.load(istream); LogString pid, jid;