diff options
Diffstat (limited to 'wiretap/logcat.c')
-rw-r--r-- | wiretap/logcat.c | 127 |
1 files changed, 63 insertions, 64 deletions
diff --git a/wiretap/logcat.c b/wiretap/logcat.c index fc4eb87b..78ff336d 100644 --- a/wiretap/logcat.c +++ b/wiretap/logcat.c @@ -6,23 +6,22 @@ */ #include "config.h" +#include "logcat.h" #include <string.h> #include "wtap-int.h" #include "file_wrappers.h" -#include "logcat.h" - static int logcat_file_type_subtype = -1; void register_logcat(void); /* Returns '?' for invalid priorities */ -static gchar get_priority(const guint8 priority) { - static gchar priorities[] = "??VDIWEFS"; +static char get_priority(const uint8_t priority) { + static char priorities[] = "??VDIWEFS"; - if (priority >= (guint8) sizeof(priorities)) + if (priority >= (uint8_t) sizeof(priorities)) return '?'; return priorities[priority]; @@ -34,23 +33,23 @@ static gchar get_priority(const guint8 priority) { * -2 if we get an EOF at the beginning; * -1 on an I/O error; * 0 if the record doesn't appear to be valid; - * 1-{max gint} as a version number if we got a valid record. + * 1-{max int} as a version number if we got a valid record. */ -static gint detect_version(FILE_T fh, int *err, gchar **err_info) +static int detect_version(FILE_T fh, int *err, char **err_info) { - guint16 payload_length; - guint16 hdr_size; - guint16 read_sofar; - guint16 entry_len; - gint version; + uint16_t payload_length; + uint16_t hdr_size; + uint16_t read_sofar; + uint16_t entry_len; + int version; struct logger_entry *log_entry; struct logger_entry_v2 *log_entry_v2; - guint8 *buffer; - guint16 tmp; - guint8 *msg_payload; - guint8 *msg_part; - guint8 *msg_end; - guint16 msg_len; + uint8_t *buffer; + uint16_t tmp; + uint8_t *msg_payload; + uint8_t *msg_part; + uint8_t *msg_end; + uint16_t msg_len; /* 16-bit payload length */ if (!wtap_read_bytes_or_eof(fh, &tmp, 2, err, err_info)) { @@ -83,7 +82,7 @@ static gint detect_version(FILE_T fh, int *err, gchar **err_info) read_sofar = 4; /* ensure buffer is large enough for all versions */ - buffer = (guint8 *) g_malloc(sizeof(*log_entry_v2) + payload_length); + buffer = (uint8_t *) g_malloc(sizeof(*log_entry_v2) + payload_length); log_entry_v2 = (struct logger_entry_v2 *)(void *) buffer; log_entry = (struct logger_entry *)(void *) buffer; @@ -91,11 +90,11 @@ static gint detect_version(FILE_T fh, int *err, gchar **err_info) * version is in use. First assume the smallest msg. */ for (version = 1; version <= 2; ++version) { if (version == 1) { - msg_payload = (guint8 *) (log_entry + 1); + msg_payload = (uint8_t *) (log_entry + 1); entry_len = sizeof(*log_entry) + payload_length; } else if (version == 2) { /* v2 is 4 bytes longer */ - msg_payload = (guint8 *) (log_entry_v2 + 1); + msg_payload = (uint8_t *) (log_entry_v2 + 1); entry_len = sizeof(*log_entry_v2) + payload_length; if (hdr_size != sizeof(*log_entry_v2)) continue; @@ -116,14 +115,14 @@ static gint detect_version(FILE_T fh, int *err, gchar **err_info) continue; /* Is there a terminating '\0' for the tag? */ - msg_part = (guint8 *) memchr(msg_payload, '\0', payload_length - 1); + msg_part = (uint8_t *) memchr(msg_payload, '\0', payload_length - 1); if (msg_part == NULL) continue; /* if msg is '\0'-terminated, is it equal to the payload len? */ ++msg_part; - msg_len = (guint16)(payload_length - (msg_part - msg_payload)); - msg_end = (guint8 *) memchr(msg_part, '\0', msg_len); + msg_len = (uint16_t)(payload_length - (msg_part - msg_payload)); + msg_end = (uint8_t *) memchr(msg_part, '\0', msg_len); /* is the end of the buffer (-1) equal to the end of msg? */ if (msg_end && (msg_payload + payload_length - 1 != msg_end)) continue; @@ -137,19 +136,19 @@ static gint detect_version(FILE_T fh, int *err, gchar **err_info) return 0; } -gint logcat_exported_pdu_length(const guint8 *pd) { - const guint16 *tag; - const guint16 *tag_length; - gint length = 0; +int logcat_exported_pdu_length(const uint8_t *pd) { + const uint16_t *tag; + const uint16_t *tag_length; + int length = 0; - tag = (const guint16 *)(const void *) pd; + tag = (const uint16_t *)(const void *) pd; while(GINT16_FROM_BE(*tag)) { - tag_length = (const guint16 *)(const void *) (pd + 2); + tag_length = (const uint16_t *)(const void *) (pd + 2); length += 2 + 2 + GINT16_FROM_BE(*tag_length); pd += 2 + 2 + GINT16_FROM_BE(*tag_length); - tag = (const guint16 *)(const void *) pd; + tag = (const uint16_t *)(const void *) pd; } length += 2 + 2; @@ -157,26 +156,26 @@ gint logcat_exported_pdu_length(const guint8 *pd) { return length; } -static gboolean logcat_read_packet(struct logcat_phdr *logcat, FILE_T fh, - wtap_rec *rec, Buffer *buf, int *err, gchar **err_info) +static bool logcat_read_packet(struct logcat_phdr *logcat, FILE_T fh, + wtap_rec *rec, Buffer *buf, int *err, char **err_info) { - gint packet_size; - guint16 payload_length; - guint tmp[2]; - guint8 *pd; + int packet_size; + uint16_t payload_length; + unsigned tmp[2]; + uint8_t *pd; struct logger_entry *log_entry; if (!wtap_read_bytes_or_eof(fh, &tmp, 2, err, err_info)) { - return FALSE; + return false; } payload_length = pletoh16(tmp); if (logcat->version == 1) { - packet_size = (gint)sizeof(struct logger_entry) + payload_length; + packet_size = (int)sizeof(struct logger_entry) + payload_length; } else if (logcat->version == 2) { - packet_size = (gint)sizeof(struct logger_entry_v2) + payload_length; + packet_size = (int)sizeof(struct logger_entry_v2) + payload_length; } else { - return FALSE; + return false; } /* * The maximum value of payload_length is 65535, which, even after @@ -194,7 +193,7 @@ static gboolean logcat_read_packet(struct logcat_phdr *logcat, FILE_T fh, /* Read the rest of the packet. */ if (!wtap_read_bytes(fh, pd + 2, packet_size - 2, err, err_info)) { - return FALSE; + return false; } rec->rec_type = REC_TYPE_PACKET; @@ -207,11 +206,11 @@ static gboolean logcat_read_packet(struct logcat_phdr *logcat, FILE_T fh, rec->rec_header.packet_header.pseudo_header.logcat.version = logcat->version; - return TRUE; + return true; } -static gboolean logcat_read(wtap *wth, wtap_rec *rec, Buffer *buf, - int *err, gchar **err_info, gint64 *data_offset) +static bool logcat_read(wtap *wth, wtap_rec *rec, Buffer *buf, + int *err, char **err_info, int64_t *data_offset) { *data_offset = file_tell(wth->fh); @@ -219,26 +218,26 @@ static gboolean logcat_read(wtap *wth, wtap_rec *rec, Buffer *buf, rec, buf, err, err_info); } -static gboolean logcat_seek_read(wtap *wth, gint64 seek_off, +static bool logcat_seek_read(wtap *wth, int64_t seek_off, wtap_rec *rec, Buffer *buf, - int *err, gchar **err_info) + int *err, char **err_info) { if (file_seek(wth->random_fh, seek_off, SEEK_SET, err) == -1) - return FALSE; + return false; if (!logcat_read_packet((struct logcat_phdr *) wth->priv, wth->random_fh, rec, buf, err, err_info)) { if (*err == 0) *err = WTAP_ERR_SHORT_READ; - return FALSE; + return false; } - return TRUE; + return true; } -wtap_open_return_val logcat_open(wtap *wth, int *err, gchar **err_info) +wtap_open_return_val logcat_open(wtap *wth, int *err, char **err_info) { - gint version; - gint tmp_version; + int version; + int tmp_version; struct logcat_phdr *logcat; /* check first 3 packets (or 2 or 1 if EOF) versions to check file format is correct */ @@ -316,16 +315,16 @@ static int logcat_dump_can_write_encap(int encap) return 0; } -static gboolean logcat_binary_dump(wtap_dumper *wdh, +static bool logcat_binary_dump(wtap_dumper *wdh, const wtap_rec *rec, - const guint8 *pd, int *err, gchar **err_info _U_) + const uint8_t *pd, int *err, char **err_info _U_) { int caplen; /* We can only write packet records. */ if (rec->rec_type != REC_TYPE_PACKET) { *err = WTAP_ERR_UNWRITABLE_REC_TYPE; - return FALSE; + return false; } /* @@ -334,14 +333,14 @@ static gboolean logcat_binary_dump(wtap_dumper *wdh, */ if (wdh->file_encap != rec->rec_header.packet_header.pkt_encap) { *err = WTAP_ERR_ENCAP_PER_PACKET_UNSUPPORTED; - return FALSE; + return false; } caplen = rec->rec_header.packet_header.caplen; /* Skip EXPORTED_PDU*/ if (wdh->file_encap == WTAP_ENCAP_WIRESHARK_UPPER_PDU) { - gint skipped_length; + int skipped_length; skipped_length = logcat_exported_pdu_length(pd); pd += skipped_length; @@ -349,17 +348,17 @@ static gboolean logcat_binary_dump(wtap_dumper *wdh, } if (!wtap_dump_file_write(wdh, pd, caplen, err)) - return FALSE; + return false; - return TRUE; + return true; } -static gboolean logcat_binary_dump_open(wtap_dumper *wdh, int *err _U_, - gchar **err_info _U_) +static bool logcat_binary_dump_open(wtap_dumper *wdh, int *err _U_, + char **err_info _U_) { wdh->subtype_write = logcat_binary_dump; - return TRUE; + return true; } static const struct supported_block_type logcat_blocks_supported[] = { @@ -371,7 +370,7 @@ static const struct supported_block_type logcat_blocks_supported[] = { static const struct file_type_subtype_info logcat_info = { "Android Logcat Binary format", "logcat", "logcat", NULL, - FALSE, BLOCKS_SUPPORTED(logcat_blocks_supported), + false, BLOCKS_SUPPORTED(logcat_blocks_supported), logcat_dump_can_write_encap, logcat_binary_dump_open, NULL }; |