Update documentation. Use the namespace name "personal", instead of "private".
Showing
7 changed files
with
251 additions
and
103 deletions
1 | GNU mailutils NEWS -- history of user-visible changes. 2017-01-16 | 1 | GNU mailutils NEWS -- history of user-visible changes. 2017-01-20 |
2 | Copyright (C) 2002-2017 Free Software Foundation, Inc. | 2 | Copyright (C) 2002-2017 Free Software Foundation, Inc. |
3 | See the end of file for copying conditions. | 3 | See the end of file for copying conditions. |
4 | 4 | ||
... | @@ -7,6 +7,52 @@ Please send mailutils bug reports to <bug-mailutils@gnu.org>. | ... | @@ -7,6 +7,52 @@ Please send mailutils bug reports to <bug-mailutils@gnu.org>. |
7 | 7 | ||
8 | Version 3.1.91 (Git) | 8 | Version 3.1.91 (Git) |
9 | 9 | ||
10 | * configuration syntax | ||
11 | |||
12 | Statements that allow for variable substitution also allow for command | ||
13 | expansion. Commands are invoked the same way as in shell: | ||
14 | |||
15 | $(command [args...]) | ||
16 | |||
17 | The following commands are defined: | ||
18 | |||
19 | - localpart X | ||
20 | Treats X as an email address and returns its part preceding | ||
21 | the @-sign. If there is no @-sign, returns X unchanged. | ||
22 | |||
23 | - domainpart X | ||
24 | Treats X as an email address and returns the part following | ||
25 | the @-sign. If there is no @-sign, returns empty string. | ||
26 | |||
27 | - shell CMD [ARGS...] | ||
28 | Runs the shell command CMD with the given arguments. Returns | ||
29 | the standard output from the command. The command is invoked | ||
30 | using "/bin/sh -c" and can contain any valid shell construct. | ||
31 | |||
32 | * imap4d | ||
33 | |||
34 | Namespace configuration completely rewritten. The "namespace" block | ||
35 | statement defines a particular namespaces. Within it, one or more | ||
36 | "prefix" statements define prefixes available in that namespace, along | ||
37 | with their mappings to the server filesystem, hierarchy delimiters etc. | ||
38 | |||
39 | An example of namespace configuration: | ||
40 | |||
41 | namespace personal { | ||
42 | prefix "" { | ||
43 | directory "$home/mailfolder"; | ||
44 | } | ||
45 | prefix "#MH:" { | ||
46 | directory "$home/Mail"; | ||
47 | delimiter "/"; | ||
48 | mailbox-type "mh"; | ||
49 | } | ||
50 | } | ||
51 | |||
52 | The following configuration statements have been withdrawn: homedir, | ||
53 | personal-namespace, other-namespace, shared-namespace, | ||
54 | other-mailbox-mode, shared-mailbox-mode. | ||
55 | |||
10 | 56 | ||
11 | 57 | ||
12 | ** Modifying attachment name and filename | 58 | ** Modifying attachment name and filename |
... | @@ -24,7 +70,7 @@ description), and file name: | ... | @@ -24,7 +70,7 @@ description), and file name: |
24 | 70 | ||
25 | Both options affect only the next `--attach' or `--attach-fd' option. | 71 | Both options affect only the next `--attach' or `--attach-fd' option. |
26 | 72 | ||
27 | ** Constructing attachments from command line | 73 | ** Constructing attachments from the command line |
28 | 74 | ||
29 | The new option `--attach-fd=N' instructs mail to read attachment from | 75 | The new option `--attach-fd=N' instructs mail to read attachment from |
30 | file descriptor N. By default, the attachments created using this | 76 | file descriptor N. By default, the attachments created using this | ... | ... |
... | @@ -830,6 +830,37 @@ value of @var{variable} is substituted. | ... | @@ -830,6 +830,37 @@ value of @var{variable} is substituted. |
830 | substituted, otherwise the expansion of @var{word} is substituted. | 830 | substituted, otherwise the expansion of @var{word} is substituted. |
831 | @end table | 831 | @end table |
832 | 832 | ||
833 | When a value is subject to variable expansion, it is also subject to | ||
834 | @dfn{command expansion}. Commands are invoked in string values using | ||
835 | the following format: | ||
836 | |||
837 | @example | ||
838 | $(@var{cmd} @var{arg}) | ||
839 | @end example | ||
840 | |||
841 | @noindent | ||
842 | where @var{cmd} is the command name, and @var{args} is a list of | ||
843 | arguments separated by whitespace. Arguments can in turn contain | ||
844 | variable and command references. | ||
845 | |||
846 | The following commands are defined: | ||
847 | |||
848 | @deffn {Command} localpart @var{string} | ||
849 | Treats @var{string} as an email address and returns the part preceding | ||
850 | the @samp{@@} sign. If there is no @samp{@@} sign, returns @var{string}. | ||
851 | @end deffn | ||
852 | |||
853 | @deffn {Command} domainpart @var{string} | ||
854 | Treats @var{string} as an email address and returns the part following | ||
855 | the @samp{@@} sign. If there is no @samp{@@} sign, returns empty string. | ||
856 | @end deffn | ||
857 | |||
858 | @deffn {Command} shell @var{cmd} @var{args} | ||
859 | Runs the shell command @var{cmd} with the given arguments. Returns | ||
860 | the standard output from the command. The command is invoked | ||
861 | using @command{/bin/sh -c} and can contain any valid shell constructs. | ||
862 | @end deffn | ||
863 | |||
833 | The subsections below define variable names that are valid for use in | 864 | The subsections below define variable names that are valid for use in |
834 | each configuration statement. | 865 | each configuration statement. |
835 | 866 | ||
... | @@ -1168,6 +1199,7 @@ time, using the @samp{_PATH_MAILDIR} define from the include file | ... | @@ -1168,6 +1199,7 @@ time, using the @samp{_PATH_MAILDIR} define from the include file |
1168 | @end enumerate | 1199 | @end enumerate |
1169 | 1200 | ||
1170 | @deffn {Configuration} mailbox-type @var{type} | 1201 | @deffn {Configuration} mailbox-type @var{type} |
1202 | @anchor{mailbox-type} | ||
1171 | @vrindex MU_DEFAULT_SCHEME | 1203 | @vrindex MU_DEFAULT_SCHEME |
1172 | Specifies the type of mailboxes. By default, @samp{mbox} (UNIX mailbox) | 1204 | Specifies the type of mailboxes. By default, @samp{mbox} (UNIX mailbox) |
1173 | is assumed. This can be changed while configuring the package by | 1205 | is assumed. This can be changed while configuring the package by |
... | @@ -7559,16 +7591,30 @@ be run either as a standalone program or from @file{inetd.conf} file. | ... | @@ -7559,16 +7591,30 @@ be run either as a standalone program or from @file{inetd.conf} file. |
7559 | @cindex IMAP4 namespace | 7591 | @cindex IMAP4 namespace |
7560 | 7592 | ||
7561 | GNU @command{imap4d} supports a notion of @dfn{namespaces} defined | 7593 | GNU @command{imap4d} supports a notion of @dfn{namespaces} defined |
7562 | in RFC 2342. A namespace is a set of directories upon which the user | 7594 | in RFC 2342. A namespace can be regarded as a list of triplets, |
7563 | has certain permissions. It should be understood that these permissions | 7595 | defining locations to which the user has certain access rights. Each |
7564 | apply only if the underlying filesystem allows them. | 7596 | triplet defines the @dfn{prefix}, under which the mailboxes can be |
7597 | found, @dfn{hierarchy delimiter}, a character used to delimit parts of | ||
7598 | a path to a mailbox, and a @dfn{directory} on the file system on the | ||
7599 | server, which actually holds the mailboxes. Among these three values, | ||
7600 | only first two are visible to the client using the IMAP | ||
7601 | @samp{NAMESPACE} command. | ||
7565 | 7602 | ||
7566 | The three namespaces supported by @command{imap4d} are: | 7603 | There are three namespaces: |
7567 | 7604 | ||
7568 | @table @asis | 7605 | @table @asis |
7569 | @item Personal Namespace | 7606 | @item Personal Namespace |
7570 | A namespace that is within the personal scope of the authenticated user | 7607 | A namespace that is within the personal scope of the authenticated user |
7571 | on a particular connection. The user has all permissions on this namespace. | 7608 | on a particular connection. The user has all permissions on this |
7609 | namespace. | ||
7610 | |||
7611 | By default, this namespace contains a single prefix: | ||
7612 | |||
7613 | @example | ||
7614 | prefix: "" | ||
7615 | delimiter: / | ||
7616 | directory: home directory of the user | ||
7617 | @end example | ||
7572 | 7618 | ||
7573 | @item Other Users' Namespace | 7619 | @item Other Users' Namespace |
7574 | A namespace that consists of mailboxes from the ``Personal Namespaces'' | 7620 | A namespace that consists of mailboxes from the ``Personal Namespaces'' |
... | @@ -7577,63 +7623,43 @@ namespace. However, he is not allowed to use @samp{%} and @samp{*} | ... | @@ -7577,63 +7623,43 @@ namespace. However, he is not allowed to use @samp{%} and @samp{*} |
7577 | wildcards with @command{LIST} command, that is he can access a | 7623 | wildcards with @command{LIST} command, that is he can access a |
7578 | mailbox only if he knows exactly its location. | 7624 | mailbox only if he knows exactly its location. |
7579 | 7625 | ||
7626 | By default, this namespace is empty. | ||
7627 | |||
7580 | @item Shared Namespace | 7628 | @item Shared Namespace |
7581 | A namespace that consists of mailboxes that are intended to be shared | 7629 | A namespace that consists of mailboxes that are intended to be shared |
7582 | amongst users and do not exist within a user's Personal Namespace. | 7630 | amongst users and do not exist within a user's Personal Namespace. |
7583 | The user has all permissions on this namespace. | 7631 | The user has all permissions on this namespace. |
7584 | @end table | ||
7585 | |||
7586 | @noindent | ||
7587 | By default, @command{imap4d} starts with the following namespaces: | ||
7588 | 7632 | ||
7589 | @table @asis | 7633 | By default, this namespace is empty. |
7590 | @item Personal Namespace | ||
7591 | The home directory of the user, if exists. | ||
7592 | |||
7593 | @item Other Users' Namespace | ||
7594 | Empty | ||
7595 | |||
7596 | @item Shared Namespace | ||
7597 | Empty | ||
7598 | @end table | 7634 | @end table |
7599 | 7635 | ||
7600 | @emph{Note}, that this means that by default, a user won't be able to | 7636 | The default values ensure that each user is able to |
7601 | see or otherwise access mailboxes residing in the directories other than | 7637 | see or otherwise access mailboxes residing in the directories other than |
7602 | his own home. | 7638 | his own home. |
7603 | 7639 | ||
7604 | To change these defaults, use @code{shared-namespace} and | 7640 | These defaults can be changed using the @code{namespace} block |
7605 | @code{other-namespace} configuration statements: | 7641 | statement: |
7606 | |||
7607 | @table @command | ||
7608 | @item shared-namespace @var{list} | ||
7609 | Set shared namespace. | ||
7610 | |||
7611 | @item other-namespace @var{list} | ||
7612 | Set other users' namespace. | ||
7613 | @end table | ||
7614 | |||
7615 | For both statements, the argument is a list of directories that belong | ||
7616 | to this namespace, e.g.: | ||
7617 | 7642 | ||
7618 | @example | 7643 | @example |
7619 | shared-namespace (/var/spool/mail,/var/mail); | 7644 | namespace @var{name} @{ |
7645 | mailbox-mode @var{mode}; | ||
7646 | prefix @var{pfx} @{ | ||
7647 | directory @var{path}; | ||
7648 | delimiter @var{chr}; | ||
7649 | mailbox-type @var{type}; | ||
7650 | @} | ||
7651 | @} | ||
7620 | @end example | 7652 | @end example |
7621 | 7653 | ||
7622 | If during the session the user creates a mailbox within either of | 7654 | The @var{name} argument to the @code{namespace} statement declares |
7623 | these namespaces, the mode of the mailbox is determined by the | 7655 | which namespace is being configured. Allowed values are: |
7624 | following configuration statements: | 7656 | @samp{personal}, @samp{other}, and @samp{shared}. |
7625 | |||
7626 | @table @command | ||
7627 | @item shared-mailbox-mode @var{mode} | ||
7628 | Set file mode for mailboxes created in shared namespace. | ||
7629 | |||
7630 | @item other-mailbox-mode @var{mode} | ||
7631 | Set file mode for mailboxes created in other users' namespace. | ||
7632 | @end table | ||
7633 | 7657 | ||
7634 | In both cases, the argument, @var{mode} is a list of symbolic mode | 7658 | The @code{mailbox-mode} statement configures the file mode for the |
7635 | settings, similar to that used by @command{chmod}. It is a list of | 7659 | mailboxes created within that namespace (provided that the directory |
7636 | comma-separated mode change commands. Each command begins with a | 7660 | permissions allow the user to create mailboxes). The @var{mode} |
7661 | argument is a comma-delimited list of symbolic mode settings, similar | ||
7662 | to that used by @command{chmod}. Each setting begins with a | ||
7637 | letter @samp{g}, which means set mode bits for file group, or | 7663 | letter @samp{g}, which means set mode bits for file group, or |
7638 | @samp{o}, which means set mode bits for other users (note, that there | 7664 | @samp{o}, which means set mode bits for other users (note, that there |
7639 | is no @samp{u} specifier, since user ownership of his mailbox cannot | 7665 | is no @samp{u} specifier, since user ownership of his mailbox cannot |
... | @@ -7645,7 +7671,79 @@ For example, the following statement sets read and write permissions | ... | @@ -7645,7 +7671,79 @@ For example, the following statement sets read and write permissions |
7645 | for the group: | 7671 | for the group: |
7646 | 7672 | ||
7647 | @example | 7673 | @example |
7648 | shared-namespace-mode g=rw; | 7674 | mailbox-mode g=rw; |
7675 | @end example | ||
7676 | |||
7677 | The @code{prefix} statement configures available prefixes and | ||
7678 | determines their mappings to the server's file system. The @var{pfx} | ||
7679 | argument defines the prefix which will be visible to the IMAP client. | ||
7680 | |||
7681 | The @code{directory} statement defines the directory in the file | ||
7682 | system to which @var{pfx} is mapped. Its argument can contain | ||
7683 | references to the following variables(@pxref{Variables}): | ||
7684 | |||
7685 | @table @asis | ||
7686 | @item user | ||
7687 | Login name of the user. | ||
7688 | |||
7689 | @item home | ||
7690 | Home directory of the user. | ||
7691 | @end table | ||
7692 | |||
7693 | Exactly one @code{directory} statement must be present in each | ||
7694 | @code{prefix} block. | ||
7695 | |||
7696 | The @code{delimiter} statement defines the folder hierarchy delimiter | ||
7697 | for that prefix. It is optional, the default value being @samp{"/"}. | ||
7698 | |||
7699 | The @code{mailbox-type} statement declares the type of the mailboxes | ||
7700 | within that prefix. If present, its argument must be a valid mailbox | ||
7701 | type (e.g. @samp{mailbox}, @samp{maildir}, or @samp{mh}). The IMAP | ||
7702 | @code{LIST} command will display only mailboxes of that type. The | ||
7703 | @code{CREATE} command will create mailboxes of that type. | ||
7704 | |||
7705 | In the absence of the @code{mailbox-type} statement, the IMAP | ||
7706 | @code{LIST} command will display mailboxes of any type supported by | ||
7707 | Mailutils. The type of newly-created mailboxes is then determined by | ||
7708 | the @code{mailbox-type} statement (@pxref{mailbox-type}). | ||
7709 | |||
7710 | Any number of @code{prefix} blocks can be present. | ||
7711 | |||
7712 | Consider, for example, the following configuration: | ||
7713 | |||
7714 | @example | ||
7715 | @group | ||
7716 | namespace personal @{ | ||
7717 | prefix "" @{ | ||
7718 | directory "$home/mailfolder"; | ||
7719 | @} | ||
7720 | prefix "#MH:" @{ | ||
7721 | directory "$home/Mail"; | ||
7722 | delimiter "/"; | ||
7723 | mailbox-type "mh"; | ||
7724 | @} | ||
7725 | @} | ||
7726 | @end group | ||
7727 | @end example | ||
7728 | |||
7729 | It defines the personal namespace containing two prefixes. The empty | ||
7730 | prefix is mapped to the directory @file{mailfolder} in the home | ||
7731 | directory of the currently authenticated user. Any type of mailboxes | ||
7732 | is supported within that prefix. | ||
7733 | |||
7734 | The prefix @samp{#MH:} is mapped to the directory @file{Mail} in the | ||
7735 | home directory of the user, and is limited to contain only mailboxes | ||
7736 | in MH format. | ||
7737 | |||
7738 | Note that if the prefixes @samp{""} is not defined in the personal | ||
7739 | namespace, the following default will be automatically created: | ||
7740 | |||
7741 | @example | ||
7742 | @group | ||
7743 | prefix "" @{ | ||
7744 | directory "$home"; | ||
7745 | @} | ||
7746 | @end group | ||
7649 | @end example | 7747 | @end example |
7650 | 7748 | ||
7651 | @node Conf-imap4d | 7749 | @node Conf-imap4d |
... | @@ -7672,24 +7770,53 @@ configuration statements: | ... | @@ -7672,24 +7770,53 @@ configuration statements: |
7672 | @item tcp-wrappers @tab @xref{tcp-wrappers statement}. | 7770 | @item tcp-wrappers @tab @xref{tcp-wrappers statement}. |
7673 | @end multitable | 7771 | @end multitable |
7674 | 7772 | ||
7675 | @deffn {Imap4d Conf} shared-namespace @var{list} | 7773 | @deffn {Imap4d Conf} namespace @var{name} @{ ... @} |
7676 | Set shared namespace. @var{List} is a list of | 7774 | Configures namespace. The argument is one of: @samp{personal}, |
7677 | strings. @xref{Namespace}, for a detailed description. | 7775 | @samp{other}, @samp{shared}. The following statements (described |
7776 | below) are allowed within curly braces: @code{mailbox-mode} and | ||
7777 | @code{prefix}. | ||
7778 | |||
7779 | @xref{Namespace}. | ||
7780 | @end deffn | ||
7781 | |||
7782 | @deffn {Imap4d namespace} mailbox-mode @var{mode} | ||
7783 | Configures the file mode for the mailboxes created within that | ||
7784 | namespace. The syntax for @var{mode} is: | ||
7785 | |||
7786 | @example | ||
7787 | g(+|=)[wr]+,o(+|=)[wr]+ | ||
7788 | @end example | ||
7789 | |||
7790 | @xref{Namespace,mailbox-mode}. | ||
7791 | @end deffn | ||
7792 | |||
7793 | @deffn {Imap4d namespace} prefix @var{pfx} @{ ... @} | ||
7794 | Configures a prefix and determines its mapping to the server's file | ||
7795 | system. The @var{pfx} argument is the prefix which will be | ||
7796 | visible to the IMAP client. Available sub-statements are: | ||
7797 | @code{directory}, @code{delimiter}, and @code{mailbox-type}. | ||
7798 | |||
7799 | @xref{Namespace,prefix}. | ||
7678 | @end deffn | 7800 | @end deffn |
7679 | 7801 | ||
7680 | @deffn {Imap4d Conf} other-namespace @var{list} | 7802 | @deffn {Imap4d namespace.prefix} directory @var{path} |
7681 | Set other users' namespace. @var{List} is a list of | 7803 | Defines the directory in the file system to which the prefix is |
7682 | strings. @xref{Namespace}, for a detailed description. | 7804 | mapped. |
7805 | |||
7806 | @xref{Namespace,directory}. | ||
7683 | @end deffn | 7807 | @end deffn |
7684 | 7808 | ||
7685 | @deffn {Imap4d Conf} shared-mailbox-mode @var{str} | 7809 | @deffn {Imap4d namespace.prefix} delimiter @var{chr} |
7686 | Set file mode for mailboxes created within shared namespace. | 7810 | Defines the folder hierarchy delimiter for the prefix. Argument must |
7687 | @xref{Namespace}, for a detailed description. | 7811 | be a single character. |
7812 | |||
7813 | @xref{Namespace,delimiter}. | ||
7688 | @end deffn | 7814 | @end deffn |
7689 | 7815 | ||
7690 | @deffn {Imap4d Conf} other-mailbox-mode @var{str} | 7816 | @deffn {Imap4d namespace.prefix} mailbox-type @var{type} |
7691 | Set file mode for mailboxes created within other users' namespace. | 7817 | Defines the type of the mailboxes inside that prefix. |
7692 | @xref{Namespace}, for a detailed description. | 7818 | |
7819 | @xref{Namespace,mailbox-type}. | ||
7693 | @end deffn | 7820 | @end deffn |
7694 | 7821 | ||
7695 | @deffn {Imap4d Conf} login-disabled @var{bool} | 7822 | @deffn {Imap4d Conf} login-disabled @var{bool} |
... | @@ -7708,11 +7835,6 @@ The default value for @var{mode} is @samp{700} (@samp{drwx------} in | ... | @@ -7708,11 +7835,6 @@ The default value for @var{mode} is @samp{700} (@samp{drwx------} in |
7708 | @code{ls} terms). | 7835 | @code{ls} terms). |
7709 | @end deffn | 7836 | @end deffn |
7710 | 7837 | ||
7711 | @deffn {Imap4d Conf} tls-required @var{bool} | ||
7712 | Require successful @code{STARTTLS} command before entering | ||
7713 | authentication phase. | ||
7714 | @end deffn | ||
7715 | |||
7716 | @deffn {Imap4d Conf} preauth @var{mode} | 7838 | @deffn {Imap4d Conf} preauth @var{mode} |
7717 | Configure PREAUTH mode. Valid arguments are: | 7839 | Configure PREAUTH mode. Valid arguments are: |
7718 | 7840 | ... | ... |
... | @@ -419,10 +419,12 @@ static struct mu_cfg_param prefix_param[] = { | ... | @@ -419,10 +419,12 @@ static struct mu_cfg_param prefix_param[] = { |
419 | N_("Directory in the file system") }, | 419 | N_("Directory in the file system") }, |
420 | { "delimiter", mu_cfg_callback, | 420 | { "delimiter", mu_cfg_callback, |
421 | NULL, mu_offsetof (struct namespace_prefix, delim), cb_prefix_delim, | 421 | NULL, mu_offsetof (struct namespace_prefix, delim), cb_prefix_delim, |
422 | N_("Hierarchy delimiter character") }, | 422 | N_("Hierarchy delimiter character"), |
423 | N_("arg: character") }, | ||
423 | { "mailbox-type", mu_cfg_callback, | 424 | { "mailbox-type", mu_cfg_callback, |
424 | NULL, 0, cb_prefix_scheme, | 425 | NULL, 0, cb_prefix_scheme, |
425 | N_("Type of mailboxes residing under this prefix") }, | 426 | N_("Type of mailboxes residing under this prefix"), |
427 | N_("type: string") }, | ||
426 | { NULL } | 428 | { NULL } |
427 | }; | 429 | }; |
428 | 430 | ||
... | @@ -524,7 +526,7 @@ namespace_cfg_init (void) | ... | @@ -524,7 +526,7 @@ namespace_cfg_init (void) |
524 | if (mu_create_canned_section ("namespace", §ion)) | 526 | if (mu_create_canned_section ("namespace", §ion)) |
525 | abort (); | 527 | abort (); |
526 | section->docstring = N_("Define a namespace"); | 528 | section->docstring = N_("Define a namespace"); |
527 | section->label = "private | other | shared"; | 529 | section->label = "personal | other | shared"; |
528 | section->parser = namespace_section_parser; | 530 | section->parser = namespace_section_parser; |
529 | mu_cfg_section_add_params (section, namespace_param); | 531 | mu_cfg_section_add_params (section, namespace_param); |
530 | } | 532 | } |
... | @@ -556,29 +558,6 @@ static struct mu_cfg_param imap4d_cfg_param[] = { | ... | @@ -556,29 +558,6 @@ static struct mu_cfg_param imap4d_cfg_param[] = { |
556 | 558 | ||
557 | { "namespace", mu_cfg_section }, | 559 | { "namespace", mu_cfg_section }, |
558 | 560 | ||
559 | #if 0 | ||
560 | { "homedir", mu_c_string, &modify_homedir, 0, NULL, | ||
561 | N_("Modify home directory.") }, | ||
562 | |||
563 | { "personal-namespace", MU_CFG_LIST_OF(mu_c_string), &namespace[NS_PRIVATE], | ||
564 | 0, NULL, | ||
565 | N_("Set personal namespace.") }, | ||
566 | { "other-namespace", MU_CFG_LIST_OF(mu_c_string), &namespace[NS_OTHER], | ||
567 | 0, NULL, | ||
568 | N_("Set other users' namespace.") }, | ||
569 | { "shared-namespace", MU_CFG_LIST_OF(mu_c_string), &namespace[NS_SHARED], | ||
570 | 0, NULL, | ||
571 | N_("Set shared namespace.") }, | ||
572 | FIXME | ||
573 | { "other-mailbox-mode", mu_cfg_callback, &mailbox_mode[NS_OTHER], 0, | ||
574 | cb_mailbox_mode, | ||
575 | N_("File mode for mailboxes in other namespace."), | ||
576 | N_("mode: g(+|=)[wr]+,o(+|=)[wr]+") }, | ||
577 | { "shared-mailbox-mode", mu_cfg_callback, &mailbox_mode[NS_SHARED], 0, | ||
578 | cb_mailbox_mode, | ||
579 | N_("File mode for mailboxes in shared namespace."), | ||
580 | N_("mode: g(+|=)[wr]+,o(+|=)[wr]+") }, | ||
581 | #endif | ||
582 | { "login-disabled", mu_c_bool, &login_disabled, 0, NULL, | 561 | { "login-disabled", mu_c_bool, &login_disabled, 0, NULL, |
583 | N_("Disable LOGIN command.") }, | 562 | N_("Disable LOGIN command.") }, |
584 | { "create-home-dir", mu_c_bool, &create_home_dir, 0, NULL, | 563 | { "create-home-dir", mu_c_bool, &create_home_dir, 0, NULL, | ... | ... |
... | @@ -161,7 +161,7 @@ struct imap4d_command | ... | @@ -161,7 +161,7 @@ struct imap4d_command |
161 | #define ERR_STREAM_CREATE 9 | 161 | #define ERR_STREAM_CREATE 9 |
162 | 162 | ||
163 | /* Namespace numbers */ | 163 | /* Namespace numbers */ |
164 | #define NS_PRIVATE 0 | 164 | #define NS_PERSONAL 0 |
165 | #define NS_OTHER 1 | 165 | #define NS_OTHER 1 |
166 | #define NS_SHARED 2 | 166 | #define NS_SHARED 2 |
167 | #define NS_MAX 3 | 167 | #define NS_MAX 3 | ... | ... |
... | @@ -19,9 +19,9 @@ | ... | @@ -19,9 +19,9 @@ |
19 | #include <mailutils/assoc.h> | 19 | #include <mailutils/assoc.h> |
20 | 20 | ||
21 | struct namespace namespace[NS_MAX] = { | 21 | struct namespace namespace[NS_MAX] = { |
22 | [NS_PRIVATE] = { "private" }, | 22 | [NS_PERSONAL] = { "personal" }, |
23 | [NS_OTHER] = { "other" }, | 23 | [NS_OTHER] = { "other" }, |
24 | [NS_SHARED] = { "shared" } | 24 | [NS_SHARED] = { "shared" } |
25 | }; | 25 | }; |
26 | 26 | ||
27 | static mu_assoc_t prefixes; | 27 | static mu_assoc_t prefixes; |
... | @@ -124,7 +124,7 @@ namespace_init (void) | ... | @@ -124,7 +124,7 @@ namespace_init (void) |
124 | pfx = mu_assoc_get (prefixes, ""); | 124 | pfx = mu_assoc_get (prefixes, ""); |
125 | if (pfx) | 125 | if (pfx) |
126 | { | 126 | { |
127 | if (pfx->ns != NS_PRIVATE) | 127 | if (pfx->ns != NS_PERSONAL) |
128 | { | 128 | { |
129 | mu_error (_("empty prefix not allowed in the namespace %s"), | 129 | mu_error (_("empty prefix not allowed in the namespace %s"), |
130 | namespace[pfx->ns].name); | 130 | namespace[pfx->ns].name); |
... | @@ -139,7 +139,7 @@ namespace_init (void) | ... | @@ -139,7 +139,7 @@ namespace_init (void) |
139 | pfx->prefix = mu_strdup (""); | 139 | pfx->prefix = mu_strdup (""); |
140 | pfx->dir = mu_strdup ("$home"); | 140 | pfx->dir = mu_strdup ("$home"); |
141 | pfx->delim = '/'; | 141 | pfx->delim = '/'; |
142 | priv = namespace_lookup ("private"); | 142 | priv = namespace_lookup ("personal"); |
143 | mu_list_prepend (priv->prefixes, pfx); | 143 | mu_list_prepend (priv->prefixes, pfx); |
144 | rc = mu_assoc_install (prefixes, pfx->prefix, pfx); | 144 | rc = mu_assoc_install (prefixes, pfx->prefix, pfx); |
145 | if (rc) | 145 | if (rc) |
... | @@ -167,7 +167,7 @@ prefix_translate_name (struct namespace_prefix const *pfx, char const *name, | ... | @@ -167,7 +167,7 @@ prefix_translate_name (struct namespace_prefix const *pfx, char const *name, |
167 | url = 0; | 167 | url = 0; |
168 | name += pfxlen; | 168 | name += pfxlen; |
169 | 169 | ||
170 | if (pfx->ns == NS_PRIVATE && strcmp (name, "INBOX") == 0) | 170 | if (pfx->ns == NS_PERSONAL && strcmp (name, "INBOX") == 0) |
171 | { | 171 | { |
172 | tmpl = mu_strdup (auth_data->mailbox); | 172 | tmpl = mu_strdup (auth_data->mailbox); |
173 | return tmpl;//FIXME | 173 | return tmpl;//FIXME |
... | @@ -299,7 +299,7 @@ namespace_translate_name (char const *name, int url, | ... | @@ -299,7 +299,7 @@ namespace_translate_name (char const *name, int url, |
299 | 299 | ||
300 | switch (pfx->ns) | 300 | switch (pfx->ns) |
301 | { | 301 | { |
302 | case NS_PRIVATE: | 302 | case NS_PERSONAL: |
303 | mu_assoc_install (assoc, "user", auth_data->name); | 303 | mu_assoc_install (assoc, "user", auth_data->name); |
304 | mu_assoc_install (assoc, "home", real_homedir); | 304 | mu_assoc_install (assoc, "home", real_homedir); |
305 | break; | 305 | break; |
... | @@ -423,7 +423,7 @@ imap4d_namespace (struct imap4d_session *session, | ... | @@ -423,7 +423,7 @@ imap4d_namespace (struct imap4d_session *session, |
423 | 423 | ||
424 | io_sendf ("* NAMESPACE "); | 424 | io_sendf ("* NAMESPACE "); |
425 | 425 | ||
426 | print_namespace (NS_PRIVATE); | 426 | print_namespace (NS_PERSONAL); |
427 | io_sendf (" "); | 427 | io_sendf (" "); |
428 | print_namespace (NS_OTHER); | 428 | print_namespace (NS_OTHER); |
429 | io_sendf (" "); | 429 | io_sendf (" "); | ... | ... |
-
Please register or sign in to post a comment