$NetBSD: patch-ae,v 1.1 2008/03/03 11:45:17 sketch Exp $ --- throttle_rcpt.c.orig 2007-08-20 07:42:05.000000000 +0100 +++ throttle_rcpt.c 2008-03-03 11:40:14.424059000 +0000 @@ -61,15 +61,18 @@ trcpt[fd] = atof(mysqlchar_array[fd][2]) / atof(mysqlchar_array[fd][1]) * 100; /* percentage won, set attribute accordingly */ - switch (trcpt[fd]) - { - case 0 ... 49: tattrib_array[fd][0] = 'a'; break; - case 50 ... 89: tattrib_array[fd][0] = 'w'; break; - case 90 ... 1000: tattrib_array[fd][0] = 'p'; break; + if (trcpt[fd] >= 0 && trcpt[fd] <= 49) + tattrib_array[fd][0] = 'a'; - default: - logmessage("fatal: throttle_rcpt(): invalid tresult: %d\n", trcpt[fd]); - } + else if (trcpt[fd] >= 50 && trcpt[fd] <= 89) + tattrib_array[fd][0] = 'w'; + + /* allow for big percentage overshoot */ + else if (trcpt[fd] >= 90 && trcpt[fd] <= 1000) + tattrib_array[fd][0] = 'p'; + + else + logmessage("fatal: throttle_rcpt(): invalid tresult: %d\n", trcpt[fd]); /* user is not in the database */ if(strlen(mysqlchar_array[fd][0]) < 2)