Check server response of

Server response
NS records
Whois domain
Response headers
Request headers
Raw HTML code
302 Found - rettc.com
HTTP Status: 302
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Date: Tue, 06 May 2025 23:03:07 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Location: https://www.rettc.com
Server: Redirector/1.0
Cache-Control: private

HTTP Code 302 Found (Moved Temporarily)

302 Found indicates that the requested resource is temporarily available at a different URL.

When is Code 302 used?

  • When temporarily changing a page URL
  • When testing new content
  • During temporary maintenance

What does Code 302 mean for the user?

The user is automatically redirected to the new URL, but search engines continue to index the old address.

200 OK - https://www.rettc.com
HTTP Status: 200
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Date: Tue, 06 May 2025 23:03:07 GMT
Server: Apache/2.4.41 (Ubuntu)
Set-Cookie: e8ddf2798b76a79c1cfcc15133f9f52b=l00f3bbve43u7u8e2n4h5tl7g5; path=/; HttpOnly
Expires: Wed, 17 Aug 2005 00:00:00 GMT
Last-Modified: Tue, 06 May 2025 23:03:07 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

HTTP Code 200 OK

200 OK is a standard successful HTTP server response. It means that the client’s request (e.g., from a browser) was successfully processed, and the server is delivering the requested data.

When is Code 200 used?

  • When loading a web page
  • When successfully receiving an API response
  • When processing a form or another HTTP request

What does Code 200 mean for the user?

The user receives content without errors, and the page or application functions properly. If Code 200 is accompanied by data, the browser or program processes and displays it to the user.

