From b9c1a026b13ad5c7b8e875f0a7654595d8135c5a Mon Sep 17 00:00:00 2001
From: lemoer <git@irrelefant.net>
Date: Sat, 16 May 2020 14:45:33 +0200
Subject: [PATCH] gluon-respondd: emit "primary_domain_code" in nodeinfo

Closes #1974

Situation:
==========

$ ls -l /lib/gluon/domains/lindennord.json
lrwxrwxrwx    1 root     root            10 Jan  6 03:42 /lib/gluon/domains/lindennord.json -> dom17.json

Before:
=======

$ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1
{
   "node_id": "525400123456",
   "system": {
     "domain_code": "lindennord",
     "site_code": "ffh"
   },
...
}

After:
======

$ gluon-neighbour-info -d ::1 -p 1001 -r nodeinfo -c 1
{
   "node_id": "525400123456",
   "system": {
     "primary_domain_code": "dom17",
     "domain_code": "lindennord",
     "site_code": "ffh"
   },
...
}
---
 package/gluon-respondd/src/respondd-nodeinfo.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/package/gluon-respondd/src/respondd-nodeinfo.c b/package/gluon-respondd/src/respondd-nodeinfo.c
index f70abc9a3..105ce3c66 100644
--- a/package/gluon-respondd/src/respondd-nodeinfo.c
+++ b/package/gluon-respondd/src/respondd-nodeinfo.c
@@ -64,6 +64,10 @@ static struct json_object * get_site_code(void) {
 	return ret;
 }
 
+static struct json_object * get_primary_domain_code(void) {
+	return gluonutil_wrap_and_free_string(gluonutil_get_primary_domain());
+}
+
 static struct json_object * get_domain_code(void) {
 	return gluonutil_wrap_and_free_string(gluonutil_get_domain());
 }
@@ -124,8 +128,10 @@ struct json_object * respondd_provider_nodeinfo(void) {
 
 	struct json_object *system = json_object_new_object();
 	json_object_object_add(system, "site_code", get_site_code());
-	if (gluonutil_has_domains())
+	if (gluonutil_has_domains()) {
 		json_object_object_add(system, "domain_code", get_domain_code());
+		json_object_object_add(system, "primary_domain_code", get_primary_domain_code());
+	}
 	json_object_object_add(ret, "system", system);
 
 	return ret;
-- 
GitLab