shithub: riscv

Download patch

ref: a7ed529d97c42300881af7fd5b4095a6061cd5f3
parent: c430bf65d3c9a6e80d93bf4ece4430cdd6c2d7fa
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Thu Aug 30 13:39:22 EDT 2012

upas/fs: catch alarm note (used in pop3 code)

--- a/sys/src/cmd/upas/fs/fs.c
+++ b/sys/src/cmd/upas/fs/fs.c
@@ -145,10 +145,9 @@
 }
 
 void
-notifyf(void *a, char *s)
+notifyf(void *, char *s)
 {
-	USED(a);
-	if(strncmp(s, "interrupt", 9) == 0)
+	if(strstr(s, "alarm") || strstr(s, "interrupt"))
 		noted(NCONT);
 	noted(NDFLT);
 }
--- a/sys/src/cmd/upas/fs/pop3.c
+++ b/sys/src/cmd/upas/fs/pop3.c
@@ -83,13 +83,13 @@
 	char *p;
 
 	alarm(60*1000);
-	if((s = Brdstr(&pop->bin, '\n', 0)) == nil){
+	s = Brdstr(&pop->bin, '\n', 0);
+	alarm(0);
+	if(s == nil){
 		close(pop->fd);
 		pop->fd = -1;
-		alarm(0);
 		return "unexpected eof";
 	}
-	alarm(0);
 
 	p = s+strlen(s)-1;
 	while(p >= s && (*p == '\r' || *p == '\n'))
--