Use the new logger, fixed build script bug, latest libSession

• Updated to the latest libSession
• Updated the code to use the new logger
• Fixed a bug in the build script where changes to external libSession dependencies wouldn't result in a rebuild
pull/960/head
Morgan Pretty 3 weeks ago
parent fb8a1623df
commit 9e5a938d6f

@ -1 +1 @@
Subproject commit 56e75ac289ac325ac26940f94a685ff80e68ca91
Subproject commit 091b58f134bb48377a9cf93b905b6235d54d6581

@ -103,6 +103,7 @@ echo "Checking for changes to source"
NEW_SOURCE_HASH=$(find "${SRCROOT}/LibSession-Util/src" -type f -exec md5 {} + | awk '{print $NF}' | sort | md5 | awk '{print $NF}')
NEW_HEADER_HASH=$(find "${SRCROOT}/LibSession-Util/include" -type f -exec md5 {} + | awk '{print $NF}' | sort | md5 | awk '{print $NF}')
NEW_EXTERNAL_HASH=$(find "${SRCROOT}/LibSession-Util/external" -type f -exec md5 {} + | awk '{print $NF}' | sort | md5 | awk '{print $NF}')
if [ -f "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_source_hash.log" ]; then
read -r OLD_SOURCE_HASH < "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_source_hash.log"
@ -112,12 +113,16 @@ if [ -f "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_header_hash.log" ];
read -r OLD_HEADER_HASH < "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_header_hash.log"
fi
if [ -f "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_external_hash.log" ]; then
read -r OLD_EXTERNAL_HASH < "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_external_hash.log"
fi
if [ -f "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_archs.log" ]; then
read -r OLD_ARCHS < "${TARGET_BUILD_DIR}/libSessionUtil/libsession_util_archs.log"
fi
# If all of the hashes match, the archs match and there is a library file then we can just stop here
if [ "${NEW_SOURCE_HASH}" == "${OLD_SOURCE_HASH}" ] && [ "${NEW_HEADER_HASH}" == "${OLD_HEADER_HASH}" ] && [ "${ARCHS[*]}" == "${OLD_ARCHS}" ] && [ -f "${TARGET_BUILD_DIR}/libSessionUtil/libSessionUtil.a" ]; then
if [ "${NEW_SOURCE_HASH}" == "${OLD_SOURCE_HASH}" ] && [ "${NEW_HEADER_HASH}" == "${OLD_HEADER_HASH}" ] && [ "${NEW_EXTERNAL_HASH}" == "${OLD_EXTERNAL_HASH}" ] && [ "${ARCHS[*]}" == "${OLD_ARCHS}" ] && [ -f "${TARGET_BUILD_DIR}/libSessionUtil/libSessionUtil.a" ]; then
echo "Build is up-to-date"
exit 0
fi

@ -52,8 +52,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
appSpecificBlock: {
// Create AppEnvironment
AppEnvironment.shared.setup()
LibSession.addLogger()
LibSession.createNetworkIfNeeded()
LibSession.addNetworkLogger()
// Note: Intentionally dispatching sync as we want to wait for these to complete before
// continuing

@ -6,13 +6,10 @@ import Foundation
import Combine
import SessionUtil
import SessionUtilitiesKit
import SignalCoreKit
// MARK: - LibSession
public extension LibSession {
private static let desiredLogCategories: [LogCategory] = [.network]
private static var networkCache: Atomic<UnsafeMutablePointer<network_object>?> = Atomic(nil)
private static var snodeCachePath: String { "\(OWSFileSystem.appSharedDataDirectoryPath())/snodeCache" }
private static var lastPaths: Atomic<[Set<Snode>]> = Atomic([])
@ -85,33 +82,6 @@ public extension LibSession {
pathsChangedCallbacks.mutate { $0.removeValue(forKey: callbackId) }
}
static func addNetworkLogger() {
getOrCreateNetwork().first().sinkUntilComplete(receiveValue: { network in
network_add_logger(network, { lvl, namePtr, nameLen, msgPtr, msgLen in
guard
LibSession.desiredLogCategories.contains(LogCategory(namePtr, nameLen)),
let msg: String = String(pointer: msgPtr, length: msgLen, encoding: .utf8)
else { return }
let trimmedLog: String = msg.trimmingCharacters(in: .whitespacesAndNewlines)
switch lvl {
case LOG_LEVEL_TRACE: OWSLogger.verbose(trimmedLog)
case LOG_LEVEL_DEBUG: OWSLogger.debug(trimmedLog)
case LOG_LEVEL_INFO: OWSLogger.info(trimmedLog)
case LOG_LEVEL_WARN: OWSLogger.warn(trimmedLog)
case LOG_LEVEL_ERROR: OWSLogger.error(trimmedLog)
case LOG_LEVEL_CRITICAL: OWSLogger.error(trimmedLog)
case LOG_LEVEL_OFF: break
default: break
}
#if DEBUG
print(trimmedLog)
#endif
})
})
}
static func closeNetworkConnections() {
guard let network: UnsafeMutablePointer<network_object> = networkCache.wrappedValue else { return }
@ -476,23 +446,6 @@ extension LibSession {
}
}
// MARK: - LogCategory
extension LibSession {
enum LogCategory: String {
case quic
case network
case unknown
init(_ namePtr: UnsafePointer<CChar>?, _ nameLen: Int) {
switch String(pointer: namePtr, length: nameLen, encoding: .utf8).map({ LogCategory(rawValue: $0) }) {
case .some(let cat): self = cat
case .none: self = .unknown
}
}
}
}
// MARK: - Snode
extension LibSession {

@ -2,9 +2,62 @@
import Foundation
import SessionUtil
import SignalCoreKit
// MARK: - LibSession
public enum LibSession {
private static let logLevels: [LogCategory: LOG_LEVEL] = [
.config: LOG_LEVEL_INFO,
.network: LOG_LEVEL_INFO
]
public static var version: String { String(cString: LIBSESSION_UTIL_VERSION_STR) }
}
// MARK: - Logging
extension LibSession {
public static func addLogger() {
// Set the desired log levels first
logLevels.forEach { cat, level in
session_logger_set_level(cat.rawValue.cArray, level)
}
// Add the logger
session_add_logger_full({ msgPtr, msgLen, _, _, lvl in
guard let msg: String = String(pointer: msgPtr, length: msgLen, encoding: .utf8) else { return }
let trimmedLog: String = msg.trimmingCharacters(in: .whitespacesAndNewlines)
switch lvl {
case LOG_LEVEL_TRACE: OWSLogger.verbose(trimmedLog)
case LOG_LEVEL_DEBUG: OWSLogger.debug(trimmedLog)
case LOG_LEVEL_INFO: OWSLogger.info(trimmedLog)
case LOG_LEVEL_WARN: OWSLogger.warn(trimmedLog)
case LOG_LEVEL_ERROR: OWSLogger.error(trimmedLog)
case LOG_LEVEL_CRITICAL: OWSLogger.error(trimmedLog)
case LOG_LEVEL_OFF: break
default: break
}
#if DEBUG
print(trimmedLog)
#endif
})
}
// MARK: - Internal
fileprivate enum LogCategory: String {
case config
case network
case quic
init?(_ catPtr: UnsafePointer<CChar>?, _ catLen: Int) {
switch String(pointer: catPtr, length: catLen, encoding: .utf8).map({ LogCategory(rawValue: $0) }) {
case .some(let cat): self = cat
case .none: return nil
}
}
}
}

Loading…
Cancel
Save