~ubuntu-branches/ubuntu/trusty/dovecot/trusty-proposed

« back to all changes in this revision

Viewing changes to .pc/utf8-namespace.patch/src/imap/cmd-namespace.c

  • Committer: Package Import Robot
  • Author(s): James Page, James Page, Ante Karamatic
  • Date: 2013-02-11 12:41:24 UTC
  • mfrom: (4.1.33 sid)
  • Revision ID: package-import@ubuntu.com-20130211124124-v7bdegzftlhw7yfr
Tags: 1:2.1.7-7ubuntu1
[ James Page ]
* Merge from Debian unstable (LP: #1117613, #1075456), remaining changes:
  + Add mail-stack-delivery package:
    - Update d/rules
    - d/control: convert existing dovecot-postfix package to a dummy
      package and add new mail-stack-delivery package.
    - Update maintainer scripts.
    - Rename d/dovecot-postfix.* to debian/mail-stack-delivery.*
    - d/mail-stack-delivery.preinst: Move previously installed backups and
      config files to a new package namespace.
    - d/mail-stack-delivery.prerm: Added to handle downgrades.
  + Use Snakeoil SSL certificates by default:
    - d/control: Depend on ssl-cert.
    - d/dovecot-core.postinst: Relax grep for SSL_* a bit.
  + Add autopkgtest to debian/tests/*.
  + Add ufw integration:
    - d/dovecot-core.ufw.profile: new ufw profile.
    - d/rules: install profile in dovecot-core.
    - d/control: dovecot-core - suggest ufw.
  + d/dovecot-core.dirs: Added usr/share/doc/dovecot-core
  + Add apport hook:
    - d/rules, d/source_dovecot.py
  + Add upstart job:
    - d/rules, d/dovecot-core.dovecot.upstart, d/control,
      d/dovecot-core.dirs, dovecot-imapd.{postrm, postinst, prerm},
      d/dovecot-pop3d.{postinst, postrm, prerm}.
      d/mail-stack-deliver.postinst: Convert init script to upstart.
  + d/control: Added Pre-Depends: dpkg (>= 1.15.6) to dovecot-dbg to support
    xz compression in Ubuntu.
  + d/control: Demote dovecot-common Recommends: to Suggests: to prevent
    install of extra packages on upgrade.
  + d/patches/dovecot-drac.patch: Updated with version for dovecot >= 2.0.0.
* Dropped changes, included in Debian:
  + d/{control,rules}: enable PIE hardening.
  + d/control: Drop B-D on systemd.
* d/p/mail-stack-delivery.postinst: Updated to ensure that configured SSL
  cert and key locations are used when configuring postfix, sorted out
  formatting.
* d/p/dovecot-core.postinst: Create compat links to old style, existing
  SSL cert and key if found.
* d/rules: Don't pass hardening flags for DRAC plugin.
* d/dovecot-{pop3d,imapd}.prerm: Re-sync with Debian.
* d/dovecot-core.lintian-overrides: Drop override for DRAC plugin as not
  required in Ubuntu.
* d/01-mail-stack-delivery: Renamed 99-mail-stack-delivery to ensure that
  the mail-stack-delivery configuration overrides configuration options
  set elsewhere, updated with new cert/key file locations.

[ Ante Karamatic ]
* Change configuration file for LDA on new installs and upgrades
  (LP: #671065).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (c) 2003-2012 Dovecot authors, see the included COPYING file */
 
2
 
 
3
#include "imap-common.h"
 
4
#include "str.h"
 
5
#include "imap-quote.h"
 
6
#include "imap-commands.h"
 
7
#include "mail-namespace.h"
 
8
 
 
9
static void list_namespaces(struct mail_namespace *ns,
 
10
                            enum namespace_type type, string_t *str)
 
11
{
 
12
        char ns_sep;
 
13
        bool found = FALSE;
 
14
 
 
15
        while (ns != NULL) {
 
16
                if (ns->type == type &&
 
17
                    (ns->flags & NAMESPACE_FLAG_HIDDEN) == 0) {
 
18
                        if (!found) {
 
19
                                str_append_c(str, '(');
 
20
                                found = TRUE;
 
21
                        }
 
22
                        ns_sep = mail_namespace_get_sep(ns);
 
23
                        str_append_c(str, '(');
 
24
                        imap_quote_append_string(str, ns->prefix, FALSE);
 
25
                        str_append(str, " \"");
 
26
                        if (ns_sep == '\\')
 
27
                                str_append_c(str, '\\');
 
28
                        str_append_c(str, ns_sep);
 
29
                        str_append(str, "\")");
 
30
                }
 
31
 
 
32
                ns = ns->next;
 
33
        }
 
34
 
 
35
        if (found)
 
36
                str_append_c(str, ')');
 
37
        else
 
38
                str_append(str, "NIL");
 
39
}
 
40
 
 
41
bool cmd_namespace(struct client_command_context *cmd)
 
42
{
 
43
        struct client *client = cmd->client;
 
44
        string_t *str;
 
45
 
 
46
        str = t_str_new(256);
 
47
        str_append(str, "* NAMESPACE ");
 
48
 
 
49
        list_namespaces(client->user->namespaces, NAMESPACE_PRIVATE, str);
 
50
        str_append_c(str, ' ');
 
51
        list_namespaces(client->user->namespaces, NAMESPACE_SHARED, str);
 
52
        str_append_c(str, ' ');
 
53
        list_namespaces(client->user->namespaces, NAMESPACE_PUBLIC, str);
 
54
 
 
55
        client_send_line(client, str_c(str));
 
56
        client_send_tagline(cmd, "OK Namespace completed.");
 
57
        return TRUE;
 
58
}