[MINOR] changed server weight storage from char to unsigned int

This change does not affect memory usage much, but it simplifies the
code a lot by removing many +1/-1 operations on weights.
diff --git a/include/types/server.h b/include/types/server.h
index d4856de..b887d25 100644
--- a/include/types/server.h
+++ b/include/types/server.h
@@ -82,8 +82,8 @@
 	int curfd;				/* file desc used for current test, or -1 if not in test */
 
 	char *id;				/* just for identification */
-	unsigned char uweight, eweight;		/* user-specified weight-1, and effective weight-1 */
-	unsigned int wscore;			/* weight score, used during srv map computation */
+	unsigned uweight, eweight;		/* user-specified weight, and effective weight */
+	unsigned wscore;			/* weight score, used during srv map computation */
 
 	unsigned failed_checks, down_trans;	/* failed checks and up-down transitions */
 	unsigned failed_conns, failed_resp;	/* failed connect() and responses */
diff --git a/src/backend.c b/src/backend.c
index 0918a0b..309bee1 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -59,10 +59,10 @@
 		if (srv->state & SRV_RUNNING) {
 			if (srv->state & SRV_BACKUP) {
 				px->srv_bck++;
-				px->tot_wbck += srv->eweight + 1;
+				px->tot_wbck += srv->eweight;
 			} else {
 				px->srv_act++;
-				px->tot_wact += srv->eweight + 1;
+				px->tot_wact += srv->eweight;
 			}
 		}
 	}
@@ -117,7 +117,7 @@
 					break;
 				}
 
-				cur->wscore += cur->eweight + 1;
+				cur->wscore += cur->eweight;
 				v = (cur->wscore + tot) / tot; /* result between 0 and 3 */
 				if (best == NULL || v > max) {
 					max = v;
diff --git a/src/cfgparse.c b/src/cfgparse.c
index cfb2e7e..3102a94 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1197,6 +1197,7 @@
 		newsrv->rise = DEF_RISETIME;
 		newsrv->fall = DEF_FALLTIME;
 		newsrv->health = newsrv->rise; /* up, but will fall down at first failure */
+		newsrv->uweight = 1;
 
 		cur_arg = 3;
 		while (*args[cur_arg]) {
@@ -1238,7 +1239,7 @@
 					      file, linenum, newsrv->id, w);
 					return -1;
 				}
-				newsrv->uweight = w - 1;
+				newsrv->uweight = w;
 				cur_arg += 2;
 			}
 			else if (!strcmp(args[cur_arg], "minconn")) {
@@ -2346,11 +2347,11 @@
 			/* We will factor the weights to reduce the table,
 			 * using Euclide's largest common divisor algorithm
 			 */
-			pgcd = newsrv->uweight + 1;
+			pgcd = newsrv->uweight;
 			for (srv = newsrv->next; srv && pgcd > 1; srv = srv->next) {
 				int t, w;
 		
-				w = srv->uweight + 1;
+				w = srv->uweight;
 				while (w) {
 					t = pgcd % w;
 					pgcd = w;
@@ -2360,11 +2361,11 @@
 
 			act = bck = 0;
 			for (srv = newsrv; srv; srv = srv->next) {
-				srv->eweight = ((srv->uweight + 1) / pgcd) - 1;
+				srv->eweight = srv->uweight / pgcd;
 				if (srv->state & SRV_BACKUP)
-					bck += srv->eweight + 1;
+					bck += srv->eweight;
 				else
-					act += srv->eweight + 1;
+					act += srv->eweight;
 			}
 
 			/* this is the largest map we will ever need for this servers list */
diff --git a/src/proto_http.c b/src/proto_http.c
index b018590..164e31c 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -3512,7 +3512,7 @@
 				     /* act, bck */
 				     "<td>%s</td><td>%s</td>"
 				     "",
-				     sv->uweight+1,
+				     sv->uweight,
 				     (sv->state & SRV_BACKUP) ? "-" : "Y",
 				     (sv->state & SRV_BACKUP) ? "Y" : "-");