{
char *bounceaddr, *myrecipient;
char *a = NULL, *mymailfilename;
- char *staticbounceaddr, *staticbounceaddr_localpart;
- char *staticbounceaddr_domain;
+ char *staticbounceaddr, *staticbounceaddr_localpart = NULL;
+ const char *staticbounceaddr_domain = NULL;
mymailfilename = xstrdup(mailfilename);
if (staticbounceaddr) {
staticbounceaddr_localpart = genlistname(staticbounceaddr);
staticbounceaddr_domain = genlistfqdn(staticbounceaddr);
- } else {
- staticbounceaddr_localpart = NULL;
- staticbounceaddr_domain = NULL;
}
if (staticbounceaddr) {
free(staticbounceaddr);
free(staticbounceaddr_localpart);
- free(staticbounceaddr_domain);
} else {
xasprintf(&bounceaddr, "%s%sbounces-%d-%s@%s", ml->name,
ml->delim, index, myrecipient, ml->fqdn);
{
char *bounceaddr, *myrecipient, *mylistadr;
char *listdomain, *a = NULL, *mymailfilename;
- char *staticbounceaddr, *staticbounceaddr_localpart;
- char *staticbounceaddr_domain;
+ char *staticbounceaddr, *staticbounceaddr_localpart = NULL;
+ const char *staticbounceaddr_domain = NULL;
int index;
mymailfilename = xstrdup(mailfilename);
if (staticbounceaddr) {
staticbounceaddr_localpart = genlistname(staticbounceaddr);
staticbounceaddr_domain = genlistfqdn(staticbounceaddr);
- } else {
- staticbounceaddr_localpart = NULL;
- staticbounceaddr_domain = NULL;
}
if (staticbounceaddr) {
free(staticbounceaddr);
free(staticbounceaddr_localpart);
- free(staticbounceaddr_domain);
} else {
xasprintf(&bounceaddr, "%s%sbounces-%d-%s@%s", mylistadr, listdelim,
index, myrecipient, listdomain);
return (xstrndup(listaddr, atsign - listaddr));
}
-char *genlistfqdn(const char *listaddr)
+const char *genlistfqdn(const char *listaddr)
{
const char *atsign;
- atsign = strchr(listaddr, '@');
- MY_ASSERT(atsign);
- return (xstrdup(atsign + 1));
+ atsign = strrchr(listaddr, '@');
+ if (atsign == NULL)
+ return (NULL);
+ return (atsign + 1);
}
char *hostnamestr(void)
ATF_TC_BODY(genlistfqdn, tc)
{
- char *ret;
+ const char *ret;
ret = genlistfqdn("plop@bla");
ATF_REQUIRE_STREQ(ret, "bla");
ret = genlistfqdn("plop@bla@meh");
- ATF_REQUIRE_STREQ(ret, "bla@meh");
+ ATF_REQUIRE_STREQ(ret, "meh");
}
ATF_TC_BODY(smtp, tc)