[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [leafnode-list] doing fsync after fetching news



Andrey Ulanov <drey@xxxxxxxxxx> writes:

> Just write one any character to file (without ending cr/lf).
> I tested this with slrn and mutt (patched with nntp). 

I see the problem. It tries to print an "internal error" message, but
does not send the trailing CR/LF after the error message.

This patch should prevent the clients from hanging. Please apply it,
recompile and reinstall leafnode (the patch is against
leafnode-1.9.32.rel) and let me know if helps. It won't fix the
corruption, but the hang -- and kills the broken
article. (leafnode-1.9.33 will also detect errors when unlinking, the
patch below will not. leafnode-1.9.33 has not yet been released.)

Index: nntpd.c
===================================================================
RCS file: /var/CVS/leafnode-1/nntpd.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -r1.87 -r1.88
--- nntpd.c	15 Dec 2002 15:56:41 -0000	1.87
+++ nntpd.c	10 Jan 2003 01:01:19 -0000	1.88
@@ -549,7 +549,14 @@
     }
 
     if (!localmsgid) {
-	printf("503 internal error %s:%lu", __FILE__, (unsigned long)__LINE__);
+	const char *tmp = "423 Corrupt article.";
+	printf("%s\r\n", tmp);
+	if (debugmode)
+	    syslog(LOG_DEBUG, ">%s", tmp);
+	if (replyartno) {
+	    (void)xsnprintf(s, SIZE_s, "%lu", replyartno);
+	    (void)unlink(s);
+	}
 	(void)fclose(f);
 	if (xref)
 	    free(xref);


-- 
Matthias Andree
leafnode-1 download: http://sourceforge.net/projects/leafnode/
leafnode-1 docs/new: http://mandree.home.pages.de/leafnode/
leafnode-2 homepage: http://mandree.home.pages.de/leafnode/beta/

-- 
leafnode-list@xxxxxxxxxxxxxxxxxxxxxxxxxxxx -- mailing list for leafnode
To unsubscribe, send mail with "unsubscribe" in the subject to the list