* tailing reliable realtime streaming feeder for inn
* recv.c - receiving peer responses and disposing of articles
*
- * Copyright (C) 2010 Ian Jackson <ijackson@chiark.greenend.org.uk>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * (I believe that when you compile and link this as part of the inn2
- * build, with the Makefile runes I have provided, all the libraries
- * and files which end up included in innduct are licence-compatible
- * with GPLv3. If not then please let me know. -Ian Jackson.)
+ * Copyright Ian Jackson <ijackson@chiark.greenend.org.uk>
+ * and contributors; see LICENCE.txt.
+ * SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "innduct.h"
void article_done(Article *art, int whichcount) {
if (whichcount>=0 && !art->missing)
- art->ipf->counts[art->state][whichcount]++;
+ art->ipf->counts.results[art->state][whichcount]++;
- if (whichcount == RC_accepted) update_nocheck(1);
- else if (whichcount == RC_unwanted) update_nocheck(0);
+ if (whichcount == RC_accepted)
+ update_nocheck(1);
+ else if (whichcount == RC_unwanted ||
+ (whichcount == RC_rejected && art->state == art_Unsolicited))
+ update_nocheck(0);
InputFile *ipf= art->ipf;
conn->quitting, sani);
} else {
LIST_REMOVE(conns,conn);
- notice("C%d (now %d) idle connection closed (%s)",
+ info("C%d (now %d) idle connection closed (%s)",
conn->fd, conns.count, conn->quitting);
+ notice_conns_fewer();
assert(!busy);
conn_dispose(conn);
}
PEERBADMSG("peer timed us out or stopped accepting articles");
LIST_REMOVE(conns,conn);
- notice("C%d (now %d) idle connection closed by peer",
- conns.count, conn->fd);
+ info("C%d (now %d) idle connection closed by peer",
+ conns.count, conn->fd);
+ notice_conns_fewer();
conn_dispose(conn);
return OOP_CONTINUE;
case 335: /* IHAVE says send it */
GET_ARTICLE(-1);
assert(art->state == art_Unchecked);
- art->ipf->counts[art->state][RC_accepted]++;
+ art->ipf->counts.results[art->state][RC_accepted]++;
art->state= art_Wanted;
LIST_ADDTAIL(conn->priority, art);
break;