]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Keep capability in string_t so plugins can modify it.
authorTimo Sirainen <tss@iki.fi>
Mon, 30 Jun 2003 15:54:17 +0000 (18:54 +0300)
committerTimo Sirainen <tss@iki.fi>
Mon, 30 Jun 2003 15:54:17 +0000 (18:54 +0300)
--HG--
branch : HEAD

src/imap/cmd-capability.c
src/imap/common.h
src/imap/main.c

index f2f12352c9f8186fb855ec5988f446cbafa6372a..1e9e02b2018b64baa36952204afec1b593f648f8 100644 (file)
@@ -2,12 +2,13 @@
 
 #include "common.h"
 #include "commands.h"
+#include "str.h"
 
 int cmd_capability(struct client *client)
 {
-       client_send_line(client, "* CAPABILITY " CAPABILITY_STRING);
+       client_send_line(client, t_strconcat("* CAPABILITY ",
+                                            str_c(capability_string), NULL));
 
-       client_sync_full_fast(client);
        client_send_tagline(client, "OK Capability completed.");
        return TRUE;
 }
index 89f83e59cd63a7a0c4c592b57950f66f271322bd..7c351d0c8adcfc7c3a27e2d5b9b23f976f292af3 100644 (file)
@@ -16,4 +16,6 @@
 extern struct ioloop *ioloop;
 extern unsigned int max_custom_flag_length, mailbox_check_interval;
 
+extern string_t *capability_string;
+
 #endif
index 1d6be11115a548dbf7fefe0c9711ebd0d9ae2dd7..8918cba3273743807a52216f83e63a6895dd3370 100644 (file)
@@ -3,6 +3,7 @@
 #include "common.h"
 #include "ioloop.h"
 #include "ostream.h"
+#include "str.h"
 #include "lib-signals.h"
 #include "rawlog.h"
 #include "restrict-access.h"
@@ -25,6 +26,8 @@ unsigned int max_custom_flag_length, mailbox_check_interval;
 static struct module *modules;
 static char log_prefix[128]; /* syslog() needs this to be permanent */
 
+string_t *capability_string;
+
 static void sig_quit(int signo __attr_unused__)
 {
        io_loop_stop(ioloop);
@@ -86,6 +89,9 @@ static void main_init(void)
                        i_fatal("USER environment missing");
        }
 
+       capability_string = str_new(default_pool, sizeof(CAPABILITY_STRING)+32);
+       str_append(capability_string, CAPABILITY_STRING);
+
        hin = 0; hout = 1;
        rawlog_open(&hin, &hout);