/*++ /* NAME /* resolve_clnt 3 /* SUMMARY /* address resolve service client (internal forms) /* SYNOPSIS /* #include <resolve_clnt.h> /* /* typedef struct { /* .in +4 /* VSTRING *transport; /* VSTRING *nexthop /* VSTRING *recipient; /* int flags; /* .in -4 /* } RESOLVE_REPLY; /* /* void resolve_clnt_init(reply) /* RESOLVE_REPLY *reply; /* /* void resolve_clnt_query_from(sender, address, reply) /* const char *sender; /* const char *address; /* RESOLVE_REPLY *reply; /* /* void resolve_clnt_verify_from(sender, address, reply) /* const char *sender; /* const char *address; /* RESOLVE_REPLY *reply; /* /* void resolve_clnt_free(reply) /* RESOLVE_REPLY *reply; /* DESCRIPTION /* This module implements a mail address resolver client. /* /* resolve_clnt_init() initializes a reply data structure for use /* by resolve_clnt_query(). The structure is destroyed by passing /* it to resolve_clnt_free(). /* /* resolve_clnt_query_from() sends an internal-form recipient address /* (user@domain) to the resolver daemon and returns the resulting /* transport name, next_hop host name, and internal-form recipient /* address. In case of communication failure the program keeps trying /* until the mail system goes down. The internal-form sender /* information is used for sender-dependent relayhost lookup. /* Specify RESOLVE_NULL_FROM when the sender is unavailable. /* /* resolve_clnt_verify_from() implements an alternative version that can /* be used for address verification. /* /* In the resolver reply, the flags member is the bit-wise OR of /* zero or more of the following: /* .IP RESOLVE_FLAG_FINAL /* The recipient address resolves to a mail transport that performs /* final delivery. The destination is local or corresponds to a hosted /* domain that is handled by the local machine. This flag is currently /* not used. /* .IP RESOLVE_FLAG_ROUTED /* After address resolution the recipient localpart contains further /* routing information, so the resolved next-hop destination is not /* the final destination. /* .IP RESOLVE_FLAG_ERROR /* The address resolved to something that has invalid syntax. /* .IP RESOLVE_FLAG_FAIL /* The request could not be completed. /* .PP /* In addition, the address domain class is returned by setting /* one of the following flags (this is preliminary code awaiting /* more permanent implementation of address domain class handling): /* .IP RESOLVE_CLASS_LOCAL /* The address domain matches $mydestination, $inet_interfaces /* or $proxy_interfaces. /* .IP RESOLVE_CLASS_ALIAS /* The address domain matches $virtual_alias_domains (virtual /* alias domains, where each address is redirected to a real /* local or remote address). /* .IP RESOLVE_CLASS_VIRTUAL /* The address domain matches $virtual_mailbox_domains (true /* virtual domains where each address can have its own mailbox). /* .IP RESOLVE_CLASS_RELAY /* The address domain matches $relay_domains, i.e. this is an /* authorized mail relay destination. /* .IP RESOLVE_CLASS_DEFAULT /* The address matches none of the above. Access to this domain /* should be limited to authorized senders only. /* .PP /* For convenience, the constant RESOLVE_CLASS_FINAL includes all /* cases where the local machine is the final destination. /* DIAGNOSTICS /* Warnings: communication failure. Fatal error: mail system is down. /* SEE ALSO /* mail_proto(3h) low-level mail component glue. /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA /* /* Wietse Venema /* Google, Inc. /* 111 8th Avenue /* New York, NY 10011, USA
/*--*/
while (vstring_fgets_nonl(buffer, VSTREAM_IN)) {
addr = split_at(STR(buffer), ' '); if (*STR(buffer) == 0)
msg_fatal("need as input: class [address]"); if (addr == 0)
addr = "";
resolve(STR(buffer), addr, &reply);
}
vstring_free(buffer);
}
resolve_clnt_free(&reply); exit(0);
}
#endif
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.22Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-08-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.