Mercurial > dovecot > core-2.2
view src/imap/cmd-namespace.c @ 2350:1371d41c375f HEAD
Moved namespace and hierarchy separator handling to imap-specific code. LIST
now shows non-hidden namespaces in the LIST reply.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 23 Jul 2004 00:20:00 +0300 |
parents | 9547667cfa19 |
children | 61abed5f7864 |
line wrap: on
line source
/* Copyright (C) 2003 Timo Sirainen */ #include "common.h" #include "str.h" #include "imap-quote.h" #include "commands.h" #include "namespace.h" static void list_namespaces(struct namespace *ns, enum namespace_type type, string_t *str) { int found = FALSE; while (ns != NULL) { if (ns->type == type && !ns->hidden) { if (!found) { str_append_c(str, '('); found = TRUE; } str_append_c(str, '('); imap_quote_append_string(str, ns->prefix, FALSE); str_append(str, " \""); str_append(str, ns->sep_str); str_append(str, "\")"); } ns = ns->next; } if (found) str_append_c(str, ')'); else str_append(str, "NIL"); } int cmd_namespace(struct client *client) { string_t *str; str = t_str_new(256); str_append(str, "* NAMESPACE "); list_namespaces(client->namespaces, NAMESPACE_PRIVATE, str); str_append_c(str, ' '); list_namespaces(client->namespaces, NAMESPACE_SHARED, str); str_append_c(str, ' '); list_namespaces(client->namespaces, NAMESPACE_PUBLIC, str); client_send_line(client, str_c(str)); client_send_tagline(client, "OK Namespace completed."); return TRUE; }