* tailing reliable realtime streaming feeder for inn
* xmit.c - transmitting checks and articles, flow control, expiry
*
- * 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"
}
if (use) {
int inqueue, spare;
- conn_inqueue_spare(walk, &inqueue, &spare);
+ conn_inqueue_spare(use, &inqueue, &spare);
if (!inqueue) use->since_activity= 0; /* reset idle counter */
while (spare>0) {
Article *art= dequeue(0);
LIST_REMOVE(art->ipf->queue, art);
art->missing= 1;
- art->ipf->count_nooffer_missing++;
+ art->ipf->counts.events[nooffer_missing]++;
article_done(art,-1);
return 1;
}
for (;;) {
Article *art= LIST_HEAD(ipf->queue);
+ if (!art) break;
int expd= article_check_expired(art);
if (!expd) break;
}
(abort(),-1);
if (!artdata) art->missing= 1;
- art->ipf->counts[art->state][ artdata ? RC_sent : RC_missing ]++;
+ art->ipf->counts.results[art->state][ artdata ? RC_sent : RC_missing ]++;
if (conn->stream) {
if (artdata) {
XMIT_LITERAL("\r\n");
assert(art->state == art_Unchecked);
- art->ipf->counts[art->state][RC_sent]++;
+ art->ipf->counts.results[art->state][RC_sent]++;
LIST_ADDTAIL(conn->sent, art);
}
}