diff --git a/.gitignore b/.gitignore
index 4b70a67..ffe4aa1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/keepalived-1.2.10.tar.gz
+SOURCES/keepalived-1.2.13.tar.gz
diff --git a/.keepalived.metadata b/.keepalived.metadata
index 4dc0ac8..3fec58d 100644
--- a/.keepalived.metadata
+++ b/.keepalived.metadata
@@ -1 +1 @@
-a74a98994b60a9eacba6c057f22ec40fd66d39fb SOURCES/keepalived-1.2.10.tar.gz
+50a0d396d3f7c95dadbbe038bfd9bbd73b9b254f SOURCES/keepalived-1.2.13.tar.gz
diff --git a/SOURCES/0001-ipvs-make-nlerr2syserr-libnl-dependent.patch b/SOURCES/0001-ipvs-make-nlerr2syserr-libnl-dependent.patch
deleted file mode 100644
index 03b3014..0000000
--- a/SOURCES/0001-ipvs-make-nlerr2syserr-libnl-dependent.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 71e762fb29a8ba218c90a48e0e160b2bb8b74326 Mon Sep 17 00:00:00 2001
-From: Alexandre Cassen <acassen@gmail.com>
-Date: Mon, 6 Jan 2014 15:04:28 +0100
-Subject: [PATCH 1/7] ipvs: make nlerr2syserr libnl dependent
-
-nlerr2syserr() is only used when libnl is present... simply reflect
-this in libipvs.
----
- keepalived/libipvs-2.6/libipvs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/keepalived/libipvs-2.6/libipvs.c b/keepalived/libipvs-2.6/libipvs.c
-index 223e76b..8ccf94d 100644
---- a/keepalived/libipvs-2.6/libipvs.c
-+++ b/keepalived/libipvs-2.6/libipvs.c
-@@ -54,6 +54,7 @@ static int family, try_nl = 1;
- 	CHECK_IPV4(s, ret);					\
- 	CHECK_PE(s, ret);
- 
-+#ifdef LIBIPVS_USE_NL
- #ifndef FALLBACK_LIBNL1
- static int nlerr2syserr(int err)
- {
-@@ -79,7 +80,6 @@ static int nlerr2syserr(int err)
- }
- #endif
- 
--#ifdef LIBIPVS_USE_NL
- struct nl_msg *ipvs_nl_message(int cmd, int flags)
- {
- 	struct nl_msg *msg;
--- 
-1.8.1.4
-
diff --git a/SOURCES/0002-fix-libnl-libnl-3-logic-in-configure-script.patch b/SOURCES/0002-fix-libnl-libnl-3-logic-in-configure-script.patch
deleted file mode 100644
index 7cca210..0000000
--- a/SOURCES/0002-fix-libnl-libnl-3-logic-in-configure-script.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From b14b99adf4132eab1ecf8d1d4e83fadf5ada1076 Mon Sep 17 00:00:00 2001
-From: Ryan O'Hara <rohara@redhat.com>
-Date: Mon, 6 Jan 2014 11:21:03 -0600
-Subject: [PATCH 2/7] Fix libnl/libnl-3 logic in configure script
-
-This patch causes the configure script to prefer libnl-3 over
-libnl(1). The configure script will first check for libnl-3 and
-libnl-genl-3. If both are found, use them. If not, check for
-libnl(1). This is useful when building on systems that have both
-libnl-3 and libnl(1) installed. It also fixes some redundant libraries
-in LIBS.
----
- configure    | 103 ++++++++++++++++++++++++++++++-----------------------------
- configure.in |  43 +++++++++++++------------
- 2 files changed, 74 insertions(+), 72 deletions(-)
-
-diff --git a/configure b/configure
-index b35331f..be6574e 100755
---- a/configure
-+++ b/configure
-@@ -3896,50 +3896,8 @@ else
-   as_fn_error $? "OpenSSL libraries are required" "$LINENO" 5
- fi
- 
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_modify_cb in -lnl" >&5
--$as_echo_n "checking for nl_socket_modify_cb in -lnl... " >&6; }
--if ${ac_cv_lib_nl_nl_socket_modify_cb+:} false; then :
--  $as_echo_n "(cached) " >&6
--else
--  ac_check_lib_save_LIBS=$LIBS
--LIBS="-lnl  $LIBS"
--cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h.  */
- 
--/* Override any GCC internal prototype to avoid an error.
--   Use char because int might match the return type of a GCC
--   builtin and then its argument prototype would still apply.  */
--#ifdef __cplusplus
--extern "C"
--#endif
--char nl_socket_modify_cb ();
--int
--main ()
--{
--return nl_socket_modify_cb ();
--  ;
--  return 0;
--}
--_ACEOF
--if ac_fn_c_try_link "$LINENO"; then :
--  ac_cv_lib_nl_nl_socket_modify_cb=yes
--else
--  ac_cv_lib_nl_nl_socket_modify_cb=no
--fi
--rm -f core conftest.err conftest.$ac_objext \
--    conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nl_nl_socket_modify_cb" >&5
--$as_echo "$ac_cv_lib_nl_nl_socket_modify_cb" >&6; }
--if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then :
--
--    USE_NL="LIBIPVS_USE_NL"
--    CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
--    LIBS="$LIBS -lnl"
--
--else
--  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_alloc in -lnl-3" >&5
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_alloc in -lnl-3" >&5
- $as_echo_n "checking for nl_socket_alloc in -lnl-3... " >&6; }
- if ${ac_cv_lib_nl_3_nl_socket_alloc+:} false; then :
-   $as_echo_n "(cached) " >&6
-@@ -3977,10 +3935,7 @@ fi
- $as_echo "$ac_cv_lib_nl_3_nl_socket_alloc" >&6; }
- if test "x$ac_cv_lib_nl_3_nl_socket_alloc" = xyes; then :
- 
--      USE_NL="LIBIPVS_USE_NL"
--      CFLAGS="$CFLAGS $(pkg-config --libs --cflags libnl-3.0)"
--      LIBS="$LIBS -lnl-3"
--      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for genl_connect in -lnl-genl-3" >&5
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for genl_connect in -lnl-genl-3" >&5
- $as_echo_n "checking for genl_connect in -lnl-genl-3... " >&6; }
- if ${ac_cv_lib_nl_genl_3_genl_connect+:} false; then :
-   $as_echo_n "(cached) " >&6
-@@ -4018,19 +3973,65 @@ fi
- $as_echo "$ac_cv_lib_nl_genl_3_genl_connect" >&6; }
- if test "x$ac_cv_lib_nl_genl_3_genl_connect" = xyes; then :
- 
--         LIBS="$LIBS -lnl-3 -lnl-genl-3"
-+        USE_NL="LIBIPVS_USE_NL"
-+        CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)"
-+	LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)"
-+
-+else
-+
-+        as_fn_error $? "libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3." "$LINENO" 5
-+
-+fi
-+
- 
- else
- 
--         as_fn_error $? "libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3." "$LINENO" 5
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_modify_cb in -lnl" >&5
-+$as_echo_n "checking for nl_socket_modify_cb in -lnl... " >&6; }
-+if ${ac_cv_lib_nl_nl_socket_modify_cb+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lnl  $LIBS"
-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
- 
-+/* Override any GCC internal prototype to avoid an error.
-+   Use char because int might match the return type of a GCC
-+   builtin and then its argument prototype would still apply.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+char nl_socket_modify_cb ();
-+int
-+main ()
-+{
-+return nl_socket_modify_cb ();
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_link "$LINENO"; then :
-+  ac_cv_lib_nl_nl_socket_modify_cb=yes
-+else
-+  ac_cv_lib_nl_nl_socket_modify_cb=no
- fi
-+rm -f core conftest.err conftest.$ac_objext \
-+    conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nl_nl_socket_modify_cb" >&5
-+$as_echo "$ac_cv_lib_nl_nl_socket_modify_cb" >&6; }
-+if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then :
- 
-+        USE_NL="LIBIPVS_USE_NL"
-+        CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
-+        LIBS="$LIBS $(pkg-config --libs libnl-1)"
- 
- else
- 
--      USE_NL="LIBIPVS_DONTUSE_NL"
--      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: keepalived will be built without libnl support." >&5
-+        USE_NL="LIBIPVS_DONTUSE_NL"
-+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: keepalived will be built without libnl support." >&5
- $as_echo "$as_me: WARNING: keepalived will be built without libnl support." >&2;}
- 
- fi
-diff --git a/configure.in b/configure.in
-index 3daf3ee..3d4a191 100644
---- a/configure.in
-+++ b/configure.in
-@@ -55,29 +55,30 @@ dnl ----[ Checks for libraries ]----
- AC_CHECK_LIB(crypt, crypt,,AC_MSG_ERROR([crypt() function is required]))
- AC_CHECK_LIB(crypto, MD5_Init,,AC_MSG_ERROR([OpenSSL libraries are required]))
- AC_CHECK_LIB(ssl, SSL_CTX_new,,AC_MSG_ERROR([OpenSSL libraries are required]))
--AC_CHECK_LIB(nl, nl_socket_modify_cb,
-+
-+AC_CHECK_LIB(nl-3, nl_socket_alloc,
-   [
--    USE_NL="LIBIPVS_USE_NL"
--    CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
--    LIBS="$LIBS -lnl"
-+    AC_CHECK_LIB(nl-genl-3, genl_connect,
-+      [
-+        USE_NL="LIBIPVS_USE_NL"
-+        CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)"
-+	LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)"
-+      ],
-+      [
-+        AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.])
-+      ])
-   ],
--  [AC_CHECK_LIB(nl-3, nl_socket_alloc,
--    [
--      USE_NL="LIBIPVS_USE_NL"
--      CFLAGS="$CFLAGS $(pkg-config --libs --cflags libnl-3.0)"
--      LIBS="$LIBS -lnl-3"
--      AC_CHECK_LIB(nl-genl-3, genl_connect,
--       [
--         LIBS="$LIBS -lnl-3 -lnl-genl-3"
--       ],
--       [
--         AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.])
--       ])
--    ],
--    [
--      USE_NL="LIBIPVS_DONTUSE_NL"
--      AC_MSG_WARN([keepalived will be built without libnl support.])
--    ])
-+  [
-+    AC_CHECK_LIB(nl, nl_socket_modify_cb,
-+      [
-+        USE_NL="LIBIPVS_USE_NL"
-+        CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
-+        LIBS="$LIBS $(pkg-config --libs libnl-1)"
-+      ],
-+      [                                                                                           
-+        USE_NL="LIBIPVS_DONTUSE_NL"
-+        AC_MSG_WARN([keepalived will be built without libnl support.])
-+      ])
-   ])
- 
- dnl ----[ Kernel version check ]----
--- 
-1.8.1.4
-
diff --git a/SOURCES/0003-libipvs-libnl-3-include-fix.patch b/SOURCES/0003-libipvs-libnl-3-include-fix.patch
deleted file mode 100644
index 5a186ea..0000000
--- a/SOURCES/0003-libipvs-libnl-3-include-fix.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From e2562e4bc40e6092d07e0e2ad8d43fdf9d79e463 Mon Sep 17 00:00:00 2001
-From: Alexandre Cassen <acassen@gmail.com>
-Date: Tue, 7 Jan 2014 08:37:22 +0100
-Subject: [PATCH 3/7] libipvs: libnl-3 include fix
-
-when libnl-3 is present use proper include path. On most system libnl-3
-include path is /usr/include/libnl3.
----
- configure                          | 4 ++++
- configure.in                       | 3 +++
- keepalived/libipvs-2.6/Makefile.in | 2 +-
- 3 files changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index be6574e..90cca7d 100755
---- a/configure
-+++ b/configure
-@@ -622,6 +622,7 @@ ac_includes_default="\
- ac_subst_vars='LTLIBOBJS
- LIBOBJS
- VRRP_SUPPORT
-+INCLUDE_NL
- USE_NL
- IPVS_SUPPORT
- VERSION_DATE
-@@ -3976,6 +3977,7 @@ if test "x$ac_cv_lib_nl_genl_3_genl_connect" = xyes; then :
-         USE_NL="LIBIPVS_USE_NL"
-         CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)"
- 	LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)"
-+	INCLUDE_NL="-I/usr/include/libnl3"
- 
- else
- 
-@@ -4027,6 +4029,7 @@ if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then :
-         USE_NL="LIBIPVS_USE_NL"
-         CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
-         LIBS="$LIBS $(pkg-config --libs libnl-1)"
-+	INCLUDE_NL=""
- 
- else
- 
-@@ -4462,6 +4465,7 @@ fi
- 
- 
- 
-+
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
- $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
- if ${ac_cv_c_const+:} false; then :
-diff --git a/configure.in b/configure.in
-index 3d4a191..364890d 100644
---- a/configure.in
-+++ b/configure.in
-@@ -63,6 +63,7 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc,
-         USE_NL="LIBIPVS_USE_NL"
-         CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)"
- 	LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)"
-+	INCLUDE_NL="-I/usr/include/libnl3"
-       ],
-       [
-         AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.])
-@@ -74,6 +75,7 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc,
-         USE_NL="LIBIPVS_USE_NL"
-         CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
-         LIBS="$LIBS $(pkg-config --libs libnl-1)"
-+	INCLUDE_NL=""
-       ],
-       [                                                                                           
-         USE_NL="LIBIPVS_DONTUSE_NL"
-@@ -277,6 +279,7 @@ AC_SUBST(VERSION)
- AC_SUBST(VERSION_DATE)
- AC_SUBST(IPVS_SUPPORT)
- AC_SUBST(USE_NL)
-+AC_SUBST(INCLUDE_NL)
- AC_SUBST(VRRP_SUPPORT)
- 
- dnl ----[ Checks for typedefs, structures, and compiler characteristics ]----
-diff --git a/keepalived/libipvs-2.6/Makefile.in b/keepalived/libipvs-2.6/Makefile.in
-index 14cfa95..dfefc7d 100644
---- a/keepalived/libipvs-2.6/Makefile.in
-+++ b/keepalived/libipvs-2.6/Makefile.in
-@@ -1,7 +1,7 @@
- # Makefile for libipvs
- 
- CC		= @CC@
--CFLAGS		= @CFLAGS@ @CPPFLAGS@ -D@USE_NL@ -Wall -Wunused
-+CFLAGS		= @CFLAGS@ @CPPFLAGS@ @INCLUDE_NL@ -D@USE_NL@ -Wall -Wunused
- 
- export OBJS += libipvs.a
- 
--- 
-1.8.1.4
-
diff --git a/SOURCES/0004-lib-extend-command-lib-string-parser.patch b/SOURCES/0004-lib-extend-command-lib-string-parser.patch
deleted file mode 100644
index 7dab0bb..0000000
--- a/SOURCES/0004-lib-extend-command-lib-string-parser.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From dcdc2aeafb04d09b9d7ba412d8b417c9fd072c2a Mon Sep 17 00:00:00 2001
-From: Alexandre Cassen <acassen@gmail.com>
-Date: Tue, 7 Jan 2014 15:38:57 +0100
-Subject: [PATCH 4/7] lib: extend command lib string parser
-
-Extend cmd_make_strvec to support quoted string as a single slot and
-commented string at the end of parsed string.
----
- lib/Makefile.in |  2 +-
- lib/command.c   | 34 +++++++++++++++++++++++-----------
- 2 files changed, 24 insertions(+), 12 deletions(-)
-
-diff --git a/lib/Makefile.in b/lib/Makefile.in
-index 9eb929e..ee4691f 100644
---- a/lib/Makefile.in
-+++ b/lib/Makefile.in
-@@ -42,6 +42,6 @@ logger.o: logger.c logger.h
- list_head.o: list_head.c list_head.h
- buffer.o: buffer.c buffer.h memory.h
- command.o: command.c command.h vector.h memory.h vty.h timer.h \
--	config.h
-+	config.h logger.h
- vty.o: vty.c vty.h scheduler.h timer.h utils.h command.h logger.h \
- 	memory.h
-diff --git a/lib/command.c b/lib/command.c
-index eff59de..4814594 100644
---- a/lib/command.c
-+++ b/lib/command.c
-@@ -35,7 +35,7 @@
- #include "timer.h"
- 
- /* Command vector which includes some level of command lists. Normally
-- * each daemon maintains each own cmdvec. */
-+ * each daemon maintains its own cmdvec. */
- vector_t *cmdvec = NULL;
- 
- desc_t desc_cr;
-@@ -156,7 +156,9 @@ sort_node(void)
- 
- /* Breaking up string into each command piece. I assume given
-  * character is separated by a space character. Return value is a
-- * vector which includes char ** data element. */
-+ * vector which includes char ** data element. It supports
-+ * quoted string as a single slot and commented string at
-+ * the end of parsed string */
- vector_t *
- cmd_make_strvec(const char *string)
- {
-@@ -187,20 +189,30 @@ cmd_make_strvec(const char *string)
- 	/* Copy each command piece and set into vector. */
- 	while (1) {
- 		start = cp;
--		while (!(isspace((int) *cp) || *cp == '\r' || *cp == '\n') &&
--		       *cp != '\0')
-+		if (*cp == '"') {
- 			cp++;
--		strlen = cp - start;
--		token = (char *) MALLOC(strlen + 1);
--		memcpy(token, start, strlen);
--		*(token + strlen) = '\0';
--		vector_set(strvec, token);
-+			token = MALLOC(2);
-+			*(token) = '"';
-+			*(token + 1) = '\0';
-+		} else {
-+			while (!(isspace((int) *cp) || *cp == '\r' || *cp == '\n') &&
-+			       *cp != '\0' && *cp != '"')
-+				cp++;
-+			strlen = cp - start;
-+			token = (char *) MALLOC(strlen + 1);
-+			memcpy(token, start, strlen);
-+			*(token + strlen) = '\0';
-+		}
-+
-+		/* Alloc & set the slot */
-+		vector_alloc_slot(strvec);
-+		vector_set_slot(strvec, token);
- 
--		while ((isspace ((int) *cp) || *cp == '\n' || *cp == '\r') &&
-+		while ((isspace((int) *cp) || *cp == '\n' || *cp == '\r') &&
- 		       *cp != '\0')
- 			cp++;
- 
--		if (*cp == '\0')
-+		if (*cp == '\0' || *cp == '!' || *cp == '#')
- 			return strvec;
- 	}
- }
--- 
-1.8.1.4
-
diff --git a/SOURCES/0005-lib-cosmetics-at-command.c.patch b/SOURCES/0005-lib-cosmetics-at-command.c.patch
deleted file mode 100644
index 246b372..0000000
--- a/SOURCES/0005-lib-cosmetics-at-command.c.patch
+++ /dev/null
@@ -1,309 +0,0 @@
-From 8db312d415bab144c9e5b6fd41ced3c020fcaa82 Mon Sep 17 00:00:00 2001
-From: Alexandre Cassen <acassen@gmail.com>
-Date: Tue, 7 Jan 2014 15:58:12 +0100
-Subject: [PATCH 5/7] lib: cosmetics at command.c
-
-Extend command framework to support logger and remove some dead code.
-some cosmetics too.
----
- lib/command.c | 86 +++++++++++++++++++++--------------------------------------
- lib/command.h | 24 +++++------------
- 2 files changed, 37 insertions(+), 73 deletions(-)
-
-diff --git a/lib/command.c b/lib/command.c
-index 4814594..04079b5 100644
---- a/lib/command.c
-+++ b/lib/command.c
-@@ -33,6 +33,7 @@
- #include "vty.h"
- #include "command.h"
- #include "timer.h"
-+#include "logger.h"
- 
- /* Command vector which includes some level of command lists. Normally
-  * each daemon maintains its own cmdvec. */
-@@ -310,8 +311,8 @@ cmd_make_descvec(const char *string, const char *descstr)
- 
- 		if (*cp == '|') {
- 			if (!multiple) {
--				fprintf (stderr, "Command parse error!: %s\n", string);
--				exit (1);
-+				log_message(LOG_ERR, "Command parse error!: %s\n", string);
-+				exit(1);
- 			}
- 			cp++;
- 		}
-@@ -407,9 +408,9 @@ install_element(node_type_t ntype, cmd_element_t *cmd)
- 	cnode = vector_slot(cmdvec, ntype);
- 
- 	if (cnode == NULL) {
--		fprintf (stderr, "Command node %d doesn't exist, please check it\n",
--			 ntype);
--		exit (1);
-+		log_message(LOG_ERR, "Command node %d doesn't exist, please check it\n"
-+				   , ntype);
-+		exit(1);
- 	}
- 
- 	vector_set(cnode->cmd_vector, cmd);
-@@ -417,7 +418,7 @@ install_element(node_type_t ntype, cmd_element_t *cmd)
- 	if (cmd->strvec == NULL)
- 		cmd->strvec = cmd_make_descvec(cmd->string, cmd->doc);
- 
--	cmd->cmdsize = cmd_cmdsize (cmd->strvec);
-+	cmd->cmdsize = cmd_cmdsize(cmd->strvec);
- }
- 
- static const unsigned char itoa64[] =
-@@ -489,9 +490,9 @@ config_write_host(vty_t *vty)
- static vector_t *
- cmd_node_vector(vector_t *v, node_type_t ntype)
- {
--  cmd_node_t *cnode = vector_slot(v, ntype);
-+	cmd_node_t *cnode = vector_slot(v, ntype);
- 
--  return cnode->cmd_vector;
-+	return cnode->cmd_vector;
- }
- 
- /* Completion match types. */
-@@ -825,8 +826,8 @@ cmd_filter_by_completion(char *command, vector_t *v, unsigned int index)
- 
- 	/* If command and cmd_element string does not match set NULL to vector */
- 	for (i = 0; i < vector_active (v); i++) {
--		if ((cmd_element = vector_slot (v, i)) != NULL) {
--			if (index >= vector_active (cmd_element->strvec)) {
-+		if ((cmd_element = vector_slot(v, i)) != NULL) {
-+			if (index >= vector_active(cmd_element->strvec)) {
- 				vector_slot(v, i) = NULL;
- 			} else {
- 				unsigned int j;
-@@ -911,12 +912,12 @@ cmd_filter_by_string(char *command, vector_t *v, unsigned int index)
- 	match_type = no_match;
- 
- 	/* If command and cmd_element string does not match set NULL to vector */
--	for (i = 0; i < vector_active (v); i++) {
-+	for (i = 0; i < vector_active(v); i++) {
- 		if ((cmd_element = vector_slot (v, i)) != NULL) {
- 			/* If given index is bigger than max string vector of command,
- 			 * set NULL */
--			if (index >= vector_active (cmd_element->strvec)) {
--				vector_slot (v, i) = NULL;
-+			if (index >= vector_active(cmd_element->strvec)) {
-+				vector_slot(v, i) = NULL;
- 			} else {
- 				unsigned int j;
- 				int matched = 0;
-@@ -1161,9 +1162,9 @@ cmd_unique_string(vector_t *v, const char *str)
- 	unsigned int i;
- 	char *match;
- 
--	for (i = 0; i < vector_active (v); i++) {
--		if ((match = vector_slot (v, i)) != NULL) {
--			if (strcmp (match, str) == 0) {
-+	for (i = 0; i < vector_active(v); i++) {
-+		if ((match = vector_slot(v, i)) != NULL) {
-+			if (strcmp(match, str) == 0) {
- 				return 0;
- 			}
- 		}
-@@ -1180,9 +1181,9 @@ desc_unique_string(vector_t *v, const char *str)
- 	unsigned int i;
- 	desc_t *desc;
- 
--	for (i = 0; i < vector_active (v); i++) {
--		if ((desc = vector_slot (v, i)) != NULL) {
--			if (strcmp (desc->cmd, str) == 0) {
-+	for (i = 0; i < vector_active(v); i++) {
-+		if ((desc = vector_slot(v, i)) != NULL) {
-+			if (strcmp(desc->cmd, str) == 0) {
- 				return 1;
- 			}
- 		}
-@@ -1418,7 +1419,7 @@ cmd_complete_command_real(vector_t *vline, vty_t *vty, int *status)
- 			int ret;
- 
- 			/* First try completion match, if there is exactly match return 1 */
--			match = cmd_filter_by_completion (command, cmd_vector, i);
-+			match = cmd_filter_by_completion(command, cmd_vector, i);
- 
- 			/* If there is exact match then filter ambiguous match else check
- 			 * ambiguousness. */
-@@ -1434,8 +1435,8 @@ cmd_complete_command_real(vector_t *vline, vty_t *vty, int *status)
- 	matchvec = vector_init(INIT_MATCHVEC_SIZE);
- 
- 	/* Now we got into completion */
--	for (i = 0; i < vector_active (cmd_vector); i++) {
--		if ((cmd_element = vector_slot (cmd_vector, i))) {
-+	for (i = 0; i < vector_active(cmd_vector); i++) {
-+		if ((cmd_element = vector_slot(cmd_vector, i))) {
- 			const char *string;
- 			vector_t *strvec = cmd_element->strvec;
- 
-@@ -1560,28 +1561,6 @@ cmd_complete_command(vector_t *vline, vty_t *vty, int *status)
- node_type_t
- node_parent(node_type_t node)
- {
--#if 0
--	node_type_t ret;
--
--	assert(node > CONFIG_NODE);
--
--	switch (node) {
--	case BGP_VPNV4_NODE:
--	case BGP_IPV4_NODE:
--	case BGP_IPV4M_NODE:
--	case BGP_IPV6_NODE:
--	case BGP_IPV6M_NODE:
--		ret = BGP_NODE;
--		break;
--	case KEYCHAIN_KEY_NODE:
--		ret = KEYCHAIN_NODE;
--		break;
--	default:
--		ret = CONFIG_NODE;
--	}
--
--	return ret;
--#endif
- 	return CONFIG_NODE;
- }
- 
-@@ -1628,8 +1607,8 @@ cmd_execute_command_real(vector_t *vline, vty_t *vty, cmd_element_t **cmd)
- 	matched_count = 0;
- 	incomplete_count = 0;
- 
--	for (i = 0; i < vector_active (cmd_vector); i++) {
--		if ((cmd_element = vector_slot (cmd_vector, i))) {
-+	for (i = 0; i < vector_active(cmd_vector); i++) {
-+		if ((cmd_element = vector_slot(cmd_vector, i))) {
- 			if (match == vararg_match || index >= cmd_element->cmdsize) {
- 				matched_element = cmd_element;
- 				matched_count++;
-@@ -1718,7 +1697,7 @@ cmd_execute_command(vector_t *vline, vty_t *vty, cmd_element_t **cmd, int vtysh)
- 	}
- 
- 
--	saved_ret = ret = cmd_execute_command_real (vline, vty, cmd);
-+	saved_ret = ret = cmd_execute_command_real(vline, vty, cmd);
- 
- 	if (vtysh)
- 		return saved_ret;
-@@ -1957,10 +1936,10 @@ DEFUN(config_exit,
- }
- 
- /* quit is alias of exit. */
--ALIAS (config_exit,
--       config_quit_cmd,
--       "quit",
--       "Exit current mode and down to previous mode\n")
-+ALIAS(config_exit,
-+      config_quit_cmd,
-+      "quit",
-+      "Exit current mode and down to previous mode\n")
-        
- /* End of configuration. */
- DEFUN(config_end,
-@@ -2038,7 +2017,7 @@ DEFUN(config_list,
- 
- 	for (i = 0; i < vector_active (cnode->cmd_vector); i++)
- 		if ((cmd = vector_slot (cnode->cmd_vector, i)) != NULL &&
--		    !(cmd->attr == CMD_ATTR_DEPRECATED || cmd->attr == CMD_ATTR_HIDDEN))
-+		    cmd->attr != CMD_ATTR_HIDDEN)
- 			vty_out(vty, "  %s%s", cmd->string, VTY_NEWLINE);
- 
- 	return CMD_SUCCESS;
-@@ -2612,7 +2591,6 @@ cmd_init(void)
- 	install_element(VIEW_NODE, &config_terminal_no_length_cmd);
- 	install_element(VIEW_NODE, &echo_cmd);
- 
--//	install_element(ENABLE_NODE, &config_exit_cmd);
- 	install_default(ENABLE_NODE);
- 	install_element(ENABLE_NODE, &config_disable_cmd);
- 	install_element(ENABLE_NODE, &config_terminal_cmd);
-@@ -2626,8 +2604,6 @@ cmd_init(void)
- 	install_element(ENABLE_NODE, &echo_cmd);
- 
- 	install_default(CONFIG_NODE);
--//	install_element(CONFIG_NODE, &config_exit_cmd);
--
-   
- 	install_element(CONFIG_NODE, &hostname_cmd);
- 	install_element(CONFIG_NODE, &no_hostname_cmd);
-diff --git a/lib/command.h b/lib/command.h
-index 34091a9..71191a1 100644
---- a/lib/command.h
-+++ b/lib/command.h
-@@ -64,6 +64,7 @@ typedef enum _node_type {
- 
- 	VTY_NODE,					/* Vty node. */
- 
-+	GLOBAL_NODE,					/* Global daemon commands. */
- 	CHECK_NODE,					/* Checker framework commands. */
- 	VRRP_NODE,					/* VRRP framework commands. */
- } node_type_t;
-@@ -118,8 +119,7 @@ typedef struct _desc {
-  */
- 
- enum {
--	CMD_ATTR_DEPRECATED = 1,
--	CMD_ATTR_HIDDEN,
-+	CMD_ATTR_HIDDEN = 1,
- };
- 
- #define CMD_SUCCESS		0
-@@ -187,9 +187,6 @@ enum {
- #define DEFUN_HIDDEN(funcname, cmdname, cmdstr, helpstr)			\
- 	DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN)
- 
--#define DEFUN_DEPRECATED(funcname, cmdname, cmdstr, helpstr)			\
--	DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED)
--
- /* DEFUN_NOSH for commands that vtysh should ignore */
- #define DEFUN_NOSH(funcname, cmdname, cmdstr, helpstr)				\
- 	DEFUN(funcname, cmdname, cmdstr, helpstr)
-@@ -213,9 +210,6 @@ enum {
- #define DEFUNSH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr)		\
- 	DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN)
- 
--#define DEFUNSH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr)		\
--	DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED)
--
- /* ALIAS macro which define existing command's alias. */
- #define ALIAS(funcname, cmdname, cmdstr, helpstr)				\
- 	DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0)
-@@ -226,27 +220,21 @@ enum {
- #define ALIAS_HIDDEN(funcname, cmdname, cmdstr, helpstr)			\
- 	DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, 0)
- 
--#define ALIAS_DEPRECATED(funcname, cmdname, cmdstr, helpstr)			\
--	DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, 0)
--
- #define ALIAS_SH(daemon, funcname, cmdname, cmdstr, helpstr)			\
- 	DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, daemon)
- 
- #define ALIAS_SH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr)		\
- 	DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, daemon)
- 
--#define ALIAS_SH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr)		\
--	DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, daemon)
--
- #define CMD_OPTION(S)	((S[0]) == '[')
- #define CMD_VARIABLE(S)	(((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<'))
- #define CMD_VARARG(S)	((S[0]) == '.')
- #define CMD_RANGE(S)	((S[0] == '<'))
- 
--#define CMD_IPV4(S)		((strcmp ((S), "A.B.C.D") == 0))
--#define CMD_IPV4_PREFIX(S)	((strcmp ((S), "A.B.C.D/M") == 0))
--#define CMD_IPV6(S)		((strcmp ((S), "X:X::X:X") == 0))
--#define CMD_IPV6_PREFIX(S)	((strcmp ((S), "X:X::X:X/M") == 0))
-+#define CMD_IPV4(S)		((strcmp((S), "A.B.C.D") == 0))
-+#define CMD_IPV4_PREFIX(S)	((strcmp((S), "A.B.C.D/M") == 0))
-+#define CMD_IPV6(S)		((strcmp((S), "X:X::X:X") == 0))
-+#define CMD_IPV6_PREFIX(S)	((strcmp((S), "X:X::X:X/M") == 0))
- 
- /* Common descriptions. */
- #define SHOW_STR "Show running system information\n"
--- 
-1.8.1.4
-
diff --git a/SOURCES/0006-lib-extend-vty-to-support-logger.patch b/SOURCES/0006-lib-extend-vty-to-support-logger.patch
deleted file mode 100644
index 91835d5..0000000
--- a/SOURCES/0006-lib-extend-vty-to-support-logger.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 8b6e812dcee8a54b4b6ad4116cb0782730079952 Mon Sep 17 00:00:00 2001
-From: Alexandre Cassen <acassen@gmail.com>
-Date: Tue, 7 Jan 2014 16:10:46 +0100
-Subject: [PATCH 6/7] lib: extend vty to support logger
-
-add support to logger and some cosmetics.
----
- lib/vty.c | 52 +++++++++++++++++++++++++---------------------------
- lib/vty.h |  2 +-
- 2 files changed, 26 insertions(+), 28 deletions(-)
-
-diff --git a/lib/vty.c b/lib/vty.c
-index e8c6dc6..b84b232 100644
---- a/lib/vty.c
-+++ b/lib/vty.c
-@@ -1600,7 +1600,7 @@ vty_timeout(thread_t *thread)
- }
- 
- /* Read up configuration file from file_name. */
--static void
-+static int
- vty_read_file(FILE *confp)
- {
- 	int ret;
-@@ -1617,19 +1617,20 @@ vty_read_file(FILE *confp)
- 	if (!((ret == CMD_SUCCESS) || (ret == CMD_ERR_NOTHING_TODO))) {
- 		switch (ret) {
- 		case CMD_ERR_AMBIGUOUS:
--			fprintf(stderr, "Ambiguous command.\n");
-+			log_message(LOG_ERR, "Ambiguous command.\n");
- 			break;
- 		case CMD_ERR_NO_MATCH:
--			fprintf(stderr, "There is no such command.\n");
-+			log_message(LOG_ERR, "There is no such command.\n");
- 			break;
- 		}
--		fprintf(stderr, "Error occured during reading below line.\n%s\n"
--			      , vty->buf);
-+		log_message(LOG_ERR, "Error occured during reading below line.\n%s\n"
-+				   , vty->buf);
- 		vty_close(vty);
--		exit(1);
-+		return -1;
- 	}
- 
- 	vty_close(vty);
-+	return 0;
- }
- 
- static FILE *
-@@ -1703,7 +1704,7 @@ vty_use_backup_config(char *fullpath)
- }
- 
- /* Read up configuration file from file_name. */
--void
-+int
- vty_read_config(char *config_file, char *config_default_dir)
- {
- 	char cwd[MAXPATHLEN];
-@@ -1717,9 +1718,9 @@ vty_read_config(char *config_file, char *config_default_dir)
- 		if (!IS_DIRECTORY_SEP(config_file[0])) {
- 			retpath = getcwd(cwd, MAXPATHLEN);
- 			if (!retpath) {
--				fprintf(stderr, "%s: failed to get current working directory: %s\n"
--					      , __func__, strerror(errno));
--				exit(1);
-+				log_message(LOG_ERR, "%s: failed to get current working directory: %s\n"
-+						   , __func__, strerror(errno));
-+				return -1;
- 			}
- 			tmp = MALLOC(strlen(cwd) + strlen(config_file) + 2);
- 			sprintf(tmp, "%s/%s", cwd, config_file);
-@@ -1731,32 +1732,32 @@ vty_read_config(char *config_file, char *config_default_dir)
- 		confp = fopen(fullpath, "r");
- 
- 		if (confp == NULL) {
--			fprintf(stderr, "%s: failed to open configuration file %s: %s\n"
--				      , __func__, fullpath, strerror (errno));
-+			log_message(LOG_ERR, "%s: failed to open configuration file %s: %s\n"
-+					   , __func__, fullpath, strerror (errno));
-           
- 			confp = vty_use_backup_config(fullpath);
- 			if (confp) {
--				fprintf(stderr, "WARNING: using backup configuration file!\n");
-+				log_message(LOG_ERR, "WARNING: using backup configuration file!\n");
- 			} else {
--				fprintf(stderr, "can't open configuration file [%s]\n"
--					      , config_file);
--				exit(1);
-+				log_message(LOG_ERR, "can't open configuration file [%s]\n"
-+						   , config_file);
-+				return -1;
- 			}
- 		}
- 	} else {
- 		confp = fopen(config_default_dir, "r");
- 		if (confp == NULL) {
--			fprintf(stderr, "%s: failed to open configuration file %s: %s\n"
--				      , __func__, config_default_dir, strerror(errno));
-+			log_message(LOG_ERR, "%s: failed to open configuration file %s: %s\n"
-+					   , __func__, config_default_dir, strerror(errno));
-           
- 			confp = vty_use_backup_config(config_default_dir);
- 			if (confp) {
--				fprintf(stderr, "WARNING: using backup configuration file!\n");
-+				log_message(LOG_ERR, "WARNING: using backup configuration file!\n");
- 				fullpath = config_default_dir;
- 			} else {
--				fprintf(stderr, "can't open configuration file [%s]\n"
--					      , config_default_dir);
--				exit (1);
-+				log_message(LOG_ERR, "can't open configuration file [%s]\n"
-+						   , config_default_dir);
-+				return -1;
- 			}
- 		} else {
- 			fullpath = config_default_dir;
-@@ -1764,12 +1765,10 @@ vty_read_config(char *config_file, char *config_default_dir)
- 	}
- 
- 	vty_read_file(confp);
--
- 	fclose(confp);
--
- 	host_config_set(fullpath);
--  
- 	FREE_PTR(tmp);
-+	return 0;
- }
- 
- int
-@@ -2038,8 +2037,7 @@ vty_config_write(vty_t *vty)
- 	return CMD_SUCCESS;
- }
- 
--cmd_node_t vty_node =
--{
-+cmd_node_t vty_node = {
- 	VTY_NODE,
- 	"%s(config-line)# ",
- 	1,
-diff --git a/lib/vty.h b/lib/vty.h
-index 6134ad3..2c4b44f 100644
---- a/lib/vty.h
-+++ b/lib/vty.h
-@@ -181,7 +181,7 @@ extern int vty_listen(struct sockaddr_storage *);
- extern void vty_reset(void);
- extern vty_t *vty_new(void);
- extern int vty_out(vty_t *, const char *, ...) PRINTF_ATTRIBUTE(2, 3);
--extern void vty_read_config(char *, char *);
-+extern int vty_read_config(char *, char *);
- extern void vty_time_print(vty_t *, int);
- extern void vty_serv_sock(const char *, unsigned short, const char *);
- extern void vty_close(vty_t *);
--- 
-1.8.1.4
-
diff --git a/SOURCES/0007-autoconf-better-libnl3-detection.patch b/SOURCES/0007-autoconf-better-libnl3-detection.patch
deleted file mode 100644
index 14d9ce6..0000000
--- a/SOURCES/0007-autoconf-better-libnl3-detection.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From cba49f220eff2025771da9aab766188ceb66c5bf Mon Sep 17 00:00:00 2001
-From: Alexandre Cassen <acassen@gmail.com>
-Date: Tue, 7 Jan 2014 16:21:58 +0100
-Subject: [PATCH 7/7] autoconf: better libnl3 detection
-
-use pkg-config facilities to append CFLAGS related instead of hardcoding
-libnl3 path in configure script.
----
- configure                          | 6 +-----
- configure.in                       | 5 +----
- keepalived/libipvs-2.6/Makefile.in | 2 +-
- 3 files changed, 3 insertions(+), 10 deletions(-)
-
-diff --git a/configure b/configure
-index 90cca7d..66ce48c 100755
---- a/configure
-+++ b/configure
-@@ -622,7 +622,6 @@ ac_includes_default="\
- ac_subst_vars='LTLIBOBJS
- LIBOBJS
- VRRP_SUPPORT
--INCLUDE_NL
- USE_NL
- IPVS_SUPPORT
- VERSION_DATE
-@@ -3975,9 +3974,8 @@ $as_echo "$ac_cv_lib_nl_genl_3_genl_connect" >&6; }
- if test "x$ac_cv_lib_nl_genl_3_genl_connect" = xyes; then :
- 
-         USE_NL="LIBIPVS_USE_NL"
--        CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)"
-+        CFLAGS="$CFLAGS $(pkg-config --cflags libnl-genl-3.0)"
- 	LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)"
--	INCLUDE_NL="-I/usr/include/libnl3"
- 
- else
- 
-@@ -4029,7 +4027,6 @@ if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then :
-         USE_NL="LIBIPVS_USE_NL"
-         CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
-         LIBS="$LIBS $(pkg-config --libs libnl-1)"
--	INCLUDE_NL=""
- 
- else
- 
-@@ -4465,7 +4462,6 @@ fi
- 
- 
- 
--
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
- $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
- if ${ac_cv_c_const+:} false; then :
-diff --git a/configure.in b/configure.in
-index 364890d..7d97616 100644
---- a/configure.in
-+++ b/configure.in
-@@ -61,9 +61,8 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc,
-     AC_CHECK_LIB(nl-genl-3, genl_connect,
-       [
-         USE_NL="LIBIPVS_USE_NL"
--        CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)"
-+        CFLAGS="$CFLAGS $(pkg-config --cflags libnl-genl-3.0)"
- 	LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)"
--	INCLUDE_NL="-I/usr/include/libnl3"
-       ],
-       [
-         AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.])
-@@ -75,7 +74,6 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc,
-         USE_NL="LIBIPVS_USE_NL"
-         CFLAGS="$CFLAGS -DFALLBACK_LIBNL1"
-         LIBS="$LIBS $(pkg-config --libs libnl-1)"
--	INCLUDE_NL=""
-       ],
-       [                                                                                           
-         USE_NL="LIBIPVS_DONTUSE_NL"
-@@ -279,7 +277,6 @@ AC_SUBST(VERSION)
- AC_SUBST(VERSION_DATE)
- AC_SUBST(IPVS_SUPPORT)
- AC_SUBST(USE_NL)
--AC_SUBST(INCLUDE_NL)
- AC_SUBST(VRRP_SUPPORT)
- 
- dnl ----[ Checks for typedefs, structures, and compiler characteristics ]----
-diff --git a/keepalived/libipvs-2.6/Makefile.in b/keepalived/libipvs-2.6/Makefile.in
-index dfefc7d..14cfa95 100644
---- a/keepalived/libipvs-2.6/Makefile.in
-+++ b/keepalived/libipvs-2.6/Makefile.in
-@@ -1,7 +1,7 @@
- # Makefile for libipvs
- 
- CC		= @CC@
--CFLAGS		= @CFLAGS@ @CPPFLAGS@ @INCLUDE_NL@ -D@USE_NL@ -Wall -Wunused
-+CFLAGS		= @CFLAGS@ @CPPFLAGS@ -D@USE_NL@ -Wall -Wunused
- 
- export OBJS += libipvs.a
- 
--- 
-1.8.1.4
-
diff --git a/SOURCES/bz1085535-keepalived-man-snmp.patch b/SOURCES/bz1085535-keepalived-man-snmp.patch
new file mode 100644
index 0000000..8d7e57d
--- /dev/null
+++ b/SOURCES/bz1085535-keepalived-man-snmp.patch
@@ -0,0 +1,29 @@
+From fd2dd6876e1862af519c93f37c08946e1d14abf1 Mon Sep 17 00:00:00 2001
+From: Ryan O'Hara <rohara@redhat.com>
+Date: Wed, 21 May 2014 14:11:05 -0500
+Subject: [PATCH] Add SNMP subsystem option to man page
+
+The keepalived(8) man page did not mention the -x option to enable the
+SNMP subsystem. This patch adds the -x (and --smmp) options to the
+keepalived(8) man page, as described in the keepalived help message.
+---
+ doc/man/man8/keepalived.8 | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/doc/man/man8/keepalived.8 b/doc/man/man8/keepalived.8
+index 94c366a..7219887 100644
+--- a/doc/man/man8/keepalived.8
++++ b/doc/man/man8/keepalived.8
+@@ -91,6 +91,9 @@ the VRRP child process is "/var/run/keepalived_vrrp.pid".
+ Use specified pidfile for checkers child process. The default pidfile
+ for the checker child process is "/var/run/keepalived_checkers.pid".
+ .TP
++\fB -x, --snmp\fP
++Enable SNMP subsystem.
++.TP
+ \fB -v, --version\fP
+ Display the version and exit.
+ .TP
+-- 
+1.8.1.4
+
diff --git a/SPECS/keepalived.spec b/SPECS/keepalived.spec
index 545de43..d8b8cae 100644
--- a/SPECS/keepalived.spec
+++ b/SPECS/keepalived.spec
@@ -7,9 +7,9 @@
 %global _hardened_build 1
 
 Name: keepalived
-Summary: High Availability monitor built upon LVS, VRRP and service pollers
-Version: 1.2.10
-Release: 2%{?dist}
+Summary: Load balancer and high availability service
+Version: 1.2.13
+Release: 6%{?dist}
 License: GPLv2+
 URL: http://www.keepalived.org/
 Group: System Environment/Daemons
@@ -17,13 +17,7 @@ Group: System Environment/Daemons
 Source0: http://www.keepalived.org/software/keepalived-%{version}.tar.gz
 Source1: keepalived.service
 
-Patch1: 0001-ipvs-make-nlerr2syserr-libnl-dependent.patch
-Patch2: 0002-fix-libnl-libnl-3-logic-in-configure-script.patch
-Patch3: 0003-libipvs-libnl-3-include-fix.patch
-Patch4: 0004-lib-extend-command-lib-string-parser.patch
-Patch5: 0005-lib-cosmetics-at-command.c.patch
-Patch6: 0006-lib-extend-vty-to-support-logger.patch
-Patch7: 0007-autoconf-better-libnl3-detection.patch
+Patch0: bz1085535-keepalived-man-snmp.patch
 
 Requires(post): systemd
 Requires(preun): systemd
@@ -41,27 +35,17 @@ BuildRequires: popt-devel
 
 %description
 Keepalived provides simple and robust facilities for load balancing
-and high availability to Linux system and Linux based infrastructures.
-The load balancing framework relies on well-known and widely used
-Linux Virtual Server (IPVS) kernel module providing Layer4 load
-balancing. Keepalived implements a set of checkers to dynamically and
-adaptively maintain and manage load-balanced server pool according
-their health. High availability is achieved by VRRP protocol. VRRP is
-a fundamental brick for router failover. In addition, keepalived
-implements a set of hooks to the VRRP finite state machine providing
-low-level and high-speed protocol interactions. Keepalived frameworks
-can be used independently or all together to provide resilient
-infrastructures.
+and high availability.  The load balancing framework relies on the
+well-known and widely used Linux Virtual Server (IPVS) kernel module
+providing layer-4 (transport layer) load balancing.  Keepalived
+implements a set of checkers to dynamically and adaptively maintain
+and manage a load balanced server pool according their health.
+Keepalived also implements the Virtual Router Redundancy Protocol
+(VRRPv2) to achieve high availability with director failover.
 
 %prep
 %setup -q
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
+%patch0 -p1
 
 %build
 %configure \
@@ -73,19 +57,21 @@ infrastructures.
 %{__make} %{?_smp_mflags} STRIP=/bin/true
 
 %install
-rm -rf %{buildroot}
-make install DESTDIR=%{buildroot}
-rm -rf %{buildroot}%{_initrddir}/
-rm -rf %{buildroot}%{_sysconfdir}/keepalived/samples/
+%{__rm} -rf %{buildroot}
+%{__rm} -rf doc/samples/*.pem
+%{__make} install DESTDIR=%{buildroot}
+%{__rm} -rf %{buildroot}%{_initrddir}/
+%{__rm} -rf %{buildroot}%{_sysconfdir}/keepalived/samples/
 %{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/keepalived.service
+%{__mkdir_p} %{buildroot}%{_libexecdir}/keepalived
 
 %if %{with snmp}
-mkdir -p %{buildroot}%{_datadir}/snmp/mibs/
+%{__mkdir_p} %{buildroot}%{_datadir}/snmp/mibs/
 %{__install} -p -D -m 0644 doc/KEEPALIVED-MIB %{buildroot}%{_datadir}/snmp/mibs/KEEPALIVED-MIB.txt
 %endif
 
 %clean
-rm -rf %{buildroot}
+%{__rm} -rf %{buildroot}
 
 %post
 %systemd_post keepalived.service
@@ -98,25 +84,41 @@ rm -rf %{buildroot}
 
 %files
 %defattr(-,root,root,-)
-%attr(0755,root,root) %{_sbindir}/keepalived
-%attr(0644,root,root) %{_sysconfdir}/sysconfig/keepalived
-%attr(0644,root,root) %{_sysconfdir}/keepalived/keepalived.conf
-%doc AUTHOR ChangeLog CONTRIBUTORS COPYING README TODO
-%doc doc/keepalived.conf.SYNOPSIS doc/samples/keepalived.conf.*
+%doc AUTHOR ChangeLog CONTRIBUTORS COPYING README TODO VERSION
+%doc doc/keepalived.conf.SYNOPSIS doc/NOTE_vrrp_vmac.txt doc/samples/
 %dir %{_sysconfdir}/keepalived/
-%config(noreplace) %{_sysconfdir}/keepalived/keepalived.conf
-%config(noreplace) %{_sysconfdir}/sysconfig/keepalived
+%dir %{_libexecdir}/keepalived/
+%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/keepalived/keepalived.conf
+%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/keepalived
+%{_unitdir}/keepalived.service
 %if %{with snmp}
 %{_datadir}/snmp/mibs/KEEPALIVED-MIB.txt
 %endif
-%{_bindir}/genhash
-%{_unitdir}/keepalived.service
-%{_sbindir}/keepalived
+%attr(0755,root,root) %{_bindir}/genhash
+%attr(0755,root,root) %{_sbindir}/keepalived
 %{_mandir}/man1/genhash.1*
 %{_mandir}/man5/keepalived.conf.5*
 %{_mandir}/man8/keepalived.8*
 
 %changelog
+* Tue Nov 18 2014 Ryan O'Hara <rohara@redhat.com> - 1.2.13-6
+- Fix typo in changelog
+
+* Mon Nov 10 2014 Ryan O'Hara <rohara@redhat.com> - 1.2.13-5
+- Bump release number (#1158114)
+
+* Thu Nov 06 2014 Ryan O'Hara <rohara@redhat.com> - 1.2.13-4
+- Create /usr/libexec/keepalived directory (#1158114)
+
+* Tue Sep 30 2014 Ryan O'Hara <rohara@redhat.com> - 1.2.13-3
+- Minor spec file modifications (#1067693, #1067145)
+
+* Tue Sep 30 2014 Ryan O'Hara <rohara@redhat.com> - 1.2.13-2
+- Add SNMP subsystem option to man page (#1085535)
+
+* Thu Aug 07 2014 Ryan O'Hara <rohara@redhat.com> - 1.2.13-1
+- Rebase to upstream version 1.2.13 (#1111716)
+
 * Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.2.10-2
 - Mass rebuild 2014-01-24
 
@@ -191,7 +193,7 @@ rm -rf %{buildroot}
 - convert to systemd
 - fix ip_vs.h path searching in configure
 
-* Tue Jul 23 2011 Matthias Saou <http://freshrpms.net/> 1.2.2-2
+* Sat Jul 23 2011 Matthias Saou <http://freshrpms.net/> 1.2.2-2
 - Build against libnl for Fedora. RHEL's libnl is too old.
 
 * Sat May 21 2011 Matthias Saou <http://freshrpms.net/> 1.2.2-1