]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: Add utility function for finding capabilities by name.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Wed, 26 Sep 2018 19:32:45 +0000 (21:32 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Tue, 12 Feb 2019 13:40:41 +0000 (15:40 +0200)
src/lib-smtp/smtp-common.c
src/lib-smtp/smtp-common.h

index 6db15130487d4c6075b12a7e4dcb1438d54b3234..76dc23ba12e5f34122dfbbfddbada562614d205e 100644 (file)
@@ -23,3 +23,18 @@ const struct smtp_capability_name smtp_capability_names[] = {
        { "XCLIENT", SMTP_CAPABILITY_XCLIENT },
        { NULL, 0 }
 };
+
+enum smtp_capability smtp_capability_find_by_name(const char *cap_name)
+{
+       const struct smtp_capability_name *cap;
+       unsigned int i;
+
+       for (i = 0; smtp_capability_names[i].name != NULL; i++) {
+               cap = &smtp_capability_names[i];
+
+               if (strcasecmp(cap_name, cap->name) == 0)
+                       return cap->capability;
+       }
+
+       return SMTP_CAPABILITY_NONE;
+}
index cd8607cb9c7fa34fd5ab5c2ebecce1eb00f29352..c257a16bca8dcf110e3ecc2718b8a56824ef91f0 100644 (file)
@@ -29,6 +29,8 @@ smtp_protocol_name(enum smtp_protocol proto)
 /* SMTP capabilities */
 
 enum smtp_capability {
+       SMTP_CAPABILITY_NONE                = 0,
+
        SMTP_CAPABILITY_AUTH                = BIT(0),
        SMTP_CAPABILITY_STARTTLS            = BIT(1),
        SMTP_CAPABILITY_PIPELINING          = BIT(2),
@@ -51,6 +53,8 @@ struct smtp_capability_name {
 };
 extern const struct smtp_capability_name smtp_capability_names[];
 
+enum smtp_capability smtp_capability_find_by_name(const char *cap_name);
+
 /*
  * SMTP proxy data
  */