in TwitterLoggingServiceExt/TLSExt.m [130:173]
static bool _ActivityStreamReceivedEntry(id<TLSExtOSLogActivityMonitor> monitor,
tls_os_activity_stream_t activityStream,
tls_os_activity_stream_entry_t entry,
int error)
{
if (error != 0 || NULL == entry) {
return true;
}
TLSLogMessageInfo *info = nil;
const long long currentTimeInMS = (entry->common.tv_gmt.tv_sec * 1000) + (entry->common.tv_gmt.tv_usec / 1000);
NSDate *timestamp = [NSDate dateWithTimeIntervalSince1970:(double)currentTimeInMS / 1000.];
switch (entry->type) {
case TLS_OS_ACTIVITY_STREAM_TYPE_ACTIVITY_CREATE:
case TLS_OS_ACTIVITY_STREAM_TYPE_ACTIVITY_TRANSITION:
case TLS_OS_ACTIVITY_STREAM_TYPE_ACTIVITY_USERACTION:
break;
case TLS_OS_ACTIVITY_STREAM_TYPE_TRACE_MESSAGE:
// TODO: might want to support trace messages
break;
case TLS_OS_ACTIVITY_STREAM_TYPE_LEGACY_LOG_MESSAGE:
break;
case TLS_OS_ACTIVITY_STREAM_TYPE_LOG_MESSAGE:
info = _LogMessageToLogMessageInfo(entry, timestamp, monitor);
break;
// TODO: support sign posts
case TLS_OS_ACTIVITY_STREAM_TYPE_SIGNPOST_BEGIN:
case TLS_OS_ACTIVITY_STREAM_TYPE_SIGNPOST_END:
case TLS_OS_ACTIVITY_STREAM_TYPE_SIGNPOST_EVENT:
break;
case TLS_OS_ACTIVITY_STREAM_TYPE_STATEDUMP_EVENT:
// TODO: can we support a state dump?
break;
}
if (info) {
[monitor tlsext_logMessage:info];
}
return true;
}