[CLEANUP] proxy: move last lb-specific bits to their respective files

The lbprm structure has moved to backend.h, where it should be, and
all algo-specific types and declarations have moved to their specific
files. The proxy struct is now much more readable.
diff --git a/include/types/backend.h b/include/types/backend.h
index 983d009..7e5b342 100644
--- a/include/types/backend.h
+++ b/include/types/backend.h
@@ -1,30 +1,34 @@
 /*
-  include/types/backend.h
-  This file assembles definitions for backends
-
-  Copyright (C) 2000-2008 Willy Tarreau - w@1wt.eu
-  
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation, version 2.1
-  exclusively.
-
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+ * include/types/backend.h
+ * This file assembles definitions for backends
+ *
+ * Copyright (C) 2000-2009 Willy Tarreau - w@1wt.eu
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, version 2.1
+ * exclusively.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
 
 #ifndef _TYPES_BACKEND_H
 #define _TYPES_BACKEND_H
 
 #include <common/config.h>
+#include <types/lb_fwlc.h>
+#include <types/lb_fwrr.h>
+#include <types/lb_map.h>
+#include <types/server.h>
 
-/* Parameters for proxy->lbprm.algo.
+/* Parameters for lbprm.algo.
  * The low part of the value is unique for each algo so that applying the mask
  * BE_LB_ALGO returns a unique algorithm.
  * The high part indicates specific properties.
@@ -58,6 +62,26 @@
  */
 #define BE_WEIGHT_SCALE 16
 
+/* LB parameters for all algorithms */
+struct lbprm {
+	int algo;			/* load balancing algorithm and variants: BE_LB_ALGO_* */
+	int tot_wact, tot_wbck;		/* total effective weights of active and backup servers */
+	int tot_weight;			/* total effective weight of servers participating to LB */
+	int tot_used;			/* total number of servers used for LB */
+	int wmult;			/* ratio between user weight and effective weight */
+	int wdiv;			/* ratio between effective weight and user weight */
+	struct server *fbck;		/* first backup server when !PR_O_USE_ALL_BK, or NULL */
+	struct lb_map map;		/* LB parameters for map-based algorithms */
+	struct lb_fwrr fwrr;
+	struct lb_fwlc fwlc;
+	/* Call backs for some actions. Some may be NULL (thus should be ignored). */
+	void (*update_server_eweight)(struct server *);  /* to be called after eweight change */
+	void (*set_server_status_up)(struct server *);   /* to be called after status changes to UP */
+	void (*set_server_status_down)(struct server *); /* to be called after status changes to DOWN */
+	void (*server_take_conn)(struct server *);       /* to be called when connection is assigned */
+	void (*server_drop_conn)(struct server *);       /* to be called when connection is dropped */
+};
+
 #endif /* _TYPES_BACKEND_H */
 
 /*