From b06f9d7b915432d172751c0722ad6785788c056e Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Wed, 26 Sep 2018 21:32:45 +0200 Subject: [PATCH] lib-smtp: Add utility function for finding capabilities by name. --- src/lib-smtp/smtp-common.c | 15 +++++++++++++++ src/lib-smtp/smtp-common.h | 4 ++++ 2 files changed, 19 insertions(+) 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 */ -- 2.47.3