diff options
Diffstat (limited to 'src/libmime')
-rw-r--r-- | src/libmime/archives.c | 256 | ||||
-rw-r--r-- | src/libmime/archives.h | 2 | ||||
-rw-r--r-- | src/libmime/content_type.c | 46 | ||||
-rw-r--r-- | src/libmime/content_type.h | 18 | ||||
-rw-r--r-- | src/libmime/email_addr.c | 32 | ||||
-rw-r--r-- | src/libmime/email_addr.h | 26 | ||||
-rw-r--r-- | src/libmime/images.c | 86 | ||||
-rw-r--r-- | src/libmime/images.h | 4 | ||||
-rw-r--r-- | src/libmime/lang_detection.c | 244 | ||||
-rw-r--r-- | src/libmime/lang_detection.h | 8 | ||||
-rw-r--r-- | src/libmime/lang_detection_fasttext.cxx | 4 | ||||
-rw-r--r-- | src/libmime/lang_detection_fasttext.h | 2 | ||||
-rw-r--r-- | src/libmime/message.c | 128 | ||||
-rw-r--r-- | src/libmime/message.h | 56 | ||||
-rw-r--r-- | src/libmime/mime_encoding.c | 58 | ||||
-rw-r--r-- | src/libmime/mime_encoding.h | 20 | ||||
-rw-r--r-- | src/libmime/mime_expressions.c | 162 | ||||
-rw-r--r-- | src/libmime/mime_expressions.h | 4 | ||||
-rw-r--r-- | src/libmime/mime_headers.c | 92 | ||||
-rw-r--r-- | src/libmime/mime_headers.h | 32 | ||||
-rw-r--r-- | src/libmime/mime_parser.c | 100 | ||||
-rw-r--r-- | src/libmime/received.cxx | 4 | ||||
-rw-r--r-- | src/libmime/scan_result.c | 70 | ||||
-rw-r--r-- | src/libmime/scan_result.h | 52 | ||||
-rw-r--r-- | src/libmime/smtp_parsers.h | 6 |
25 files changed, 756 insertions, 756 deletions
diff --git a/src/libmime/archives.c b/src/libmime/archives.c index 7f77cf591..c40c0e88a 100644 --- a/src/libmime/archives.c +++ b/src/libmime/archives.c @@ -39,7 +39,7 @@ rspamd_archive_dtor(gpointer p) { struct rspamd_archive *arch = p; struct rspamd_archive_file *f; - guint i; + unsigned int i; for (i = 0; i < arch->files->len; i++) { f = g_ptr_array_index(arch->files, i); @@ -58,9 +58,9 @@ static bool rspamd_archive_file_try_utf(struct rspamd_task *task, struct rspamd_archive *arch, struct rspamd_archive_file *fentry, - const gchar *in, gsize inlen) + const char *in, gsize inlen) { - const gchar *charset = NULL, *p, *end; + const char *charset = NULL, *p, *end; GString *res; charset = rspamd_mime_charset_find_by_content(in, inlen, TRUE); @@ -173,12 +173,12 @@ static void rspamd_archive_process_zip(struct rspamd_task *task, struct rspamd_mime_part *part) { - const guchar *p, *start, *end, *eocd = NULL, *cd; + const unsigned char *p, *start, *end, *eocd = NULL, *cd; const uint32_t eocd_magic = 0x06054b50, cd_basic_len = 46; - const guchar cd_magic[] = {0x50, 0x4b, 0x01, 0x02}; - const guint max_processed = 1024; + const unsigned char cd_magic[] = {0x50, 0x4b, 0x01, 0x02}; + const unsigned int max_processed = 1024; uint32_t cd_offset, cd_size, comp_size, uncomp_size, processed = 0; - guint16 extra_len, fname_len, comment_len; + uint16_t extra_len, fname_len, comment_len; struct rspamd_archive *arch; struct rspamd_archive_file *f = NULL; @@ -233,7 +233,7 @@ rspamd_archive_process_zip(struct rspamd_task *task, cd_offset = GUINT32_FROM_LE(cd_offset); /* We need to check sanity as well */ - if (cd_offset + cd_size > (guint) (eocd - start)) { + if (cd_offset + cd_size > (unsigned int) (eocd - start)) { msg_info_task("zip archive is invalid (bad size/offset for CD)"); return; @@ -251,7 +251,7 @@ rspamd_archive_process_zip(struct rspamd_task *task, arch); while (cd < start + cd_offset + cd_size) { - guint16 flags; + uint16_t flags; /* Read central directory record */ if (eocd - cd < cd_basic_len || @@ -261,7 +261,7 @@ rspamd_archive_process_zip(struct rspamd_task *task, return; } - memcpy(&flags, cd + 8, sizeof(guint16)); + memcpy(&flags, cd + 8, sizeof(uint16_t)); flags = GUINT16_FROM_LE(flags); memcpy(&comp_size, cd + 20, sizeof(uint32_t)); comp_size = GUINT32_FROM_LE(comp_size); @@ -305,22 +305,22 @@ rspamd_archive_process_zip(struct rspamd_task *task, } /* Process extra fields */ - const guchar *extra = cd + fname_len + cd_basic_len; + const unsigned char *extra = cd + fname_len + cd_basic_len; p = extra; - while (p + sizeof(guint16) * 2 < extra + extra_len) { - guint16 hid, hlen; + while (p + sizeof(uint16_t) * 2 < extra + extra_len) { + uint16_t hid, hlen; - memcpy(&hid, p, sizeof(guint16)); + memcpy(&hid, p, sizeof(uint16_t)); hid = GUINT16_FROM_LE(hid); - memcpy(&hlen, p + sizeof(guint16), sizeof(guint16)); + memcpy(&hlen, p + sizeof(uint16_t), sizeof(uint16_t)); hlen = GUINT16_FROM_LE(hlen); if (hid == 0x0017) { f->flags |= RSPAMD_ARCHIVE_FILE_ENCRYPTED; } - p += hlen + sizeof(guint16) * 2; + p += hlen + sizeof(uint16_t) * 2; } cd += fname_len + comment_len + extra_len + cd_basic_len; @@ -332,8 +332,8 @@ rspamd_archive_process_zip(struct rspamd_task *task, arch->size = part->parsed_data.len; } -static inline gint -rspamd_archive_rar_read_vint(const guchar *start, gsize remain, uint64_t *res) +static inline int +rspamd_archive_rar_read_vint(const unsigned char *start, gsize remain, uint64_t *res) { /* * From http://www.rarlab.com/technote.htm: @@ -345,8 +345,8 @@ rspamd_archive_rar_read_vint(const guchar *start, gsize remain, uint64_t *res) * continuation flag. Second byte, if present, contains next 7 bits and so on. */ uint64_t t = 0; - guint shift = 0; - const guchar *p = start; + unsigned int shift = 0; + const unsigned char *p = start; while (remain > 0 && shift <= 57) { if (*p & 0x80) { @@ -410,31 +410,31 @@ rspamd_archive_rar_read_vint(const guchar *start, gsize remain, uint64_t *res) #define RAR_READ_UINT16(n) \ do { \ - if (end - p < (glong) sizeof(guint16)) { \ + if (end - p < (glong) sizeof(uint16_t)) { \ msg_debug_archive("rar archive is invalid (bad int16)"); \ return; \ } \ n = p[0] + (p[1] << 8); \ - p += sizeof(guint16); \ + p += sizeof(uint16_t); \ } while (0) -#define RAR_READ_UINT32(n) \ - do { \ - if (end - p < (glong) sizeof(uint32_t)) { \ - msg_debug_archive("rar archive is invalid (bad int32)"); \ - return; \ - } \ - n = (guint) p[0] + ((guint) p[1] << 8) + ((guint) p[2] << 16) + ((guint) p[3] << 24); \ - p += sizeof(uint32_t); \ +#define RAR_READ_UINT32(n) \ + do { \ + if (end - p < (glong) sizeof(uint32_t)) { \ + msg_debug_archive("rar archive is invalid (bad int32)"); \ + return; \ + } \ + n = (unsigned int) p[0] + ((unsigned int) p[1] << 8) + ((unsigned int) p[2] << 16) + ((unsigned int) p[3] << 24); \ + p += sizeof(uint32_t); \ } while (0) static void -rspamd_archive_process_rar_v4(struct rspamd_task *task, const guchar *start, - const guchar *end, struct rspamd_mime_part *part) +rspamd_archive_process_rar_v4(struct rspamd_task *task, const unsigned char *start, + const unsigned char *end, struct rspamd_mime_part *part) { - const guchar *p = start, *start_section; - guint8 type; - guint flags; + const unsigned char *p = start, *start_section; + uint8_t type; + unsigned int flags; uint64_t sz, comp_sz = 0, uncomp_sz = 0; struct rspamd_archive *arch; struct rspamd_archive_file *f; @@ -451,7 +451,7 @@ rspamd_archive_process_rar_v4(struct rspamd_task *task, const guchar *start, while (p < end) { /* Crc16 */ start_section = p; - RAR_SKIP_BYTES(sizeof(guint16)); + RAR_SKIP_BYTES(sizeof(uint16_t)); type = *p; p++; RAR_READ_UINT16(flags); @@ -484,7 +484,7 @@ rspamd_archive_process_rar_v4(struct rspamd_task *task, const guchar *start, } if (type == 0x74) { - guint fname_len; + unsigned int fname_len; /* File header */ /* Uncompressed size */ @@ -519,7 +519,7 @@ rspamd_archive_process_rar_v4(struct rspamd_task *task, const guchar *start, if (flags & 0x200) { /* We have unicode + normal version */ - guchar *tmp; + unsigned char *tmp; tmp = memchr(p, '\0', fname_len); @@ -574,16 +574,16 @@ static void rspamd_archive_process_rar(struct rspamd_task *task, struct rspamd_mime_part *part) { - const guchar *p, *end, *section_start; - const guchar rar_v5_magic[] = {0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x01, 0x00}, - rar_v4_magic[] = {0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00}; - const guint rar_encrypted_header = 4, rar_main_header = 1, - rar_file_header = 2; + const unsigned char *p, *end, *section_start; + const unsigned char rar_v5_magic[] = {0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x01, 0x00}, + rar_v4_magic[] = {0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00}; + const unsigned int rar_encrypted_header = 4, rar_main_header = 1, + rar_file_header = 2; uint64_t vint, sz, comp_sz = 0, uncomp_sz = 0, flags = 0, type = 0, extra_sz = 0; struct rspamd_archive *arch; struct rspamd_archive_file *f; - gint r; + int r; p = part->parsed_data.begin; end = p + part->parsed_data.len; @@ -764,10 +764,10 @@ rspamd_archive_process_rar(struct rspamd_task *task, if (f && has_extra && extra_sz > 0 && p + fname_len + extra_sz < end) { /* Try to find encryption record in extra field */ - const guchar *ex = p + fname_len; + const unsigned char *ex = p + fname_len; while (ex < p + extra_sz) { - const guchar *t; + const unsigned char *t; int64_t cur_sz = 0, sec_type = 0; r = rspamd_archive_rar_read_vint(ex, extra_sz, &cur_sz); @@ -807,8 +807,8 @@ end: arch->size = part->parsed_data.len; } -static inline gint -rspamd_archive_7zip_read_vint(const guchar *start, gsize remain, uint64_t *res) +static inline int +rspamd_archive_7zip_read_vint(const unsigned char *start, gsize remain, uint64_t *res) { /* * REAL_UINT64 means real UINT64. @@ -825,7 +825,7 @@ rspamd_archive_7zip_read_vint(const guchar *start, gsize remain, uint64_t *res) * 11111110 BYTE y[7] : y * 11111111 BYTE y[8] : y */ - guchar t; + unsigned char t; if (remain == 0) { return -1; @@ -847,8 +847,8 @@ rspamd_archive_7zip_read_vint(const guchar *start, gsize remain, uint64_t *res) } } else { - gint cur_bit = 6, intlen = 1; - const guchar bmask = 0xFF; + int cur_bit = 6, intlen = 1; + const unsigned char bmask = 0xFF; uint64_t tgt; while (cur_bit > 0) { @@ -904,15 +904,15 @@ rspamd_archive_7zip_read_vint(const guchar *start, gsize remain, uint64_t *res) n = GUINT64_FROM_LE(n); \ p += sizeof(uint64_t); \ } while (0) -#define SZ_SKIP_BYTES(n) \ - do { \ - if (end - p >= (n)) { \ - p += (n); \ - } \ - else { \ - msg_debug_archive("7zip archive is invalid (truncated); wanted to read %d bytes, %d avail: %s", (gint) (n), (gint) (end - p), G_STRLOC); \ - return NULL; \ - } \ +#define SZ_SKIP_BYTES(n) \ + do { \ + if (end - p >= (n)) { \ + p += (n); \ + } \ + else { \ + msg_debug_archive("7zip archive is invalid (truncated); wanted to read %d bytes, %d avail: %s", (int) (n), (int) (end - p), G_STRLOC); \ + return NULL; \ + } \ } while (0) enum rspamd_7zip_header_mark { @@ -953,11 +953,11 @@ enum rspamd_7zip_header_mark { ((codec_id) == _7Z_CRYPTO_RAR_29) || \ ((codec_id) == _7Z_CRYPTO_AES_256_SHA_256)) -static const guchar * +static const unsigned char * rspamd_7zip_read_bits(struct rspamd_task *task, - const guchar *p, const guchar *end, - struct rspamd_archive *arch, guint nbits, - guint *pbits_set) + const unsigned char *p, const unsigned char *end, + struct rspamd_archive *arch, unsigned int nbits, + unsigned int *pbits_set) { unsigned mask = 0, avail = 0, i; gboolean bit_set = 0; @@ -981,16 +981,16 @@ rspamd_7zip_read_bits(struct rspamd_task *task, return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_digest(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch, uint64_t num_streams, - guint *pdigest_read) + unsigned int *pdigest_read) { - guchar all_defined = *p; + unsigned char all_defined = *p; uint64_t i; - guint num_defined = 0; + unsigned int num_defined = 0; /* * BYTE AllAreDefined * if (AllAreDefined == 0) @@ -1029,14 +1029,14 @@ rspamd_7zip_read_digest(struct rspamd_task *task, return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_pack_info(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch) { uint64_t pack_pos = 0, pack_streams = 0, i, cur_sz; - guint num_digests = 0; - guchar t; + unsigned int num_digests = 0; + unsigned char t; /* * UINT64 PackPos * UINT64 NumPackStreams @@ -1089,10 +1089,10 @@ end: return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_folder(struct rspamd_task *task, - const guchar *p, const guchar *end, - struct rspamd_archive *arch, guint *pnstreams, guint *ndigests) + const unsigned char *p, const unsigned char *end, + struct rspamd_archive *arch, unsigned int *pnstreams, unsigned int *ndigests) { uint64_t ncoders = 0, i, j, noutstreams = 0, ninstreams = 0; @@ -1100,7 +1100,7 @@ rspamd_7zip_read_folder(struct rspamd_task *task, for (i = 0; i < ncoders && p != NULL && p < end; i++) { uint64_t sz, tmp; - guchar t; + unsigned char t; /* * BYTE * { @@ -1189,15 +1189,15 @@ rspamd_7zip_read_folder(struct rspamd_task *task, return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_coders_info(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch, - guint *pnum_folders, guint *pnum_nodigest) + unsigned int *pnum_folders, unsigned int *pnum_nodigest) { uint64_t num_folders = 0, i, tmp; - guchar t; - guint *folder_nstreams = NULL, num_digests = 0, digests_read = 0; + unsigned char t; + unsigned int *folder_nstreams = NULL, num_digests = 0, digests_read = 0; while (p != NULL && p < end) { /* @@ -1259,11 +1259,11 @@ rspamd_7zip_read_coders_info(struct rspamd_task *task, case kCodersUnPackSize: for (i = 0; i < num_folders && p != NULL && p < end; i++) { if (folder_nstreams) { - for (guint j = 0; j < folder_nstreams[i]; j++) { + for (unsigned int j = 0; j < folder_nstreams[i]; j++) { SZ_READ_VINT(tmp); /* Unpacked size */ msg_debug_archive("7zip: unpacked size " "(folder=%d, stream=%d) = %L", - (gint) i, j, tmp); + (int) i, j, tmp); } } else { @@ -1315,14 +1315,14 @@ end: return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_substreams_info(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch, - guint num_folders, guint num_nodigest) + unsigned int num_folders, unsigned int num_nodigest) { - guchar t; - guint i; + unsigned char t; + unsigned int i; uint64_t *folder_nstreams; if (num_folders > 8192) { @@ -1380,7 +1380,7 @@ rspamd_7zip_read_substreams_info(struct rspamd_task *task, * In fact, it is just absent in the real life... */ for (i = 0; i < num_folders; i++) { - for (guint j = 0; j < folder_nstreams[i]; j++) { + for (unsigned int j = 0; j < folder_nstreams[i]; j++) { uint64_t tmp; SZ_READ_VINT(tmp); /* Who cares indeed */ @@ -1402,13 +1402,13 @@ end: return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_main_streams_info(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch) { - guchar t; - guint num_folders = 0, unknown_digests = 0; + unsigned char t; + unsigned int num_folders = 0, unknown_digests = 0; while (p != NULL && p < end) { t = *p; @@ -1459,12 +1459,12 @@ end: return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_archive_props(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch) { - guchar proptype; + unsigned char proptype; uint64_t proplen; /* @@ -1501,18 +1501,18 @@ rspamd_7zip_read_archive_props(struct rspamd_task *task, } static GString * -rspamd_7zip_ucs2_to_utf8(struct rspamd_task *task, const guchar *p, - const guchar *end) +rspamd_7zip_ucs2_to_utf8(struct rspamd_task *task, const unsigned char *p, + const unsigned char *end) { GString *res; goffset dest_pos = 0, src_pos = 0; - const gsize len = (end - p) / sizeof(guint16); - guint16 *up; + const gsize len = (end - p) / sizeof(uint16_t); + uint16_t *up; UChar32 wc; UBool is_error = 0; res = g_string_sized_new((end - p) * 3 / 2 + sizeof(wc) + 1); - up = (guint16 *) p; + up = (uint16_t *) p; while (src_pos < len) { U16_NEXT(up, src_pos, len, wc); @@ -1538,13 +1538,13 @@ rspamd_7zip_ucs2_to_utf8(struct rspamd_task *task, const guchar *p, return res; } -static const guchar * +static const unsigned char * rspamd_7zip_read_files_info(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch) { uint64_t nfiles = 0, sz, i; - guchar t, b; + unsigned char t, b; struct rspamd_archive_file *fentry; SZ_READ_VINT(nfiles); @@ -1592,7 +1592,7 @@ rspamd_7zip_read_files_info(struct rspamd_task *task, for (i = 0; i < nfiles; i++) { /* Zero terminated wchar_t: happy converting... */ /* First, find terminator */ - const guchar *fend = NULL, *tp = p; + const unsigned char *fend = NULL, *tp = p; GString *res; while (tp < end - 1) { @@ -1644,13 +1644,13 @@ end: return p; } -static const guchar * +static const unsigned char * rspamd_7zip_read_next_section(struct rspamd_task *task, - const guchar *p, const guchar *end, + const unsigned char *p, const unsigned char *end, struct rspamd_archive *arch, struct rspamd_mime_part *part) { - guchar t = *p; + unsigned char t = *p; SZ_SKIP_BYTES(1); @@ -1732,8 +1732,8 @@ rspamd_archive_process_7zip(struct rspamd_task *task, struct rspamd_mime_part *part) { struct rspamd_archive *arch; - const guchar *start, *p, *end; - const guchar sz_magic[] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; + const unsigned char *start, *p, *end; + const unsigned char sz_magic[] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; uint64_t section_offset = 0, section_length = 0; start = part->parsed_data.begin; @@ -1793,9 +1793,9 @@ rspamd_archive_process_gzip(struct rspamd_task *task, struct rspamd_mime_part *part) { struct rspamd_archive *arch; - const guchar *start, *p, *end; - const guchar gz_magic[] = {0x1F, 0x8B}; - guchar flags; + const unsigned char *start, *p, *end; + const unsigned char gz_magic[] = {0x1F, 0x8B}; + unsigned char flags; start = part->parsed_data.begin; p = start; @@ -1834,7 +1834,7 @@ rspamd_archive_process_gzip(struct rspamd_task *task, if (flags & (1u << 2)) { /* Optional section */ - guint16 optlen = 0; + uint16_t optlen = 0; RAR_READ_UINT16(optlen); @@ -1849,7 +1849,7 @@ rspamd_archive_process_gzip(struct rspamd_task *task, } /* Read file name */ - const guchar *fname_start = p; + const unsigned char *fname_start = p; while (p < end) { if (*p == '\0') { @@ -1889,7 +1889,7 @@ rspamd_archive_process_gzip(struct rspamd_task *task, /* Fallback, we need to extract file name from archive name if possible */ if (part->cd && part->cd->filename.len > 0) { - const gchar *dot_pos, *slash_pos; + const char *dot_pos, *slash_pos; dot_pos = rspamd_memrchr(part->cd->filename.begin, '.', part->cd->filename.len); @@ -1914,7 +1914,7 @@ rspamd_archive_process_gzip(struct rspamd_task *task, goto set; } else { - const gchar *fname_start = part->cd->filename.begin; + const char *fname_start = part->cd->filename.begin; f = g_malloc0(sizeof(*f)); @@ -1951,11 +1951,11 @@ set: } static gboolean -rspamd_archive_cheat_detect(struct rspamd_mime_part *part, const gchar *str, - const guchar *magic_start, gsize magic_len) +rspamd_archive_cheat_detect(struct rspamd_mime_part *part, const char *str, + const unsigned char *magic_start, gsize magic_len) { struct rspamd_content_type *ct; - const gchar *p; + const char *p; rspamd_ftok_t srch, *fname; ct = part->ct; @@ -2024,12 +2024,12 @@ rspamd_archive_cheat_detect(struct rspamd_mime_part *part, const gchar *str, void rspamd_archives_process(struct rspamd_task *task) { - guint i; + unsigned int i; struct rspamd_mime_part *part; - const guchar rar_magic[] = {0x52, 0x61, 0x72, 0x21, 0x1A, 0x07}; - const guchar zip_magic[] = {0x50, 0x4b, 0x03, 0x04}; - const guchar sz_magic[] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; - const guchar gz_magic[] = {0x1F, 0x8B, 0x08}; + const unsigned char rar_magic[] = {0x52, 0x61, 0x72, 0x21, 0x1A, 0x07}; + const unsigned char zip_magic[] = {0x50, 0x4b, 0x03, 0x04}; + const unsigned char sz_magic[] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; + const unsigned char gz_magic[] = {0x1F, 0x8B, 0x08}; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, parts), i, part) { @@ -2071,10 +2071,10 @@ void rspamd_archives_process(struct rspamd_task *task) } -const gchar * +const char * rspamd_archive_type_str(enum rspamd_archive_type type) { - const gchar *ret = "unknown"; + const char *ret = "unknown"; switch (type) { case RSPAMD_ARCHIVE_ZIP: diff --git a/src/libmime/archives.h b/src/libmime/archives.h index 56beb6227..cafa06047 100644 --- a/src/libmime/archives.h +++ b/src/libmime/archives.h @@ -63,7 +63,7 @@ void rspamd_archives_process(struct rspamd_task *task); /** * Get textual representation of an archive's type */ -const gchar *rspamd_archive_type_str(enum rspamd_archive_type type); +const char *rspamd_archive_type_str(enum rspamd_archive_type type); #ifdef __cplusplus } diff --git a/src/libmime/content_type.c b/src/libmime/content_type.c index 1b5c77987..07c61b671 100644 --- a/src/libmime/content_type.c +++ b/src/libmime/content_type.c @@ -23,9 +23,9 @@ static gboolean rspamd_rfc2231_decode(rspamd_mempool_t *pool, struct rspamd_content_type_param *param, - gchar *value_start, gchar *value_end) + char *value_start, char *value_end) { - gchar *quote_pos; + char *quote_pos; quote_pos = memchr(value_start, '\'', value_end - value_start); @@ -42,7 +42,7 @@ rspamd_rfc2231_decode(rspamd_mempool_t *pool, * encoding'data (in theory). * Try to handle both... */ - const gchar *charset = NULL; + const char *charset = NULL; rspamd_ftok_t ctok; ctok.begin = value_start; @@ -102,10 +102,10 @@ rspamd_rfc2231_decode(rspamd_mempool_t *pool, static gboolean rspamd_param_maybe_rfc2231_process(rspamd_mempool_t *pool, struct rspamd_content_type_param *param, - gchar *name_start, gchar *name_end, - gchar *value_start, gchar *value_end) + char *name_start, char *name_end, + char *value_start, char *value_end) { - const gchar *star_pos; + const char *star_pos; star_pos = memchr(name_start, '*', name_end - name_start); @@ -191,7 +191,7 @@ rspamd_postprocess_ct_attributes(rspamd_mempool_t *pool, if (param->flags & RSPAMD_CONTENT_PARAM_PIECEWISE) { /* Reconstruct param */ gsize tlen = 0; - gchar *ndata, *pos; + char *ndata, *pos; sorted = param; DL_SORT(sorted, rspamd_cmp_pieces); @@ -267,7 +267,7 @@ rspamd_content_type_postprocess(rspamd_mempool_t *pool, if (rspamd_ftok_icase_equal(¶m->name, &srch)) { found = param; - gchar *lc_boundary; + char *lc_boundary; /* Adjust boundary */ lc_boundary = rspamd_mempool_alloc(pool, param->value.len); memcpy(lc_boundary, param->value.begin, param->value.len); @@ -283,7 +283,7 @@ rspamd_content_type_postprocess(rspamd_mempool_t *pool, RSPAMD_FTOK_ASSIGN(&srch, "name"); if (!rspamd_ftok_icase_equal(¶m->name, &srch)) { /* Just lowercase */ - rspamd_str_lc_utf8((gchar *) param->value.begin, param->value.len); + rspamd_str_lc_utf8((char *) param->value.begin, param->value.len); } } } @@ -308,8 +308,8 @@ rspamd_content_disposition_postprocess(rspamd_mempool_t *pool, void rspamd_content_type_add_param(rspamd_mempool_t *pool, struct rspamd_content_type *ct, - gchar *name_start, gchar *name_end, - gchar *value_start, gchar *value_end) + char *name_start, char *name_end, + char *value_start, char *value_end) { struct rspamd_content_type_param *nparam; rspamd_ftok_t srch; @@ -349,10 +349,10 @@ void rspamd_content_type_add_param(rspamd_mempool_t *pool, } static struct rspamd_content_type * -rspamd_content_type_parser(gchar *in, gsize len, rspamd_mempool_t *pool) +rspamd_content_type_parser(char *in, gsize len, rspamd_mempool_t *pool) { - guint obraces = 0, ebraces = 0, qlen = 0; - gchar *p, *c, *end, *pname_start = NULL, *pname_end = NULL; + unsigned int obraces = 0, ebraces = 0, qlen = 0; + char *p, *c, *end, *pname_start = NULL, *pname_end = NULL; struct rspamd_content_type *res = NULL, val; gboolean eqsign_seen = FALSE; enum { @@ -662,7 +662,7 @@ rspamd_content_type_parser(gchar *in, gsize len, rspamd_mempool_t *pool) } if (val.type.len > 0) { - gchar *tmp; + char *tmp; res = rspamd_mempool_alloc(pool, sizeof(val)); memcpy(res, &val, sizeof(val)); @@ -688,12 +688,12 @@ rspamd_content_type_parser(gchar *in, gsize len, rspamd_mempool_t *pool) } struct rspamd_content_type * -rspamd_content_type_parse(const gchar *in, +rspamd_content_type_parse(const char *in, gsize len, rspamd_mempool_t *pool) { struct rspamd_content_type *res = NULL; rspamd_ftok_t srch; - gchar *cpy; + char *cpy; cpy = rspamd_mempool_alloc(pool, len + 1); rspamd_strlcpy(cpy, in, len + 1); @@ -793,7 +793,7 @@ rspamd_content_type_parse(const gchar *in, } } else { - msg_warn_pool("cannot parse content type: %*s", (gint) len, cpy); + msg_warn_pool("cannot parse content type: %*s", (int) len, cpy); } return res; @@ -801,11 +801,11 @@ rspamd_content_type_parse(const gchar *in, void rspamd_content_disposition_add_param(rspamd_mempool_t *pool, struct rspamd_content_disposition *cd, - const gchar *name_start, const gchar *name_end, - const gchar *value_start, const gchar *value_end) + const char *name_start, const char *name_end, + const char *value_start, const char *value_end) { rspamd_ftok_t srch; - gchar *name_cpy, *value_cpy, *name_cpy_end, *value_cpy_end; + char *name_cpy, *value_cpy, *name_cpy_end, *value_cpy_end; struct rspamd_content_type_param *found = NULL, *nparam; g_assert(cd != NULL); @@ -850,7 +850,7 @@ void rspamd_content_disposition_add_param(rspamd_mempool_t *pool, } struct rspamd_content_disposition * -rspamd_content_disposition_parse(const gchar *in, +rspamd_content_disposition_parse(const char *in, gsize len, rspamd_mempool_t *pool) { struct rspamd_content_disposition *res = NULL, val; @@ -877,7 +877,7 @@ rspamd_content_disposition_parse(const gchar *in, } else { msg_warn_pool("cannot parse content disposition: %*s", - (gint) len, in); + (int) len, in); } return res; diff --git a/src/libmime/content_type.h b/src/libmime/content_type.h index ac49bdc35..2177cdf2d 100644 --- a/src/libmime/content_type.h +++ b/src/libmime/content_type.h @@ -46,13 +46,13 @@ enum rspamd_content_param_flags { struct rspamd_content_type_param { rspamd_ftok_t name; rspamd_ftok_t value; - guint rfc2231_id; + unsigned int rfc2231_id; enum rspamd_content_param_flags flags; struct rspamd_content_type_param *prev, *next; }; struct rspamd_content_type { - gchar *cpy; + char *cpy; rspamd_ftok_t type; rspamd_ftok_t subtype; rspamd_ftok_t charset; @@ -69,7 +69,7 @@ enum rspamd_content_disposition_type { }; struct rspamd_content_disposition { - gchar *lc_data; + char *lc_data; enum rspamd_content_disposition_type type; rspamd_ftok_t filename; GHashTable *attrs; /* Can be empty */ @@ -85,8 +85,8 @@ struct rspamd_content_disposition { */ void rspamd_content_type_add_param(rspamd_mempool_t *pool, struct rspamd_content_type *ct, - gchar *name_start, gchar *name_end, - gchar *value_start, gchar *value_end); + char *name_start, char *name_end, + char *value_start, char *value_end); /** * Parse content type from the header (performs copy + lowercase) @@ -95,7 +95,7 @@ void rspamd_content_type_add_param(rspamd_mempool_t *pool, * @param pool * @return */ -struct rspamd_content_type *rspamd_content_type_parse(const gchar *in, +struct rspamd_content_type *rspamd_content_type_parse(const char *in, gsize len, rspamd_mempool_t *pool); /** @@ -109,8 +109,8 @@ struct rspamd_content_type *rspamd_content_type_parse(const gchar *in, */ void rspamd_content_disposition_add_param(rspamd_mempool_t *pool, struct rspamd_content_disposition *cd, - const gchar *name_start, const gchar *name_end, - const gchar *value_start, const gchar *value_end); + const char *name_start, const char *name_end, + const char *value_start, const char *value_end); /** * Parse content-disposition header @@ -119,7 +119,7 @@ void rspamd_content_disposition_add_param(rspamd_mempool_t *pool, * @param pool * @return */ -struct rspamd_content_disposition *rspamd_content_disposition_parse(const gchar *in, +struct rspamd_content_disposition *rspamd_content_disposition_parse(const char *in, gsize len, rspamd_mempool_t *pool); diff --git a/src/libmime/email_addr.c b/src/libmime/email_addr.c index 0af7388a8..da1453050 100644 --- a/src/libmime/email_addr.c +++ b/src/libmime/email_addr.c @@ -48,7 +48,7 @@ rspamd_email_address_unescape(struct rspamd_email_address *addr) } struct rspamd_email_address * -rspamd_email_address_from_smtp(const gchar *str, guint len) +rspamd_email_address_from_smtp(const char *str, unsigned int len) { struct rspamd_email_address addr, *ret; gsize nlen; @@ -73,8 +73,8 @@ rspamd_email_address_from_smtp(const gchar *str, guint len) nlen = ret->domain_len + ret->user_len + 2; ret->addr = g_malloc(nlen + 1); ret->addr_len = rspamd_snprintf((char *) ret->addr, nlen, "%*s@%*s", - (gint) ret->user_len, ret->user, - (gint) ret->domain_len, ret->domain); + (int) ret->user_len, ret->user, + (int) ret->domain_len, ret->domain); ret->flags |= RSPAMD_EMAIL_ADDR_ADDR_ALLOCATED; } @@ -106,7 +106,7 @@ rspamd_email_address_add(rspamd_mempool_t *pool, GString *name) { struct rspamd_email_address *elt; - guint nlen; + unsigned int nlen; elt = g_malloc0(sizeof(*elt)); rspamd_mempool_notify_alloc(pool, sizeof(*elt)); @@ -134,8 +134,8 @@ rspamd_email_address_add(rspamd_mempool_t *pool, elt->addr = g_malloc(nlen + 1); rspamd_mempool_notify_alloc(pool, nlen + 1); elt->addr_len = rspamd_snprintf((char *) elt->addr, nlen, "%*s@%*s", - (gint) elt->user_len, elt->user, - (gint) elt->domain_len, elt->domain); + (int) elt->user_len, elt->user, + (int) elt->domain_len, elt->domain); elt->flags |= RSPAMD_EMAIL_ADDR_ADDR_ALLOCATED; } @@ -155,7 +155,7 @@ static gboolean rspamd_email_address_parse_heuristic(const char *data, size_t len, struct rspamd_email_address *addr) { - const gchar *p = data, *at = NULL, *end = data + len; + const char *p = data, *at = NULL, *end = data + len; gboolean ret = FALSE; memset(addr, 0, sizeof(*addr)); @@ -199,11 +199,11 @@ rspamd_email_address_parse_heuristic(const char *data, size_t len, } static inline int -rspamd_email_address_check_and_add(const gchar *start, gsize len, +rspamd_email_address_check_and_add(const char *start, gsize len, GPtrArray *res, rspamd_mempool_t *pool, GString *ns, - gint max_elements) + int max_elements) { struct rspamd_email_address addr; @@ -241,17 +241,17 @@ rspamd_email_address_check_and_add(const gchar *start, gsize len, } GPtrArray * -rspamd_email_address_from_mime(rspamd_mempool_t *pool, const gchar *hdr, - guint len, +rspamd_email_address_from_mime(rspamd_mempool_t *pool, const char *hdr, + unsigned int len, GPtrArray *src, - gint max_elements) + int max_elements) { GPtrArray *res = src; gboolean seen_at = FALSE, seen_obrace = FALSE; - const gchar *p = hdr, *end = hdr + len, *c = hdr, *t; + const char *p = hdr, *end = hdr + len, *c = hdr, *t; GString *ns, *cpy; - gint obraces, ebraces; + int obraces, ebraces; enum { parse_name = 0, parse_quoted, @@ -343,7 +343,7 @@ rspamd_email_address_from_mime(rspamd_mempool_t *pool, const gchar *hdr, if (*p == '"') { /* We need to strip last spaces and update `ns` */ if (p > c) { - guint nspaces = 0; + unsigned int nspaces = 0; t = p - 1; @@ -551,7 +551,7 @@ end: void rspamd_email_address_list_destroy(gpointer ptr) { GPtrArray *ar = ptr; - guint i; + unsigned int i; struct rspamd_email_address *addr; PTR_ARRAY_FOREACH(ar, i, addr) diff --git a/src/libmime/email_addr.h b/src/libmime/email_addr.h index ed00722f9..280e4a503 100644 --- a/src/libmime/email_addr.h +++ b/src/libmime/email_addr.h @@ -45,17 +45,17 @@ enum rspamd_email_address_flags { * Structure that represents email address in a convenient way */ struct rspamd_email_address { - const gchar *raw; - const gchar *addr; - const gchar *user; - const gchar *domain; - const gchar *name; + const char *raw; + const char *addr; + const char *user; + const char *domain; + const char *name; - guint raw_len; - guint addr_len; - guint domain_len; - guint user_len; - guint flags; + unsigned int raw_len; + unsigned int addr_len; + unsigned int domain_len; + unsigned int user_len; + unsigned int flags; }; struct rspamd_task; @@ -66,7 +66,7 @@ struct rspamd_task; * @param len length of string * @return */ -struct rspamd_email_address *rspamd_email_address_from_smtp(const gchar *str, guint len); +struct rspamd_email_address *rspamd_email_address_from_smtp(const char *str, unsigned int len); /** * Parses email address from the mime header, decodes names and return the array @@ -78,8 +78,8 @@ struct rspamd_email_address *rspamd_email_address_from_smtp(const gchar *str, gu * @return */ GPtrArray * -rspamd_email_address_from_mime(rspamd_mempool_t *pool, const gchar *hdr, guint len, - GPtrArray *src, gint max_elements); +rspamd_email_address_from_mime(rspamd_mempool_t *pool, const char *hdr, unsigned int len, + GPtrArray *src, int max_elements); /** * Destroys list of email addresses diff --git a/src/libmime/images.c b/src/libmime/images.c index be4d02f06..1078baba6 100644 --- a/src/libmime/images.c +++ b/src/libmime/images.c @@ -36,12 +36,12 @@ INIT_LOG_MODULE(images) static rspamd_lru_hash_t *images_hash = NULL; #endif -static const guint8 png_signature[] = {137, 80, 78, 71, 13, 10, 26, 10}; -static const guint8 jpg_sig1[] = {0xff, 0xd8}; -static const guint8 jpg_sig_jfif[] = {0xff, 0xe0}; -static const guint8 jpg_sig_exif[] = {0xff, 0xe1}; -static const guint8 gif_signature[] = {'G', 'I', 'F', '8'}; -static const guint8 bmp_signature[] = {'B', 'M'}; +static const uint8_t png_signature[] = {137, 80, 78, 71, 13, 10, 26, 10}; +static const uint8_t jpg_sig1[] = {0xff, 0xd8}; +static const uint8_t jpg_sig_jfif[] = {0xff, 0xe0}; +static const uint8_t jpg_sig_exif[] = {0xff, 0xe1}; +static const uint8_t gif_signature[] = {'G', 'I', 'F', '8'}; +static const uint8_t bmp_signature[] = {'B', 'M'}; static bool process_image(struct rspamd_task *task, struct rspamd_mime_part *part); @@ -63,7 +63,7 @@ bool rspamd_images_process_mime_part_maybe(struct rspamd_task *task, void rspamd_images_process(struct rspamd_task *task) { - guint i; + unsigned int i; struct rspamd_mime_part *part; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, parts), i, part) @@ -108,7 +108,7 @@ process_png_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) { struct rspamd_image *img; uint32_t t; - const guint8 *p; + const uint8_t *p; if (data->len < 24) { msg_info_pool("bad png detected (maybe striped)"); @@ -140,8 +140,8 @@ process_png_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) static struct rspamd_image * process_jpg_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) { - const guint8 *p, *end; - guint16 h, w; + const uint8_t *p, *end; + uint16_t h, w; struct rspamd_image *img; img = rspamd_mempool_alloc0(pool, sizeof(struct rspamd_image)); @@ -154,13 +154,13 @@ process_jpg_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) while (p < end) { if (p[0] == 0xFF && p[1] != 0xFF) { - guint len = p[2] * 256 + p[3]; + unsigned int len = p[2] * 256 + p[3]; p++; if (*p == 0xc0 || *p == 0xc1 || *p == 0xc2 || *p == 0xc3 || *p == 0xc9 || *p == 0xca || *p == 0xcb) { - memcpy(&h, p + 4, sizeof(guint16)); + memcpy(&h, p + 4, sizeof(uint16_t)); h = p[4] * 0xff + p[5]; img->height = h; w = p[6] * 0xff + p[7]; @@ -184,8 +184,8 @@ static struct rspamd_image * process_gif_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) { struct rspamd_image *img; - const guint8 *p; - guint16 t; + const uint8_t *p; + uint16_t t; if (data->len < 10) { msg_info_pool("bad gif detected (maybe striped)"); @@ -197,9 +197,9 @@ process_gif_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) img->data = data; p = data->begin + 6; - memcpy(&t, p, sizeof(guint16)); + memcpy(&t, p, sizeof(uint16_t)); img->width = GUINT16_FROM_LE(t); - memcpy(&t, p + 2, sizeof(guint16)); + memcpy(&t, p + 2, sizeof(uint16_t)); img->height = GUINT16_FROM_LE(t); return img; @@ -210,7 +210,7 @@ process_bmp_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) { struct rspamd_image *img; int32_t t; - const guint8 *p; + const uint8_t *p; if (data->len < 28) { msg_info_pool("bad bmp detected (maybe striped)"); @@ -235,20 +235,20 @@ process_bmp_image(rspamd_mempool_t *pool, rspamd_ftok_t *data) * http://unix4lyfe.org/dct/ */ static void -rspamd_image_dct_block(gint pixels[8][8], gdouble *out) +rspamd_image_dct_block(int pixels[8][8], double *out) { - gint i; - gint rows[8][8]; + int i; + int rows[8][8]; - static const gint c1 = 1004 /* cos(pi/16) << 10 */, - s1 = 200 /* sin(pi/16) */, - c3 = 851 /* cos(3pi/16) << 10 */, - s3 = 569 /* sin(3pi/16) << 10 */, - r2c6 = 554 /* sqrt(2)*cos(6pi/16) << 10 */, - r2s6 = 1337 /* sqrt(2)*sin(6pi/16) << 10 */, - r2 = 181; /* sqrt(2) << 7*/ + static const int c1 = 1004 /* cos(pi/16) << 10 */, + s1 = 200 /* sin(pi/16) */, + c3 = 851 /* cos(3pi/16) << 10 */, + s3 = 569 /* sin(3pi/16) << 10 */, + r2c6 = 554 /* sqrt(2)*cos(6pi/16) << 10 */, + r2s6 = 1337 /* sqrt(2)*sin(6pi/16) << 10 */, + r2 = 181; /* sqrt(2) << 7*/ - gint x0, x1, x2, x3, x4, x5, x6, x7, x8; + int x0, x1, x2, x3, x4, x5, x6, x7, x8; /* transform rows */ for (i = 0; i < 8; i++) { @@ -362,8 +362,8 @@ rspamd_image_dct_block(gint pixels[8][8], gdouble *out) } struct rspamd_image_cache_entry { - guchar digest[64]; - guchar dct[RSPAMD_DCT_LEN / NBBY]; + unsigned char digest[64]; + unsigned char dct[RSPAMD_DCT_LEN / NBBY]; }; static void @@ -447,8 +447,8 @@ void rspamd_image_normalize(struct rspamd_task *task, struct rspamd_image *img) { #ifdef USABLE_GD gdImagePtr src = NULL, dst = NULL; - guint i, j, k, l; - gdouble *dct; + unsigned int i, j, k, l; + double *dct; if (img->data->len == 0 || img->data->len > G_MAXINT32) { return; @@ -496,7 +496,7 @@ void rspamd_image_normalize(struct rspamd_task *task, struct rspamd_image *img) gdImageDestroy(src); img->is_normalized = TRUE; - dct = g_malloc0(sizeof(gdouble) * RSPAMD_DCT_LEN); + dct = g_malloc0(sizeof(double) * RSPAMD_DCT_LEN); img->dct = g_malloc0(RSPAMD_DCT_LEN / NBBY); rspamd_mempool_add_destructor(task->task_pool, g_free, img->dct); @@ -520,7 +520,7 @@ void rspamd_image_normalize(struct rspamd_task *task, struct rspamd_image *img) */ for (i = 0; i < RSPAMD_NORMALIZED_DIM; i += 8) { for (j = 0; j < RSPAMD_NORMALIZED_DIM; j += 8) { - gint p[8][8]; + int p[8][8]; for (k = 0; k < 8; k++) { p[k][0] = gdImageGetPixel(dst, i + k, j); @@ -536,20 +536,20 @@ void rspamd_image_normalize(struct rspamd_task *task, struct rspamd_image *img) rspamd_image_dct_block(p, dct + i * RSPAMD_NORMALIZED_DIM + j); - gdouble avg = 0.0; + double avg = 0.0; for (k = 0; k < 8; k++) { for (l = 0; l < 8; l++) { - gdouble x = *(dct + - i * RSPAMD_NORMALIZED_DIM + j + k * 8 + l); - avg += (x - avg) / (gdouble) (k * 8 + l + 1); + double x = *(dct + + i * RSPAMD_NORMALIZED_DIM + j + k * 8 + l); + avg += (x - avg) / (double) (k * 8 + l + 1); } } for (k = 0; k < 8; k++) { for (l = 0; l < 8; l++) { - guint idx = i * RSPAMD_NORMALIZED_DIM + j + k * 8 + l; + unsigned int idx = i * RSPAMD_NORMALIZED_DIM + j + k * 8 + l; if (dct[idx] >= avg) { setbit(img->dct, idx); @@ -623,7 +623,7 @@ process_image(struct rspamd_task *task, struct rspamd_mime_part *part) return false; } -const gchar * +const char * rspamd_image_type_str(enum rspamd_image_type type) { switch (type) { @@ -652,8 +652,8 @@ rspamd_image_process_part(struct rspamd_task *task, struct rspamd_mime_part *par struct rspamd_mime_header *rh; struct rspamd_mime_text_part *tp; struct html_image *himg; - const gchar *cid; - guint cid_len, i; + const char *cid; + unsigned int cid_len, i; struct rspamd_image *img; img = (struct rspamd_image *) part->specific.img; @@ -707,7 +707,7 @@ rspamd_image_process_part(struct rspamd_task *task, struct rspamd_mime_part *par void rspamd_images_link(struct rspamd_task *task) { struct rspamd_mime_part *part; - guint i; + unsigned int i; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, parts), i, part) { diff --git a/src/libmime/images.h b/src/libmime/images.h index a70fb7eab..d55034e2d 100644 --- a/src/libmime/images.h +++ b/src/libmime/images.h @@ -31,7 +31,7 @@ struct rspamd_image { uint32_t width; uint32_t height; gboolean is_normalized; - guchar *dct; + unsigned char *dct; }; /* @@ -65,7 +65,7 @@ struct rspamd_image *rspamd_maybe_process_image(rspamd_mempool_t *pool, /* * Get textual representation of an image's type */ -const gchar *rspamd_image_type_str(enum rspamd_image_type type); +const char *rspamd_image_type_str(enum rspamd_image_type type); void rspamd_image_normalize(struct rspamd_task *task, struct rspamd_image *img); diff --git a/src/libmime/lang_detection.c b/src/libmime/lang_detection.c index 0321ee7df..c3a647507 100644 --- a/src/libmime/lang_detection.c +++ b/src/libmime/lang_detection.c @@ -33,14 +33,14 @@ static const gsize default_short_text_limit = 10; static const gsize default_words = 80; -static const gdouble update_prob = 0.6; -static const gchar *default_languages_path = RSPAMD_SHAREDIR "/languages"; +static const double update_prob = 0.6; +static const char *default_languages_path = RSPAMD_SHAREDIR "/languages"; #undef EXTRA_LANGDET_DEBUG struct rspamd_language_unicode_match { - const gchar *lang; - gint unicode_code; + const char *lang; + int unicode_code; }; /* @@ -63,10 +63,10 @@ static const struct rspamd_language_unicode_match unicode_langs[] = { /* * Top languages */ -static const gchar *tier0_langs[] = { +static const char *tier0_langs[] = { "en", }; -static const gchar *tier1_langs[] = { +static const char *tier1_langs[] = { "fr", "it", "de", "es", "nl", "pt", "ru", "pl", "tk", "th", "ar"}; @@ -79,31 +79,31 @@ enum rspamd_language_category { }; struct rspamd_language_elt { - const gchar *name; /* e.g. "en" or "ru" */ - gint flags; /* enum rspamd_language_elt_flags */ + const char *name; /* e.g. "en" or "ru" */ + int flags; /* enum rspamd_language_elt_flags */ enum rspamd_language_category category; - guint trigrams_words; - guint stop_words; - gdouble mean; - gdouble std; - guint occurrences; /* total number of parts with this language */ + unsigned int trigrams_words; + unsigned int stop_words; + double mean; + double std; + unsigned int occurrences; /* total number of parts with this language */ }; struct rspamd_ngramm_elt { struct rspamd_language_elt *elt; - gdouble prob; + double prob; }; struct rspamd_ngramm_chain { GPtrArray *languages; - gdouble mean; - gdouble std; - gchar *utf; + double mean; + double std; + char *utf; }; struct rspamd_stop_word_range { - guint start; - guint stop; + unsigned int start; + unsigned int stop; struct rspamd_language_elt *elt; }; @@ -124,7 +124,7 @@ struct rspamd_stop_word_elt { INIT_LOG_MODULE_PUBLIC(langdet) static const struct rspamd_language_unicode_match * -rspamd_language_search_unicode_match(const gchar *key, +rspamd_language_search_unicode_match(const char *key, const struct rspamd_language_unicode_match *elts, size_t nelts) { size_t i; @@ -139,7 +139,7 @@ rspamd_language_search_unicode_match(const gchar *key, } static gboolean -rspamd_language_search_str(const gchar *key, const gchar *elts[], size_t nelts) +rspamd_language_search_str(const char *key, const char *elts[], size_t nelts) { size_t i; @@ -151,7 +151,7 @@ rspamd_language_search_str(const gchar *key, const gchar *elts[], size_t nelts) return FALSE; } -static guint +static unsigned int rspamd_trigram_hash_func(gconstpointer key) { return rspamd_cryptobox_fast_hash(key, 3 * sizeof(UChar32), @@ -166,14 +166,14 @@ rspamd_trigram_equal_func(gconstpointer v, gconstpointer v2) KHASH_INIT(rspamd_trigram_hash, const UChar32 *, struct rspamd_ngramm_chain, true, rspamd_trigram_hash_func, rspamd_trigram_equal_func); -KHASH_INIT(rspamd_candidates_hash, const gchar *, +KHASH_INIT(rspamd_candidates_hash, const char *, struct rspamd_lang_detector_res *, true, rspamd_str_hash, rspamd_str_equal); KHASH_INIT(rspamd_stopwords_hash, rspamd_ftok_t *, char, false, rspamd_ftok_hash, rspamd_ftok_equal); -KHASH_INIT(rspamd_languages_hash, const gchar *, struct rspamd_language_elt *, true, +KHASH_INIT(rspamd_languages_hash, const char *, struct rspamd_language_elt *, true, rspamd_str_hash, rspamd_str_equal); struct rspamd_lang_detector { khash_t(rspamd_languages_hash) * languages; @@ -215,8 +215,8 @@ rspamd_language_detector_ucs_is_latin(const UChar32 *s, gsize len) } struct rspamd_language_ucs_elt { - guint freq; - const gchar *utf; + unsigned int freq; + const char *utf; UChar32 s[0]; }; @@ -225,15 +225,15 @@ rspamd_language_detector_init_ngramm(struct rspamd_config *cfg, struct rspamd_lang_detector *d, struct rspamd_language_elt *lelt, struct rspamd_language_ucs_elt *ucs, - guint len, - guint freq, - guint total, + unsigned int len, + unsigned int freq, + unsigned int total, khash_t(rspamd_trigram_hash) * htb) { struct rspamd_ngramm_chain *chain = NULL, st_chain; struct rspamd_ngramm_elt *elt; khiter_t k; - guint i; + unsigned int i; gboolean found; switch (len) { @@ -262,7 +262,7 @@ rspamd_language_detector_init_ngramm(struct rspamd_config *cfg, chain->utf = rspamd_mempool_strdup(cfg->cfg_pool, ucs->utf); elt = rspamd_mempool_alloc(cfg->cfg_pool, sizeof(*elt)); elt->elt = lelt; - elt->prob = ((gdouble) freq) / ((gdouble) total); + elt->prob = ((double) freq) / ((double) total); g_ptr_array_add(chain->languages, elt); k = kh_put(rspamd_trigram_hash, htb, ucs->s, &i); @@ -276,7 +276,7 @@ rspamd_language_detector_init_ngramm(struct rspamd_config *cfg, { if (strcmp(elt->elt->name, lelt->name) == 0) { found = TRUE; - elt->prob += ((gdouble) freq) / ((gdouble) total); + elt->prob += ((double) freq) / ((double) total); break; } } @@ -284,14 +284,14 @@ rspamd_language_detector_init_ngramm(struct rspamd_config *cfg, if (!found) { elt = rspamd_mempool_alloc(cfg->cfg_pool, sizeof(*elt)); elt->elt = lelt; - elt->prob = ((gdouble) freq) / ((gdouble) total); + elt->prob = ((double) freq) / ((double) total); g_ptr_array_add(chain->languages, elt); } } } static inline enum rspamd_language_category -rspamd_language_detector_get_category(guint uflags) +rspamd_language_detector_get_category(unsigned int uflags) { enum rspamd_language_category cat = RSPAMD_LANGUAGE_LATIN; @@ -308,10 +308,10 @@ rspamd_language_detector_get_category(guint uflags) return cat; } -static const gchar * +static const char * rspamd_language_detector_print_flags(struct rspamd_language_elt *elt) { - static gchar flags_buf[256]; + static char flags_buf[256]; goffset r = 0; if (elt->flags & RS_LANGUAGE_TIER1) { @@ -334,19 +334,19 @@ rspamd_language_detector_print_flags(struct rspamd_language_elt *elt) return flags_buf; } -static gint +static int rspamd_language_detector_cmp_ngramm(gconstpointer a, gconstpointer b) { struct rspamd_language_ucs_elt *e1 = *(struct rspamd_language_ucs_elt **) a; struct rspamd_language_ucs_elt *e2 = *(struct rspamd_language_ucs_elt **) b; - return (gint) e2->freq - (gint) e1->freq; + return (int) e2->freq - (int) e1->freq; } static void rspamd_language_detector_read_file(struct rspamd_config *cfg, struct rspamd_lang_detector *d, - const gchar *path, + const char *path, const ucl_object_t *stop_words) { struct ucl_parser *parser; @@ -357,10 +357,10 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, struct rspamd_language_elt *nelt; struct rspamd_language_ucs_elt *ucs_elt; khash_t(rspamd_trigram_hash) *htb = NULL; - gchar *pos; - guint total = 0, total_latin = 0, total_ngramms = 0, i, skipped, - loaded; - gdouble mean = 0, std = 0, delta = 0, delta2 = 0, m2 = 0; + char *pos; + unsigned int total = 0, total_latin = 0, total_ngramms = 0, i, skipped, + loaded; + double mean = 0, std = 0, delta = 0, delta2 = 0, m2 = 0; enum rspamd_language_category cat = RSPAMD_LANGUAGE_MAX; parser = ucl_parser_new(UCL_PARSER_NO_FILEVARS); @@ -416,7 +416,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, return; } else { - const gchar *stype = ucl_object_tostring(type); + const char *stype = ucl_object_tostring(type); if (strcmp(stype, "latin") == 0) { cat = RSPAMD_LANGUAGE_LATIN; @@ -445,7 +445,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, const ucl_object_t *cur; while ((cur = ucl_object_iterate(flags, &it, true)) != NULL) { - const gchar *fl = ucl_object_tostring(cur); + const char *fl = ucl_object_tostring(cur); if (cur) { if (strcmp(fl, "diacritics") == 0) { @@ -473,7 +473,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, struct sb_stemmer *stem = NULL; it = NULL; const ucl_object_t *w; - guint start, stop; + unsigned int start, stop; stem = sb_stemmer_new(nelt->name, "UTF_8"); start = rspamd_multipattern_get_npatterns(d->stop_words[cat].mp); @@ -482,7 +482,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, gsize wlen; const char *word = ucl_object_tolstring(w, &wlen); const char *saved; - guint mp_flags = RSPAMD_MULTIPATTERN_ICASE | RSPAMD_MULTIPATTERN_UTF8; + unsigned int mp_flags = RSPAMD_MULTIPATTERN_ICASE | RSPAMD_MULTIPATTERN_UTF8; if (rspamd_multipattern_has_hyperscan()) { mp_flags |= RSPAMD_MULTIPATTERN_RE; @@ -511,13 +511,13 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, } if (saved) { - gint rc; + int rc; rspamd_ftok_t *tok; - gchar *dst; + char *dst; tok = rspamd_mempool_alloc(cfg->cfg_pool, sizeof(*tok) + wlen + 1); - dst = ((gchar *) tok) + sizeof(*tok); + dst = ((char *) tok) + sizeof(*tok); rspamd_strlcpy(dst, saved, wlen + 1); tok->begin = dst; tok->len = wlen; @@ -548,7 +548,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, htb = d->trigrams[cat]; GPtrArray *ngramms; - guint nsym; + unsigned int nsym; if (rspamd_language_search_str(nelt->name, tier1_langs, G_N_ELEMENTS(tier1_langs))) { @@ -567,9 +567,9 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, loaded = 0; while ((cur = ucl_object_iterate(freqs, &it, true)) != NULL) { - const gchar *key; + const char *key; gsize keylen; - guint freq; + unsigned int freq; key = ucl_object_keyl(cur, &keylen); freq = ucl_object_toint(cur); @@ -603,7 +603,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, if (!U_SUCCESS(uc_err)) { msg_warn_config("cannot convert key %*s to unicode: %s", - (gint) keylen, key, u_errorName(uc_err)); + (int) keylen, key, u_errorName(uc_err)); continue; } @@ -684,7 +684,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, "std=%.2f, mean=%.2f, skipped=%d, loaded=%d, stop_words=%d; " "(%s)", nelt->name, - (gint) nelt->trigrams_words, + (int) nelt->trigrams_words, total, std, mean, skipped, loaded, nelt->stop_words, @@ -698,7 +698,7 @@ rspamd_language_detector_read_file(struct rspamd_config *cfg, } static gboolean -rspamd_ucl_array_find_str(const gchar *str, const ucl_object_t *ar) +rspamd_ucl_array_find_str(const char *str, const ucl_object_t *ar) { ucl_object_iter_t it = NULL; const ucl_object_t *cur; @@ -722,8 +722,8 @@ rspamd_language_detector_process_chain(struct rspamd_config *cfg, struct rspamd_ngramm_chain *chain) { struct rspamd_ngramm_elt *elt; - guint i; - gdouble delta, mean = 0, delta2, m2 = 0, std; + unsigned int i; + double delta, mean = 0, delta2, m2 = 0, std; if (chain->languages->len > 3) { PTR_ARRAY_FOREACH(chain->languages, i, elt) @@ -767,7 +767,7 @@ static void rspamd_language_detector_dtor(struct rspamd_lang_detector *d) { if (d) { - for (guint i = 0; i < RSPAMD_LANGUAGE_MAX; i++) { + for (unsigned int i = 0; i < RSPAMD_LANGUAGE_MAX; i++) { kh_destroy(rspamd_trigram_hash, d->trigrams[i]); rspamd_multipattern_destroy(d->stop_words[i].mp); g_array_free(d->stop_words[i].ranges, TRUE); @@ -787,13 +787,13 @@ rspamd_language_detector_init(struct rspamd_config *cfg) { const ucl_object_t *section, *elt, *languages_enable = NULL, *languages_disable = NULL; - const gchar *languages_path = default_languages_path; + const char *languages_path = default_languages_path; glob_t gl; size_t i, short_text_limit = default_short_text_limit, total = 0; UErrorCode uc_err = U_ZERO_ERROR; GString *languages_pattern; struct rspamd_ngramm_chain *chain, schain; - gchar *fname; + char *fname; struct rspamd_lang_detector *ret = NULL; struct ucl_parser *parser; ucl_object_t *stop_words; @@ -912,8 +912,8 @@ rspamd_language_detector_init(struct rspamd_config *cfg) msg_info_config("loaded %d languages, " "%d trigrams; %s", - (gint) kh_size(ret->languages), - (gint) total, fasttext_status); + (int) kh_size(ret->languages), + (int) total, fasttext_status); g_free(fasttext_status); if (stop_words) { @@ -936,11 +936,11 @@ end: } static void -rspamd_language_detector_random_select(GArray *ucs_tokens, guint nwords, +rspamd_language_detector_random_select(GArray *ucs_tokens, unsigned int nwords, goffset *offsets_out, uint64_t *seed) { - guint step_len, remainder, i, out_idx; + unsigned int step_len, remainder, i, out_idx; uint64_t coin, sel; rspamd_stat_token_t *tok; @@ -973,7 +973,7 @@ rspamd_language_detector_random_select(GArray *ucs_tokens, guint nwords, for (i = step_len + remainder; i < ucs_tokens->len; i += step_len, out_idx++) { - guint ntries = 0; + unsigned int ntries = 0; coin = rspamd_random_uint64_fast_seed(seed); sel = (coin % step_len) + i; @@ -1028,9 +1028,9 @@ rspamd_language_detector_random_select(GArray *ucs_tokens, guint nwords, static goffset rspamd_language_detector_next_ngramm(rspamd_stat_token_t *tok, UChar32 *window, - guint wlen, goffset cur_off) + unsigned int wlen, goffset cur_off) { - guint i; + unsigned int i; if (wlen > 1) { /* Deal with spaces at the beginning and ending */ @@ -1081,13 +1081,13 @@ rspamd_language_detector_process_ngramm_full(struct rspamd_task *task, khash_t(rspamd_candidates_hash) * candidates, khash_t(rspamd_trigram_hash) * trigrams) { - guint i; - gint ret; + unsigned int i; + int ret; struct rspamd_ngramm_chain *chain = NULL; struct rspamd_ngramm_elt *elt; struct rspamd_lang_detector_res *cand; khiter_t k; - gdouble prob; + double prob; k = kh_get(rspamd_trigram_hash, trigrams, window); if (k != kh_end(trigrams)) { @@ -1140,7 +1140,7 @@ rspamd_language_detector_detect_word(struct rspamd_task *task, khash_t(rspamd_candidates_hash) * candidates, khash_t(rspamd_trigram_hash) * trigrams) { - const guint wlen = 3; + const unsigned int wlen = 3; UChar32 window[3]; goffset cur = 0; @@ -1151,7 +1151,7 @@ rspamd_language_detector_detect_word(struct rspamd_task *task, } } -static const gdouble cutoff_limit = -8.0; +static const double cutoff_limit = -8.0; /* * Converts frequencies to log probabilities, filter those candidates who * has the lowest probabilities @@ -1160,7 +1160,7 @@ static const gdouble cutoff_limit = -8.0; static inline void rspamd_language_detector_filter_step1(struct rspamd_task *task, struct rspamd_lang_detector_res *cand, - gdouble *max_prob, guint *filtered) + double *max_prob, unsigned int *filtered) { if (!isnan(cand->prob)) { if (cand->prob == 0) { @@ -1189,7 +1189,7 @@ rspamd_language_detector_filter_step1(struct rspamd_task *task, static inline void rspamd_language_detector_filter_step2(struct rspamd_task *task, struct rspamd_lang_detector_res *cand, - gdouble max_prob, guint *filtered) + double max_prob, unsigned int *filtered) { /* * Probabilities are logarithmic, so if prob1 - prob2 > 4, it means that @@ -1208,8 +1208,8 @@ rspamd_language_detector_filter_negligible(struct rspamd_task *task, khash_t(rspamd_candidates_hash) * candidates) { struct rspamd_lang_detector_res *cand; - guint filtered = 0; - gdouble max_prob = -(G_MAXDOUBLE); + unsigned int filtered = 0; + double max_prob = -(G_MAXDOUBLE); kh_foreach_value(candidates, cand, rspamd_language_detector_filter_step1(task, cand, &max_prob, &filtered)); @@ -1221,17 +1221,17 @@ rspamd_language_detector_filter_negligible(struct rspamd_task *task, static void rspamd_language_detector_detect_type(struct rspamd_task *task, - guint nwords, + unsigned int nwords, struct rspamd_lang_detector *d, GArray *words, enum rspamd_language_category cat, khash_t(rspamd_candidates_hash) * candidates, struct rspamd_mime_text_part *part) { - guint nparts = MIN(words->len, nwords); + unsigned int nparts = MIN(words->len, nwords); goffset *selected_words; rspamd_stat_token_t *tok; - guint i; + unsigned int i; uint64_t seed; /* Seed PRNG with part digest to provide some sort of determinism */ @@ -1255,7 +1255,7 @@ rspamd_language_detector_detect_type(struct rspamd_task *task, g_free(selected_words); } -static gint +static int rspamd_language_detector_cmp(gconstpointer a, gconstpointer b) { const struct rspamd_lang_detector_res @@ -1280,14 +1280,14 @@ enum rspamd_language_detected_type { static enum rspamd_language_detected_type rspamd_language_detector_try_ngramm(struct rspamd_task *task, - guint nwords, + unsigned int nwords, struct rspamd_lang_detector *d, GArray *ucs_tokens, enum rspamd_language_category cat, khash_t(rspamd_candidates_hash) * candidates, struct rspamd_mime_text_part *part) { - guint cand_len = 0; + unsigned int cand_len = 0; struct rspamd_lang_detector_res *cand; rspamd_language_detector_detect_type(task, @@ -1322,15 +1322,15 @@ enum rspamd_language_sort_flags { struct rspamd_frequency_sort_cbdata { struct rspamd_lang_detector *d; enum rspamd_language_sort_flags flags; - gdouble std; - gdouble mean; + double std; + double mean; }; -static const gdouble tier0_adjustment = 1.2; -static const gdouble tier1_adjustment = 0.8; -static const gdouble frequency_adjustment = 0.8; +static const double tier0_adjustment = 1.2; +static const double tier1_adjustment = 0.8; +static const double frequency_adjustment = 0.8; -static gint +static int rspamd_language_detector_cmp_heuristic(gconstpointer a, gconstpointer b, gpointer ud) { @@ -1338,18 +1338,18 @@ rspamd_language_detector_cmp_heuristic(gconstpointer a, gconstpointer b, struct rspamd_lang_detector_res *canda = *(struct rspamd_lang_detector_res **) a, *candb = *(struct rspamd_lang_detector_res **) b; - gdouble adj; - gdouble proba_adjusted, probb_adjusted, freqa, freqb; + double adj; + double proba_adjusted, probb_adjusted, freqa, freqb; if (cbd->d->total_occurrences == 0) { /* Not enough data, compare directly */ return rspamd_language_detector_cmp(a, b); } - freqa = ((gdouble) canda->elt->occurrences) / - (gdouble) cbd->d->total_occurrences; - freqb = ((gdouble) candb->elt->occurrences) / - (gdouble) cbd->d->total_occurrences; + freqa = ((double) canda->elt->occurrences) / + (double) cbd->d->total_occurrences; + freqb = ((double) candb->elt->occurrences) / + (double) cbd->d->total_occurrences; proba_adjusted = canda->prob; probb_adjusted = candb->prob; @@ -1405,15 +1405,15 @@ rspamd_language_detector_cmp_heuristic(gconstpointer a, gconstpointer b, static void rspamd_language_detector_unicode_scripts(struct rspamd_task *task, struct rspamd_mime_text_part *part, - guint *pchinese, - guint *pspecial) + unsigned int *pchinese, + unsigned int *pspecial) { - const gchar *p = part->utf_stripped_content->data, *end; - guint i = 0, cnt = 0; + const char *p = part->utf_stripped_content->data, *end; + unsigned int i = 0, cnt = 0; end = p + part->utf_stripped_content->len; int32_t uc, sc; - guint nlatin = 0, nchinese = 0, nspecial = 0; - const guint cutoff_limit = 32; + unsigned int nlatin = 0, nchinese = 0, nspecial = 0; + const unsigned int cutoff_limit = 32; while (p + i < end) { U8_NEXT(p, i, part->utf_stripped_content->len, uc); @@ -1527,7 +1527,7 @@ rspamd_language_detector_unicode_scripts(struct rspamd_task *task, static inline void rspamd_language_detector_set_language(struct rspamd_task *task, struct rspamd_mime_text_part *part, - const gchar *code, + const char *code, struct rspamd_language_elt *elt) { struct rspamd_lang_detector_res *r; @@ -1548,10 +1548,10 @@ rspamd_language_detector_set_language(struct rspamd_task *task, static gboolean rspamd_language_detector_try_uniscript(struct rspamd_task *task, struct rspamd_mime_text_part *part, - guint nchinese, - guint nspecial) + unsigned int nchinese, + unsigned int nspecial) { - guint i; + unsigned int i; for (i = 0; i < G_N_ELEMENTS(unicode_langs); i++) { if (unicode_langs[i].unicode_code & part->unicode_scripts) { @@ -1598,7 +1598,7 @@ rspamd_language_detector_try_uniscript(struct rspamd_task *task, return FALSE; } -static guint +static unsigned int rspamd_langelt_hash_func(gconstpointer key) { const struct rspamd_language_elt *elt = (const struct rspamd_language_elt *) key; @@ -1626,10 +1626,10 @@ struct rspamd_sw_cbdata { GArray *ranges; }; -static gint +static int rspamd_ranges_cmp(const void *k, const void *memb) { - gint pos = GPOINTER_TO_INT(k); + int pos = GPOINTER_TO_INT(k); const struct rspamd_stop_word_range *r = (struct rspamd_stop_word_range *) memb; if (pos >= r->start && pos < r->stop) { @@ -1642,17 +1642,17 @@ rspamd_ranges_cmp(const void *k, const void *memb) return 1; } -static gint +static int rspamd_language_detector_sw_cb(struct rspamd_multipattern *mp, - guint strnum, - gint match_start, - gint match_pos, - const gchar *text, + unsigned int strnum, + int match_start, + int match_pos, + const char *text, gsize len, void *context) { /* Check if boundary */ - const gchar *prev = text, *next = text + len; + const char *prev = text, *next = text + len; struct rspamd_stop_word_range *r; struct rspamd_sw_cbdata *cbdata = (struct rspamd_sw_cbdata *) context; khiter_t k; @@ -1683,7 +1683,7 @@ rspamd_language_detector_sw_cb(struct rspamd_multipattern *mp, g_assert(r != NULL); k = kh_get(rspamd_sw_hash, cbdata->res, r->elt); - gint nwords = 1; + int nwords = 1; if (k != kh_end(cbdata->res)) { khiter_t set_k; @@ -1704,7 +1704,7 @@ rspamd_language_detector_sw_cb(struct rspamd_multipattern *mp, } } else { - gint tt; + int tt; k = kh_put(rspamd_sw_hash, cbdata->res, r->elt, &tt); kh_value(cbdata->res, k) = kh_init(rspamd_sw_res_set); @@ -1824,8 +1824,8 @@ rspamd_language_detector_detect(struct rspamd_task *task, { khash_t(rspamd_candidates_hash) * candidates; GPtrArray *result; - gdouble mean, std, start_ticks, end_ticks; - guint cand_len; + double mean, std, start_ticks, end_ticks; + unsigned int cand_len; enum rspamd_language_category cat; struct rspamd_lang_detector_res *cand; enum rspamd_language_detected_type r; @@ -1839,7 +1839,7 @@ rspamd_language_detector_detect(struct rspamd_task *task, start_ticks = rspamd_get_ticks(TRUE); - guint nchinese = 0, nspecial = 0; + unsigned int nchinese = 0, nspecial = 0; rspamd_language_detector_unicode_scripts(task, part, &nchinese, &nspecial); /* Disable internal language detection heuristics if we have fasttext */ @@ -1968,7 +1968,7 @@ rspamd_language_detector_detect(struct rspamd_task *task, mean /= cand_len; kh_foreach_value(candidates, cand, { - gdouble err; + double err; if (!isnan(cand->prob)) { err = cand->prob - mean; std += fabs(err); @@ -2076,7 +2076,7 @@ void rspamd_language_detector_unref(struct rspamd_lang_detector *d) gboolean rspamd_language_detector_is_stop_word(struct rspamd_lang_detector *d, - const gchar *word, gsize wlen) + const char *word, gsize wlen) { khiter_t k; rspamd_ftok_t search; @@ -2093,7 +2093,7 @@ rspamd_language_detector_is_stop_word(struct rspamd_lang_detector *d, return FALSE; } -gint rspamd_language_detector_elt_flags(const struct rspamd_language_elt *elt) +int rspamd_language_detector_elt_flags(const struct rspamd_language_elt *elt) { if (elt) { return elt->flags; diff --git a/src/libmime/lang_detection.h b/src/libmime/lang_detection.h index 5423c13b7..45d3b24b6 100644 --- a/src/libmime/lang_detection.h +++ b/src/libmime/lang_detection.h @@ -60,8 +60,8 @@ enum rspamd_language_elt_flags { }; struct rspamd_lang_detector_res { - gdouble prob; - const gchar *lang; + double prob; + const char *lang; struct rspamd_language_elt *elt; }; @@ -95,14 +95,14 @@ gboolean rspamd_language_detector_detect(struct rspamd_task *task, * @return */ gboolean rspamd_language_detector_is_stop_word(struct rspamd_lang_detector *d, - const gchar *word, gsize wlen); + const char *word, gsize wlen); /** * Return language flags for a specific language elt * @param elt * @return */ -gint rspamd_language_detector_elt_flags(const struct rspamd_language_elt *elt); +int rspamd_language_detector_elt_flags(const struct rspamd_language_elt *elt); #ifdef __cplusplus } #endif diff --git a/src/libmime/lang_detection_fasttext.cxx b/src/libmime/lang_detection_fasttext.cxx index c973ed710..faa97b0fc 100644 --- a/src/libmime/lang_detection_fasttext.cxx +++ b/src/libmime/lang_detection_fasttext.cxx @@ -187,7 +187,7 @@ rspamd_fasttext_predict_result_t rspamd_lang_detection_fasttext_detect(void *ud, return nullptr; #else /* Avoid too long inputs */ - static const guint max_fasttext_input_len = 1024 * 1024; + static const unsigned int max_fasttext_input_len = 1024 * 1024; auto *real_model = FASTTEXT_MODEL_TO_C_API(ud); std::vector<std::int32_t> words_vec; words_vec.reserve(utf_words->len); @@ -215,7 +215,7 @@ void rspamd_lang_detection_fasttext_destroy(void *ud) } -guint rspamd_lang_detection_fasttext_get_nlangs(rspamd_fasttext_predict_result_t res) +unsigned int rspamd_lang_detection_fasttext_get_nlangs(rspamd_fasttext_predict_result_t res) { #ifdef WITH_FASTTEXT auto *real_res = FASTTEXT_RESULT_TO_C_API(res); diff --git a/src/libmime/lang_detection_fasttext.h b/src/libmime/lang_detection_fasttext.h index c8710d3c4..2a2756968 100644 --- a/src/libmime/lang_detection_fasttext.h +++ b/src/libmime/lang_detection_fasttext.h @@ -60,7 +60,7 @@ rspamd_fasttext_predict_result_t rspamd_lang_detection_fasttext_detect(void *ud, * @param ud * @return */ -guint rspamd_lang_detection_fasttext_get_nlangs(rspamd_fasttext_predict_result_t ud); +unsigned int rspamd_lang_detection_fasttext_get_nlangs(rspamd_fasttext_predict_result_t ud); /** * Get language from fasttext result * @param res diff --git a/src/libmime/message.c b/src/libmime/message.c index f74ca0dca..f2cabf399 100644 --- a/src/libmime/message.c +++ b/src/libmime/message.c @@ -46,14 +46,14 @@ #define SET_PART_RAW(part) ((part)->flags &= ~RSPAMD_MIME_TEXT_PART_FLAG_UTF) #define SET_PART_UTF(part) ((part)->flags |= RSPAMD_MIME_TEXT_PART_FLAG_UTF) -static const gchar gtube_pattern_reject[] = "XJS*C4JDBQADN1.NSBN3*2IDNEN*" - "GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"; -static const gchar gtube_pattern_add_header[] = "YJS*C4JDBQADN1.NSBN3*2IDNEN*" - "GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"; -static const gchar gtube_pattern_rewrite_subject[] = "ZJS*C4JDBQADN1.NSBN3*2IDNEN*" - "GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"; -static const gchar gtube_pattern_no_action[] = "AJS*C4JDBQADN1.NSBN3*2IDNEN*" +static const char gtube_pattern_reject[] = "XJS*C4JDBQADN1.NSBN3*2IDNEN*" + "GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"; +static const char gtube_pattern_add_header[] = "YJS*C4JDBQADN1.NSBN3*2IDNEN*" "GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"; +static const char gtube_pattern_rewrite_subject[] = "ZJS*C4JDBQADN1.NSBN3*2IDNEN*" + "GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"; +static const char gtube_pattern_no_action[] = "AJS*C4JDBQADN1.NSBN3*2IDNEN*" + "GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"; struct rspamd_multipattern *gtube_matcher = NULL; static const uint64_t words_hash_seed = 0xdeadbabe; @@ -69,7 +69,7 @@ rspamd_mime_part_extract_words(struct rspamd_task *task, struct rspamd_mime_text_part *part) { rspamd_stat_token_t *w; - guint i, total_len = 0, short_len = 0; + unsigned int i, total_len = 0, short_len = 0; if (part->utf_words) { rspamd_stem_words(part->utf_words, task->task_pool, part->language, @@ -109,7 +109,7 @@ rspamd_mime_part_extract_words(struct rspamd_task *task, } if (part->utf_words->len) { - gdouble *avg_len_p, *short_len_p; + double *avg_len_p, *short_len_p; avg_len_p = rspamd_mempool_get_variable(task->task_pool, RSPAMD_MEMPOOL_AVG_WORDS_LEN); @@ -152,8 +152,8 @@ rspamd_mime_part_create_words(struct rspamd_task *task, #if U_ICU_VERSION_MAJOR_NUM < 50 /* Hack to prevent hang with Thai in old libicu */ - const gchar *p = part->utf_stripped_content->data, *end; - guint i = 0; + const char *p = part->utf_stripped_content->data, *end; + unsigned int i = 0; end = p + part->utf_stripped_content->len; int32_t uc, sc; @@ -225,10 +225,10 @@ rspamd_mime_part_detect_language(struct rspamd_task *task, static void rspamd_strip_newlines_parse(struct rspamd_task *task, - const gchar *begin, const gchar *pe, + const char *begin, const char *pe, struct rspamd_mime_text_part *part) { - const gchar *p = begin, *c = begin; + const char *p = begin, *c = begin; gboolean crlf_added = FALSE, is_utf = IS_TEXT_PART_UTF(part); gboolean url_open_bracket = FALSE; UChar32 uc; @@ -253,7 +253,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, if (p > c) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) c, p - c); + (const uint8_t *) c, p - c); c = begin + off; p = c; } @@ -290,7 +290,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, state = seen_cr; if (p > c) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) c, p - c); + (const uint8_t *) c, p - c); } crlf_added = FALSE; @@ -300,7 +300,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, /* Double \r\r */ if (!crlf_added) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) " ", 1); + (const uint8_t *) " ", 1); crlf_added = TRUE; g_ptr_array_add(part->newlines, (((gpointer) (goffset) (part->utf_stripped_content->len)))); @@ -328,14 +328,14 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, if (p > c) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) c, p - c); + (const uint8_t *) c, p - c); } c = p + 1; if (IS_TEXT_PART_HTML(part) || !url_open_bracket) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) " ", 1); + (const uint8_t *) " ", 1); g_ptr_array_add(part->newlines, (((gpointer) (goffset) (part->utf_stripped_content->len)))); crlf_added = TRUE; @@ -350,7 +350,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, if (!crlf_added) { if (IS_TEXT_PART_HTML(part) || !url_open_bracket) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) " ", 1); + (const uint8_t *) " ", 1); crlf_added = TRUE; } @@ -366,7 +366,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, /* Double \n\n */ if (!crlf_added) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) " ", 1); + (const uint8_t *) " ", 1); crlf_added = TRUE; g_ptr_array_add(part->newlines, (((gpointer) (goffset) (part->utf_stripped_content->len)))); @@ -430,7 +430,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, if (*p == ' ') { if (!crlf_added) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) " ", 1); + (const uint8_t *) " ", 1); } while (p < pe && *p == ' ') { @@ -461,7 +461,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, switch (state) { case normal_char: g_byte_array_append(part->utf_stripped_content, - (const guint8 *) c, p - c); + (const uint8_t *) c, p - c); while (c < p) { if (*c == ' ') { @@ -489,7 +489,7 @@ rspamd_strip_newlines_parse(struct rspamd_task *task, if (!crlf_added) { g_byte_array_append(part->utf_stripped_content, - (const guint8 *) " ", 1); + (const uint8_t *) " ", 1); g_ptr_array_add(part->newlines, (((gpointer) (goffset) (part->utf_stripped_content->len)))); } @@ -510,8 +510,8 @@ static void rspamd_normalize_text_part(struct rspamd_task *task, struct rspamd_mime_text_part *part) { - const gchar *p, *end; - guint i; + const char *p, *end; + unsigned int i; goffset off; struct rspamd_process_exception *ex; UErrorCode uc_err = U_ZERO_ERROR; @@ -524,7 +524,7 @@ rspamd_normalize_text_part(struct rspamd_task *task, else { part->utf_stripped_content = g_byte_array_sized_new(part->utf_content.len); - p = (const gchar *) part->utf_content.begin; + p = (const char *) part->utf_content.begin; end = p + part->utf_content.len; rspamd_strip_newlines_parse(task, p, end, part); @@ -569,15 +569,15 @@ rspamd_normalize_text_part(struct rspamd_task *task, #define MIN3(a, b, c) ((a) < (b) ? ((a) < (c) ? (a) : (c)) : ((b) < (c) ? (b) : (c))) -static guint +static unsigned int rspamd_words_levenshtein_distance(struct rspamd_task *task, GArray *w1, GArray *w2) { - guint s1len, s2len, x, y, lastdiag, olddiag; - guint *column, ret; + unsigned int s1len, s2len, x, y, lastdiag, olddiag; + unsigned int *column, ret; uint64_t h1, h2; - gint eq; - static const guint max_words = 8192; + int eq; + static const unsigned int max_words = 8192; s1len = w1->len; s2len = w2->len; @@ -596,7 +596,7 @@ rspamd_words_levenshtein_distance(struct rspamd_task *task, } } - column = g_malloc0((s1len + 1) * sizeof(guint)); + column = g_malloc0((s1len + 1) * sizeof(unsigned int)); for (y = 1; y <= s1len; y++) { column[y] = y; @@ -626,12 +626,12 @@ rspamd_words_levenshtein_distance(struct rspamd_task *task, return ret; } -static gint +static int rspamd_multipattern_gtube_cb(struct rspamd_multipattern *mp, - guint strnum, - gint match_start, - gint match_pos, - const gchar *text, + unsigned int strnum, + int match_start, + int match_pos, + const char *text, gsize len, void *context) { @@ -652,7 +652,7 @@ static enum rspamd_action_type rspamd_check_gtube(struct rspamd_task *task, struct rspamd_mime_text_part *part) { static const gsize max_check_size = 8 * 1024; - gint ret; + int ret; enum rspamd_action_type act = METRIC_ACTION_NOACTION; enum rspamd_gtube_patterns_policy policy = task->cfg ? task->cfg->gtube_patterns_policy : RSPAMD_GTUBE_REJECT; g_assert(part != NULL); @@ -719,7 +719,7 @@ rspamd_check_gtube(struct rspamd_task *task, struct rspamd_mime_text_part *part) return act; } -static gint +static int exceptions_compare_func(gconstpointer a, gconstpointer b) { const struct rspamd_process_exception *ea = a, *eb = b; @@ -741,7 +741,7 @@ rspamd_message_process_plain_text_part(struct rspamd_task *task, if (text_part->utf_raw_content != NULL) { /* Just have the same content */ - text_part->utf_content.begin = (const gchar *) text_part->utf_raw_content->data; + text_part->utf_content.begin = (const char *) text_part->utf_raw_content->data; text_part->utf_content.len = text_part->utf_raw_content->len; } else { @@ -845,7 +845,7 @@ rspamd_message_process_text_part_maybe(struct rspamd_task *task, uint16_t *cur_url_order) { struct rspamd_mime_text_part *text_part; - guint flags = 0; + unsigned int flags = 0; enum rspamd_action_type act; /* Skip attachments */ @@ -881,7 +881,7 @@ rspamd_message_process_text_part_maybe(struct rspamd_task *task, act = rspamd_check_gtube(task, text_part); if (act != METRIC_ACTION_NOACTION) { struct rspamd_action *action; - gdouble score = NAN; + double score = NAN; action = rspamd_config_get_action_by_type(task->cfg, act); @@ -950,15 +950,15 @@ rspamd_message_process_text_part_maybe(struct rspamd_task *task, /* Creates message from various data using libmagic to detect type */ static void -rspamd_message_from_data(struct rspamd_task *task, const guchar *start, +rspamd_message_from_data(struct rspamd_task *task, const unsigned char *start, gsize len) { struct rspamd_content_type *ct = NULL; struct rspamd_mime_part *part; const char *mb = "application/octet-stream"; - gchar *mid; + char *mid; rspamd_ftok_t srch, *tok; - gchar cdbuf[1024]; + char cdbuf[1024]; g_assert(start != NULL); @@ -1075,7 +1075,7 @@ rspamd_message_from_data(struct rspamd_task *task, const guchar *start, static void rspamd_message_dtor(struct rspamd_message *msg) { - guint i; + unsigned int i; struct rspamd_mime_part *p; struct rspamd_mime_text_part *tp; @@ -1146,9 +1146,9 @@ rspamd_message_new(struct rspamd_task *task) gboolean rspamd_message_parse(struct rspamd_task *task) { - const gchar *p; + const char *p; gsize len; - guint i; + unsigned int i; GError *err = NULL; uint64_t n[2], seed; @@ -1205,7 +1205,7 @@ rspamd_message_parse(struct rspamd_task *task) enum rspamd_mime_parse_error ret; debug_task("construct mime parser from string length %d", - (gint) task->msg.len); + (int) task->msg.len); ret = rspamd_mime_parse_task(task, &err); switch (ret) { @@ -1257,7 +1257,7 @@ rspamd_message_parse(struct rspamd_task *task) struct rspamd_mime_part *part; /* Blake2b applied to string 'rspamd' */ - static const guchar RSPAMD_ALIGNED(32) hash_key[] = { + static const unsigned char RSPAMD_ALIGNED(32) hash_key[] = { 0xef, 0x43, 0xae, @@ -1350,13 +1350,13 @@ rspamd_message_parse(struct rspamd_task *task) msg_info_task("loaded message; id: <%s>; queue-id: <%s>; size: %z; " "checksum: <%*xs>", MESSAGE_FIELD(task, message_id), task->queue_id, task->msg.len, - (gint) sizeof(MESSAGE_FIELD(task, digest)), MESSAGE_FIELD(task, digest)); + (int) sizeof(MESSAGE_FIELD(task, digest)), MESSAGE_FIELD(task, digest)); } else { msg_info_task("loaded message; id: <%s>; size: %z; " "checksum: <%*xs>", MESSAGE_FIELD(task, message_id), task->msg.len, - (gint) sizeof(MESSAGE_FIELD(task, digest)), MESSAGE_FIELD(task, digest)); + (int) sizeof(MESSAGE_FIELD(task, digest)), MESSAGE_FIELD(task, digest)); } return TRUE; @@ -1394,13 +1394,13 @@ rspamd_mime_text_part_position_compare_func(const void *v1, const void *v2) void rspamd_message_process(struct rspamd_task *task) { - guint i; + unsigned int i; struct rspamd_mime_text_part *p1, *p2; - gdouble diff, *pdiff; - guint tw, *ptw, dw; + double diff, *pdiff; + unsigned int tw, *ptw, dw; struct rspamd_mime_part *part; lua_State *L = NULL; - gint magic_func_pos = -1, content_func_pos = -1, old_top = -1, funcs_top = -1; + int magic_func_pos = -1, content_func_pos = -1, old_top = -1, funcs_top = -1; if (task->cfg) { L = task->cfg->lua_state; @@ -1441,7 +1441,7 @@ void rspamd_message_process(struct rspamd_task *task) struct rspamd_task **ptask; lua_pushcfunction(L, &rspamd_lua_traceback); - gint err_idx = lua_gettop(L); + int err_idx = lua_gettop(L); lua_pushvalue(L, magic_func_pos); pmime = lua_newuserdata(L, sizeof(struct rspamd_mime_part *)); rspamd_lua_setclass(L, rspamd_mimepart_classname, -1); @@ -1455,7 +1455,7 @@ void rspamd_message_process(struct rspamd_task *task) } else { if (lua_istable(L, -1)) { - const gchar *mb; + const char *mb; /* First returned value */ part->detected_ext = rspamd_mempool_strdup(task->task_pool, @@ -1513,7 +1513,7 @@ void rspamd_message_process(struct rspamd_task *task) struct rspamd_task **ptask; lua_pushcfunction(L, &rspamd_lua_traceback); - gint err_idx = lua_gettop(L); + int err_idx = lua_gettop(L); lua_pushvalue(L, content_func_pos); pmime = lua_newuserdata(L, sizeof(struct rspamd_mime_part *)); rspamd_lua_setclass(L, rspamd_mimepart_classname, -1); @@ -1572,8 +1572,8 @@ void rspamd_message_process(struct rspamd_task *task) /* Calculate average words length and number of short words */ struct rspamd_mime_text_part *text_part; - gdouble *var; - guint total_words = 0; + double *var; + unsigned int total_words = 0; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, text_parts), i, text_part) { @@ -1651,7 +1651,7 @@ void rspamd_message_process(struct rspamd_task *task) dw = rspamd_words_levenshtein_distance(task, p1->normalized_hashes, p2->normalized_hashes); - diff = dw / (gdouble) tw; + diff = dw / (double) tw; msg_debug_task( "different words: %d, total words: %d, " @@ -1660,14 +1660,14 @@ void rspamd_message_process(struct rspamd_task *task) diff); pdiff = rspamd_mempool_alloc(task->task_pool, - sizeof(gdouble)); + sizeof(double)); *pdiff = diff; rspamd_mempool_set_variable(task->task_pool, "parts_distance", pdiff, NULL); ptw = rspamd_mempool_alloc(task->task_pool, - sizeof(gint)); + sizeof(int)); *ptw = tw; rspamd_mempool_set_variable(task->task_pool, "total_words", diff --git a/src/libmime/message.h b/src/libmime/message.h index 12761bf91..cb695773e 100644 --- a/src/libmime/message.h +++ b/src/libmime/message.h @@ -75,15 +75,15 @@ enum rspamd_lua_specific_type { }; struct rspamd_lua_specific_part { - gint cbref; + int cbref; enum rspamd_lua_specific_type type; }; struct rspamd_mime_part { struct rspamd_content_type *ct; struct rspamd_content_type *detected_ct; - gchar *detected_type; - gchar *detected_ext; + char *detected_type; + char *detected_ext; struct rspamd_content_disposition *cd; rspamd_ftok_t raw_data; rspamd_ftok_t parsed_data; @@ -93,13 +93,13 @@ struct rspamd_mime_part { struct rspamd_mime_headers_table *raw_headers; GPtrArray *urls; - gchar *raw_headers_str; + char *raw_headers_str; gsize raw_headers_len; enum rspamd_cte cte; - guint flags; + unsigned int flags; enum rspamd_mime_part_type part_type; - guint part_number; + unsigned int part_number; union { struct rspamd_mime_multipart *mp; @@ -109,7 +109,7 @@ struct rspamd_mime_part { struct rspamd_lua_specific_part lua_specific; } specific; - guchar digest[rspamd_cryptobox_HASHBYTES]; + unsigned char digest[rspamd_cryptobox_HASHBYTES]; }; #define RSPAMD_MIME_TEXT_PART_FLAG_UTF (1 << 0) @@ -126,9 +126,9 @@ struct rspamd_mime_part { struct rspamd_mime_text_part { - const gchar *language; + const char *language; GPtrArray *languages; - const gchar *real_charset; + const char *real_charset; /* Raw data in native encoding */ rspamd_ftok_t raw; @@ -147,29 +147,29 @@ struct rspamd_mime_text_part { GList *exceptions; /**< list of offsets of urls */ struct rspamd_mime_part *mime_part; - guint flags; - guint nlines; - guint spaces; - guint nwords; - guint non_ascii_chars; - guint ascii_chars; - guint double_spaces; - guint non_spaces; - guint empty_lines; - guint capital_letters; - guint numeric_characters; - guint unicode_scripts; + unsigned int flags; + unsigned int nlines; + unsigned int spaces; + unsigned int nwords; + unsigned int non_ascii_chars; + unsigned int ascii_chars; + unsigned int double_spaces; + unsigned int non_spaces; + unsigned int empty_lines; + unsigned int capital_letters; + unsigned int numeric_characters; + unsigned int unicode_scripts; }; struct rspamd_message_raw_headers_content { - const gchar *begin; + const char *begin; gsize len; - const gchar *body_start; + const char *body_start; }; struct rspamd_message { - const gchar *message_id; - gchar *subject; + const char *message_id; + char *subject; GPtrArray *parts; /**< list of parsed parts */ GPtrArray *text_parts; /**< list of text parts */ @@ -181,7 +181,7 @@ struct rspamd_message { struct rspamd_task *task; GPtrArray *rcpt_mime; GPtrArray *from_mime; - guchar digest[16]; + unsigned char digest[16]; enum rspamd_newlines_type nlines_type; /**< type of newlines (detected on most of headers */ ref_entry_t ref; }; @@ -208,14 +208,14 @@ void rspamd_message_process(struct rspamd_task *task); * @param str * @return */ -enum rspamd_cte rspamd_cte_from_string(const gchar *str); +enum rspamd_cte rspamd_cte_from_string(const char *str); /** * Converts cte to string * @param ct * @return */ -const gchar *rspamd_cte_to_string(enum rspamd_cte ct); +const char *rspamd_cte_to_string(enum rspamd_cte ct); struct rspamd_message *rspamd_message_new(struct rspamd_task *task); diff --git a/src/libmime/mime_encoding.c b/src/libmime/mime_encoding.c index 90d81b125..8b4c45436 100644 --- a/src/libmime/mime_encoding.c +++ b/src/libmime/mime_encoding.c @@ -44,9 +44,9 @@ static rspamd_regexp_t *utf_compatible_re = NULL; struct rspamd_charset_substitution { - const gchar *input; - const gchar *canon; - gint flags; + const char *input; + const char *canon; + int flags; }; #include "mime_encoding_list.h" @@ -72,7 +72,7 @@ static const UChar iso_8859_16_map[] = { 0x0171, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF}; struct rspamd_charset_converter { - gchar *canon_name; + char *canon_name; union { UConverter *conv; const UChar *cnv_table; @@ -115,7 +115,7 @@ rspamd_converter_to_uchars(struct rspamd_charset_converter *cnv, } else { UChar *d = dest, *dend = dest + destCapacity; - const guchar *p = src, *end = src + srcLength; + const unsigned char *p = src, *end = src + srcLength; while (p < end && d < dend) { if (*p <= 127) { @@ -134,12 +134,12 @@ rspamd_converter_to_uchars(struct rspamd_charset_converter *cnv, struct rspamd_charset_converter * -rspamd_mime_get_converter_cached(const gchar *enc, +rspamd_mime_get_converter_cached(const char *enc, rspamd_mempool_t *pool, gboolean is_canon, UErrorCode *err) { - const gchar *canon_name; + const char *canon_name; static rspamd_lru_hash_t *cache; struct rspamd_charset_converter *conv; @@ -208,7 +208,7 @@ rspamd_mime_get_converter_cached(const gchar *enc, static void rspamd_mime_encoding_substitute_init(void) { - guint i; + unsigned int i; sub_hash = g_hash_table_new(rspamd_strcase_hash, rspamd_strcase_equal); @@ -218,14 +218,14 @@ rspamd_mime_encoding_substitute_init(void) } static void -rspamd_charset_normalize(gchar *in) +rspamd_charset_normalize(char *in) { /* * This is a simple routine to validate input charset * we just check that charset starts with alphanumeric and ends * with alphanumeric */ - gchar *begin, *end; + char *begin, *end; gboolean changed = FALSE; begin = in; @@ -248,12 +248,12 @@ rspamd_charset_normalize(gchar *in) } } -const gchar * +const char * rspamd_mime_detect_charset(const rspamd_ftok_t *in, rspamd_mempool_t *pool) { - gchar *ret = NULL, *h, *t; + char *ret = NULL, *h, *t; struct rspamd_charset_substitution *s; - const gchar *cset; + const char *cset; rspamd_ftok_t utf8_tok; UErrorCode uc_err = U_ZERO_ERROR; @@ -321,12 +321,12 @@ rspamd_mime_detect_charset(const rspamd_ftok_t *in, rspamd_mempool_t *pool) return cset; } -gchar * +char * rspamd_mime_text_to_utf8(rspamd_mempool_t *pool, - gchar *input, gsize len, const gchar *in_enc, + char *input, gsize len, const char *in_enc, gsize *olen, GError **err) { - gchar *d; + char *d; int32_t r, clen, dlen; UChar *tmp_buf; @@ -403,10 +403,10 @@ static gboolean rspamd_mime_text_part_utf8_convert(struct rspamd_task *task, struct rspamd_mime_text_part *text_part, GByteArray *input, - const gchar *charset, + const char *charset, GError **err) { - gchar *d; + char *d; int32_t r, clen, dlen, uc_len; UChar *tmp_buf; UErrorCode uc_err = U_ZERO_ERROR; @@ -482,7 +482,7 @@ gboolean rspamd_mime_to_utf8_byte_array(GByteArray *in, GByteArray *out, rspamd_mempool_t *pool, - const gchar *enc) + const char *enc) { int32_t r, clen, dlen; UChar *tmp_buf; @@ -511,7 +511,7 @@ rspamd_mime_to_utf8_byte_array(GByteArray *in, RSPAMD_FTOK_FROM_STR(&charset_tok, enc); - if (rspamd_mime_charset_utf_check(&charset_tok, (gchar *) in->data, in->len, + if (rspamd_mime_charset_utf_check(&charset_tok, (char *) in->data, in->len, FALSE)) { g_byte_array_set_size(out, in->len); memcpy(out->data, in->data, out->len); @@ -556,9 +556,9 @@ rspamd_mime_to_utf8_byte_array(GByteArray *in, return TRUE; } -void rspamd_mime_charset_utf_enforce(gchar *in, gsize len) +void rspamd_mime_charset_utf_enforce(char *in, gsize len) { - gchar *p, *end; + char *p, *end; goffset err_offset; UChar32 uc = 0; @@ -594,12 +594,12 @@ void rspamd_mime_charset_utf_enforce(gchar *in, gsize len) } const char * -rspamd_mime_charset_find_by_content(const gchar *in, gsize inlen, +rspamd_mime_charset_find_by_content(const char *in, gsize inlen, bool check_utf8) { int nconsumed; bool is_reliable; - const gchar *ced_name; + const char *ced_name; if (check_utf8) { if (rspamd_fast_utf8_validate(in, inlen) == 0) { @@ -621,13 +621,13 @@ rspamd_mime_charset_find_by_content(const gchar *in, gsize inlen, } static const char * -rspamd_mime_charset_find_by_content_maybe_split(const gchar *in, gsize inlen) +rspamd_mime_charset_find_by_content_maybe_split(const char *in, gsize inlen) { if (inlen < RSPAMD_CHARSET_MAX_CONTENT * 3) { return rspamd_mime_charset_find_by_content(in, inlen, false); } else { - const gchar *c1, *c2, *c3; + const char *c1, *c2, *c3; c1 = rspamd_mime_charset_find_by_content(in, RSPAMD_CHARSET_MAX_CONTENT, false); c2 = rspamd_mime_charset_find_by_content(in + inlen / 2, @@ -678,9 +678,9 @@ rspamd_mime_charset_find_by_content_maybe_split(const gchar *in, gsize inlen) gboolean rspamd_mime_charset_utf_check(rspamd_ftok_t *charset, - gchar *in, gsize len, gboolean content_check) + char *in, gsize len, gboolean content_check) { - const gchar *real_charset; + const char *real_charset; if (utf_compatible_re == NULL) { utf_compatible_re = rspamd_regexp_new( @@ -729,7 +729,7 @@ void rspamd_mime_text_part_maybe_convert(struct rspamd_task *task, struct rspamd_mime_text_part *text_part) { GError *err = NULL; - const gchar *charset = NULL; + const char *charset = NULL; gboolean checked = FALSE, need_charset_heuristic = TRUE, valid_utf8 = FALSE; GByteArray *part_content; rspamd_ftok_t charset_tok; diff --git a/src/libmime/mime_encoding.h b/src/libmime/mime_encoding.h index 88e25efa6..f03ac36f4 100644 --- a/src/libmime/mime_encoding.h +++ b/src/libmime/mime_encoding.h @@ -36,8 +36,8 @@ struct rspamd_charset_converter; * @param in * @return */ -const gchar *rspamd_mime_detect_charset(const rspamd_ftok_t *in, - rspamd_mempool_t *pool); +const char *rspamd_mime_detect_charset(const rspamd_ftok_t *in, + rspamd_mempool_t *pool); /** * Convert text chunk to utf-8. Input encoding is substituted using @@ -52,9 +52,9 @@ const gchar *rspamd_mime_detect_charset(const rspamd_ftok_t *in, * @param err * @return */ -gchar *rspamd_mime_text_to_utf8(rspamd_mempool_t *pool, - gchar *input, gsize len, const gchar *in_enc, - gsize *olen, GError **err); +char *rspamd_mime_text_to_utf8(rspamd_mempool_t *pool, + char *input, gsize len, const char *in_enc, + gsize *olen, GError **err); /** * Converts data from `in` to `out`, @@ -70,7 +70,7 @@ gchar *rspamd_mime_text_to_utf8(rspamd_mempool_t *pool, gboolean rspamd_mime_to_utf8_byte_array(GByteArray *in, GByteArray *out, rspamd_mempool_t *pool, - const gchar *enc); + const char *enc); /** * Maybe convert part to utf-8 @@ -89,7 +89,7 @@ void rspamd_mime_text_part_maybe_convert(struct rspamd_task *task, * @return */ gboolean rspamd_mime_charset_utf_check(rspamd_ftok_t *charset, - gchar *in, gsize len, + char *in, gsize len, gboolean content_check); /** @@ -98,7 +98,7 @@ gboolean rspamd_mime_charset_utf_check(rspamd_ftok_t *charset, * @param in * @param len */ -void rspamd_mime_charset_utf_enforce(gchar *in, gsize len); +void rspamd_mime_charset_utf_enforce(char *in, gsize len); /** * Gets cached converter @@ -109,7 +109,7 @@ void rspamd_mime_charset_utf_enforce(gchar *in, gsize len); * @return converter */ struct rspamd_charset_converter *rspamd_mime_get_converter_cached( - const gchar *enc, + const char *enc, rspamd_mempool_t *pool, gboolean is_canon, UErrorCode *err); @@ -138,7 +138,7 @@ rspamd_converter_to_uchars(struct rspamd_charset_converter *cnv, * @param inlen * @return detected charset name or NULL */ -const char *rspamd_mime_charset_find_by_content(const gchar *in, gsize inlen, +const char *rspamd_mime_charset_find_by_content(const char *in, gsize inlen, bool check_utf8); #ifdef __cplusplus diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c index 9ff01c3b0..f77017ff2 100644 --- a/src/libmime/mime_expressions.c +++ b/src/libmime/mime_expressions.c @@ -88,10 +88,10 @@ static gboolean rspamd_has_symbol_expr(struct rspamd_task *task, GArray *args, void *unused); -static rspamd_expression_atom_t *rspamd_mime_expr_parse(const gchar *line, gsize len, +static rspamd_expression_atom_t *rspamd_mime_expr_parse(const char *line, gsize len, rspamd_mempool_t *pool, gpointer ud, GError **err); -static gdouble rspamd_mime_expr_process(void *ud, rspamd_expression_atom_t *atom); -static gint rspamd_mime_expr_priority(rspamd_expression_atom_t *atom); +static double rspamd_mime_expr_process(void *ud, rspamd_expression_atom_t *atom); +static int rspamd_mime_expr_priority(rspamd_expression_atom_t *atom); static void rspamd_mime_expr_destroy(rspamd_expression_atom_t *atom); /** @@ -99,11 +99,11 @@ static void rspamd_mime_expr_destroy(rspamd_expression_atom_t *atom); */ struct rspamd_regexp_atom { enum rspamd_re_type type; /**< regexp type */ - gchar *regexp_text; /**< regexp text representation */ + char *regexp_text; /**< regexp text representation */ rspamd_regexp_t *regexp; /**< regexp structure */ union { - const gchar *header; /**< header name for header regexps */ - const gchar *selector; /**< selector name for lua selector regexp */ + const char *header; /**< header name for header regexps */ + const char *selector; /**< selector name for lua selector regexp */ } extra; gboolean is_test; /**< true if this expression must be tested */ gboolean is_strong; /**< true if headers search must be case sensitive */ @@ -114,7 +114,7 @@ struct rspamd_regexp_atom { * Rspamd expression function */ struct rspamd_function_atom { - gchar *name; /**< name of function */ + char *name; /**< name of function */ GArray *args; /**< its args */ }; @@ -126,12 +126,12 @@ enum rspamd_mime_atom_type { }; struct rspamd_mime_atom { - gchar *str; + char *str; union { struct rspamd_regexp_atom *re; struct rspamd_function_atom *func; - const gchar *lua_function; - gint lua_cbref; + const char *lua_function; + int lua_cbref; } d; enum rspamd_mime_atom_type type; }; @@ -141,7 +141,7 @@ struct rspamd_mime_atom { * Sorted by name to use bsearch */ static struct _fl { - const gchar *name; + const char *name; rspamd_internal_func_t func; void *user_data; } rspamd_functions_list[] = { @@ -180,7 +180,7 @@ static uint32_t functions_number = sizeof(rspamd_functions_list) / static gboolean list_allocated = FALSE; /* Bsearch routine */ -static gint +static int fl_cmp(const void *s1, const void *s2) { struct _fl *fl1 = (struct _fl *) s1; @@ -196,7 +196,7 @@ rspamd_mime_expr_quark(void) #define TYPE_CHECK(str, type, len) (sizeof(type) - 1 == (len) && rspamd_lc_cmp((str), (type), (len)) == 0) static gboolean -rspamd_parse_long_option(const gchar *start, gsize len, +rspamd_parse_long_option(const char *start, gsize len, struct rspamd_regexp_atom *a) { gboolean ret = FALSE; @@ -277,11 +277,11 @@ rspamd_parse_long_option(const gchar *start, gsize len, * Rspamd regexp utility functions */ static struct rspamd_regexp_atom * -rspamd_mime_expr_parse_regexp_atom(rspamd_mempool_t *pool, const gchar *line, +rspamd_mime_expr_parse_regexp_atom(rspamd_mempool_t *pool, const char *line, struct rspamd_config *cfg) { - const gchar *begin, *end, *p, *src, *start, *brace; - gchar *dbegin, *dend, *extra = NULL; + const char *begin, *end, *p, *src, *start, *brace; + char *dbegin, *dend, *extra = NULL; struct rspamd_regexp_atom *result; GError *err = NULL; GString *re_flags; @@ -531,11 +531,11 @@ rspamd_mime_expr_parse_regexp_atom(rspamd_mempool_t *pool, const gchar *line, } struct rspamd_function_atom * -rspamd_mime_expr_parse_function_atom(rspamd_mempool_t *pool, const gchar *input) +rspamd_mime_expr_parse_function_atom(rspamd_mempool_t *pool, const char *input) { - const gchar *obrace, *ebrace, *p, *c; - gchar t, *databuf; - guint len; + const char *obrace, *ebrace, *p, *c; + char t, *databuf; + unsigned int len; struct rspamd_function_atom *res; struct expression_argument arg; GError *err = NULL; @@ -645,17 +645,17 @@ rspamd_mime_expr_parse_function_atom(rspamd_mempool_t *pool, const gchar *input) } static rspamd_expression_atom_t * -rspamd_mime_expr_parse(const gchar *line, gsize len, +rspamd_mime_expr_parse(const char *line, gsize len, rspamd_mempool_t *pool, gpointer ud, GError **err) { rspamd_expression_atom_t *a = NULL; struct rspamd_mime_atom *mime_atom = NULL; - const gchar *p, *end, *c = NULL; + const char *p, *end, *c = NULL; struct rspamd_mime_expr_ud *real_ud = (struct rspamd_mime_expr_ud *) ud; struct rspamd_config *cfg; rspamd_regexp_t *own_re; - gchar t; - gint type = MIME_ATOM_REGEXP, obraces = 0, ebraces = 0; + char t; + int type = MIME_ATOM_REGEXP, obraces = 0, ebraces = 0; enum { in_header = 0, got_slash, @@ -786,8 +786,8 @@ rspamd_mime_expr_parse(const gchar *line, gsize len, g_set_error(err, rspamd_mime_expr_quark(), 100, "cannot parse" " mime atom '%s' when reading symbol '%c' at offset %d, " "near %.*s", - line, t, (gint) (p - line), - (gint) MIN(end - p, 10), p); + line, t, (int) (p - line), + (int) MIN(end - p, 10), p); return NULL; case end_atom: goto set; @@ -817,7 +817,7 @@ set: goto err; } else { - gint lua_cbref = -1; + int lua_cbref = -1; /* Check regexp condition */ if (real_ud->conf_obj != NULL) { @@ -1011,11 +1011,11 @@ err: return NULL; } -static gint +static int rspamd_mime_expr_process_regexp(struct rspamd_regexp_atom *re, struct rspamd_task *task) { - gint ret; + int ret; if (re == NULL) { msg_info_task("invalid regexp passed"); @@ -1057,11 +1057,11 @@ rspamd_mime_expr_process_regexp(struct rspamd_regexp_atom *re, } -static gint +static int rspamd_mime_expr_priority(rspamd_expression_atom_t *atom) { struct rspamd_mime_atom *mime_atom = atom->data; - gint ret = 0; + int ret = 0; switch (mime_atom->type) { case MIME_ATOM_INTERNAL_FUNCTION: @@ -1137,13 +1137,13 @@ rspamd_mime_expr_process_function(struct rspamd_function_atom *func, return selected->func(task, func->args, selected->user_data); } -static gdouble +static double rspamd_mime_expr_process(void *ud, rspamd_expression_atom_t *atom) { struct rspamd_task *task = (struct rspamd_task *) ud; struct rspamd_mime_atom *mime_atom; lua_State *L; - gdouble ret = 0; + double ret = 0; g_assert(task != NULL); g_assert(atom != NULL); @@ -1181,7 +1181,7 @@ rspamd_mime_expr_process(void *ud, rspamd_expression_atom_t *atom) } } else if (mime_atom->type == MIME_ATOM_LOCAL_LUA_FUNCTION) { - gint err_idx; + int err_idx; L = task->cfg->lua_state; lua_pushcfunction(L, &rspamd_lua_traceback); @@ -1218,7 +1218,7 @@ rspamd_mime_expr_process(void *ud, rspamd_expression_atom_t *atom) return ret; } -void register_expression_function(const gchar *name, +void register_expression_function(const char *name, rspamd_internal_func_t func, void *user_data) { @@ -1276,9 +1276,9 @@ rspamd_header_exists(struct rspamd_task *task, GArray *args, void *unused) } rh = rspamd_message_get_header_array(task, - (gchar *) arg->data, FALSE); + (char *) arg->data, FALSE); - debug_task("try to get header %s: %d", (gchar *) arg->data, + debug_task("try to get header %s: %d", (char *) arg->data, (rh != NULL)); if (rh) { @@ -1298,9 +1298,9 @@ rspamd_header_exists(struct rspamd_task *task, GArray *args, void *unused) gboolean rspamd_parts_distance(struct rspamd_task *task, GArray *args, void *unused) { - gint threshold, threshold2 = -1; + int threshold, threshold2 = -1; struct expression_argument *arg; - gdouble *pdiff, diff; + double *pdiff, diff; if (args == NULL || args->len == 0) { debug_task("no threshold is specified, assume it 100"); @@ -1314,10 +1314,10 @@ rspamd_parts_distance(struct rspamd_task *task, GArray *args, void *unused) return FALSE; } - threshold = strtoul((gchar *) arg->data, NULL, 10); + threshold = strtoul((char *) arg->data, NULL, 10); if (errno != 0) { msg_info_task("bad numeric value for threshold \"%s\", assume it 100", - (gchar *) arg->data); + (char *) arg->data); threshold = 100; } if (args->len >= 2) { @@ -1328,10 +1328,10 @@ rspamd_parts_distance(struct rspamd_task *task, GArray *args, void *unused) } errno = 0; - threshold2 = strtoul((gchar *) arg->data, NULL, 10); + threshold2 = strtoul((char *) arg->data, NULL, 10); if (errno != 0) { msg_info_task("bad numeric value for threshold \"%s\", ignore it", - (gchar *) arg->data); + (char *) arg->data); threshold2 = -1; } } @@ -1366,13 +1366,13 @@ rspamd_parts_distance(struct rspamd_task *task, GArray *args, void *unused) } struct addr_list { - const gchar *name; - guint namelen; - const gchar *addr; - guint addrlen; + const char *name; + unsigned int namelen; + const char *addr; + unsigned int addrlen; }; -static gint +static int addr_list_cmp_func(const void *a, const void *b) { const struct addr_list *addra = (struct addr_list *) a, @@ -1396,7 +1396,7 @@ rspamd_recipients_distance(struct rspamd_task *task, GArray *args, struct rspamd_email_address *cur; double threshold; struct addr_list *ar; - gint num, i, hits = 0; + int num, i, hits = 0; if (args == NULL) { msg_warn_task("no parameters to function"); @@ -1410,11 +1410,11 @@ rspamd_recipients_distance(struct rspamd_task *task, GArray *args, } errno = 0; - threshold = strtod((gchar *) arg->data, NULL); + threshold = strtod((char *) arg->data, NULL); if (errno != 0) { msg_warn_task("invalid numeric value '%s': %s", - (gchar *) arg->data, + (char *) arg->data, strerror(errno)); return FALSE; } @@ -1469,7 +1469,7 @@ rspamd_has_only_html_part(struct rspamd_task *task, GArray *args, void *unused) { struct rspamd_mime_text_part *p; - guint i, cnt_html = 0, cnt_txt = 0; + unsigned int i, cnt_html = 0, cnt_txt = 0; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, text_parts), i, p) { @@ -1492,7 +1492,7 @@ is_recipient_list_sorted(GPtrArray *ar) struct rspamd_email_address *addr; gboolean res = TRUE; rspamd_ftok_t cur, prev; - gint i; + int i; /* Do not check to short address lists */ if (ar == NULL || ar->len < MIN_RCPT_TO_COMPARE) { @@ -1540,7 +1540,7 @@ rspamd_compare_transfer_encoding(struct rspamd_task *task, void *unused) { struct expression_argument *arg; - guint i; + unsigned int i; struct rspamd_mime_part *part; enum rspamd_cte cte; @@ -1586,7 +1586,7 @@ rspamd_has_html_tag(struct rspamd_task *task, GArray *args, void *unused) { struct rspamd_mime_text_part *p; struct expression_argument *arg; - guint i; + unsigned int i; gboolean res = FALSE; if (args == NULL) { @@ -1618,7 +1618,7 @@ gboolean rspamd_has_fake_html(struct rspamd_task *task, GArray *args, void *unused) { struct rspamd_mime_text_part *p; - guint i; + unsigned int i; gboolean res = FALSE; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, text_parts), i, p) @@ -1656,10 +1656,10 @@ rspamd_raw_header_exists(struct rspamd_task *task, GArray *args, void *unused) static gboolean match_smtp_data(struct rspamd_task *task, struct expression_argument *arg, - const gchar *what, gsize len) + const char *what, gsize len) { rspamd_regexp_t *re; - gint r = 0; + int r = 0; if (arg->type == EXPRESSION_ARGUMENT_REGEXP) { /* This is a regexp */ @@ -1690,8 +1690,8 @@ rspamd_check_smtp_data(struct rspamd_task *task, GArray *args, void *unused) struct expression_argument *arg; struct rspamd_email_address *addr = NULL; GPtrArray *rcpts = NULL; - const gchar *type, *str = NULL; - guint i; + const char *type, *str = NULL; + unsigned int i; if (args == NULL) { msg_warn_task("no parameters to function"); @@ -1799,7 +1799,7 @@ rspamd_check_smtp_data(struct rspamd_task *task, GArray *args, void *unused) } static inline gboolean -rspamd_check_ct_attr(const gchar *begin, gsize len, +rspamd_check_ct_attr(const char *begin, gsize len, struct expression_argument *arg_pattern) { rspamd_regexp_t *re; @@ -1840,10 +1840,10 @@ rspamd_content_type_compare_param(struct rspamd_task *task, struct expression_argument *arg, *arg1, *arg_pattern; gboolean recursive = FALSE; struct rspamd_mime_part *cur_part; - guint i; + unsigned int i; rspamd_ftok_t srch; struct rspamd_content_type_param *found = NULL, *cur; - const gchar *param_name; + const char *param_name; if (args == NULL || args->len < 2) { msg_warn_task("no parameters to function"); @@ -1923,10 +1923,10 @@ rspamd_content_type_has_param(struct rspamd_task *task, struct expression_argument *arg, *arg1; gboolean recursive = FALSE; struct rspamd_mime_part *cur_part; - guint i; + unsigned int i; rspamd_ftok_t srch; struct rspamd_content_type_param *found = NULL; - const gchar *param_name; + const char *param_name; if (args == NULL || args->len < 1) { msg_warn_task("no parameters to function"); @@ -1999,8 +1999,8 @@ rspamd_content_type_check(struct rspamd_task *task, rspamd_regexp_t *re; struct expression_argument *arg1, *arg_pattern; struct rspamd_content_type *ct; - gint r = 0; - guint i; + int r = 0; + unsigned int i; gboolean recursive = FALSE; struct rspamd_mime_part *cur_part; @@ -2092,7 +2092,7 @@ compare_subtype(struct rspamd_task *task, struct rspamd_content_type *ct, { rspamd_regexp_t *re; rspamd_ftok_t srch; - gint r = 0; + int r = 0; if (subtype == NULL || ct == NULL) { msg_warn_task("invalid parameters passed"); @@ -2120,7 +2120,7 @@ compare_subtype(struct rspamd_task *task, struct rspamd_content_type *ct, } static gboolean -compare_len(struct rspamd_mime_part *part, guint min, guint max) +compare_len(struct rspamd_mime_part *part, unsigned int min, unsigned int max) { if (min == 0 && max == 0) { return TRUE; @@ -2141,15 +2141,15 @@ static gboolean common_has_content_part(struct rspamd_task *task, struct expression_argument *param_type, struct expression_argument *param_subtype, - gint min_len, - gint max_len) + int min_len, + int max_len) { rspamd_regexp_t *re; struct rspamd_mime_part *part; struct rspamd_content_type *ct; rspamd_ftok_t srch; - gint r = 0; - guint i; + int r = 0; + unsigned int i; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, parts), i, part) { @@ -2224,7 +2224,7 @@ rspamd_has_content_part_len(struct rspamd_task *task, void *unused) { struct expression_argument *param_type = NULL, *param_subtype = NULL; - gint min = 0, max = 0; + int min = 0, max = 0; struct expression_argument *arg; if (args == NULL) { @@ -2245,7 +2245,7 @@ rspamd_has_content_part_len(struct rspamd_task *task, if (errno != 0) { msg_warn_task("invalid numeric value '%s': %s", - (gchar *) arg->data, + (char *) arg->data, strerror(errno)); return FALSE; } @@ -2257,7 +2257,7 @@ rspamd_has_content_part_len(struct rspamd_task *task, if (errno != 0) { msg_warn_task("invalid numeric value '%s': %s", - (gchar *) arg->data, + (char *) arg->data, strerror(errno)); return FALSE; } @@ -2274,7 +2274,7 @@ rspamd_is_empty_body(struct rspamd_task *task, void *unused) { struct rspamd_mime_part *part; - guint i; + unsigned int i; PTR_ARRAY_FOREACH(MESSAGE_FIELD(task, parts), i, part) { @@ -2320,7 +2320,7 @@ rspamd_has_flag_expr(struct rspamd_task *task, { gboolean found = FALSE, result = FALSE; struct expression_argument *flag_arg; - const gchar *flag_str; + const char *flag_str; if (args == NULL) { msg_warn_task("no parameters to function"); @@ -2334,7 +2334,7 @@ rspamd_has_flag_expr(struct rspamd_task *task, return FALSE; } - flag_str = (const gchar *) flag_arg->data; + flag_str = (const char *) flag_arg->data; TASK_GET_FLAG(flag_str, "pass_all", RSPAMD_TASK_FLAG_PASS_ALL); TASK_GET_FLAG(flag_str, "no_log", RSPAMD_TASK_FLAG_NO_LOG); @@ -2368,7 +2368,7 @@ rspamd_has_symbol_expr(struct rspamd_task *task, void *unused) { struct expression_argument *sym_arg; - const gchar *symbol_str; + const char *symbol_str; if (args == NULL) { msg_warn_task("no parameters to function"); @@ -2382,7 +2382,7 @@ rspamd_has_symbol_expr(struct rspamd_task *task, return FALSE; } - symbol_str = (const gchar *) sym_arg->data; + symbol_str = (const char *) sym_arg->data; if (rspamd_task_find_symbol_result(task, symbol_str, NULL)) { return TRUE; diff --git a/src/libmime/mime_expressions.h b/src/libmime/mime_expressions.h index a2ea3fea4..106099803 100644 --- a/src/libmime/mime_expressions.h +++ b/src/libmime/mime_expressions.h @@ -47,7 +47,7 @@ typedef gboolean (*rspamd_internal_func_t)(struct rspamd_task *, * @param name name of function * @param func pointer to function */ -void register_expression_function(const gchar *name, +void register_expression_function(const char *name, rspamd_internal_func_t func, void *user_data); @@ -56,7 +56,7 @@ void register_expression_function(const gchar *name, * @param limit new limit in bytes * @return old limit value */ -guint rspamd_mime_expression_set_re_limit(guint limit); +unsigned int rspamd_mime_expression_set_re_limit(unsigned int limit); #ifdef __cplusplus } diff --git a/src/libmime/mime_headers.c b/src/libmime/mime_headers.c index 2bdab38c2..e4bf4db06 100644 --- a/src/libmime/mime_headers.c +++ b/src/libmime/mime_headers.c @@ -24,7 +24,7 @@ #include "libutil/util.h" #include <unicode/utf8.h> -KHASH_INIT(rspamd_mime_headers_htb, gchar *, +KHASH_INIT(rspamd_mime_headers_htb, char *, struct rspamd_mime_header *, 1, rspamd_strcase_hash, rspamd_strcase_equal); @@ -38,9 +38,9 @@ rspamd_mime_header_check_special(struct rspamd_task *task, struct rspamd_mime_header *rh) { uint64_t h; - const gchar *p, *end; - gchar *id; - gint max_recipients = -1, len; + const char *p, *end; + char *id; + int max_recipients = -1, len; if (task->cfg) { max_recipients = task->cfg->max_recipients; @@ -93,7 +93,7 @@ rspamd_mime_header_check_special(struct rspamd_task *task, } if (end > p) { - gchar *d; + char *d; if (*(end - 1) == '>') { end--; @@ -186,16 +186,16 @@ rspamd_mime_header_add(struct rspamd_task *task, void rspamd_mime_headers_process(struct rspamd_task *task, struct rspamd_mime_headers_table *target, struct rspamd_mime_header **order_ptr, - const gchar *in, gsize len, + const char *in, gsize len, gboolean check_newlines) { struct rspamd_mime_header *nh = NULL; - const gchar *p, *c, *end; - gchar *tmp, *tp; - gint state = 0, l, next_state = 100, err_state = 100, t_state; + const char *p, *c, *end; + char *tmp, *tp; + int state = 0, l, next_state = 100, err_state = 100, t_state; gboolean valid_folding = FALSE, shift_by_one = FALSE; - guint nlines_count[RSPAMD_TASK_NEWLINES_MAX]; - guint norder = 0; + unsigned int nlines_count[RSPAMD_TASK_NEWLINES_MAX]; + unsigned int norder = 0; p = in; end = p + len; @@ -485,12 +485,12 @@ void rspamd_mime_headers_process(struct rspamd_task *task, LL_REVERSE(*order_ptr); if (check_newlines) { - guint max_cnt = 0; - gint sel = 0; + unsigned int max_cnt = 0; + int sel = 0; rspamd_cryptobox_hash_state_t hs; - guchar hout[rspamd_cryptobox_HASHBYTES], *hexout; + unsigned char hout[rspamd_cryptobox_HASHBYTES], *hexout; - for (gint i = RSPAMD_TASK_NEWLINES_CR; i < RSPAMD_TASK_NEWLINES_MAX; i++) { + for (int i = RSPAMD_TASK_NEWLINES_CR; i < RSPAMD_TASK_NEWLINES_MAX; i++) { if (nlines_count[i] > max_cnt) { max_cnt = nlines_count[i]; sel = i; @@ -572,7 +572,7 @@ static void rspamd_mime_header_sanity_check(GString *str) { gsize i; - gchar t; + char t; for (i = 0; i < str->len; i++) { t = str->str[i]; @@ -588,20 +588,20 @@ rspamd_mime_header_sanity_check(GString *str) } } -gchar * -rspamd_mime_header_decode(rspamd_mempool_t *pool, const gchar *in, +char * +rspamd_mime_header_decode(rspamd_mempool_t *pool, const char *in, gsize inlen, gboolean *invalid_utf) { GString *out; - const guchar *c, *p, *end; - const gchar *tok_start = NULL; + const unsigned char *c, *p, *end; + const char *tok_start = NULL; gsize tok_len = 0, pos; GByteArray *token = NULL, *decoded; rspamd_ftok_t cur_charset = {0, NULL}, old_charset = {0, NULL}; - gint encoding; + int encoding; gssize r; - guint qmarks = 0; - gchar *ret; + unsigned int qmarks = 0; + char *ret; enum { parse_normal = 0, got_eqsign, @@ -628,7 +628,7 @@ rspamd_mime_header_decode(rspamd_mempool_t *pool, const gchar *in, state = got_eqsign; } else if (*p >= 128) { - gint off = 0; + int off = 0; UChar32 uc; /* Unencoded character */ g_string_append_len(out, c, p - c); @@ -815,17 +815,17 @@ rspamd_mime_header_decode(rspamd_mempool_t *pool, const gchar *in, return ret; } -gchar * -rspamd_mime_header_encode(const gchar *in, gsize len) +char * +rspamd_mime_header_encode(const char *in, gsize len) { - const gchar *p = in, *end = in + len; - gchar *out, encode_buf[80 * sizeof(uint32_t)]; + const char *p = in, *end = in + len; + char *out, encode_buf[80 * sizeof(uint32_t)]; GString *res; gboolean need_encoding = FALSE; /* Check if we need to encode */ while (p < end) { - if ((((guchar) *p) & 0x80) != 0) { + if ((((unsigned char) *p) & 0x80) != 0) { need_encoding = TRUE; break; } @@ -839,17 +839,17 @@ rspamd_mime_header_encode(const gchar *in, gsize len) else { /* Need encode */ gsize ulen, pos; - gint r; - const gchar *prev; + int r; + const char *prev; /* Choose step: =?UTF-8?Q?<qp>?= should be less than 76 chars */ - guint step = (76 - 12) / 3 + 1; + unsigned int step = (76 - 12) / 3 + 1; ulen = g_utf8_strlen(in, len); res = g_string_sized_new(len * 2 + 1); pos = 0; prev = in; /* Adjust chunk size for unicode average length */ - step *= 1.0 * ulen / (gdouble) len; + step *= 1.0 * ulen / (double) len; while (pos < ulen) { p = g_utf8_offset_to_pointer(in, pos); @@ -898,8 +898,8 @@ rspamd_mime_header_encode(const gchar *in, gsize len) return out; } -gchar * -rspamd_mime_message_id_generate(const gchar *fqdn) +char * +rspamd_mime_message_id_generate(const char *fqdn) { GString *out; uint64_t rnd, clk; @@ -909,8 +909,8 @@ rspamd_mime_message_id_generate(const gchar *fqdn) clk = rspamd_get_calendar_ticks() * 1e6; rspamd_printf_gstring(out, "%*bs.%*bs@%s", - (gint) sizeof(uint64_t) - 3, (guchar *) &clk, - (gint) sizeof(uint64_t), (gchar *) &rnd, + (int) sizeof(uint64_t) - 3, (unsigned char *) &clk, + (int) sizeof(uint64_t), (char *) &rnd, fqdn); return g_string_free(out, FALSE); @@ -918,7 +918,7 @@ rspamd_mime_message_id_generate(const gchar *fqdn) struct rspamd_mime_header * rspamd_message_get_header_from_hash(struct rspamd_mime_headers_table *hdrs, - const gchar *field, + const char *field, gboolean need_modified) { if (hdrs == NULL) { @@ -930,7 +930,7 @@ rspamd_message_get_header_from_hash(struct rspamd_mime_headers_table *hdrs, struct rspamd_mime_header *hdr; if (htb) { - k = kh_get(rspamd_mime_headers_htb, htb, (gchar *) field); + k = kh_get(rspamd_mime_headers_htb, htb, (char *) field); if (k == kh_end(htb)) { return NULL; @@ -958,7 +958,7 @@ rspamd_message_get_header_from_hash(struct rspamd_mime_headers_table *hdrs, } struct rspamd_mime_header * -rspamd_message_get_header_array(struct rspamd_task *task, const gchar *field, +rspamd_message_get_header_array(struct rspamd_task *task, const char *field, gboolean need_modified) { return rspamd_message_get_header_from_hash( @@ -978,7 +978,7 @@ gsize rspamd_mime_headers_count(struct rspamd_mime_headers_table *hdrs) bool rspamd_mime_headers_foreach(const struct rspamd_mime_headers_table *hdrs, rspamd_hdr_traverse_func_t func, void *ud) { - const gchar *name; + const char *name; struct rspamd_mime_header *hdr; kh_foreach(&hdrs->htb, name, hdr, { @@ -1097,7 +1097,7 @@ gsize rspamd_message_header_unfold_inplace(char *hdr, gsize len) void rspamd_message_set_modified_header(struct rspamd_task *task, struct rspamd_mime_headers_table *hdrs, - const gchar *hdr_name, + const char *hdr_name, const ucl_object_t *obj, struct rspamd_mime_header **order_ptr) { @@ -1107,7 +1107,7 @@ void rspamd_message_set_modified_header(struct rspamd_task *task, int i; if (htb) { - k = kh_get(rspamd_mime_headers_htb, htb, (gchar *) hdr_name); + k = kh_get(rspamd_mime_headers_htb, htb, (char *) hdr_name); if (k == kh_end(htb)) { hdr_elt = rspamd_mempool_alloc0(task->task_pool, sizeof(*hdr_elt)); @@ -1353,7 +1353,7 @@ void rspamd_message_set_modified_header(struct rspamd_task *task, } } -gsize rspamd_strip_smtp_comments_inplace(gchar *input, gsize len) +gsize rspamd_strip_smtp_comments_inplace(char *input, gsize len) { enum parser_state { parse_normal, @@ -1363,8 +1363,8 @@ gsize rspamd_strip_smtp_comments_inplace(gchar *input, gsize len) parse_quoted_ignore, } state = parse_normal, next_state = parse_normal; - gchar *d = input, *end = input + len, *start = input; - gchar t; + char *d = input, *end = input + len, *start = input; + char t; int obraces = 0, ebraces = 0; while (input < end) { diff --git a/src/libmime/mime_headers.h b/src/libmime/mime_headers.h index 60015a20e..9f89daece 100644 --- a/src/libmime/mime_headers.h +++ b/src/libmime/mime_headers.h @@ -56,15 +56,15 @@ enum rspamd_mime_header_flags { }; struct rspamd_mime_header { - const gchar *raw_value; /* As it is in the message (unfolded and unparsed) */ + const char *raw_value; /* As it is in the message (unfolded and unparsed) */ gsize raw_len; - guint order; + unsigned int order; int flags; /* see enum rspamd_mime_header_flags */ /* These are zero terminated (historically) */ - gchar *name; /* Also used for key */ - gchar *value; - gchar *separator; - gchar *decoded; + char *name; /* Also used for key */ + char *value; + char *separator; + char *decoded; struct rspamd_mime_header *modified_chain; /* Headers modified during transform */ struct rspamd_mime_header *prev, *next; /* Headers with the same name */ struct rspamd_mime_header *ord_next; /* Overall order of headers, slist */ @@ -83,7 +83,7 @@ struct rspamd_mime_headers_table; void rspamd_mime_headers_process(struct rspamd_task *task, struct rspamd_mime_headers_table *target, struct rspamd_mime_header **order_ptr, - const gchar *in, gsize len, + const char *in, gsize len, gboolean check_newlines); /** @@ -93,8 +93,8 @@ void rspamd_mime_headers_process(struct rspamd_task *task, * @param inlen * @return */ -gchar *rspamd_mime_header_decode(rspamd_mempool_t *pool, const gchar *in, - gsize inlen, gboolean *invalid_utf); +char *rspamd_mime_header_decode(rspamd_mempool_t *pool, const char *in, + gsize inlen, gboolean *invalid_utf); /** * Encode mime header if needed @@ -102,14 +102,14 @@ gchar *rspamd_mime_header_decode(rspamd_mempool_t *pool, const gchar *in, * @param len * @return newly allocated encoded header */ -gchar *rspamd_mime_header_encode(const gchar *in, gsize len); +char *rspamd_mime_header_encode(const char *in, gsize len); /** * Generate new unique message id * @param fqdn * @return */ -gchar *rspamd_mime_message_id_generate(const gchar *fqdn); +char *rspamd_mime_message_id_generate(const char *fqdn); /** * Get an array of header's values with specified header's name using raw headers @@ -119,7 +119,7 @@ gchar *rspamd_mime_message_id_generate(const gchar *fqdn); */ struct rspamd_mime_header * rspamd_message_get_header_array(struct rspamd_task *task, - const gchar *field, + const char *field, gboolean need_modified); /** @@ -130,7 +130,7 @@ rspamd_message_get_header_array(struct rspamd_task *task, */ struct rspamd_mime_header * rspamd_message_get_header_from_hash(struct rspamd_mime_headers_table *hdrs, - const gchar *field, + const char *field, gboolean need_modified); /** @@ -142,7 +142,7 @@ rspamd_message_get_header_from_hash(struct rspamd_mime_headers_table *hdrs, */ void rspamd_message_set_modified_header(struct rspamd_task *task, struct rspamd_mime_headers_table *hdrs, - const gchar *hdr_name, + const char *hdr_name, const ucl_object_t *obj, struct rspamd_mime_header **order_ptr); @@ -167,7 +167,7 @@ struct rspamd_mime_headers_table *rspamd_message_headers_new(void); */ gsize rspamd_mime_headers_count(struct rspamd_mime_headers_table *hdrs); -typedef bool(rspamd_hdr_traverse_func_t)(const gchar *, const struct rspamd_mime_header *, void *); +typedef bool(rspamd_hdr_traverse_func_t)(const char *, const struct rspamd_mime_header *, void *); /** * Traverse all headers in a table * @param func @@ -183,7 +183,7 @@ bool rspamd_mime_headers_foreach(const struct rspamd_mime_headers_table *, * @param len length of the input * @return new length of the input */ -gsize rspamd_strip_smtp_comments_inplace(gchar *input, gsize len); +gsize rspamd_strip_smtp_comments_inplace(char *input, gsize len); /** * Unfold header in place diff --git a/src/libmime/mime_parser.c b/src/libmime/mime_parser.c index 64a8a2242..e753f6377 100644 --- a/src/libmime/mime_parser.c +++ b/src/libmime/mime_parser.c @@ -29,14 +29,14 @@ struct rspamd_mime_parser_lib_ctx { struct rspamd_multipattern *mp_boundary; - guchar hkey[rspamd_cryptobox_SIPKEYBYTES]; /* Key for hashing */ - guint key_usages; + unsigned char hkey[rspamd_cryptobox_SIPKEYBYTES]; /* Key for hashing */ + unsigned int key_usages; }; struct rspamd_mime_parser_lib_ctx *lib_ctx = NULL; -static const guint max_nested = 64; -static const guint max_key_usages = 10000; +static const unsigned int max_nested = 64; +static const unsigned int max_key_usages = 10000; #define msg_debug_mime(...) rspamd_conditional_debug_fast(NULL, task->from_addr, \ rspamd_mime_log_id, "mime", task->task_pool->tag.uid, \ @@ -53,17 +53,17 @@ struct rspamd_mime_boundary { goffset start; uint64_t hash; uint64_t closed_hash; - gint flags; + int flags; }; struct rspamd_mime_parser_ctx { GPtrArray *stack; /* Stack of parts */ GArray *boundaries; /* Boundaries found in the whole message */ - const gchar *start; - const gchar *pos; - const gchar *end; + const char *start; + const char *pos; + const char *end; struct rspamd_task *task; - guint nesting; + unsigned int nesting; }; static enum rspamd_mime_parse_error @@ -87,7 +87,7 @@ static enum rspamd_mime_parse_error rspamd_mime_process_multipart_node(struct rspamd_task *task, struct rspamd_mime_parser_ctx *st, struct rspamd_mime_part *multipart, - const gchar *start, const gchar *end, + const char *start, const char *end, gboolean is_finished, GError **err); @@ -99,10 +99,10 @@ rspamd_mime_parser_quark(void) return g_quark_from_static_string("mime-parser"); } -const gchar * +const char * rspamd_cte_to_string(enum rspamd_cte ct) { - const gchar *ret = "unknown"; + const char *ret = "unknown"; switch (ct) { case RSPAMD_CTE_7BIT: @@ -128,7 +128,7 @@ rspamd_cte_to_string(enum rspamd_cte ct) } enum rspamd_cte -rspamd_cte_from_string(const gchar *str) +rspamd_cte_from_string(const char *str) { enum rspamd_cte ret = RSPAMD_CTE_UNKNOWN; @@ -178,7 +178,7 @@ rspamd_mime_parser_init_lib(void) } static enum rspamd_cte -rspamd_mime_parse_cte(const gchar *in, gsize len) +rspamd_mime_parse_cte(const char *in, gsize len) { uint64_t h; enum rspamd_cte ret = RSPAMD_CTE_UNKNOWN; @@ -216,15 +216,15 @@ static enum rspamd_cte rspamd_mime_part_get_cte_heuristic(struct rspamd_task *task, struct rspamd_mime_part *part) { - const guint check_len = 128; - guint real_len, nspaces = 0, neqsign = 0, n8bit = 0, nqpencoded = 0, - padeqsign = 0, nupper = 0, nlower = 0; + const unsigned int check_len = 128; + unsigned int real_len, nspaces = 0, neqsign = 0, n8bit = 0, nqpencoded = 0, + padeqsign = 0, nupper = 0, nlower = 0; gboolean b64_chars = TRUE; - const guchar *p, *end; + const unsigned char *p, *end; enum rspamd_cte ret = RSPAMD_CTE_UNKNOWN; real_len = MIN(check_len, part->raw_data.len); - p = (const guchar *) part->raw_data.begin; + p = (const unsigned char *) part->raw_data.begin; end = p + part->raw_data.len; while (p < end && g_ascii_isspace(*p)) { @@ -232,7 +232,7 @@ rspamd_mime_part_get_cte_heuristic(struct rspamd_task *task, } if (end - p > sizeof("begin-base64 ")) { - const guchar *uue_start; + const unsigned char *uue_start; if (memcmp(p, "begin ", sizeof("begin ") - 1) == 0) { uue_start = p + sizeof("begin ") - 1; @@ -342,7 +342,7 @@ rspamd_mime_part_get_cte_heuristic(struct rspamd_task *task, } else { - if (((end - (const guchar *) part->raw_data.begin) + padeqsign) % 4 == 0) { + if (((end - (const unsigned char *) part->raw_data.begin) + padeqsign) % 4 == 0) { if (padeqsign == 0) { /* * It can be either base64 or plain text, hard to say @@ -421,7 +421,7 @@ rspamd_mime_part_get_cte(struct rspamd_task *task, DL_FOREACH(hdr, cur) { gsize hlen; - gchar lc_buf[128]; + char lc_buf[128]; hlen = rspamd_snprintf(lc_buf, sizeof(lc_buf), "%s", cur->value); rspamd_str_lc(lc_buf, hlen); @@ -571,7 +571,7 @@ rspamd_mime_part_get_cd(struct rspamd_task *task, struct rspamd_mime_part *part) void rspamd_mime_parser_calc_digest(struct rspamd_mime_part *part) { /* Blake2b applied to string 'rspamd' */ - static const guchar hash_key[] = { + static const unsigned char hash_key[] = { 0xef, 0x43, 0xae, @@ -815,8 +815,8 @@ rspamd_mime_parse_normal_part(struct rspamd_task *task, * Since ASN.1 structures are freed, we need to copy * the content */ - gchar *cpy = rspamd_mempool_alloc(task->task_pool, - p7_signed_content->d.data->length); + char *cpy = rspamd_mempool_alloc(task->task_pool, + p7_signed_content->d.data->length); memcpy(cpy, p7_signed_content->d.data->data, p7_signed_content->d.data->length); ret = rspamd_mime_process_multipart_node(task, @@ -849,7 +849,7 @@ struct rspamd_mime_multipart_cbdata { struct rspamd_task *task; struct rspamd_mime_part *multipart; struct rspamd_mime_parser_ctx *st; - const gchar *part_start; + const char *part_start; rspamd_ftok_t *cur_boundary; uint64_t bhash; GError **err; @@ -859,7 +859,7 @@ static enum rspamd_mime_parse_error rspamd_mime_process_multipart_node(struct rspamd_task *task, struct rspamd_mime_parser_ctx *st, struct rspamd_mime_part *multipart, - const gchar *start, const gchar *end, + const char *start, const char *end, gboolean is_finished, GError **err) { @@ -871,7 +871,7 @@ rspamd_mime_process_multipart_node(struct rspamd_task *task, enum rspamd_mime_parse_error ret = RSPAMD_MIME_PARSE_FATAL; - str.str = (gchar *) start; + str.str = (char *) start; str.len = end - start; if (*start == '\n' || *start == '\r') { @@ -885,7 +885,7 @@ rspamd_mime_process_multipart_node(struct rspamd_task *task, if (!is_finished) { /* Ignore garbage */ - const gchar *p = start; + const char *p = start; gboolean seen_something = FALSE; while (p < end) { @@ -1009,7 +1009,7 @@ rspamd_mime_parse_multipart_cb(struct rspamd_task *task, struct rspamd_mime_multipart_cbdata *cb, struct rspamd_mime_boundary *b) { - const gchar *pos = st->start + b->boundary; + const char *pos = st->start + b->boundary; enum rspamd_mime_parse_error ret; task = cb->task; @@ -1053,7 +1053,7 @@ rspamd_multipart_boundaries_filter(struct rspamd_task *task, { struct rspamd_mime_boundary *cur; goffset last_offset; - guint i, sel = 0; + unsigned int i, sel = 0; enum rspamd_mime_parse_error ret; last_offset = (multipart->raw_data.begin - st->start) + @@ -1183,7 +1183,7 @@ rspamd_mime_parse_multipart_part(struct rspamd_task *task, if (part->ct->boundary.len > 0) { /* We know our boundary */ cbdata.cur_boundary = &part->ct->boundary; - rspamd_cryptobox_siphash((guchar *) &cbdata.bhash, + rspamd_cryptobox_siphash((unsigned char *) &cbdata.bhash, cbdata.cur_boundary->begin, cbdata.cur_boundary->len, lib_ctx->hkey); msg_debug_mime("hash: %T -> %L", cbdata.cur_boundary, cbdata.bhash); @@ -1203,16 +1203,16 @@ rspamd_mime_parse_multipart_part(struct rspamd_task *task, } /* Process boundary like structures in a message */ -static gint +static int rspamd_mime_preprocess_cb(struct rspamd_multipattern *mp, - guint strnum, - gint match_start, - gint match_pos, - const gchar *text, + unsigned int strnum, + int match_start, + int match_pos, + const char *text, gsize len, void *context) { - const gchar *end = text + len, *p = text + match_pos, *bend; + const char *end = text + len, *p = text + match_pos, *bend; gsize blen; gboolean closing = FALSE; struct rspamd_mime_boundary b; @@ -1281,7 +1281,7 @@ rspamd_mime_preprocess_cb(struct rspamd_multipattern *mp, b.start = bend - st->start; /* Small optimisation as boundaries are usually short strings */ - gchar *lc_copy, lc_copy_buf[128]; + char *lc_copy, lc_copy_buf[128]; if (blen + 2 < sizeof(lc_copy_buf)) { lc_copy = lc_copy_buf; @@ -1299,18 +1299,18 @@ rspamd_mime_preprocess_cb(struct rspamd_multipattern *mp, rspamd_str_lc(lc_copy, blen); } - rspamd_cryptobox_siphash((guchar *) &b.hash, lc_copy, blen, + rspamd_cryptobox_siphash((unsigned char *) &b.hash, lc_copy, blen, lib_ctx->hkey); msg_debug_mime("normal hash: %*s -> %L, %d boffset, %d data offset", - (gint) blen, lc_copy, b.hash, (int) b.boundary, (int) b.start); + (int) blen, lc_copy, b.hash, (int) b.boundary, (int) b.start); if (closing) { b.flags = RSPAMD_MIME_BOUNDARY_FLAG_CLOSED; - rspamd_cryptobox_siphash((guchar *) &b.closed_hash, lc_copy, + rspamd_cryptobox_siphash((unsigned char *) &b.closed_hash, lc_copy, blen + 2, lib_ctx->hkey); msg_debug_mime("closing hash: %*s -> %L, %d boffset, %d data offset", - (gint) blen + 2, lc_copy, + (int) blen + 2, lc_copy, b.closed_hash, (int) b.boundary, (int) b.start); } @@ -1335,7 +1335,7 @@ rspamd_mime_parser_headers_heuristic(GString *input, goffset *body_start) { const gsize default_max_len = 76; gsize max_len = MIN(input->len, default_max_len); - const gchar *p, *end; + const char *p, *end; enum { st_before_colon = 0, st_colon, @@ -1434,11 +1434,11 @@ rspamd_mime_parse_message(struct rspamd_task *task, { struct rspamd_content_type *ct, *sel = NULL; struct rspamd_mime_header *hdr = NULL, *cur; - const gchar *pbegin, *p; + const char *pbegin, *p; gsize plen, len; struct rspamd_mime_part *npart; goffset hdr_pos, body_pos; - guint i; + unsigned int i; enum rspamd_mime_parse_error ret = RSPAMD_MIME_PARSE_OK; GString str; struct rspamd_mime_parser_ctx *nst = st; @@ -1458,7 +1458,7 @@ rspamd_mime_parse_message(struct rspamd_task *task, p = task->msg.begin; len = task->msg.len; - str.str = (gchar *) p; + str.str = (char *) p; str.len = len; hdr_pos = rspamd_string_find_eoh(&str, &body_pos); @@ -1545,7 +1545,7 @@ rspamd_mime_parse_message(struct rspamd_task *task, nst->nesting = st->nesting; st->nesting++; - str.str = (gchar *) part->parsed_data.begin; + str.str = (char *) part->parsed_data.begin; str.len = part->parsed_data.len; hdr_pos = rspamd_string_find_eoh(&str, &body_pos); @@ -1660,7 +1660,7 @@ rspamd_mime_parse_message(struct rspamd_task *task, *end_boundary = NULL; goffset cur_offset = nst->pos - nst->start, end_offset = st->end - st->start; - guint sel_idx = 0; + unsigned int sel_idx = 0; for (;;) { start_boundary = NULL; @@ -1679,7 +1679,7 @@ rspamd_mime_parse_message(struct rspamd_task *task, } if (start_boundary) { - const gchar *start, *end; + const char *start, *end; if (nst->boundaries->len > sel_idx + 1) { end_boundary = &g_array_index(nst->boundaries, diff --git a/src/libmime/received.cxx b/src/libmime/received.cxx index dc16d9b09..ab0a65a69 100644 --- a/src/libmime/received.cxx +++ b/src/libmime/received.cxx @@ -50,7 +50,7 @@ struct received_part { }; static inline auto -received_part_set_or_append(const gchar *begin, +received_part_set_or_append(const char *begin, gsize len, mime_string &dest) -> void { @@ -427,7 +427,7 @@ received_process_rdns(rspamd_mempool_t *pool, RSPAMD_INET_ADDRESS_PARSE_RECEIVED); if (addr) { - const gchar *addr_str; + const char *addr_str; if (rspamd_inet_address_get_port(addr) != 0) { addr_str = rspamd_inet_address_to_string_pretty(addr); diff --git a/src/libmime/scan_result.c b/src/libmime/scan_result.c index 5c89b6560..b9660071b 100644 --- a/src/libmime/scan_result.c +++ b/src/libmime/scan_result.c @@ -73,7 +73,7 @@ rspamd_metric_actions_foreach_cb(int i, struct rspamd_action *act, void *cbd) struct rspamd_scan_result * rspamd_create_metric_result(struct rspamd_task *task, - const gchar *name, gint lua_sym_cbref) + const char *name, int lua_sym_cbref) { struct rspamd_scan_result *metric_res; @@ -127,10 +127,10 @@ rspamd_pr_sort(const struct rspamd_passthrough_result *pra, bool rspamd_add_passthrough_result(struct rspamd_task *task, struct rspamd_action *action, - guint priority, + unsigned int priority, double target_score, - const gchar *message, - const gchar *module, + const char *message, + const char *module, uint flags, struct rspamd_scan_result *scan_result) { @@ -194,12 +194,12 @@ bool rspamd_add_passthrough_result(struct rspamd_task *task, return true; } -static inline gdouble +static inline double rspamd_check_group_score(struct rspamd_task *task, - const gchar *symbol, + const char *symbol, struct rspamd_symbols_group *gr, - gdouble *group_score, - gdouble w) + double *group_score, + double w) { if (gr != NULL && group_score && gr->max_score > 0.0 && w > 0.0) { if (*group_score >= gr->max_score && w > 0) { @@ -223,23 +223,23 @@ rspamd_check_group_score(struct rspamd_task *task, static struct rspamd_symbol_result * insert_metric_result(struct rspamd_task *task, - const gchar *symbol, + const char *symbol, double weight, - const gchar *opt, + const char *opt, struct rspamd_scan_result *metric_res, enum rspamd_symbol_insert_flags flags, bool *new_sym) { struct rspamd_symbol_result *symbol_result = NULL; - gdouble final_score, *gr_score = NULL, next_gf = 1.0, diff; + double final_score, *gr_score = NULL, next_gf = 1.0, diff; struct rspamd_symbol *sdef; struct rspamd_symbols_group *gr = NULL; const ucl_object_t *mobj, *sobj; - gint max_shots = G_MAXINT, ret; - guint i; + int max_shots = G_MAXINT, ret; + unsigned int i; khiter_t k; gboolean single = !!(flags & RSPAMD_SYMBOL_INSERT_SINGLE); - gchar *sym_cpy; + char *sym_cpy; if (!isfinite(weight)) { msg_warn_task("detected %s score for symbol %s, replace it with zero", @@ -290,7 +290,7 @@ insert_metric_result(struct rspamd_task *task, } if (task->settings) { - gdouble corr; + double corr; mobj = ucl_object_lookup(task->settings, "scores"); if (!mobj) { @@ -383,7 +383,7 @@ insert_metric_result(struct rspamd_task *task, if (sdef) { PTR_ARRAY_FOREACH(sdef->groups, i, gr) { - gdouble cur_diff; + double cur_diff; k = kh_get(rspamd_symbols_group_hash, metric_res->sym_groups, gr); @@ -467,7 +467,7 @@ insert_metric_result(struct rspamd_task *task, /* Check group limits */ PTR_ARRAY_FOREACH(sdef->groups, i, gr) { - gdouble cur_score; + double cur_score; k = kh_get(rspamd_symbols_group_hash, metric_res->sym_groups, gr); g_assert(k != kh_end(metric_res->sym_groups)); @@ -535,9 +535,9 @@ insert_metric_result(struct rspamd_task *task, struct rspamd_symbol_result * rspamd_task_insert_result_full(struct rspamd_task *task, - const gchar *symbol, + const char *symbol, double weight, - const gchar *opt, + const char *opt, enum rspamd_symbol_insert_flags flags, struct rspamd_scan_result *result) { @@ -638,13 +638,13 @@ rspamd_task_insert_result_full(struct rspamd_task *task, return ret; } -static gchar * +static char * rspamd_task_option_safe_copy(struct rspamd_task *task, - const gchar *val, + const char *val, gsize vlen, gsize *outlen) { - const gchar *p, *end; + const char *p, *end; p = val; end = val + vlen; @@ -653,7 +653,7 @@ rspamd_task_option_safe_copy(struct rspamd_task *task, while (p < end) { if (*p & 0x80) { UChar32 uc; - gint off = 0; + int off = 0; U8_NEXT(p, off, end - p, uc); @@ -683,7 +683,7 @@ rspamd_task_option_safe_copy(struct rspamd_task *task, } } - gchar *dest, *d; + char *dest, *d; dest = rspamd_mempool_alloc(task->task_pool, vlen + 1); d = dest; @@ -692,7 +692,7 @@ rspamd_task_option_safe_copy(struct rspamd_task *task, while (p < end) { if (*p & 0x80) { UChar32 uc; - gint off = 0; + int off = 0; U8_NEXT(p, off, end - p, uc); @@ -737,15 +737,15 @@ rspamd_task_option_safe_copy(struct rspamd_task *task, gboolean rspamd_task_add_result_option(struct rspamd_task *task, struct rspamd_symbol_result *s, - const gchar *val, + const char *val, gsize vlen) { struct rspamd_symbol_option *opt, srch; gboolean ret = FALSE; - gchar *opt_cpy = NULL; + char *opt_cpy = NULL; gsize cpy_len; khiter_t k; - gint r; + int r; struct rspamd_symbol_result *cur; if (s && val) { @@ -779,14 +779,14 @@ rspamd_task_add_result_option(struct rspamd_task *task, if (!(cur->sym && (cur->sym->flags & RSPAMD_SYMBOL_FLAG_ONEPARAM))) { - srch.option = (gchar *) val; + srch.option = (char *) val; srch.optlen = vlen; k = kh_get(rspamd_options_hash, cur->options, &srch); if (k == kh_end(cur->options)) { opt_cpy = rspamd_task_option_safe_copy(task, val, vlen, &cpy_len); if (cpy_len != vlen) { - srch.option = (gchar *) opt_cpy; + srch.option = (char *) opt_cpy; srch.optlen = cpy_len; k = kh_get(rspamd_options_hash, cur->options, &srch); } @@ -1013,7 +1013,7 @@ rspamd_task_find_symbol_result(struct rspamd_task *task, const char *sym, struct rspamd_symbol_result *rspamd_task_remove_symbol_result( struct rspamd_task *task, - const gchar *symbol, + const char *symbol, struct rspamd_scan_result *result) { struct rspamd_symbol_result *res = NULL; @@ -1036,12 +1036,12 @@ struct rspamd_symbol_result *rspamd_task_remove_symbol_result( /* Also check the group limit */ if (result->sym_groups && res->sym) { struct rspamd_symbol_group *gr; - gint i; + int i; khiter_t k_groups; PTR_ARRAY_FOREACH(res->sym->groups, i, gr) { - gdouble *gr_score; + double *gr_score; k_groups = kh_get(rspamd_symbols_group_hash, result->sym_groups, gr); @@ -1070,7 +1070,7 @@ void rspamd_task_symbol_result_foreach(struct rspamd_task *task, struct rspamd_scan_result *result, GHFunc func, gpointer ud) { - const gchar *kk; + const char *kk; struct rspamd_symbol_result *res; if (result == NULL) { @@ -1087,7 +1087,7 @@ void rspamd_task_symbol_result_foreach(struct rspamd_task *task, struct rspamd_scan_result * rspamd_find_metric_result(struct rspamd_task *task, - const gchar *name) + const char *name) { struct rspamd_scan_result *res; diff --git a/src/libmime/scan_result.h b/src/libmime/scan_result.h index 46c2de8fa..d4572e1d8 100644 --- a/src/libmime/scan_result.h +++ b/src/libmime/scan_result.h @@ -35,7 +35,7 @@ struct rspamd_settings; struct rspamd_classifier_config; struct rspamd_symbol_option { - gchar *option; + char *option; gsize optlen; struct rspamd_symbol_option *prev, *next; }; @@ -54,10 +54,10 @@ struct rspamd_symbol_result { double score; /**< symbol's score */ struct kh_rspamd_options_hash_s *options; /**< list of symbol's options */ struct rspamd_symbol_option *opts_head; /**< head of linked list of options */ - const gchar *name; + const char *name; struct rspamd_symbol *sym; /**< symbol configuration */ gssize opts_len; /**< total size of all options (negative if truncated option is added) */ - guint nshots; + unsigned int nshots; int flags; struct rspamd_symbol_result *next; /**< for shadow results */ }; @@ -74,11 +74,11 @@ struct rspamd_symbol_result { struct rspamd_passthrough_result { struct rspamd_action *action; - guint priority; - guint flags; + unsigned int priority; + unsigned int flags; double target_score; - const gchar *message; - const gchar *module; + const char *message; + const char *module; struct rspamd_passthrough_result *prev, *next; }; @@ -89,7 +89,7 @@ enum rspamd_action_config_flags { RSPAMD_ACTION_RESULT_DISABLED = (1u << 1u), }; struct rspamd_action_config { - gdouble cur_limit; + double cur_limit; int flags; struct rspamd_action *action; }; @@ -107,14 +107,14 @@ struct rspamd_scan_result { struct kh_rspamd_symbols_hash_s *symbols; /**< symbols of metric */ struct kh_rspamd_symbols_group_hash_s *sym_groups; /**< groups of symbols */ struct rspamd_action_config *actions_config; - const gchar *name; /**< for named results, NULL is the default result */ + const char *name; /**< for named results, NULL is the default result */ struct rspamd_task *task; /**< back reference */ - gint symbol_cbref; /**< lua function that defines if a symbol can be inserted, -1 if unused */ - guint nactions; - guint npositive; - guint nnegative; - guint nresults; /**< all results: positive, negative, passthrough etc */ - guint nresults_postfilters; /**< how many results are there before postfilters stage */ + int symbol_cbref; /**< lua function that defines if a symbol can be inserted, -1 if unused */ + unsigned int nactions; + unsigned int npositive; + unsigned int nnegative; + unsigned int nresults; /**< all results: positive, negative, passthrough etc */ + unsigned int nresults_postfilters; /**< how many results are there before postfilters stage */ struct rspamd_scan_result *prev, *next; /**< double linked list of results */ }; @@ -124,7 +124,7 @@ struct rspamd_scan_result { * @return metric result or NULL if metric `name` has not been found */ struct rspamd_scan_result *rspamd_create_metric_result(struct rspamd_task *task, - const gchar *name, gint lua_sym_cbref); + const char *name, int lua_sym_cbref); /** * Find result with a specific name (NULL means the default result) @@ -133,7 +133,7 @@ struct rspamd_scan_result *rspamd_create_metric_result(struct rspamd_task *task, * @return */ struct rspamd_scan_result *rspamd_find_metric_result(struct rspamd_task *task, - const gchar *name); + const char *name); /** * Adds a new passthrough result to a task @@ -145,9 +145,9 @@ struct rspamd_scan_result *rspamd_find_metric_result(struct rspamd_task *task, * @param module */ bool rspamd_add_passthrough_result(struct rspamd_task *task, - struct rspamd_action *action, guint priority, - double target_score, const gchar *message, - const gchar *module, guint flags, + struct rspamd_action *action, unsigned int priority, + double target_score, const char *message, + const char *module, unsigned int flags, struct rspamd_scan_result *scan_result); enum rspamd_symbol_insert_flags { @@ -165,9 +165,9 @@ enum rspamd_symbol_insert_flags { * @param opts list of symbol's options */ struct rspamd_symbol_result *rspamd_task_insert_result_full(struct rspamd_task *task, - const gchar *symbol, + const char *symbol, double weight, - const gchar *opts, + const char *opts, enum rspamd_symbol_insert_flags flags, struct rspamd_scan_result *result); @@ -185,7 +185,7 @@ struct rspamd_symbol_result *rspamd_task_insert_result_full(struct rspamd_task * */ struct rspamd_symbol_result *rspamd_task_remove_symbol_result( struct rspamd_task *task, - const gchar *symbol, + const char *symbol, struct rspamd_scan_result *result); /** * Adds new option to symbol @@ -195,7 +195,7 @@ struct rspamd_symbol_result *rspamd_task_remove_symbol_result( */ gboolean rspamd_task_add_result_option(struct rspamd_task *task, struct rspamd_symbol_result *s, - const gchar *opt, + const char *opt, gsize vlen); /** @@ -227,8 +227,8 @@ void rspamd_task_symbol_result_foreach(struct rspamd_task *task, * @return result metric weight */ double rspamd_factor_consolidation_func(struct rspamd_task *task, - const gchar *metric_name, - const gchar *unused); + const char *metric_name, + const char *unused); /** diff --git a/src/libmime/smtp_parsers.h b/src/libmime/smtp_parsers.h index e88c2bf54..79d15903a 100644 --- a/src/libmime/smtp_parsers.h +++ b/src/libmime/smtp_parsers.h @@ -35,9 +35,9 @@ gboolean rspamd_content_disposition_parser(const char *data, size_t len, rspamd_mempool_t *pool); gboolean -rspamd_rfc2047_parser(const gchar *in, gsize len, gint *pencoding, - const gchar **charset, gsize *charset_len, - const gchar **encoded, gsize *encoded_len); +rspamd_rfc2047_parser(const char *in, gsize len, int *pencoding, + const char **charset, gsize *charset_len, + const char **encoded, gsize *encoded_len); rspamd_inet_addr_t *rspamd_parse_smtp_ip(const char *data, size_t len, rspamd_mempool_t *pool); |