From 1c3bbbb29638f1cd778ba281d09976602da2d20f Mon Sep 17 00:00:00 2001
From: Leigh B Stoller <stoller@flux.utah.edu>
Date: Thu, 27 Jun 2013 17:45:51 -0600
Subject: [PATCH] Add support for remote XEN VM checkin via tmcc proxy.

---
 tmcd/tmcd.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tmcd/tmcd.c b/tmcd/tmcd.c
index d20c484a50..264d87b0c2 100644
--- a/tmcd/tmcd.c
+++ b/tmcd/tmcd.c
@@ -6704,7 +6704,7 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 	 * Widearea nodes have wanodekeys that should be used to get
 	 * the nodeid.
 	 */
-	if ((nodekey != NULL) && (strlen(nodekey) > 1)) {
+	if ((nodekey != NULL) && (strlen(nodekey) > 1) && !reqp->isvnode) {
 		res = mydb_query("SELECT t.class,t.type,n.node_id,"
 				 " n.jailflag,r.pid,r.eid,r.vname, "
 				 " e.gid,e.testdb,n.update_accounts, "
@@ -6758,6 +6758,12 @@ iptonodeid(struct in_addr ipaddr, tmcdreq_t *reqp, char* nodekey)
 				"r.external_resource_key='%s'",
 				reqp->external_key);
 		}
+		else if (nodekey != NULL && strlen(nodekey) > 1) {
+			sprintf(clause,
+				"(np.node_id IN "
+				"     (SELECT node_id FROM widearea_nodeinfo "
+				"      WHERE privkey='%s')) ", nodekey);
+		}
 		else {
 			sprintf(clause,
 				"(i.IP='%s' and i.role='ctrl') or "
-- 
GitLab