[MINOR] Break out processing of clear table

This will allow the code to be reused
for showing a table filtered by key
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 309651d..e99153a 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -504,6 +504,71 @@
 	return 1;
 }
 
+static void stats_sock_table_key_request(struct stream_interface *si, char **args)
+{
+	struct session *s = si->applet.private;
+	struct proxy *px;
+	struct stksess *ts;
+	unsigned int ip_key;
+
+	if (!*args[2]) {
+		si->applet.ctx.cli.msg = "\"table\" argument expected\n";
+		si->applet.st0 = STAT_CLI_PRINT;
+		return;
+	}
+
+	px = find_stktable(args[2]);
+
+	if (!px) {
+		si->applet.ctx.cli.msg = "No such table\n";
+		si->applet.st0 = STAT_CLI_PRINT;
+		return;
+	}
+
+	if (strcmp(args[3], "key") != 0) {
+		si->applet.ctx.cli.msg = "\"key\" argument expected\n";
+		si->applet.st0 = STAT_CLI_PRINT;
+		return;
+	}
+
+	if (!*args[4]) {
+		si->applet.ctx.cli.msg = "Key value expected\n";
+		si->applet.st0 = STAT_CLI_PRINT;
+		return;
+	}
+
+	if (px->table.type == STKTABLE_TYPE_IP) {
+		ip_key = htonl(inetaddr_host(args[4]));
+		static_table_key.key = (void *)&ip_key;
+	}
+	else {
+		si->applet.ctx.cli.msg = "Removing keys from non-ip tables is not supported\n";
+		si->applet.st0 = STAT_CLI_PRINT;
+		return;
+	}
+
+	/* check permissions */
+	if (s->listener->perm.ux.level < ACCESS_LVL_OPER) {
+		si->applet.ctx.cli.msg = stats_permission_denied_msg;
+		si->applet.st0 = STAT_CLI_PRINT;
+		return;
+	}
+
+	ts = stktable_lookup_key(&px->table, &static_table_key);
+	if (!ts) {
+		/* silent return, entry was already removed */
+		return;
+	}
+	else if (ts->ref_cnt) {
+		/* don't delete an entry which is currently referenced */
+		si->applet.ctx.cli.msg = "Entry currently in use, cannot remove\n";
+		si->applet.st0 = STAT_CLI_PRINT;
+		return;
+	}
+
+	stksess_kill(&px->table, ts);
+}
+
 /* Processes the stats interpreter on the statistics socket. This function is
  * called from an applet running in a stream interface. The function returns 1
  * if the request was understood, otherwise zero. It sets si->applet.st0 to a value
@@ -703,66 +768,7 @@
 			return 1;
 		}
 		else if (strcmp(args[1], "table") == 0) {
-			struct proxy *px;
-			struct stksess *ts;
-			unsigned int ip_key;
-
-			if (!*args[2]) {
-				si->applet.ctx.cli.msg = "\"table\" argument expected\n";
-				si->applet.st0 = STAT_CLI_PRINT;
-				return 1;
-			}
-
-			px = find_stktable(args[2]);
-
-			if (!px) {
-				si->applet.ctx.cli.msg = "No such table\n";
-				si->applet.st0 = STAT_CLI_PRINT;
-				return 1;
-			}
-
-			if (strcmp(args[3], "key") != 0) {
-				si->applet.ctx.cli.msg = "\"key\" argument expected\n";
-				si->applet.st0 = STAT_CLI_PRINT;
-				return 1;
-			}
-
-			if (!*args[4]) {
-				si->applet.ctx.cli.msg = "Key value expected\n";
-				si->applet.st0 = STAT_CLI_PRINT;
-				return 1;
-			}
-
-			if (px->table.type == STKTABLE_TYPE_IP) {
-				ip_key = htonl(inetaddr_host(args[4]));
-				static_table_key.key = (void *)&ip_key;
-			}
-			else {
-				si->applet.ctx.cli.msg = "Removing keys from non-ip tables is not supported\n";
-				si->applet.st0 = STAT_CLI_PRINT;
-				return 1;
-			}
-
-			/* check permissions */
-			if (s->listener->perm.ux.level < ACCESS_LVL_OPER) {
-				si->applet.ctx.cli.msg = stats_permission_denied_msg;
-				si->applet.st0 = STAT_CLI_PRINT;
-				return 1;
-			}
-
-			ts = stktable_lookup_key(&px->table, &static_table_key);
-			if (!ts) {
-				/* silent return, entry was already removed */
-				return 1;
-			}
-			else if (ts->ref_cnt) {
-				/* don't delete an entry which is currently referenced */
-				si->applet.ctx.cli.msg = "Entry currently in use, cannot remove\n";
-				si->applet.st0 = STAT_CLI_PRINT;
-				return 1;
-			}
-
-			stksess_kill(&px->table, ts);
+			stats_sock_table_key_request(si, args);
 			/* end of processing */
 			return 1;
 		}