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

Commit 153575fe authored by Rob Swindell's avatar Rob Swindell 💬

Merge remote-tracking branch 'origin/master'

parents 81492c8a 0148084b
Pipeline #594 passed with stage
in 15 minutes and 21 seconds
......@@ -106,7 +106,10 @@ function getReferenceTo(hdr) {
for(s in msg_area.grp_list[g].sub_list)
if (msg_area.grp_list[g].sub_list[s].newsgroup.toLowerCase() == newsgroups[n].toLowerCase()) {
var mb=new MsgBase(msg_area.grp_list[g].sub_list[s].code);
if (mb.open() != true) continue;
if (!mb.open() ) {
log(LOG_ERR, "Error " + mb.error + " opening " + mb.file);
continue;
}
var hdr2 = mb.get_msg_header(hdr.reply_id);
if (hdr2 != null) to = hdr2.from;
mb.close();
......@@ -317,19 +320,26 @@ while(client.socket.is_connected && !quit) {
pattern=cmd[2];
writeln("215 list of newsgroups follows");
if(include_mail && user.security.level == 99 && wildmatch("mail", pattern)) {
if(msgbase && msgbase.is_open)
msgbase.close();
msgbase=new MsgBase("mail");
if(msgbase.open()==true) {
writeln(format("mail %u %u n", msgbase.last_msg, msgbase.first_msg));
msgbase.close();
}
} else
log(LOG_ERR, "Error " + msgbase.error + " opening " + msgbase.file);
}
for(g in msg_area.grp_list)
for(s in msg_area.grp_list[g].sub_list) {
if(!wildmatch(msg_area.grp_list[g].sub_list[s].newsgroup, pattern))
continue;
if(msgbase && msgbase.is_open)
msgbase.close();
msgbase=new MsgBase(msg_area.grp_list[g].sub_list[s].code);
if(msgbase.open!=undefined && msgbase.open()==false)
if(!msgbase.open()) {
log(LOG_ERR, "Error " + msgbase.error + " opening " + msgbase.file);
continue;
}
var count = count_msgs(msgbase);
writeln(format("%s %u %u %s"
,msg_area.grp_list[g].sub_list[s].newsgroup
......@@ -443,21 +453,26 @@ while(client.socket.is_connected && !quit) {
writeln("231 list of new newsgroups since " + compare.toISOString() + " follows");
for(g in msg_area.grp_list) {
for(s in msg_area.grp_list[g].sub_list) {
if(msgbase && msgbase.is_open)
msgbase.close();
msgbase=new MsgBase(msg_area.grp_list[g].sub_list[s].code);
var ini_file = new File(msgbase.file + ".ini");
if(ini_file.open("r")) {
var created = ini_file.iniGetValue(null, "Created", 0);
ini_file.close();
if(created >= compare.getTime() / 1000
&& msgbase.open()) {
var count = count_msgs(msgbase);
writeln(format("%s %u %u %s"
,msg_area.grp_list[g].sub_list[s].newsgroup
,count.last
,count.first
,msg_area.grp_list[g].sub_list[s].is_moderated ? "m" : (msg_area.grp_list[g].sub_list[s].can_post ? "y" : "n")
));
msgbase.close();
if(created >= compare.getTime() / 1000) {
if(msgbase.open()) {
var count = count_msgs(msgbase);
writeln(format("%s %u %u %s"
,msg_area.grp_list[g].sub_list[s].newsgroup
,count.last
,count.first
,msg_area.grp_list[g].sub_list[s].is_moderated ? "m" : (msg_area.grp_list[g].sub_list[s].can_post ? "y" : "n")
));
msgbase.close();
} else {
log(LOG_ERR, "Error " + msgbase.error + " opening " + msgbase.file);
}
}
}
}
......@@ -481,19 +496,27 @@ while(client.socket.is_connected && !quit) {
found=true;
}
else if(include_mail && user.security.level==99 && cmd[1].toLowerCase()=="mail") {
if(msgbase && msgbase.is_open)
msgbase.close();
msgbase=new MsgBase("mail");
if(msgbase.open()==true) {
selected = { newsgroup: "mail" };
found=true;
} else {
log(LOG_ERR, "Error " + msgbase.error + " opening " + msgbase.file);
}
}
if(!found) {
if(msgbase && msgbase.is_open)
msgbase.close();
for(g in msg_area.grp_list)
for(s in msg_area.grp_list[g].sub_list)
if(msg_area.grp_list[g].sub_list[s].newsgroup.toLowerCase()==cmd[1].toLowerCase()) {
msgbase=new MsgBase(msg_area.grp_list[g].sub_list[s].code);
if(msgbase.open!=undefined && msgbase.open()==false)
if(!msgbase.open()) {
log(LOG_ERR, "Error " + msgbase.error + " opening " + msgbase.file);
continue;
}
found=true;
selected=msg_area.grp_list[g].sub_list[s];
break;
......@@ -941,8 +964,10 @@ while(client.socket.is_connected && !quit) {
}
msgbase=new MsgBase(msg_area.grp_list[g].sub_list[s].code);
if(msgbase.open!=undefined && msgbase.open()==false)
if(!msgbase.open()) {
log(LOG_ERR, "Error " + msgbase.error + " opening " + msgbase.file);
continue;
}
/* NNTP Control Message? */
if(hdr.control!=undefined) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment