git: 9front

Download patch

ref: 4cb5b46013453b44ca8410a59ab8cd923bc2ff06
parent: c783a31311d133fb592edf8df02525b725d5a164
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'))
--