Native simplify logging

This commit is contained in:
M66B 2016-01-21 12:34:31 +01:00
parent 568a8b72bc
commit 29ed10ba7d
1 changed files with 36 additions and 54 deletions

View File

@ -1164,63 +1164,45 @@ jboolean handle_tcp(const struct arguments *args, const uint8_t *buffer, uint16_
strstate(cur->state)); strstate(cur->state));
} }
else { else {
char *msg;
static const char previous[] = "Previous";
static const char repeated[] = "Repeated";
static const char invalid[] = "Invalid";
static const char keepalive[] = "Keep alive";
// TODO proper wrap around
if (tcphdr->ack && ((uint32_t) ntohl(tcphdr->seq) + 1) == cur->remote_seq) if (tcphdr->ack && ((uint32_t) ntohl(tcphdr->seq) + 1) == cur->remote_seq)
log_android(ANDROID_LOG_WARN, msg = keepalive;
"Keep alive from %s/%u to %s/%u state %s", else if (ntohl(tcphdr->seq) == cur->remote_seq &&
source, ntohs(tcphdr->source), dest, ntohs(cur->dest), ntohl(tcphdr->ack_seq) < cur->local_seq)
strstate(cur->state)); msg = previous;
else { else if (ntohl(tcphdr->seq) < cur->remote_seq &&
char flags[10]; ntohl(tcphdr->ack_seq) == cur->local_seq)
int flen = 0; msg = repeated;
if (tcphdr->syn) else
flags[flen++] = 'S'; msg = invalid;
if (tcphdr->ack)
flags[flen++] = 'A';
if (tcphdr->fin)
flags[flen++] = 'F';
flags[flen] = 0;
// TODO proper wrap around char flags[10];
if (ntohl(tcphdr->seq) == cur->remote_seq && int flen = 0;
ntohl(tcphdr->ack_seq) < cur->local_seq) { if (tcphdr->syn)
log_android(tcphdr->fin ? ANDROID_LOG_WARN : ANDROID_LOG_INFO, flags[flen++] = 'S';
"Previous %s from %s/%u to %s/%u state %s seq %u/%u ack %u/%u data %d", if (tcphdr->ack)
flags, flags[flen++] = 'A';
source, ntohs(tcphdr->source), if (tcphdr->fin)
dest, ntohs(cur->dest), flags[flen++] = 'F';
strstate(cur->state), flags[flen] = 0;
ntohl(tcphdr->seq) - cur->remote_start,
cur->remote_seq - cur->remote_start,
ntohl(tcphdr->ack_seq) - cur->local_start,
cur->local_seq - cur->local_start,
datalen);
} else if (ntohl(tcphdr->seq) < cur->remote_seq && log_android(tcphdr->fin ? ANDROID_LOG_WARN : ANDROID_LOG_INFO,
ntohl(tcphdr->ack_seq) == cur->local_seq) "%s %s from %s/%u to %s/%u state %s seq %u/%u ack %u/%u data %d",
log_android(tcphdr->fin ? ANDROID_LOG_WARN : ANDROID_LOG_INFO, msg, flags,
"Repeated %s from %s/%u to %s/%u state %s seq %u/%u ack %u/%u data %d", source, ntohs(tcphdr->source),
flags, dest, ntohs(cur->dest),
source, ntohs(tcphdr->source), strstate(cur->state),
dest, ntohs(cur->dest), ntohl(tcphdr->seq) - cur->remote_start,
strstate(cur->state), cur->remote_seq - cur->remote_start,
ntohl(tcphdr->seq) - cur->remote_start, ntohl(tcphdr->ack_seq) - cur->local_start,
cur->remote_seq - cur->remote_start, cur->local_seq - cur->local_start,
ntohl(tcphdr->ack_seq) - cur->local_start, datalen);
cur->local_seq - cur->local_start,
datalen);
else
log_android(ANDROID_LOG_ERROR,
"Invalid %s from %s/%u to %s/%u state %s seq %u/%u ack %u/%u data %d",
flags,
source, ntohs(tcphdr->source),
dest, ntohs(cur->dest),
strstate(cur->state),
ntohl(tcphdr->seq) - cur->remote_start,
cur->remote_seq - cur->remote_start,
ntohl(tcphdr->ack_seq) - cur->local_start,
cur->local_seq - cur->local_start,
datalen);
}
} }
} }
} }