moved update check url to app level allowing each app to have correct update check download link.

This commit is contained in:
Shreyas Zare
2018-01-26 20:14:43 +05:30
parent 59ed25a9ef
commit e29230cae7
4 changed files with 48 additions and 61 deletions

View File

@@ -31,7 +31,7 @@ namespace DnsServerApp
if (args.Length == 1) if (args.Length == 1)
configFolder = args[0]; configFolder = args[0];
DnsWebService service = new DnsWebService(configFolder); DnsWebService service = new DnsWebService(configFolder, new Uri("https://technitium.com/download/dns/updateca.bin"));
service.Start(); service.Start();
Console.WriteLine("Technitium DNS Server was started successfully."); Console.WriteLine("Technitium DNS Server was started successfully.");

View File

@@ -31,7 +31,7 @@ namespace DnsServerApp
if (args.Length == 1) if (args.Length == 1)
configFolder = args[0]; configFolder = args[0];
DnsWebService service = new DnsWebService(configFolder); DnsWebService service = new DnsWebService(configFolder, new Uri("https://technitium.com/download/dns/updatewa.bin"));
service.Start(); service.Start();
Console.WriteLine("Technitium DNS Server was started successfully."); Console.WriteLine("Technitium DNS Server was started successfully.");

View File

@@ -48,14 +48,10 @@ namespace DnsServerCore
#region variables #region variables
readonly static Uri UPDATE_URI_WINDOWS_SERVICE = new Uri("https://technitium.com/download/dns/updatews.bin");
readonly static Uri UPDATE_URI_WINDOWS_APP = new Uri("https://technitium.com/download/dns/updatewa.bin");
readonly static Uri UPDATE_URI_MONO_APP = new Uri("https://technitium.com/download/dns/updatema.bin");
bool _isWindowsService;
readonly string _currentVersion; readonly string _currentVersion;
readonly string _appFolder; readonly string _appFolder;
readonly string _configFolder; readonly string _configFolder;
readonly Uri _updateCheckUri;
readonly LogManager _log; readonly LogManager _log;
@@ -76,12 +72,11 @@ namespace DnsServerCore
#region constructor #region constructor
public DnsWebService(string configFolder = null) public DnsWebService(string configFolder = null, Uri updateCheckUri = null)
{ {
Assembly assembly = Assembly.GetEntryAssembly(); Assembly assembly = Assembly.GetEntryAssembly();
AssemblyName assemblyName = assembly.GetName(); AssemblyName assemblyName = assembly.GetName();
_isWindowsService = (assemblyName.Name == "DnsService");
_currentVersion = assemblyName.Version.ToString(); _currentVersion = assemblyName.Version.ToString();
_appFolder = Path.GetDirectoryName(assembly.Location); _appFolder = Path.GetDirectoryName(assembly.Location);
@@ -90,6 +85,8 @@ namespace DnsServerCore
else else
_configFolder = configFolder; _configFolder = configFolder;
_updateCheckUri = updateCheckUri;
if (!Directory.Exists(_configFolder)) if (!Directory.Exists(_configFolder))
Directory.CreateDirectory(_configFolder); Directory.CreateDirectory(_configFolder);
@@ -553,25 +550,13 @@ namespace DnsServerCore
bool updateAvailable = false; bool updateAvailable = false;
if (_updateCheckUri != null)
{
try try
{ {
using (WebClient wc = new WebClient()) using (WebClient wc = new WebClient())
{ {
Uri updateUri; byte[] response = wc.DownloadData(_updateCheckUri);
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
if (_isWindowsService)
updateUri = UPDATE_URI_WINDOWS_SERVICE;
else
updateUri = UPDATE_URI_WINDOWS_APP;
}
else
{
updateUri = UPDATE_URI_MONO_APP;
}
byte[] response = wc.DownloadData(updateUri);
using (MemoryStream mS = new MemoryStream(response, false)) using (MemoryStream mS = new MemoryStream(response, false))
{ {
@@ -619,6 +604,7 @@ namespace DnsServerCore
{ {
_log.Write(GetRequestRemoteEndPoint(request), "Check for update was done {updateAvailable: False;}"); _log.Write(GetRequestRemoteEndPoint(request), "Check for update was done {updateAvailable: False;}");
} }
}
jsonWriter.WritePropertyName("updateAvailable"); jsonWriter.WritePropertyName("updateAvailable");
jsonWriter.WriteValue(updateAvailable); jsonWriter.WriteValue(updateAvailable);
@@ -668,7 +654,7 @@ namespace DnsServerCore
private void GetDnsSettings(JsonTextWriter jsonWriter) private void GetDnsSettings(JsonTextWriter jsonWriter)
{ {
jsonWriter.WritePropertyName("version"); jsonWriter.WritePropertyName("version");
jsonWriter.WriteValue(_currentVersion.Replace(".0", "")); jsonWriter.WriteValue(_currentVersion);
jsonWriter.WritePropertyName("serverDomain"); jsonWriter.WritePropertyName("serverDomain");
jsonWriter.WriteValue(_serverDomain); jsonWriter.WriteValue(_serverDomain);

View File

@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
using DnsServerCore; using DnsServerCore;
using System;
using System.ServiceProcess; using System.ServiceProcess;
namespace DnsService namespace DnsService
@@ -33,7 +34,7 @@ namespace DnsService
protected override void OnStart(string[] args) protected override void OnStart(string[] args)
{ {
_service = new DnsWebService(); _service = new DnsWebService(null, new Uri("https://technitium.com/download/dns/updatews.bin"));
_service.Start(); _service.Start();
} }