summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debian/changelog6
-rw-r--r--ircxmpp.c26
2 files changed, 20 insertions, 12 deletions
diff --git a/debian/changelog b/debian/changelog
index f21b1f4..f366f51 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ircxmpp (0.0.10-1) stable; urgency=low
+
+ * do not use 0.0.9
+
+ -- Anton Luka Šijanec <anton@sijanec.eu> Sun, 8 May 2022 13:15:00 +0200
+
ircxmpp (0.0.9-1) stable; urgency=low
* how did this slip my extensive testing?
diff --git a/ircxmpp.c b/ircxmpp.c
index 73ebc81..43c9206 100644
--- a/ircxmpp.c
+++ b/ircxmpp.c
@@ -138,18 +138,20 @@ static void bridge_forward (const char * f, const char * m, struct ircxmpp * irc
bridge->side = !s;
tsearch(bridge, &ircxmpp->bridges, bridge_compare);
if (s == IRC) {
- char buf[512+512+strlen(ircxmpp->domain)]; // for good measure, i think
- char * cp = strchr(f, '@'); // 512+1+strlen is enough
- if (cp) { // cmiiw
- strncpy(buf, cp+1, 511);
- buf[511] = '\0';
- } else
- strcpy(buf, "unable.to.extract.domain.from.JID");
- *strchrnul(buf, '/') = '\0';
- if (buf[strlen(buf)-1] != '.') // jid domain can probably end with a dot.
- strcat(buf, "."); // two consecutive dots would invalidate
- strcat(buf, ircxmpp->domain); // the domain
- ircxmpp->domain_setter(ircxmpp->domain_setter_userdata, buf);
+ if (ircxmpp->domain) {
+ char buf[512+512+strlen(ircxmpp->domain)]; // for good measure
+ char * cp = strchr(f, '@'); // 512+1+strlen is ok
+ if (cp) { // cmiiw
+ strncpy(buf, cp+1, 511);
+ buf[511] = '\0';
+ } else
+ strcpy(buf, "unable.to.extract.domain.from.JID");
+ *strchrnul(buf, '/') = '\0';
+ if (buf[strlen(buf)-1] != '.') // jid domain can probably end with .
+ strcat(buf, "."); // two consecutive dots would
+ strcat(buf, ircxmpp->domain); // +invalidate the domain
+ ircxmpp->domain_setter(ircxmpp->domain_setter_userdata, buf);
+ }
init_irc(bridge);
} else {
bridge->conn = xmpp_conn_new(bridge->ircxmpp->ctx);