diff --git a/src/drv_imap.c b/src/drv_imap.c index e782ec0..03eaf30 100644 --- a/src/drv_imap.c +++ b/src/drv_imap.c @@ -2927,7 +2927,7 @@ imap_find_new_msgs_p2( imap_store_t *ctx, imap_cmd_t *gcmd, int response ) cmd->uid = cmdp->uid; cmd->gen.param.lastuid = 1; imap_exec( ctx, &cmd->gen, imap_find_new_msgs_p3, - "UID FETCH *:* (UID)" ); + "UID FETCH * (UID)" ); } static void @@ -3137,9 +3137,15 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep ) server->pass = nfstrdup( cfg->val ); else if (!strcasecmp( "PassCmd", cfg->cmd )) server->pass_cmd = nfstrdup( cfg->val ); - else if (!strcasecmp( "Port", cfg->cmd )) - server->sconf.port = parse_int( cfg ); - else if (!strcasecmp( "Timeout", cfg->cmd )) + else if (!strcasecmp( "Port", cfg->cmd )) { + int port = parse_int( cfg ); + if ((unsigned)port > 0xffff) { + error( "%s:%d: Invalid port number\n", cfg->file, cfg->line ); + cfg->err = 1; + } else { + server->sconf.port = (ushort)port; + } + } else if (!strcasecmp( "Timeout", cfg->cmd )) server->sconf.timeout = parse_int( cfg ); else if (!strcasecmp( "PipelineDepth", cfg->cmd )) { if ((server->max_in_progress = parse_int( cfg )) < 1) { diff --git a/src/drv_maildir.c b/src/drv_maildir.c index d094146..d8c41c5 100644 --- a/src/drv_maildir.c +++ b/src/drv_maildir.c @@ -1573,7 +1573,7 @@ maildir_store_msg( store_t *gctx, msg_data_t *data, int to_trash, uint uid; char buf[_POSIX_PATH_MAX], nbuf[_POSIX_PATH_MAX], fbuf[NUM_FLAGS + 3], base[128]; - bl = nfsnprintf( base, sizeof(base), "%ld.%d_%d.%s", (long)time( 0 ), Pid, ++MaildirCount, Hostname ); + bl = nfsnprintf( base, sizeof(base), "%lld.%d_%d.%s", (long long)time( 0 ), Pid, ++MaildirCount, Hostname ); if (!to_trash) { #ifdef USE_DB if (ctx->usedb) { @@ -1754,8 +1754,8 @@ maildir_trash_msg( store_t *gctx, message_t *gmsg, for (;;) { nfsnprintf( buf, sizeof(buf), "%s/%s/%s", ctx->path, subdirs[gmsg->status & M_RECENT], msg->base ); s = strstr( msg->base, ((maildir_store_conf_t *)gctx->conf)->info_prefix ); - nfsnprintf( nbuf, sizeof(nbuf), "%s/%s/%ld.%d_%d.%s%s", ctx->trash, - subdirs[gmsg->status & M_RECENT], (long)time( 0 ), Pid, ++MaildirCount, Hostname, s ? s : "" ); + nfsnprintf( nbuf, sizeof(nbuf), "%s/%s/%lld.%d_%d.%s%s", ctx->trash, + subdirs[gmsg->status & M_RECENT], (long long)time( 0 ), Pid, ++MaildirCount, Hostname, s ? s : "" ); if (!rename( buf, nbuf )) break; if (!stat( buf, &st )) { diff --git a/src/drv_proxy.c b/src/drv_proxy.c index 4fa40a7..2ef928a 100644 --- a/src/drv_proxy.c +++ b/src/drv_proxy.c @@ -242,8 +242,8 @@ proxy_@name@( store_t *gctx@decl_args@, void (*cb)( @decl_cb_args@void *aux ), v static char fbuf[as(Flags) + 1]; proxy_make_flags( cmd->data->flags, fbuf ); //# END -//# DEFINE fetch_msg_print_fmt_cb_args , flags=%s, date=%ld, size=%d -//# DEFINE fetch_msg_print_pass_cb_args , fbuf, cmd->data->date, cmd->data->len +//# DEFINE fetch_msg_print_fmt_cb_args , flags=%s, date=%lld, size=%d +//# DEFINE fetch_msg_print_pass_cb_args , fbuf, (long long)cmd->data->date, cmd->data->len //# DEFINE fetch_msg_print_cb_args if (sts == DRV_OK && (DFlags & DEBUG_DRV_ALL)) { printf( "%s=========\n", cmd->gen.ctx->label ); @@ -257,8 +257,8 @@ proxy_@name@( store_t *gctx@decl_args@, void (*cb)( @decl_cb_args@void *aux ), v static char fbuf[as(Flags) + 1]; proxy_make_flags( data->flags, fbuf ); //# END -//# DEFINE store_msg_print_fmt_args , flags=%s, date=%ld, size=%d, to_trash=%s -//# DEFINE store_msg_print_pass_args , fbuf, data->date, data->len, to_trash ? "yes" : "no" +//# DEFINE store_msg_print_fmt_args , flags=%s, date=%lld, size=%d, to_trash=%s +//# DEFINE store_msg_print_pass_args , fbuf, (long long)data->date, data->len, to_trash ? "yes" : "no" //# DEFINE store_msg_print_args if (DFlags & DEBUG_DRV_ALL) { printf( "%s>>>>>>>>>\n", ctx->label ); diff --git a/src/socket.c b/src/socket.c index 9112dac..dd79619 100644 --- a/src/socket.c +++ b/src/socket.c @@ -40,7 +40,8 @@ # include # include # include -# if OPENSSL_VERSION_NUMBER < 0x10100000L +# if OPENSSL_VERSION_NUMBER < 0x10100000L \ + || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070100fL) # define X509_OBJECT_get0_X509(o) ((o)->data.x509) # define X509_STORE_get0_objects(o) ((o)->objs) # endif diff --git a/src/socket.h b/src/socket.h index 36ebe09..f80c2ef 100644 --- a/src/socket.h +++ b/src/socket.h @@ -43,7 +43,7 @@ enum { typedef struct { char *tunnel; char *host; - int port; + ushort port; int timeout; #ifdef HAVE_LIBSSL char *cert_file;