diff --git a/src/ioc/PVAServerRegister.cpp b/src/ioc/PVAServerRegister.cpp index fbee91f..39c0c2d 100644 --- a/src/ioc/PVAServerRegister.cpp +++ b/src/ioc/PVAServerRegister.cpp @@ -91,15 +91,19 @@ void stopPVAServer() void pvasr(int lvl) { try { - pvd::Lock G(the_server_lock); - if(!the_server) { - std::cout<<"PVA server not running\n"; - return; - } else { - the_server->printInfo(lvl); + pva::ServerContext::shared_pointer serv; + { + pvd::Lock G(the_server_lock); + serv = the_server; } + if(!serv) { + std::cout<<"PVA server not running\n"; + } else { + serv->printInfo(lvl); + } + std::cout.flush(); }catch(std::exception& e){ - std::cout<<"Error: "<::const_iterator it = _channelProviders.begin(); - it != _channelProviders.end(); ++it) - { - str<<(*it)->getProviderName()<<", "; - } - str << endl - << "BEACON_ADDR_LIST : " << _beaconAddressList << endl - << "AUTO_BEACON_ADDR_LIST : " << _autoBeaconAddressList << endl - << "BEACON_PERIOD : " << _beaconPeriod << endl - << "BROADCAST_PORT : " << _broadcastPort << endl - << "SERVER_PORT : " << _serverPort << endl - << "RCV_BUFFER_SIZE : " << _receiveBufferSize << endl - << "IGNORE_ADDR_LIST: " << _ignoreAddressList << endl - << "INTF_ADDR_LIST : " << inetAddressToString(_ifaceAddr, false) << endl; + str << getVersion().getVersionString() << "\n" + << "Active configuration (w/ defaults)\n"; + + Configuration::shared_pointer conf(getCurrentConfig()); +#define SHOW(ENV) str << #ENV " = "<getPropertyAsString(#ENV, std::string())<<"\n"; + SHOW(EPICS_PVAS_INTF_ADDR_LIST) + SHOW(EPICS_PVAS_BEACON_ADDR_LIST) + SHOW(EPICS_PVAS_AUTO_BEACON_ADDR_LIST) + SHOW(EPICS_PVAS_BEACON_PERIOD) + SHOW(EPICS_PVAS_BROADCAST_PORT) + SHOW(EPICS_PVAS_SERVER_PORT) + SHOW(EPICS_PVAS_PROVIDER_NAMES) +#undef SHOW } else { // lvl >= 1