Procházet zdrojové kódy

IPVS: Turn off FTP application helper for IPv6

Immediately return from FTP application helper and do nothing when dealing
with IPv6 packets. IPv6 is not supported by this helper yet.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Julius Volz před 16 roky
rodič
revize
a0eb662f9e
1 změnil soubory, kde provedl 16 přidání a 0 odebrání
  1. 16 0
      net/ipv4/ipvs/ip_vs_ftp.c

+ 16 - 0
net/ipv4/ipvs/ip_vs_ftp.c

@@ -147,6 +147,14 @@ static int ip_vs_ftp_out(struct ip_vs_app *app, struct ip_vs_conn *cp,
 	unsigned buf_len;
 	unsigned buf_len;
 	int ret;
 	int ret;
 
 
+#ifdef CONFIG_IP_VS_IPV6
+	/* This application helper doesn't work with IPv6 yet,
+	 * so turn this into a no-op for IPv6 packets
+	 */
+	if (cp->af == AF_INET6)
+		return 1;
+#endif
+
 	*diff = 0;
 	*diff = 0;
 
 
 	/* Only useful for established sessions */
 	/* Only useful for established sessions */
@@ -248,6 +256,14 @@ static int ip_vs_ftp_in(struct ip_vs_app *app, struct ip_vs_conn *cp,
 	__be16 port;
 	__be16 port;
 	struct ip_vs_conn *n_cp;
 	struct ip_vs_conn *n_cp;
 
 
+#ifdef CONFIG_IP_VS_IPV6
+	/* This application helper doesn't work with IPv6 yet,
+	 * so turn this into a no-op for IPv6 packets
+	 */
+	if (cp->af == AF_INET6)
+		return 1;
+#endif
+
 	/* no diff required for incoming packets */
 	/* no diff required for incoming packets */
 	*diff = 0;
 	*diff = 0;