<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brian&#039;s Blog</title>
	<atom:link href="http://briped.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://briped.net</link>
	<description>Blogging when bored...</description>
	<lastBuildDate>Sun, 18 Mar 2012 19:04:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>A Handful of Good Sound</title>
		<link>http://briped.net/2012/03/18/a-handful-of-good-sound/</link>
		<comments>http://briped.net/2012/03/18/a-handful-of-good-sound/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 19:04:58 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://briped.net/?p=697</guid>
		<description><![CDATA[Purchased a Logitech Mini Boombox just before the weekend, so I could have better sound when listening to music and audiobooks, rather than using a headset. I was rather skeptic about the sound from a plastic device that isn&#8217;t bigger than you can hold it in the palm of your hand. I was positively surprised. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.logitech.com/tablet-accessories/for-ipad/devices/8725"><br />
<img class="alignleft" title="Logitech Mini Boombox" src="http://www.logitech.com/assets/40531/mini-boombox-gallery-2.png" alt="Logitech Mini Boombox" width="207" height="126" /></a></p>
<p>Purchased a Logitech Mini Boombox just before the weekend, so I could have better sound when listening to music and audiobooks, rather than using a headset.</p>
<p>I was rather skeptic about the sound from a plastic device that isn&#8217;t bigger than you can hold it in the palm of your hand. I was positively surprised.</p>
<p>The sound is good and the bass is decent, for a device this small. Certainly a purchase I&#8217;m satisfied with.</p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/03/18/a-handful-of-good-sound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gratisdns.sh &#8211; A GratisDNS.dk DDNSd module for Synology DSM</title>
		<link>http://briped.net/2012/03/04/gratisdns-sh-a-gratisdns-dk-ddnsd-module-for-synology-dsm/</link>
		<comments>http://briped.net/2012/03/04/gratisdns-sh-a-gratisdns-dk-ddnsd-module-for-synology-dsm/#comments</comments>
		<pubDate>Sun, 04 Mar 2012 17:55:44 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[DDNS]]></category>
		<category><![CDATA[DDNSd]]></category>
		<category><![CDATA[DSM]]></category>
		<category><![CDATA[Dynamic IP]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Synology]]></category>

		<guid isPermaLink="false">http://briped.net/?p=688</guid>
		<description><![CDATA[#!/bin/sh # gratisdns.sh - A GratisDNS.dk DDNSd module for Synology DSM # # Author: # &#160; &#160; &#160; Brian Schmidt Pedersen (http://briped.net) # # Version: # &#160; &#160; &#160; 1.2.5 # # Description: # &#160; &#160; &#160; This is a custom DDNSd module, for use with my Synology DiskStation. It # &#160; &#160; &#160; allows [...]]]></description>
			<content:encoded><![CDATA[<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#!/bin/sh</span><br />
<br />
<span style="color: #666666; font-style: italic;"># gratisdns.sh - A GratisDNS.dk DDNSd module for Synology DSM</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Author:</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Brian Schmidt Pedersen (http://briped.net)</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Version:</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.2.5</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Description:</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; This is a custom DDNSd module, for use with my Synology DiskStation. It</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; allows me to use the DSM interface for GratisDNS.dk DDNS service.</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; To use this script, put it in the &quot;/sbin&quot; folder of the DiskStation, </span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; i.e. &quot;/sbin/gratisdns.sh&quot;</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Then edit the &quot;/etc.defaults/ddnsd_provider.conf&quot; file and add the </span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; following section at the end of that file:</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; [GratisDNS.dk]</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; modulepath=/sbin/gratisdns.sh</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; queryurl=https://ssl.gratisdns.dk/ddns.phtml?u=__USERNAME__&amp;p=__PASSWORD__&amp;d=__DOMAIN__&amp;h=__HOSTNAME__&amp;i=__MYIP__</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Changelist:</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.2.5</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * Changed update_ca_bundle() a bit, since the age checking didn't</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; seem to work before.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.2.4</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * Fixed script to return &quot;nochg&quot; when IP isn't changed from IPcache</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.2.3</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * Fixed so the IP cache is also updated, even when DDNS provider</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; responds with 'nochg', since obivously then the cached IP were</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wrong.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.2.2</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * Fixed some return code checking.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.2.1</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + Added more debug logging.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.2.0</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + Moved the entire update ddns routine into its own function.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + Moved the CA bundle checking and updating into its own function.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.1.0</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + Changed the cURL update query to use CA bundle, for better</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; security.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 1.0.0</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + Release.</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># Todo:</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Add support for multiple DDNS hosts, either through a conf file, or</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; through a delimited string from DSM. Only with same admin user though.</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; F.ex.: sub1.example.com|sub2.example.com</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Specify the target interface. This would probably be a hack that won't</span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; be visible through DSM, since it appears DSM only uses the LAN1/eth0 </span><br />
<span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; interface for DDNS.</span><br />
<span style="color: #666666; font-style: italic;">#</span><br />
<span style="color: #666666; font-style: italic;">###############################################################################</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Set variables based on parameters.</span><br />
<span style="color: #007800;">__USERNAME__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$(echo ${@} | cut -d' ' -f1)</span>&quot;</span><br />
<span style="color: #007800;">__PASSWORD__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$(echo ${@} | cut -d' ' -f2)</span>&quot;</span><br />
<span style="color: #007800;">__HOSTNAME__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$(echo ${@} | cut -d' ' -f3)</span>&quot;</span><br />
<span style="color: #007800;">__DOMAIN__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$(echo ${__HOSTNAME__} | cut -d. -f2-3)</span>&quot;</span><br />
<span style="color: #007800;">__MYIP__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$(echo ${@} &nbsp;| cut -d' ' -f4)</span>&quot;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Where to store the IP used for the last DNS update:</span><br />
<span style="color: #007800;">__IP_CACHE__</span>=<span style="color: #ff0000;">&quot;/tmp/gratisdns_ddnsd_ip.txt&quot;</span><br />
<span style="color: #666666; font-style: italic;"># Where to store the logfile:</span><br />
<span style="color: #007800;">__LOGFILE__</span>=<span style="color: #ff0000;">&quot;/var/log/gratisdns_ddnsd.log&quot;</span><br />
<span style="color: #666666; font-style: italic;"># Where to store the CA bundle:</span><br />
<span style="color: #007800;">__CA_BUNDLE__</span>=<span style="color: #ff0000;">&quot;/tmp/cacert.pem&quot;</span><br />
<br />
log<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Severity Levels:</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 0 Emergency &nbsp; &nbsp; &nbsp; System is unusable.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; A &quot;panic&quot; condition usually affecting multiple apps/servers/sites.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; At this level it would usually notify all tech staff on call.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 1 Alert &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Action must be taken immediately.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Should be corrected immediately, therefore notify staff who can fix</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; the problem.An example would be the loss of a backup ISP connection</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 2 Critical&nbsp; &nbsp; &nbsp; &nbsp; Critical conditions.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Should be corrected immediately, but indicates failure in a primary</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; system, an example is a loss of primary ISP connection.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 3 Error &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Error conditions.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Non-urgent failures, these should be relayed to developers or </span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; admins; each item must be resolved within a given time.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 4 Warning &nbsp; &nbsp; &nbsp; &nbsp; Warning conditions.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Warning messages, not an error, but indication that an error will </span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; occur if action is not taken, e.g. file system 85% full - each item</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; must be resolved within a given time.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 5 Notice&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Normal but significant condition.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Events that are unusual but not error conditions - might be </span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; summarized in an email to developers or admins to spot potential </span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; problems - no immediate action required.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 6 Informational &nbsp; Informational messages.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Normal operational messages - may be harvested for reporting, </span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; measuring throughput, etc - no action required.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># 7 Debug &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Debug-level messages.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; Info useful to developers for debugging the application, not useful </span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; during operations.</span><br />
&nbsp; &nbsp; <span style="color: #007800;">__LOGTIME__</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">date</span> +<span style="color: #ff0000;">&quot;%b %e %T&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${#}</span>&quot;</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__LOGMSG__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${1}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${#}</span>&quot;</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">2</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__LOGPRIO__</span>=<span style="color: #000000;">7</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__LOGPRIO__</span>=<span style="color: #800000;">${2}</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
<br />
&nbsp; &nbsp; logger <span style="color: #660033;">-p</span> <span style="color: #800000;">${__LOGPRIO__}</span> <span style="color: #660033;">-t</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$(basename ${0})</span>&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__LOGMSG__}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__LOGTIME__}</span> <span style="color: #007800;">$(basename ${0})</span> (<span style="color: #007800;">${__LOGPRIO__}</span>): <span style="color: #007800;">${__LOGMSG__}</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #800000;">${__LOGFILE__}</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
update_ca_bundle<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${1}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__CA_BUNDLE__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${1}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__CA_BUNDLE__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ca_bundle(): __CA_BUNDLE__=<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span> <span style="color: #000000;">7</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${2}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__MAXAGE__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${2}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__MAXAGE__</span>=<span style="color: #ff0000;">&quot;7&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ca_bundle(): __MAXAGE__=<span style="color: #007800;">${__MAXAGE__}</span>&quot;</span> <span style="color: #000000;">7</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">local</span> <span style="color: #007800;">download</span>=<span style="color: #ff0000;">&quot;0&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ca_bundle(): Local CA bundle doesn't exist. Set to download.&quot;</span> <span style="color: #000000;">7</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">download</span>=<span style="color: #ff0000;">&quot;1&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$(find '${__CA_BUNDLE__}' -type f -mtime +${__MAXAGE__})</span>&quot;</span> = <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ca_bundle(): Local CA bundle older than <span style="color: #007800;">${__MAXAGE__}</span> days. Set to download.&quot;</span> <span style="color: #000000;">7</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">download</span>=<span style="color: #ff0000;">&quot;1&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${download}</span>&quot;</span> = <span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; curl <span style="color: #660033;">--silent</span> <span style="color: #660033;">--output</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span> <span style="color: #ff0000;">&quot;http://curl.haxx.se/ca/cacert.pem&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${?}</span>&quot;</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ca_bundle: cURL returned error code <span style="color: #007800;">${?}</span> while trying to download CA bundle.&quot;</span> <span style="color: #000000;">4</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
update_ddns<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${1}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ddns(): Missing Argument. URL string required.&quot;</span> <span style="color: #000000;">3</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__URL__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${1}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Update DNS record:</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ddns(): Updating using --cacert <span style="color: #000099; font-weight: bold;">\&quot;</span><span style="color: #007800;">${__CA_BUNDLE__}</span><span style="color: #000099; font-weight: bold;">\&quot;</span>.&quot;</span> <span style="color: #000000;">7</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__RESPONSE__</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>curl <span style="color: #660033;">--silent</span> <span style="color: #660033;">--cacert</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__URL__}</span>&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ddns(): Updating using --insecure.&quot;</span> <span style="color: #000000;">7</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__RESPONSE__</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>curl <span style="color: #660033;">--silent</span> <span style="color: #660033;">--insecure</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__URL__}</span>&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${?}</span>&quot;</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ddns(): cURL returned error code <span style="color: #007800;">${?}</span> while trying to update DDNS.&quot;</span> <span style="color: #000000;">3</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
&nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_ddns(): __RESPONSE__=<span style="color: #007800;">${__RESPONSE__}</span>&quot;</span> <span style="color: #000000;">7</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Output:</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp;When you write your own module, you can use the following words to tell user what happen by print it.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp;You can use your own message, but there is no multiple-language support.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">#</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; good - &nbsp;Update successfully.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; nochg - Update successfully but the IP address have not changed.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; nohost - The hostname specified does not exist in this user account.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; abuse - The hostname specified is blocked for update abuse.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; notfqdn - The hostname specified is not a fully-qualified domain name.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; badauth - Authenticate failed.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; 911 - There is a problem or scheduled maintenance on provider side</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; badagent - The user agent sent bad request(like HTTP method/parameters is not permitted)</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; badresolv - Failed to connect to &nbsp;because failed to resolve provider address.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># &nbsp; &nbsp; &nbsp; badconn - Failed to connect to provider because connection timeout.</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #800000;">${__RESPONSE__}</span> <span style="color: #000000; font-weight: bold;">in</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">'OK&lt;br&gt;'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #800000;">${__MYIP__}</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #800000;">${__IP_CACHE__}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">'good'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">true</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">'OK&lt;br&gt;Opdateret i forvejen'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #800000;">${__MYIP__}</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #800000;">${__IP_CACHE__}</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">'nochg'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">true</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">'Forkerte værdier, opdatering kan ikke laves.&lt;br&gt;&lt;br&gt;A record findes ikke.'</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #ff0000;">'Domæne kan IKKE administreres af bruger'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">'nohost'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">'Forkerte værdier, opdatering kan ikke laves.&lt;br&gt;&lt;br&gt;A record findes ikke.Hostnavn er ulovligt.'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">'notfqdn'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">'Bruger login: 1Fejl i kodeord, prøv igen. Husk serveren ser forskel på STORE Og små BOGstAvER.'</span><span style="color: #000000; font-weight: bold;">|</span><span style="color: #ff0000;">'Bruger login: Bruger eksistere ikke, husk serveren ser forskel på STORE Og smÅ BOGstAvER.'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">'badauth'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #ff0000;">'Bruger login: MD5 invalid'</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># The error from the provider doesn't really match up with the </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># status I forward to DDNSd. But it seems that a malformed URL,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># such as if the URL isn't enclosed in quotes or contains spaces</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># etc. will give this error.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">'badagent'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">${__RESPONSE__}</span>&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #c20cb9; font-weight: bold;">false</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">;;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">esac</span><br />
&nbsp; &nbsp; log <span style="color: #ff0000;">&quot;DDNSd Status: <span style="color: #007800;">${__STATUS__}</span>&quot;</span> <span style="color: #000000;">6</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Get the current IP</span><br />
<span style="color: #666666; font-style: italic;">#__INTERFACE_IP__=&quot;$(ifconfig ${__INTERFACE__} | sed '/inet\ /!d;s/.*r://g;s/\ .*//g')&quot;</span><br />
<span style="color: #666666; font-style: italic;">#__MYIP__=$(curl --silent --interface ${__INTERFACE__} &quot;http://automation.whatismyip.com/n09230945.asp&quot;)</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Get the last known DDNS IP</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-f</span> <span style="color: #800000;">${__IP_CACHE__}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># If the file wasn't found, create it to avoid errors.</span><br />
&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;127.0.0.1&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #800000;">${__IP_CACHE__}</span><br />
<span style="color: #000000; font-weight: bold;">fi</span><br />
<span style="color: #007800;">__OLDIP__</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #800000;">${__IP_CACHE__}</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__OLDIP__}</span>&quot;</span> == <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__MYIP__}</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; log <span style="color: #ff0000;">&quot;IP not changed. <span style="color: #007800;">${__MYIP__}</span>. Not updating.&quot;</span> <span style="color: #000000;">6</span><br />
&nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">&quot;nochg&quot;</span><br />
<span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; update_ca_bundle <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__CA_BUNDLE__}</span>&quot;</span> <span style="color: #000000;">7</span><br />
<br />
&nbsp; &nbsp; <span style="color: #007800;">__URL__</span>=<span style="color: #ff0000;">&quot;https://ssl.gratisdns.dk/ddns.phtml?u=<span style="color: #007800;">${__USERNAME__}</span>&amp;p=<span style="color: #007800;">${__PASSWORD__}</span>&amp;d=<span style="color: #007800;">${__DOMAIN__}</span>&amp;h=<span style="color: #007800;">${__HOSTNAME__}</span>&amp;i=<span style="color: #007800;">${__MYIP__}</span>&quot;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># Set the response and status variables, so they're available globally.</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;"># That way I can read them outside the update_ddns() function.</span><br />
&nbsp; &nbsp; <span style="color: #007800;">__RESPONSE__</span>=<span style="color: #ff0000;">&quot;No response returned from DDNS provider.&quot;</span><br />
&nbsp; &nbsp; <span style="color: #007800;">__STATUS__</span>=<span style="color: #ff0000;">&quot;No status returned from update_ddns().&quot;</span><br />
<br />
&nbsp; &nbsp; log <span style="color: #ff0000;">&quot;IP changed. <span style="color: #007800;">${__OLDIP__}</span> &gt; <span style="color: #007800;">${__MYIP__}</span>. Attempting to update DNS.&quot;</span> <span style="color: #000000;">6</span><br />
&nbsp; &nbsp; update_ddns <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__URL__}</span>&quot;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${?}</span>&quot;</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_dns(): <span style="color: #007800;">${__RESPONSE__}</span>&quot;</span> <span style="color: #000000;">3</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; log <span style="color: #ff0000;">&quot;update_dns(): <span style="color: #007800;">${__RESPONSE__}</span>&quot;</span> <span style="color: #000000;">6</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">fi</span><br />
<span style="color: #000000; font-weight: bold;">fi</span><br />
<span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #ff0000;">&quot;%s&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${__STATUS__}</span>&quot;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/03/04/gratisdns-sh-a-gratisdns-dk-ddnsd-module-for-synology-dsm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Infected Mushroom Goes Dubstep</title>
		<link>http://briped.net/2012/03/02/infected-mushroom-goes-dubstep/</link>
		<comments>http://briped.net/2012/03/02/infected-mushroom-goes-dubstep/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 18:32:23 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Dubstep]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Trance]]></category>

		<guid isPermaLink="false">http://briped.net/?p=685</guid>
		<description><![CDATA[An awesome track from Infected Mushroom. Quite a leap from the usual Psychedelic Trance.]]></description>
			<content:encoded><![CDATA[<p>An awesome track from Infected Mushroom. Quite a leap from the usual Psychedelic Trance.</p>
<p><iframe src="http://www.youtube.com/embed/jw-xoMGqDEQ" frameborder="0" width="600" height="305"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/03/02/infected-mushroom-goes-dubstep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Password Strength</title>
		<link>http://briped.net/2012/02/29/password-strength/</link>
		<comments>http://briped.net/2012/02/29/password-strength/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 19:23:11 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Complexity]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[Password Strength]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://briped.net/?p=676</guid>
		<description><![CDATA[I was recently talking password security/strength, where the argument was, that if you were creating a sufficiently complex password, it would also be very hard to remember. Since last year, when XKCD posted the following comic strip, I&#8217;ve always just shown the persons complaining, that picture, and suddenly they weren&#8217;t that worried anymore about creating [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently talking password security/strength, where the argument was, that if you were creating a sufficiently complex password, it would also be very hard to remember. Since last year, when <a href="http://xkcd.com/" target="_blank">XKCD</a> posted the following comic strip, I&#8217;ve always just shown the persons complaining, that picture, and suddenly they weren&#8217;t that worried anymore about creating a secure password, that they could remember.</p>
<p><span id="more-676"></span></p>
<p><a href="http://xkcd.com/936/" target="_blank"><img class="alignnone" title="Password Strength" src="http://imgs.xkcd.com/comics/password_strength.png" alt="Password Strength" width="740" height="601" /></a></p>
<p>But the really interesting part I learned in the argument, was the existence of <a href="https://www.grc.com/haystack.htm" target="_blank">GRC&#8217;s Password Checking Tool</a>. Basically the checker gives an estimate on how long it would take to <a href="http://en.wikipedia.org/wiki/Brute-force_attack" target="_blank">brute force</a> your password. Please read the disclaimer at the bottom of the GRC page though <img src='http://briped.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/02/29/password-strength/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dansk mirakel-/supercomputer?</title>
		<link>http://briped.net/2012/02/27/dansk-mirakel-supercomputer/</link>
		<comments>http://briped.net/2012/02/27/dansk-mirakel-supercomputer/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 17:03:51 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Danish]]></category>
		<category><![CDATA[Dansk]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://briped.net/?p=666</guid>
		<description><![CDATA[Da jeg sad og læste nyheder i dag, faldt jeg over denne artikel fra Computerworld.dk, som handler om hvordan en dansker bygger sine egne &#8220;Super Work Stations&#8221;, som filmindustrien finder virkelig interessant, da det åbenbart sparer dem uger (og millioner af kroner), fordi denne &#8220;Super Work Station&#8221; er så meget hurtigere, og kan klare det [...]]]></description>
			<content:encoded><![CDATA[<p>Da jeg sad og læste nyheder i dag, faldt jeg over <a title="Sådan bygger dansker sine egne film-computere" href="http://www.computerworld.dk/art/205155/saadan-bygger-dansker-sine-egne-film-computere" target="_blank">denne artikel</a> fra <a href="http://www.computerworld.dk/" target="_blank">Computerworld.dk</a>, som handler om hvordan en dansker bygger sine egne &#8220;Super Work Stations&#8221;, som filmindustrien finder virkelig interessant, da det åbenbart sparer dem uger (og millioner af kroner), fordi denne &#8220;Super Work Station&#8221; er så meget hurtigere, og kan klare det på 90 sekunder.</p>
<blockquote><p>Alene med sin processorkraft imponerede computeren den erfarne instruktor, da den renderer &#8211; eller bygger &#8211; en hel spillefilm på halvandet minut med live-rendering, hvilket ellers normalt tager over en uge.</p></blockquote>
<p>Min første tanke da jeg læste det, var at enten brugte filmindustrien nogen helt sindsygt langsomme computere, eller også var der tale om en helt sindsyg cluster baseret computer fra Marius. Det var indtil jeg flyttede mit blik til spalten til højre for artiklen, som listede specifikationerne for computeren.</p>
<p><span id="more-666"></span></p>
<p>Baseret på første del af artiklen (der til dels indikerer at computeren er baseret på en Mac Pro), og billedet i toppen af specifikations-listen, kan jeg udlede at det er rimelig usandsynligt at der er tale om 12 <abbr title="Central Processing Unit">CPU</abbr>er, men nærmere 12 kerner. Der er ganske enkelt ikke plads til 12 <abbr title="Central Processing Unit">CPU</abbr>er inkl. (lydløs) køling i et standard tower kabinet, som det vist på billedet i artiklen. Det er endda også standard i Apples Mac Pro, at man kan få den leveret med 2 <abbr title="Central Processing Unit">CPU</abbr>er med hver 6 kerner. I modsætning til Apples standard Mac Pro, er det dog hurtigere <abbr title="Central Processing Unit">CPU</abbr>er som Marius har smidt i hans computere, og hurtigere RAM.</p>
<h5>Så hvad har Marius gjort?</h5>
<p>Han har sandsynligvis købt en standard Mac Pro. I den har han udskiftet standard <abbr title="Central Processing Unit">CPU</abbr> med en anden, som han så kan overclocke til en højere hastighed. Og så har han formået at sælge den til nogen populære mennesker.</p>
<p>Det er der altså ikke noget mirakuløst i. Det er der ikke noget imponerende i. Det er hvad millioner af computerentusiaster verden over gør hver dag, måske i lidt billigere regi (de fleste har ikke lige pengene til at lege med sådan en computer til deres private gøremål). Det tager ikke mange timer for en computerentusiast at research sig frem til hvilke <abbr title="Central Processing Unit">CPU</abbr>er der overclocker godt, eller hvilke <abbr title="Random Access Memory">RAM</abbr> kan overclockes sammen med, hvilke <abbr title="Graphics Processing Unit">GPU</abbr>er/grafikkort som er gode og lydsvage m.v.</p>
<h5>Er det nyhedsværdigt?</h5>
<p>Jamen det er det da. Det er da nyhedsværdigt at en ganske almindelig dansker, som er autodidakt computerentusiast, har fået nogen kendte navne fra filmindustrien som kunder. Det er den tekniske gennemgang som får nakkehårene til at rejse sig. At det med stor sandsynlighed er måden journalisten har valgt at fordumme det hele, gør det kun marginalt bedre. Simple ting som at beskrive computeren som havende 12 <abbr title="Central Processing Unit">CPU</abbr>er, hvor der altså bare er tale om 2 <abbr title="Central Processing Unit">CPU</abbr>er med hver 6 kerner, gør det tekniske aspekt direkte misvisende.</p>
<p>Det kunne være man skulle tilbyde sine services, for et par hundrede tusinde kroner per computer, til filmindustrien? Og ja, det er jo også lidt misundelsen der taler. At Marius har fået noget som er en hobby for mange (sikkert også for ham selv) til at blive et indbringende arbejde. Det ændrer dog ikke på at artiklen er præsenteret som en gang sensationel pladder, som det (i mine øjne) ikke er.</p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/02/27/dansk-mirakel-supercomputer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Recommended XBMC Add-ons</title>
		<link>http://briped.net/2012/02/25/recommended-xbmc-add-ons/</link>
		<comments>http://briped.net/2012/02/25/recommended-xbmc-add-ons/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 16:57:11 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Add-ons]]></category>
		<category><![CDATA[Addons]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[HTPC]]></category>
		<category><![CDATA[Recommendation]]></category>
		<category><![CDATA[XBMC]]></category>

		<guid isPermaLink="false">http://briped.net/?p=652</guid>
		<description><![CDATA[Most everyone who have ever tried out XBMC will agree that it&#8217;s probably the greatest, most flexible HTPC software available, and this without even extending its functionality with skins and add-ons. I&#8217;ve noticed that a lot of new users of XBMC are barely even scratching the surface of XBMC, so I thought I&#8217;d give a few [...]]]></description>
			<content:encoded><![CDATA[<p>Most everyone who have ever tried out XBMC will agree that it&#8217;s probably the greatest, most flexible HTPC software available, and this without even extending its functionality with skins and add-ons. I&#8217;ve noticed that a lot of new users of XBMC are barely even scratching the surface of XBMC, so I thought I&#8217;d give a few tips and add-on recommendations.</p>
<p><span id="more-652"></span></p>
<p>Before starting, I want to note that I haven&#8217;t tested the add-ons much on XBMC codename Dharma, since I&#8217;m currently using the XBMC Beta codename Eden. With Eden the developers have put a lot of focus on the add-on framework of XBMC, giving add-on developers better flexibility and more options.</p>
<p>The way to install add-ons will be through XBMC&#8217;s official add-on repository, which is accessed simply by opening Settings within XBMC and selecting Add-ons. There you should be able to Get Add-ons. Some add-ons aren&#8217;t in the official add-on repository, and as such would require either adding an unofficial add-on repository that offers the add-on, or by downloading the add-on and installing it from zip file.</p>
<h4>XBMC Subtitles</h4>
<p>This should (in my opinion) be the first add-on installed. It&#8217;s an official add-on from XBMC.org and can be downloaded through the default (official) XBMC.org Add-ons repository. It&#8217;s found within the, rather obvious, Subtitles category.</p>
<p>After XBMC Subtitles add-on have been installed, you should configure it to fit your needs. The obvious things would be setting your primary, secondary and perhaps tertiary (third) languages. Even though my native tongue is Danish I still prefer having English as the primary language, and Danish as the secondary. That choice is purely personal. I just prefer not having to read badly translated subtitles (the pony named &#8220;Bill&#8221; in Lord of the Rings were translated to &#8220;Jens&#8221;, just to give a good example).</p>
<p>Then you should configure what Subtitle Services you would like to use for finding the subtitles. As I recall both OpenSubtitles.org and Podnapisi.net are selected by default, and is actually enough for almost all TV episodes and movies I&#8217;ve seen. However as you&#8217;ll notice, there&#8217;s several more localized services availabe, f.ex. Swesub.nu and Undertexter.se if you want a better selection of Swedish subtitles.</p>
<p>Under Advanced Options I recommend selecting both the &#8220;Manually Enter Search String&#8221; option as well as &#8220;Display file name in results page&#8221;. Sometimes you won&#8217;t be able to see which subtitle is the best match, but by being able to see the original filename (if you haven&#8217;t renamed it, that is), you can give a good guesstimate on which of the available subtitles are the better match. As for manually entering the search string, is only so you have the option, if the subtitles found isn&#8217;t even for the movie or episode you&#8217;re watching, then you can try to manually enter the search string.</p>
<p>The last thing you need to do, before you can actually use the add-on, is to enable it in your XBMC Skin. Go to the XBMC Settings page and select Skin. Now where you go from here depends on your active skin. For the default Confluence skin, you go to Add-on Shortcuts and there you select the Subtitle Add-on to be XBMC Subtitles.</p>
<p>When you&#8217;re watching a movie or TV episode you can press the OSD Controls button (M-key on a default keyboard) and you can press the Subtitle button, which is a small rectangular icon with a line at the bottom (a monitor with a subtitle at the bottom of the screen).</p>
<h4>The Trailers</h4>
<p>This is a rewrite the the old Apple Trailers add-on. This is found under the Video Add-ons category. There&#8217;s not much to tell about this add-on, only that sometimes it&#8217;s nice to watch a few great trailers <img src='http://briped.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>There&#8217;s not much configuration needed for this add-on either. Bear in mind when setting the resolution, that the higher the resolution, the more you&#8217;ll probably end up waiting for the add-on to buffer the trailer, before it starts playing. However you can select whether or not it should stream or download, again just bear in mind that downloads can be slow, and that the trailer won&#8217;t start playing until fully downloaded, if that option is set.</p>
<h4>AudioPodcatcher</h4>
<p>This is a simple add-on for listening to podcasts, not much to write about this add-on (simple and useful add-ons are good like that). It is found under the Music Add-ons category.</p>
<p>It keeps track of played and unplayed podcasts, as opposed to some of the others I&#8217;ve tried, which is why I really like this one. I actually use this, along with TuneIn add-on, instead of having a huge music library.</p>
<p>You configure it by pointing it to an OPML file, which you&#8217;ll have to create on your own (or you can use <a title="Electronic Music Podcasts" href="http://pastebin.com/CJgXynM0" target="_blank">my techno/trance/dubstep podcasts OPML</a>).</p>
<h4>TuneIn Radio</h4>
<p><a title="TuneIn Radio" href="http://tunein.com/" target="_blank">TuneIn Radio</a> is basically just a directory of net-radio stations and podcasts. What makes this service great, is that it&#8217;s just a webpage that you can access from any browser, and then save your favorite radio stations. They also have apps for Android, iOS and Windows Phone.</p>
<p>The <a title="TuneIn Radio Add-on for XBMC" href="https://github.com/brianhornsby/tunein-xbmc#readme" target="_blank">TuneIn Radio Add-on for XBMC</a> is a recent addition to my list of favorite add-ons, mostly because it&#8217;s not part of the official XBMC.org Add-on repository. To get this add-on you currently have to <a href="https://github.com/brianhornsby/tunein-xbmc/downloads" target="_blank">download it manually</a> as a ZIP file, and then using the XBMC Add-ons &#8220;install from zip file&#8221; option.</p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/02/25/recommended-xbmc-add-ons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great Mixes by MegaMixers.com</title>
		<link>http://briped.net/2012/02/23/great-mixes-by-megamixers-com/</link>
		<comments>http://briped.net/2012/02/23/great-mixes-by-megamixers-com/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 00:02:25 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Dance]]></category>
		<category><![CDATA[Megamix]]></category>
		<category><![CDATA[Mix]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Remix]]></category>
		<category><![CDATA[Trance]]></category>

		<guid isPermaLink="false">http://briped.net/?p=645</guid>
		<description><![CDATA[For those that remember the awesome mixes by DJ Deep called Deep Dance, you&#8217;re gonna love the mixes done by MegaMixers.com. I especially like their first MixCast of 2012. You can also listen to that MixCast right here&#8230;]]></description>
			<content:encoded><![CDATA[<p>For those that remember the awesome mixes by DJ Deep called Deep Dance, you&#8217;re gonna love the mixes done by MegaMixers.com. I especially like <a href="http://blog.megamixers.com/?p=1532" target="_blank">their first MixCast of 2012</a>.</p>
<p>You can also listen to that MixCast right here&#8230;</p>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F34166370&amp;auto_play=false&amp;show_artwork=true&amp;color=ff7700"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/02/23/great-mixes-by-megamixers-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great Dubstep Remix</title>
		<link>http://briped.net/2012/02/23/great-dubstep-remix/</link>
		<comments>http://briped.net/2012/02/23/great-dubstep-remix/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 23:55:02 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Dubstep]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://briped.net/?p=643</guid>
		<description><![CDATA[This is an awesome Dubstep remix by Celldweller.]]></description>
			<content:encoded><![CDATA[<p>This is an awesome Dubstep remix by Celldweller.</p>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F29057026&amp;auto_play=false&amp;show_artwork=true&amp;color=ff7700"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2012/02/23/great-dubstep-remix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drobo FS: Automatic UNprotection for your data?</title>
		<link>http://briped.net/2011/03/19/drobo-fs-automatic-unprotection-for-your-data/</link>
		<comments>http://briped.net/2011/03/19/drobo-fs-automatic-unprotection-for-your-data/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 19:12:24 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://briped.net/?p=552</guid>
		<description><![CDATA[So right in the middle of doing absolutely nothing, my Drobo FS suddenly decides that my data is unprotected!? No data was being written to or read from the Drobo at the time, why the hell would it, out of the blue, suddenly crap out and have all the data unprotected? No disks are faulty, so [...]]]></description>
			<content:encoded><![CDATA[<p>So right in the middle of doing absolutely nothing, my Drobo FS suddenly decides that my data is unprotected!?</p>
<p>No data was being written to or read from the Drobo at the time, why the hell would it, out of the blue, suddenly crap out and have all the data unprotected? No disks are faulty, so what reason could it possible have? And 12+ hours to re-sync the discs (I assume that is what it&#8217;s doing)?</p>
<p>What point is there to an &#8220;intelligent&#8221; data storage device that automatically protects my data, when it does crap like that?</p>
<p>So far, if I ever have to buy another NAS, it&#8217;ll be QNAP or Synology, not DROBO.</p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2011/03/19/drobo-fs-automatic-unprotection-for-your-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drobo FS: Not so &#8220;Plug and Play&#8221; as advertised</title>
		<link>http://briped.net/2011/01/15/drobo-fs-not-so-plug-and-play-as-advertised/</link>
		<comments>http://briped.net/2011/01/15/drobo-fs-not-so-plug-and-play-as-advertised/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 18:01:24 +0000</pubDate>
		<dc:creator>Brian Schmidt Pedersen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Drobo]]></category>
		<category><![CDATA[Drobo FS]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[NAS]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://briped.net/?p=547</guid>
		<description><![CDATA[Yesterday I received my brand spanking new Drobo FS, exciting stuff. It was delivered in a boring brown cardboard box. Opening the box I&#8217;m greeted by another box with the words &#8220;Welcome to the world of&#8230;&#8221; and below that was the Drobo in a nice cloth bag with the title &#8220;Drobo&#8221; on top. So after [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I received my brand spanking new <a href="http://www.drobo.com/products/drobo-fs.php">Drobo FS</a><a href="http://www.drobo.com/products/drobo-fs.php"><img class="alignleft" title="Drobo FS" src="https://lh5.googleusercontent.com/-e5FvGXBOQDI/TqwF650ldeI/AAAAAAAAVdo/EOVsXcAbdsM/s288/IMG_0191.JPG" alt="Picture of the Drobo FS" /></a>, exciting stuff. It was delivered in a boring brown cardboard box. Opening the box I&#8217;m greeted by another box with the words &#8220;Welcome to the world of&#8230;&#8221; and below that was the Drobo in a nice cloth bag with the title &#8220;Drobo&#8221; on top.</p>
<p>So after I unpack and plug everything in and install the Drobo Dashboard I sit looking at an annoying Drobo Dashboard that just states something like &#8220;No Device Detected&#8221;. I check the DHCP leases and find the IP of the Drobo, so that looks OK. Pinging the Drobo also turns out as one would expect, replies all around. Even opening the Public share in Windows Explorer works great. Everything except the administration tool seems to actually work. Checking the Drobo Knowledge Base they point to Firewalls being the main cause of these kind of problems. Well, everything is on a closed of LAN, no Firewalls there. Several restarts of the Drobo later I figure I&#8217;ll attempt doing a restart of Windows; lo and behold, that seems to have worked.</p>
<p>So time to play around a bit. Installing a few Drobo Apps and see how that works. Well, it kinda doesn&#8217;t, at least not as one would expect from a &#8220;Plug and Play&#8221; device. Downloaded the App, unzipped and copied the TGZ file to the Dobo Apps folder. Oh yea, and then you have to RESTART the Drobo for it to actually install the App? Why the hell that? The Drobo operating system is based on Linux. Why not just call a small script from the Drobo Dashboard, or even with a Cronjob, that does all that unpacking and installing except first doing it during reboot?</p>
<p>Anyway I install DropBear, a small SSH server and client. I reboot the Drobo to get it installed, then I try to SSH into it. Guess it didn&#8217;t work; connection refused. Well, I take a look at the log and it seems that generating the host keys didn&#8217;t work. Oh well, another reboot of the Drobo solved that. That was 2 reboots just to install one App? Plain stupid.</p>
<p>So finally, after a couple of hours, I have 2 Western Digital 2TB disks installed and are copying data at a whooping 22-27MB/s over a Gigabit network. Oh well, it&#8217;s acceptable speed just for data storage. So after a while I add third 2TB drive, the Drobo starts doing its thing. While the Drobo does its thing I copy some more data to it, or so I thought. Suddenly the Drobo apparently drops all connections and Drobo Dashboard can&#8217;t find it. I ping it and it responds just fine *sigh*.</p>
<p>So I turn of the Drobo again, and it apparently takes some time, but rather that than loose the data I already copied there, because the third drive I added was the drive that previously contained the data I already copied. After about 5 minutes I see the Drobo finally is turned off and I start it up again. The drobo starts working on protecting the data telling me not to remove any drives because the data currently isn&#8217;t protected, or some such. After another 15-30 minutes I notice that the Drobo is reporting the third drive faulty. Worked fine with no S.M.A.R.T. errors on my Windows 7 computer.</p>
<p>After those initial annoyances I might actually come to like the Drobo, even with the shortcomings it have. The fact that I don&#8217;t have to expand and rebuild arrays is nice and the Dashboard is only really needed for first-time setup, or so I think. More updates, maybe, when I have played around with it some more.</p>
]]></content:encoded>
			<wfw:commentRss>http://briped.net/2011/01/15/drobo-fs-not-so-plug-and-play-as-advertised/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

