From: Stephan Bosch Date: Wed, 26 Sep 2018 19:32:45 +0000 (+0200) Subject: lib-smtp: Add utility function for finding capabilities by name. X-Git-Tag: 2.3.9~1307 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b06f9d7b915432d172751c0722ad6785788c056e;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: Add utility function for finding capabilities by name. --- diff --git a/src/lib-smtp/smtp-common.c b/src/lib-smtp/smtp-common.c index 6db1513048..76dc23ba12 100644 --- a/src/lib-smtp/smtp-common.c +++ b/src/lib-smtp/smtp-common.c @@ -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; +} diff --git a/src/lib-smtp/smtp-common.h b/src/lib-smtp/smtp-common.h index cd8607cb9c..c257a16bca 100644 --- a/src/lib-smtp/smtp-common.h +++ b/src/lib-smtp/smtp-common.h @@ -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 */