Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

...@@ -922,7 +922,7 @@ function Server_Work(cmdline) { ...@@ -922,7 +922,7 @@ function Server_Work(cmdline) {
), false /*bcast*/); ), false /*bcast*/);
} }
if (tmp.created >= parseInt(p[0])) { /* We have TS superiority */ if (tmp.created >= parseInt(p[0])) { /* They have TS superiority */
if (k.isop) if (k.isop)
tmp.modelist[CHANMODE_OP][n.id] = n.id; tmp.modelist[CHANMODE_OP][n.id] = n.id;
if (k.isvoice) if (k.isvoice)
...@@ -936,7 +936,30 @@ function Server_Work(cmdline) { ...@@ -936,7 +936,30 @@ function Server_Work(cmdline) {
n.nick n.nick
), false /*bcast*/); ), false /*bcast*/);
} }
} else { /* We have TS superiority */
if (k.isop) {
k.isop = false;
this.rawout(format(":%s MODE %s -o %s",
ServerName,
tmp.nam,
k.nick
));
}
if (k.isvoice) {
k.isvoice = false;
this.rawout(format(":%s MODE %s -v %s",
ServerName,
tmp.nam,
k.nick
));
}
} }
j[i] = format("%s%s%s",
k.isop ? "@" : "",
k.isvoice ? "+" : "",
k.nick
);
} }
if (tmp.created > parseInt(p[0])) if (tmp.created > parseInt(p[0]))
...@@ -948,7 +971,7 @@ function Server_Work(cmdline) { ...@@ -948,7 +971,7 @@ function Server_Work(cmdline) {
tmp.created, tmp.created,
tmp.nam, tmp.nam,
tmp.chanmode(true /* pass args */), tmp.chanmode(true /* pass args */),
p[p.length-1] j.join(" ")
) )
); );
} else { /* User single SJOIN */ } else { /* User single SJOIN */
......