113 static const char *local_expand_lookup(
const char *name,
int mode,
void *ptr)
116 static char rcpt_delim[2];
118 #define STREQ(x,y) (*(x) == *(y) && strcmp((x), (y)) == 0)
120 if (
STREQ(name,
"user")) {
122 }
else if (
STREQ(name,
"home")) {
124 }
else if (
STREQ(name,
"shell")) {
126 }
else if (
STREQ(name,
"domain")) {
128 }
else if (
STREQ(name,
"local")) {
130 }
else if (
STREQ(name,
"mailbox")) {
132 }
else if (
STREQ(name,
"recipient")) {
134 }
else if (
STREQ(name,
"extension")) {
138 }
else if (
STREQ(name,
"recipient_delimiter")) {
142 return (rcpt_delim[0] ? rcpt_delim : 0);
144 }
else if (
STREQ(name,
"client_hostname")) {
146 }
else if (
STREQ(name,
"client_address")) {
148 }
else if (
STREQ(name,
"client_protocol")) {
150 }
else if (
STREQ(name,
"client_helo")) {
152 }
else if (
STREQ(name,
"sasl_method")) {
154 }
else if (
STREQ(name,
"sasl_sender")) {
156 }
else if (
STREQ(name,
"sasl_username")) {
176 filter, local_expand_lookup, (
void *) &local);
177 return (local.
status | expand_status);
int mac_expand(VSTRING *result, const char *pattern, int flags, const char *filter, MAC_EXP_LOOKUP_FN lookup, void *context)
DELIVER_REQUEST * request
#define MAC_EXP_FLAG_NONE
#define LOCAL_EXP_EXTENSION_MATCHED
int local_expand(VSTRING *result, const char *pattern, LOCAL_STATE *state, USER_ATTR *usr_attr, const char *filter)