diff --git a/feeds/tip/cloud_discovery/files/usr/bin/cloud_discovery b/feeds/tip/cloud_discovery/files/usr/bin/cloud_discovery index efb90c0da..3a2dd242a 100755 --- a/feeds/tip/cloud_discovery/files/usr/bin/cloud_discovery +++ b/feeds/tip/cloud_discovery/files/usr/bin/cloud_discovery @@ -42,6 +42,21 @@ ulog(LOG_INFO, 'Start\n'); uloop.init(); +let cds_server = 'discovery.open-lan.org'; + +function set_cds_server() { + let pipe = fs.popen(`openssl x509 -in /etc/ucentral/cert.pem -noout -issuer`); + let issuer = pipe.read("all"); + pipe.close(); + + if (!match(issuer, /Telecom Infra Project Issuing CA/)) { + ulog(LOG_INFO, 'Certificate type is "Demo" \n'); + est_server = 'openlan.keys.tip.build'; + } else { + ulog(LOG_INFO, 'Certificate type is "TIP"\n'); + } +} + function readjsonfile(path) { let file = fs.readfile(path); if (file) @@ -178,7 +193,7 @@ function redirector_lookup() { let serial = uci.get('system', '@system[-1]', 'mac'); fs.unlink(path); - system(`curl -k --cert /etc/ucentral/operational.pem --key /etc/ucentral/key.pem --cacert /etc/ucentral/operational.ca https://openlan.keys.tip.build/v1/devices/${serial} --output /tmp/ucentral.redirector`); + system(`curl -k --cert /etc/ucentral/operational.pem --key /etc/ucentral/key.pem --cacert /etc/ucentral/operational.ca https://${cds_server}/v1/devices/${serial} --output /tmp/ucentral.redirector`); if (!fs.stat(path)) return; let redir = readjsonfile(path); @@ -369,6 +384,8 @@ function expiry_handler() { system('/etc/init.d/ucentral restart'); } +set_cds_server(); + if (gateway_available()) { let status = ubus.call('ucentral', 'status'); ulog(LOG_INFO, 'cloud is known\n');