summaryrefslogtreecommitdiff
path: root/imap4d/imap4d.h
diff options
context:
space:
mode:
Diffstat (limited to 'imap4d/imap4d.h')
-rw-r--r--imap4d/imap4d.h85
1 files changed, 44 insertions, 41 deletions
diff --git a/imap4d/imap4d.h b/imap4d/imap4d.h
index 93fde1b19..783192462 100644
--- a/imap4d/imap4d.h
+++ b/imap4d/imap4d.h
@@ -1,5 +1,5 @@
/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 1999-2019 Free Software Foundation, Inc.
+ Copyright (C) 1999-2024 Free Software Foundation, Inc.
GNU Mailutils is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -114,10 +114,13 @@
extern "C" {
#endif
+#define PORT_IMAP4 143
+#define PORT_IMAP4S 993
+
typedef struct imap4d_tokbuf *imap4d_tokbuf_t;
struct imap4d_session;
-
+
struct imap4d_command
{
const char *name;
@@ -146,7 +149,7 @@ struct imap4d_command
#define RESP_BYE 3
#define RESP_NONE 4
#define RESP_PREAUTH 5
-
+
/* Error values. */
#define OK 0
#define ERR_NO_MEM 1
@@ -168,9 +171,9 @@ struct imap4d_command
/* IMAP4D capability names */
#define IMAP_CAPA_STARTTLS "STARTTLS"
#define IMAP_CAPA_LOGINDISABLED "LOGINDISABLED"
-#define IMAP_CAPA_XTLSREQUIRED "XTLSREQUIRED"
+#define IMAP_CAPA_XTLSREQUIRED "XTLSREQUIRED"
-/* Preauth types */
+/* Preauth types */
enum imap4d_preauth
{
preauth_none,
@@ -201,16 +204,16 @@ struct imap4d_srv_config
enum tls_mode tls_mode;
struct mu_tls_config tls_conf;
};
-
+
extern struct imap4d_command imap4d_command_table[];
extern mu_mailbox_t mbox;
-extern char *real_homedir;
+extern char *real_homedir;
extern int state;
extern size_t children;
extern int is_virtual;
-extern struct mu_auth_data *auth_data;
+extern struct mu_auth_data *auth_data;
extern const char *program_version;
-
+
extern int login_disabled;
extern enum imap4d_preauth preauth_mode;
extern char *preauth_program;
@@ -221,16 +224,15 @@ extern int ident_encrypt_only;
extern unsigned int idle_timeout;
extern int imap4d_transcript;
extern mu_list_t imap4d_id_list;
-extern int imap4d_argc;
+extern int imap4d_argc;
extern char **imap4d_argv;
extern jmp_buf child_jmp;
extern struct mu_tls_config global_tls_conf;
-
+extern int global_tls_mode;
+
extern int test_mode;
extern int silent_expunge;
-int tls_available;
-
/* Input functions */
extern mu_stream_t iostream;
extern int io_untagged_response (int, const char *, ...) MU_PRINTFLIKE(2,3);
@@ -241,16 +243,15 @@ extern int io_send_astring (const char *);
extern int io_send_literal (const char *);
extern int io_copy_out (mu_stream_t str, size_t size);
extern int io_completion_response (struct imap4d_command *, int,
- const char *, ...) MU_PRINTFLIKE(3,4);
+ const char *, ...) MU_PRINTFLIKE(3,4);
extern int io_stream_completion_response (mu_stream_t str,
struct imap4d_command *command,
- int rc,
+ int rc,
const char *format, ...)
- MU_PRINTFLIKE(4,5);
+ MU_PRINTFLIKE(4,5);
void io_getline (char **pbuf, size_t *psize, size_t *pnbytes);
void io_setio (int, int, struct mu_tls_config *);
void io_flush (void);
-int io_wait_input (int);
void io_enable_crlf (int);
imap4d_tokbuf_t imap4d_tokbuf_init (void);
@@ -260,7 +261,7 @@ char *imap4d_tokbuf_getarg (imap4d_tokbuf_t tok, int n);
void imap4d_readline (imap4d_tokbuf_t tok);
imap4d_tokbuf_t imap4d_tokbuf_from_string (char *str);
-
+
#define IMAP4_ARG_TAG 0
#define IMAP4_ARG_COMMAND 1
#define IMAP4_ARG_1 2
@@ -285,7 +286,7 @@ struct imap4d_parsebuf
};
typedef struct imap4d_parsebuf *imap4d_parsebuf_t;
-
+
void imap4d_parsebuf_exit (imap4d_parsebuf_t pb, char *text);
char *imap4d_parsebuf_peek (imap4d_parsebuf_t pb);
char *imap4d_parsebuf_next (imap4d_parsebuf_t pb, int req);
@@ -345,6 +346,7 @@ extern int imap4d_select_status (void);
extern int imap4d_starttls (struct imap4d_session *,
struct imap4d_command *, imap4d_tokbuf_t);
int starttls_init (mu_m_server_t msrv);
+int starttls_server_check (struct imap4d_srv_config *cfg, char const *srvid);
void tls_encryption_on (struct imap4d_session *);
extern int imap4d_status (struct imap4d_session *,
struct imap4d_command *, imap4d_tokbuf_t);
@@ -370,10 +372,10 @@ extern int imap4d_idle (struct imap4d_session *,
struct imap4d_command *, imap4d_tokbuf_t);
extern int imap4d_id (struct imap4d_session *,
struct imap4d_command *, imap4d_tokbuf_t);
-
+
extern int imap4d_check_home_dir (const char *dir, uid_t uid, gid_t gid);
-/* Shared between fetch and store */
+/* Shared between fetch and store */
extern void fetch_flags0 (const char *prefix, mu_message_t msg, int isuid);
/* Permissions for creating intermediate directories.
@@ -381,16 +383,16 @@ extern void fetch_flags0 (const char *prefix, mu_message_t msg, int isuid);
#define MKDIR_PERMISSIONS 0700
int make_interdir (const char *name, int delim, int perms);
-/* Synchronisation on simultaneous access. */
+/* Synchronization on simultaneous access. */
extern int imap4d_sync (void);
extern void imap4d_sync_invalidate (void);
extern int imap4d_sync_flags (size_t);
extern size_t uid_to_msgno (size_t);
extern void imap4d_set_observer (mu_mailbox_t mbox);
-
+
/* Signal handling. */
-extern RETSIGTYPE imap4d_master_signal (int);
-extern RETSIGTYPE imap4d_child_signal (int);
+extern void imap4d_master_signal (int);
+extern void imap4d_child_signal (int);
extern int imap4d_bye (int);
extern int imap4d_bye_command (int, struct imap4d_command *);
void imap4d_enter_critical (void);
@@ -417,17 +419,21 @@ struct namespace
void namespace_init (void);
struct namespace *namespace_lookup (char const *name);
-char *namespace_translate_name (char const *name,
+char *namespace_translate_name (char const *name,
struct namespace_prefix const **pfx);
char *namespace_get_name (char const *name, mu_record_t *rec, int *mode);
+char *namespace_decode_delim (struct namespace_prefix const *pfx,
+ char const *src);
+char *namespace_encode_delim (struct namespace_prefix const *pfx,
+ char const *src);
void translate_delim (char *dst, char const *src, int dst_delim, int src_delim);
int imap4d_session_setup (char *username);
int imap4d_session_setup0 (void);
-void imap4d_child_signal_setup (RETSIGTYPE (*handler) (int signo));
-
+void imap4d_child_signal_setup (void (*handler) (int signo));
+
/* Capability functions */
extern void imap4d_capability_add (const char *str);
extern void imap4d_capability_remove (const char *str);
@@ -438,14 +444,14 @@ extern void imap4d_capability_init (void);
extern int util_start (char *);
extern int util_getstate (void);
extern int util_do_command (struct imap4d_session *, imap4d_tokbuf_t);
-extern struct imap4d_command *util_getcommand (char *,
- struct imap4d_command []);
+extern struct imap4d_command *util_getcommand (char *,
+ struct imap4d_command []);
enum datetime_parse_mode /* how to parse date/time strings */
{
datetime_default, /* default mode */
datetime_date_only, /* return only date part, ignore time and TZ */
- datetime_time_only /* return only time and TZ, ignore date */
+ datetime_time_only /* return only time and TZ, ignore date */
};
extern int util_parse_internal_date (char *date, time_t *timep,
@@ -460,16 +466,13 @@ void util_print_flags (mu_attribute_t attr);
int util_attribute_matches_flag (mu_attribute_t attr, const char *item);
int util_uidvalidity (mu_mailbox_t smbox, unsigned long *uidvp);
-
-void util_bye (void);
+
+void util_bye (void);
void util_chdir (const char *homedir);
int is_atom (const char *s);
int util_isdelim (const char *str);
int util_trim_nl (char *s, size_t len);
-void unistr_downcase (char const *input, char **output);
-int unistr_is_substring (char const *haystack, char const *needle);
-
int set_xscript_level (int xlev);
void xscript_declare_client_payload (size_t len);
@@ -492,17 +495,17 @@ enum imap4d_auth_result
imap4d_auth_resp = MU_ERR_USER1,
imap4d_auth_fail = MU_ERR_USER2
};
-
+
typedef enum imap4d_auth_result
- (*imap4d_auth_handler_fp) (struct imap4d_auth *);
-
+ (*imap4d_auth_handler_fp) (struct imap4d_auth *);
+
extern void auth_add (char *name, imap4d_auth_handler_fp handler);
extern void auth_remove (char *name);
-#ifdef WITH_GSSAPI
+#ifdef WITH_GSSAPI
extern void auth_gssapi_init (void);
#else
-# define auth_gssapi_init()
+# define auth_gssapi_init()
#endif
#ifdef WITH_GSASL

Return to:

Send suggestions and report system problems to the System administrator.