GET / HTTP/1.1
Host: rettc.com
Accept: */*
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html>
<html lang="en-gb" dir="ltr">
<head>
	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
	<meta charset="utf-8" />
	<base href="https://www.rettc.com/" />
	<meta name="generator" content="Joomla! - Open Source Content Management" />
	<title>Projects</title>
	<link href="/index.php?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
	<link href="/index.php?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
	<link href="/templates/protostar/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
	<link href="https://www.rettc.com/index.php/component/search/?layout=blog&amp;id=8&amp;Itemid=103&amp;format=opensearch" rel="search" title="Search Rett Consulting" type="application/opensearchdescription+xml" />
	<link href="/plugins/content/jextboxcodedisplay/highlightjs/styles/default.css" rel="stylesheet" />
	<link href="/plugins/content/jextboxcodedisplay/fancybox/source/jquery.fancybox.css" rel="stylesheet" />
	<link href="/templates/protostar/css/template.css?841c1349bb96856aaa4817aafc1478ef" rel="stylesheet" />
	<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" />
	<style>

	h1, h2, h3, h4, h5, h6, .site-title {
		font-family: 'Open Sans', sans-serif;
	}
	body.site {
		border-top: 3px solid #0088cc;
		background-color: #f4f6f7;
	}
	a {
		color: #0088cc;
	}
	.nav-list > .active > a,
	.nav-list > .active > a:hover,
	.dropdown-menu li > a:hover,
	.dropdown-menu .active > a,
	.dropdown-menu .active > a:hover,
	.nav-pills > .active > a,
	.nav-pills > .active > a:hover,
	.btn-primary {
		background: #0088cc;
	}
div.mod_search91 input[type="search"]{ width:auto; }
	</style>
	<script src="/plugins/content/jextboxcodedisplay/highlightjs/highlight.pack.js"></script>
	<script src="/media/jui/js/jquery.min.js?841c1349bb96856aaa4817aafc1478ef"></script>
	<script src="/media/jui/js/jquery-noconflict.js?841c1349bb96856aaa4817aafc1478ef"></script>
	<script src="/media/jui/js/jquery-migrate.min.js?841c1349bb96856aaa4817aafc1478ef"></script>
	<script src="/plugins/content/jextboxcodedisplay/fancybox/source/jquery.fancybox.js"></script>
	<script src="/media/system/js/caption.js?841c1349bb96856aaa4817aafc1478ef"></script>
	<script src="/media/jui/js/bootstrap.min.js?841c1349bb96856aaa4817aafc1478ef"></script>
	<script src="/templates/protostar/js/template.js?841c1349bb96856aaa4817aafc1478ef"></script>
	<!--[if lt IE 9]><script src="/media/jui/js/html5.js?841c1349bb96856aaa4817aafc1478ef"></script><![endif]-->
	<!--[if lt IE 9]><script src="/media/system/js/html5fallback.js?841c1349bb96856aaa4817aafc1478ef"></script><![endif]-->
	<script>
hljs.initHighlightingOnLoad();
jQuery(document).ready(function() {
				jQuery(".fancybox").fancybox({
					fitToView   : false,
					width       : '70%',
					height      : '70%',
					autoSize    : false,
					closeClick  : false,
					openEffect  : 'elastic',
					closeEffect : 'elastic',
					openSpeed   : 'slow',
					closeSpeed  : 'slow',
				});
			});
jQuery(window).on('load',  function() {
				new JCaption('img.caption');
			});
	</script>
	<style type="text/css">.custom {
  	margin-left: -20px;
  	margin-right: -20px;
}

</style>




<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-29206131-1', 'auto');
  ga('send', 'pageview');

</script>
<!-- Universal Google Analytics Plugin by PB Web Development -->


</head>
<body class="site com_content view-category layout-blog no-task itemid-103">
	<!-- Body -->
	<div class="body" id="top">
		<div class="container">
			<!-- Header -->
			<header class="header" role="banner">
				<div class="header-inner clearfix">
					<a class="brand pull-left" href="/">
						<span class="site-title" title="Rett Consulting">Rett Consulting</span>											</a>
					<div class="header-search pull-right">
						<div class="search mod_search91">
	<form action="/index.php" method="post" class="form-inline" role="search">
		<label for="mod-search-searchword91" class="element-invisible">Search ...</label> <input name="searchword" id="mod-search-searchword91" maxlength="200"  class="inputbox search-query input-medium" type="search" size="20" placeholder="Search ..." />		<input type="hidden" name="task" value="search" />
		<input type="hidden" name="option" value="com_search" />
		<input type="hidden" name="Itemid" value="103" />
	</form>
</div>

					</div>
				</div>
			</header>
							<nav class="navigation" role="navigation">
					<div class="navbar pull-left">
						<a class="btn btn-navbar collapsed" data-toggle="collapse" data-target=".nav-collapse">
							<span class="element-invisible">Toggle Navigation</span>
							<span class="icon-bar"></span>
							<span class="icon-bar"></span>
							<span class="icon-bar"></span>
						</a>
					</div>
					<div class="nav-collapse">
						<ul class="nav menu nav-pills mod-list">
<li class="item-101"><a href="/index.php/about" >About</a></li><li class="item-103 default current active"><a href="/index.php" >Projects</a></li><li class="item-105"><a href="/index.php/articles" >Articles</a></li><li class="item-102"><a href="/index.php/publications" >Publications</a></li><li class="item-104"><a href="/index.php/resume" >Resume</a></li></ul>

					</div>
				</nav>
						
			<div class="row-fluid">
								<main id="content" role="main" class="span12">
					<!-- Begin Content -->
							<div class="moduletable">
						

<div class="custom"  >
	<p><img src="/images/FS-RAR-2.png" alt="" /></p></div>
		</div>
	
					<div id="system-message-container">
	</div>

					<div class="blog" itemscope itemtype="https://schema.org/Blog">
	
		
	
	
	
				<div class="items-leading clearfix">
							<div class="leading-0"
					itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
					

	<div class="page-header">
					<h2 itemprop="name">
									<a href="/index.php/4-fourier-transform-frequency-scanning-interferometry" itemprop="url">
						Fourier-transform frequency-scanning interferometry					</a>
							</h2>
				
		
				
			</div>



			<dl class="article-info muted">

		
			<dt class="article-info-term">
							</dt>

			
			
			
			
										<dd class="published">
				<span class="icon-calendar" aria-hidden="true"></span>
				<time datetime="2017-09-29T22:18:09+00:00" itemprop="datePublished">
					Published: 29 September 2017				</time>
			</dd>			
		
					
			
						</dl>




<p>This is a virtual frequency scanning interferometer implementation for measuring the index homogeneity and surface figure of an optical substrate. This code implements the technique described by Leslie Deck with the Zygo corporation. Here is a link to the original paper by Deck:</p>
<p><a href="https://www.osapublishing.org/ao/abstract.cfm?uri=ao-42-13-2354">https://www.osapublishing.org/ao/abstract.cfm?uri=ao-42-13-2354</a></p>
<p>This is a way to build an interferometer using a frequency scanning source, where phase shifting is not necessary.</p>
<p>This is not an example of excellent programming, but of the implementation of a tricky physics and mathematical system. I wrote this long ago, and write much better software every day.</p>
<p>FYI, this is rather old, it was written in 2008... I have updated it so you can download it and compile and run in Visual Studio 2017.</p>
<p> </p>
<p><span style="font-size: 12pt;"><a href="https://github.com/rettconsulting/Interferometer">https://github.com/rettconsulting/Interferometer</a></span></p>
<p> </p>
<p><img src="/images/interferometer-with-unwrapping.jpg" alt="interferometer" width="1280" height="1024" /></p>



				</div>
									</div><!-- end items-leading -->
	
	
																	<div class="items-row cols-1 row-0 row-fluid clearfix">
						<div class="span12">
				<div class="item column-1"
					itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
					

	<div class="page-header">
					<h2 itemprop="name">
									<a href="/index.php/5-read-your-tilt-hydrometer-ibeacon-in-c-net" itemprop="url">
						Read your Tilt Hydrometer / iBeacon in C# .NET!					</a>
							</h2>
				
		
				
			</div>



			<dl class="article-info muted">

		
			<dt class="article-info-term">
							</dt>

			
			
			
			
										<dd class="published">
				<span class="icon-calendar" aria-hidden="true"></span>
				<time datetime="2018-04-11T22:39:41+00:00" itemprop="datePublished">
					Published: 11 April 2018				</time>
			</dd>			
		
					
			
						</dl>




<p>A tilt hydrometer is this little device that acts as a bluetooth low energy beacon, ie, it acts like Apple's iBeacon doodas. So you don't have to pair to the device to read it. It just spews out data every second or so, and if you are listening, you can receive the data. </p>
<p> </p>
<p><a title="https://kvurd.com/blog/tilt-hydrometer-ibeacon-data-format/" href="https://kvurd.com/blog/tilt-hydrometer-ibeacon-data-format/" target="_blank" rel="noopener noreferrer">https://kvurd.com/blog/tilt-hydrometer-ibeacon-data-format/</a></p>
<p><a title="https://tilthydrometer.com/" href="https://tilthydrometer.com/" target="_blank" rel="noopener noreferrer">https://tilthydrometer.com/</a></p>
<p> </p>
<p>This device has a battery, an accelerometer, and a thermometer. So, based on the angle that it floats in a liquid, using the accelerometer and gravity, it can tell you the specific gravity of the liquid, and of course the temperature. Good for brewing beer! But also good for other things, such as monitoring various process fluids in a production plant. Think CNC coolant, polishing slurry, etc. </p>
<p>So, how do you read these things in Windows 7? What, you have learned that the bluetooth low energy stack is only implemented in Windows 10? You like linux, but you have a bunch of Win7 machines running all of the stuff in your plant?</p>
<p>Fear not. Thanks to Wouter Huysentruit, who has written a BLE stack that runs fine in Windows 7. You can download Visual Studio Community Edition 2017, and start developing C# .NET apps on Windows 7 that read iBeacon devices. Great!</p>
<p> </p>
<p><a title="https://github.com/huysentruitw/win-beacon" href="https://github.com/huysentruitw/win-beacon" target="_blank" rel="noopener noreferrer">https://github.com/huysentruitw/win-beacon</a></p>
<p> </p>
<p>I bought the Pluggable BT Radio Dongle and the thing works right out of the box. Just plugin in the dongle, switch to the WinUSB driver, get the source code from github, open the solution, and run it. Voila! Also, you can make your BLE dongle act as an iBeacon device (transmitter) as well. </p>
<p>I wrote a little wrapper that makes an object which references the win-beacon package that fires off an event that you can subscribe to from a parent class or app that looks about like so:</p>
<p> </p>
<p><img src="/images/TiltHydrometer.PNG" alt="" width="1280" /> </p>



				</div>
				<!-- end item -->
							</div><!-- end span -->
							</div><!-- end row -->
																			<div class="items-row cols-1 row-1 row-fluid clearfix">
						<div class="span12">
				<div class="item column-1"
					itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
					

	<div class="page-header">
					<h2 itemprop="name">
									<a href="/index.php/6-rett-consulting-software-repository" itemprop="url">
						Rett Consulting Software Repository					</a>
							</h2>
				
		
				
			</div>



			<dl class="article-info muted">

		
			<dt class="article-info-term">
							</dt>

			
			
			
			
										<dd class="published">
				<span class="icon-calendar" aria-hidden="true"></span>
				<time datetime="2018-04-12T15:34:40+00:00" itemprop="datePublished">
					Published: 12 April 2018				</time>
			</dd>			
		
					
			
						</dl>




<p>Hello,</p>
<p> </p>
<p>This github is pretty much in its infancy as I have been doing other things since I was motivated to start it.</p>
<p> </p>
<p>I am in the process of creating an open source, GPL-3.0 licensed repository so I can share some of my various labors and problem solving source code. </p>
<p> </p>
<p>The most interesting project is a virtual demonstration of Fourier-Transform Phase-Shifting Interferometry. </p>
<p> </p>
<p>See the original paper by Leslie L. Deck of the Zygo corporation:</p>
<p><a href="https://www.zygo.com/library/papers/AO_42_13_2354.pdf">https://www.zygo.com/library/papers/AO_42_13_2354.pdf</a></p>
<p> </p>
<p>This is written in C++ about 10 years ago. It is not an example of great coding skills, but of the implementation of a tricky physical / mathematical system.</p>
<p> </p>
<h2><a title="https://github.com/rettconsulting" href="https://github.com/rettconsulting">https://github.com/rettconsulting</a></h2>
<p> </p>
<p>This will include:</p>
<p> </p>
<ul>
<li><strong>Fourier-transform frequency-scanning interferometry</strong></li>
<li><strong>iBeacon receiver / transmitter for Win7 as a simple wrapper for win-beacon.</strong></li>
<li><strong>C# image processing library. I have written and re-written many functions, so I need to get it all together in one library. </strong></li>
<li><strong>Other stuff.</strong></li>
</ul>
<p> </p>



				</div>
				<!-- end item -->
							</div><!-- end span -->
							</div><!-- end row -->
																			<div class="items-row cols-1 row-2 row-fluid clearfix">
						<div class="span12">
				<div class="item column-1"
					itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
					

	<div class="page-header">
					<h2 itemprop="name">
									<a href="/index.php/7-c-net-windows-service-self-restarting-windows-application-log-writing" itemprop="url">
						C# .NET Windows Service: Self Restarting + Windows Application Log Writing					</a>
							</h2>
				
		
				
			</div>



			<dl class="article-info muted">

		
			<dt class="article-info-term">
							</dt>

			
			
			
			
										<dd class="published">
				<span class="icon-calendar" aria-hidden="true"></span>
				<time datetime="2019-06-21T17:29:16+00:00" itemprop="datePublished">
					Published: 21 June 2019				</time>
			</dd>			
		
					
			
						</dl>




<p>Windows Services are useful for various reasons. Using the singleton implementation to wrap up a hardware device has proven very useful to collect data for example. Another main use is to create daemons that poll network sensors and collect data and stuff it into a database.</p>
<p>What if your daemon has a rare bug that you cannot replicate consistently? Well, as tech support always tells you to reboot as a first line of defense. How can you get a service to restart itself? Why would I want to do this you ask? Well for the sensor daemon for example, it spins up a bunch of threads that have different drivers. I had a problem where some extremely rare bug was crashing my service, and I could not figure out how to debug it.</p>
<p>Now that I am more wise I would probably go in and improve exception handling and logging and maybe figure it out... But easier just to restart the thing, to kill all the threads, and spin them back up again.</p>
<p>Initially, I used windows tasks externally to run a batch file, that called "net stop service" then "net start service". This worked fine, until the IT department changed some security or group policy. This caused those commands to fail randomly. The evidence in the task scheduler history showed that on occasion for some unknown reason cmd.exe would return error code 2 (file not found). Hmm.</p>
<p>So I revisited the thought, how do I have the service restart itself. Duh, you insert a timer... I tested this out and it works fine. </p>
<p>Update: I changed to a System.Threading.Timer because the System.Timers.Timer eats up exceptions... Now the timer will pass the exception on, and they will end up in the Windows Application log.</p>
<p>This also shows an example of how to write to the Windows Application log. </p>
<p> </p>
<div style="position: relative; word-wrap: break-word; overflow: hidden; padding: 0;"><pre class="language-csharp csharp language-csharp"><code>using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Threading;
using DaemonDLL;

namespace DaemonService
{
    public partial class DaemonService : ServiceBase
    {
        private DaemonClass _daemon;

        private readonly System.Threading.Timer _timer;

        private EventLog _eventLog;

        private int _delay = 15 * 60 * 1000; // 15 minutes

        private int _monitorWait = 30 * 1000; // 30 seconds

        private object _guard = new object();


        public DaemonService()
        {
            InitializeComponent();

            _eventLog = new EventLog();
            if (!EventLog.SourceExists("DaemonService"))
            {
                EventLog.CreateEventSource("DaemonService", "Application");
            }
            _eventLog.Source = "DaemonService";
            _eventLog.Log = "Application";

            _daemon = new DaemonClass();

            _timer = new System.Threading.Timer(Timer_Elapsed);
        }

        public void Timer_Elapsed(object sender)
        {
            if (Monitor.TryEnter(_guard, _monitorWait))
            {
                try
                {

                    _timer.Change(Timeout.Infinite, Timeout.Infinite);

                    try
                    {
                        _daemon.Stop();
                    }
                    catch (Exception ex)
                    {
                        _eventLog.WriteEntry("DaemonService(): Timer_Elapsed(): Stop(): Exception: " + ex.Message + " " + DateTime.Now);
                    }

                    try
                    {
                        _daemon.Start();
                    }
                    catch (Exception ex)
                    {
                        _eventLog.WriteEntry("DaemonService(): Timer_Elapsed(): Start(): Exception: " + ex.Message + " " + DateTime.Now);
                    }

                    _timer.Change(_delay, Timeout.Infinite);

                    _eventLog.WriteEntry("DaemonService(): Service Restarted Automatically (15min intervals)! " + DateTime.Now);

                }
                catch { }
                finally { Monitor.Exit(_guard); }
            }
            else
            {
                _eventLog.WriteEntry("DaemonService(): Timer_Elapsed(): Could Not Enter Monitor!?! " + DateTime.Now);
            }
        }

        protected override void OnStart(string[] args)
        {
            if (Monitor.TryEnter(_guard, _monitorWait))
            {

                try
                {
                    _daemon.Start();
                    _timer.Change(_delay, Timeout.Infinite);
                }
                catch (Exception ex)
                {
                    _eventLog.WriteEntry("DaemonService(): OnStart(): Exception: " + ex.Message + " " + DateTime.Now);
                }
                finally
                {
                    _eventLog.WriteEntry("DaemonService(): Service Started!  " + DateTime.Now);
                    Monitor.Exit(_guard);
                }
            }
            else
            {
                _eventLog.WriteEntry("DaemonService(): OnStart(): Could Not Enter Monitor!?! " + DateTime.Now);
            }
        }

        protected override void OnStop()
        {
            if (Monitor.TryEnter(_guard, _monitorWait))
            {
                try
                {
                    _timer.Change(Timeout.Infinite, Timeout.Infinite);
                    _daemon.Stop();
                }
                catch (Exception ex)
                {
                    _eventLog.WriteEntry("DaemonService(): OnStop(): Exception: " + ex.Message);
                }
                finally
                {
                    _eventLog.WriteEntry("DaemonService(): Service Stopped!  " + DateTime.Now);
                    Monitor.Exit(_guard);
                }
            }
            else
            {
                _eventLog.WriteEntry("DaemonService(): OnStop(): Could Not Enter Monitor!?! " + DateTime.Now);
            }
        }
    }
}</code></pre><div style="position: absolute; top: 4px; right: 4px; padding: 0;"><a class="fancybox" href="#code_7_0" >...</a></div><div id="code_7_0" style="display: none; text-align: left; font-style: normal;"><pre style="border:none;background-color:transparent;"><code style="border:none;background-color:transparent;">using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Threading;
using DaemonDLL;

namespace DaemonService
{
    public partial class DaemonService : ServiceBase
    {
        private DaemonClass _daemon;

        private readonly System.Threading.Timer _timer;

        private EventLog _eventLog;

        private int _delay = 15 * 60 * 1000; // 15 minutes

        private int _monitorWait = 30 * 1000; // 30 seconds

        private object _guard = new object();


        public DaemonService()
        {
            InitializeComponent();

            _eventLog = new EventLog();
            if (!EventLog.SourceExists("DaemonService"))
            {
                EventLog.CreateEventSource("DaemonService", "Application");
            }
            _eventLog.Source = "DaemonService";
            _eventLog.Log = "Application";

            _daemon = new DaemonClass();

            _timer = new System.Threading.Timer(Timer_Elapsed);
        }

        public void Timer_Elapsed(object sender)
        {
            if (Monitor.TryEnter(_guard, _monitorWait))
            {
                try
                {

                    _timer.Change(Timeout.Infinite, Timeout.Infinite);

                    try
                    {
                        _daemon.Stop();
                    }
                    catch (Exception ex)
                    {
                        _eventLog.WriteEntry("DaemonService(): Timer_Elapsed(): Stop(): Exception: " + ex.Message + " " + DateTime.Now);
                    }

                    try
                    {
                        _daemon.Start();
                    }
                    catch (Exception ex)
                    {
                        _eventLog.WriteEntry("DaemonService(): Timer_Elapsed(): Start(): Exception: " + ex.Message + " " + DateTime.Now);
                    }

                    _timer.Change(_delay, Timeout.Infinite);

                    _eventLog.WriteEntry("DaemonService(): Service Restarted Automatically (15min intervals)! " + DateTime.Now);

                }
                catch { }
                finally { Monitor.Exit(_guard); }
            }
            else
            {
                _eventLog.WriteEntry("DaemonService(): Timer_Elapsed(): Could Not Enter Monitor!?! " + DateTime.Now);
            }
        }

        protected override void OnStart(string[] args)
        {
            if (Monitor.TryEnter(_guard, _monitorWait))
            {

                try
                {
                    _daemon.Start();
                    _timer.Change(_delay, Timeout.Infinite);
                }
                catch (Exception ex)
                {
                    _eventLog.WriteEntry("DaemonService(): OnStart(): Exception: " + ex.Message + " " + DateTime.Now);
                }
                finally
                {
                    _eventLog.WriteEntry("DaemonService(): Service Started!  " + DateTime.Now);
                    Monitor.Exit(_guard);
                }
            }
            else
            {
                _eventLog.WriteEntry("DaemonService(): OnStart(): Could Not Enter Monitor!?! " + DateTime.Now);
            }
        }

        protected override void OnStop()
        {
            if (Monitor.TryEnter(_guard, _monitorWait))
            {
                try
                {
                    _timer.Change(Timeout.Infinite, Timeout.Infinite);
                    _daemon.Stop();
                }
                catch (Exception ex)
                {
                    _eventLog.WriteEntry("DaemonService(): OnStop(): Exception: " + ex.Message);
                }
                finally
                {
                    _eventLog.WriteEntry("DaemonService(): Service Stopped!  " + DateTime.Now);
                    Monitor.Exit(_guard);
                }
            }
            else
            {
                _eventLog.WriteEntry("DaemonService(): OnStop(): Could Not Enter Monitor!?! " + DateTime.Now);
            }
        }
    }
}</code></pre></div></div>



				</div>
				<!-- end item -->
							</div><!-- end span -->
							</div><!-- end row -->
						
	
		</div>

					<div class="clearfix"></div>
					
					<!-- End Content -->
				</main>
							</div>
		</div>
	</div>
	<!-- Footer -->
	<footer class="footer" role="contentinfo">
		<div class="container">
			<hr />
			
			<p class="pull-right">
				<a href="#top" id="back-top">
					Back to Top				</a>
			</p>
			<p>
				&copy; 2025 Rett Consulting			</p>
		</div>
	</footer>
	
</body>
</html>
                               

Whois info of domain

Domain Name: RETTC.COM
Registry Domain ID: 93606102_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.enom.com
Registrar URL: http://www.enomdomains.com
Updated Date: 2021-12-08T01:13:03Z
Creation Date: 2003-01-02T21:59:56Z
Registry Expiry Date: 2028-01-02T21:59:56Z
Registrar: eNom, LLC
Registrar IANA ID: 48
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.4165350123
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: DNS1.NAME-SERVICES.COM
Name Server: DNS2.NAME-SERVICES.COM
Name Server: DNS3.NAME-SERVICES.COM
Name Server: DNS4.NAME-SERVICES.COM
Name Server: DNS5.NAME-SERVICES.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2025-05-06T23:02:49Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
NOTICE: The expiration date displayed in this record is the date the
TERMS OF USE: You are not authorized to access or query our Whois
by the following terms of use: You agree that you may use this Data only
to: (1) allow, enable, or otherwise support the transmission of mass