MINOR: proxy: add a new function proxy_find_by_id()

It does the same as the other one except that it only focuses on the
numeric ID and the capabilities. It's used by proxy_find_by_name()
for numeric names.
diff --git a/src/proxy.c b/src/proxy.c
index 175e3bb..0ecd125 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -346,34 +346,43 @@
 	ebis_insert(&proxy_by_name, &px->conf.by_name);
 }
 
-/* Returns a pointer to the first proxy matching either name <name>, or id
- * <name> if <name> begins with a '#'. NULL is returned if no match is found.
- * If <table> is non-zero, it only considers proxies having a table.
+/* Returns a pointer to the first proxy matching capabilities <cap> and id
+ * <id>. NULL is returned if no match is found. If <table> is non-zero, it
+ * only considers proxies having a table.
  */
-struct proxy *proxy_find_by_name(const char *name, int cap, int table)
+struct proxy *proxy_find_by_id(int id, int cap, int table)
 {
-	struct proxy *curproxy;
-	int pid = -1;
+	struct eb32_node *n;
 
-	if (*name == '#') {
-		struct eb32_node *node;
+	for (n = eb32_lookup(&used_proxy_id, id); n; n = eb32_next(n)) {
+		struct proxy *px = container_of(n, struct proxy, conf.id);
 
-		pid = atoi(name + 1);
+		if (px->uuid != id)
+			break;
 
-		for (node = eb32_lookup(&used_proxy_id, pid); node; node = eb32_next(node)) {
-			curproxy = container_of(node, struct proxy, conf.id);
+		if ((px->cap & cap) != cap)
+			continue;
 
-			if (curproxy->uuid != pid)
-				break;
+		if (table && !px->table.size)
+			continue;
 
-			if ((curproxy->cap & cap) != cap)
-				continue;
+		return px;
+	}
+	return NULL;
+}
 
-			if (table && !curproxy->table.size)
-				continue;
+/* Returns a pointer to the first proxy matching either name <name>, or id
+ * <name> if <name> begins with a '#'. NULL is returned if no match is found.
+ * If <table> is non-zero, it only considers proxies having a table.
+ */
+struct proxy *proxy_find_by_name(const char *name, int cap, int table)
+{
+	struct proxy *curproxy;
 
+	if (*name == '#') {
+		curproxy = proxy_find_by_id(atoi(name + 1), cap, table);
+		if (curproxy)
 			return curproxy;
-		}
 	}
 	else {
 		struct ebpt_node *node;