DDNS Updater Entwicklung & Fehlerbereinigung - Development & bugfixing

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
Hat es denn nun bei dir funktioniert?
 
Hi QTip,

ich hab leider das Problem das sich dein DDNS-Updater immer von selbst beendet und daher bis dato noch kein erfolgreiches Update durchgeführt werden konnte.

Ich trage meine DyDNS-Adressen ein, welche auch mit Good bestätigt werden. Ebenfalls steht auch dort "DDNS-Updater is running. Next check in xx:xx". In meiner Fritzbox ist eingestellt das eine Zwangstrennung immer zwischen 4-5 Uhr morgens erfolgen soll. Da ich den Intervall auf 10 Minuten gestellt habe, sollte er ja spätestens um 05:10 mitbekommen das sich die IP geändert hat und dann diese an DynDNS übertragen.

Hatte heute bereits den 2 Tag das er auf "DDNS is not running" stand und das Aktualisierungsdatum immer noch das alte war.

Hatte vorher den ddclient in Nutzung welchen man per ipkg bekommen kann. Als Konfig-Datei hatte ich mir über den DynDNS eigenen Konfigurator eine für ddclient erstellen lassen.

Genutzt wird das ganze auf einer DS 209+II mit der FW942


Greetz
 
  1. Hast du deine zuvor selbst erstellte Konfig in den ddnsupdater Ordner kopiert und die vorhandene default config überschrieben? Das solltest besser nicht machen, da die von mir benutzte einen bestimmten Aufbau erwartet und benutzt. Also am besten mit der default config die mit meinem Paket geliefert wird die neuen Einträge auch nur mit der DDNS updater Oberfläche erzeugen.
  2. Wenn du das mit dem DSM mitgelieferte Perl benutzt solltest du SSL deaktivieren. (siehe ein paar Posts weiter oben). Falls du das eingebaute benutzt, fehlt dir vielleicht das Paket perl-io-socket-ssl.
 
DDNS updater 1.00 Beta 4

Neu:

  • automatische Erkennung der Perlversion mit Deaktivierung des SSL-Schalters im Options Dialog. Startzeile im Script ddclient wird automatisch an die Perlversion angepasst. Paket perl-io-socket-ssl muss bei Benutzung der IPKG Perl Version allerdings installiert sein, keine Abfrage diesbezüglich.
  • Update von vorheriger Version mit Sicherung und Zurückspielung der ddclient.conf nun ebenfalls möglich.
 
Zuletzt bearbeitet:
Hat es denn nun bei dir funktioniert?
Ja schon, das meinte ich damit. Auch Beta 4 läuft eben mit drei Einträgen in grün. Jetzt muß ich halt sehen, was nach 25 Tagen passiert... :D
 
  1. Hast du deine zuvor selbst erstellte Konfig in den ddnsupdater Ordner kopiert und die vorhandene default config überschrieben? Das solltest besser nicht machen, da die von mir benutzte einen bestimmten Aufbau erwartet und benutzt. Also am besten mit der default config die mit meinem Paket geliefert wird die neuen Einträge auch nur mit der DDNS updater Oberfläche erzeugen.
  2. Wenn du das mit dem DSM mitgelieferte Perl benutzt solltest du SSL deaktivieren. (siehe ein paar Posts weiter oben). Falls du das eingebaute benutzt, fehlt dir vielleicht das Paket perl-io-socket-ssl.

Nein die Konfig die ich mir von DynDNS direkt hab erstellen lassen hatte ich vorher gelöscht.

Es wird wohl wahrscheinlich doch am SSL-Switch gehangen haben, denn nachdem ich die Beta 3 nochmal neu eingespielt und meine Hosts ohne SSL eingetragen habe, bleibt dein DDNS-Updater stabil. Er hat nun schon 2 x ordnungsgemäß upgedatet. Hatte hierzu extra testweise einen Host nicht eingetragen, welcher auch entsprechend in meinem DynDNS Account nicht upgedatet wurde, die anderen aber ordnungsgemäß schon.

Drücken wir die Daumen das es weiter so bleibt :)

Ansonsten wie gesagt 2 Daumen von mir


Greetz
 
schön zu hören, dass es nun doch funktioniert :)
 
Könnte man die max. Länge des Hostnamens (aktuell auf 25) irgendwie vergrössern?

11 Zeichen fallen nur schon beim kurzen .homeip.net weg, es gibt aber noch wesentlich längere Namen.

Ich habe die Werte in ddsnupdater.js auf 40 gesetzt, aber die Begrenzung ist immer noch auf 25. Wo muss ich noch was anpassen?

Den Eintrag für den längeren Hostnamen habe ich jetzt in der ddclient.conf von Hand eingetragen. Das geht, scheint also nur eine Restriktion der Eingabemaske zu sien.
 
Die Begrenzung auf 25 Zeichen befindet sich wirklich nur im Add- und Editteil von ddnsupdater.js. Eine Eigenart, die ich selber festgestellt habe ist, dass man manchmal nach einer Änderung den Browser erneut öffnen muss, um das Ergebnis zu sehen. Liegt wohl am Browser Cache bei Javascript oder speziell bei EXTJS. Bei mir ging es grad eben sofort, werde ich in die Final Version einbauen.
 
Ah ja, die Seite neu zu laden hats irgendwie nicht gebracht, aber nach Browser schliessen und neu bei der DS anmelden sind die Anpassungen übernommen.
 
So, es sind ja fast 30 Tage nach der letzten Beta 4 rum. Nun möchte ich von den Leuten wissen, die sich eine Zwangsaktualisierung nach einstellbarer Zeit gewünscht haben, auch funktioniert. Wenn dann keine weiteren Fehler aufgetaucht sind, würde ich die 1.00 Beta 4 gerne als 1.00 Final freigeben.
Weitere Wünsche können dann, falls realisierbar, in einer zukünftigen Version umgesetzt werden.
 
Jo, perfekt. :cool:

Dyndns Website meldet dieselben Updatedaten.
 
Ja funzt tadellos.

Vergiss nicht die Grösse der Eingabefelder für Hostnamen zu vergrössern.

Danke.
 
hier nun wie versprochen der DDNS updater 1.00 Final
Die Länge der Eingabefelder für den Hostnamen wurde selbstverständlich auf 40 Zeichen angehoben ;)
Könnte jemand mit den entsprechenden Rechten hier den Titel und die Datei im ersten Post austauschen, Danke
 
Zuletzt bearbeitet:
Danke QTip
 
bei aufrufen von DDNS Updater erscheint dies hier weis jemand woran es liegen kann bei WebEditor und Webshell und Rootkit Hunter und cronjobs
auch, bei vielen andren3rdparty applications funktioniert alles.Habe eine CS407 mit 942 firmware in der php.ini und in der httpd.conf-sys alles geändert wie beschrieben.

wenn ich mich mit https:// verbinde und dann auf DDNS Updater gehe dann kann ich DDNS Updater.php runter laden.


<?php
// ******************************************************************* //
// * ddnsupdater - 3rdparty DDNS updater (webUI for ddclient) * //
// * Modul: ddnsupdater (main) * //
// * -------------------------------------- * //
// * Version 1.00 - 15/09/2009 - by QTip * //
// * - First public release * //
// ******************************************************************* //
putenv('HTTP_COOKIE='.$_SERVER['HTTP_COOKIE']);
putenv('REMOTE_ADDR='.$_SERVER['REMOTE_ADDR']);
$user = exec('/usr/syno/synoman/webman/modules/authenticate.cgi');
if ($user !== 'admin') {
header("HTTP/1.0 403 Forbidden");
exit;
}
$spkver = "1.00 Beta 3";
include_once("include/config.php");
include_once("include/get_provider.php");
if (file_exists($ddnsconffile)) {
$ddnsconfig = @file($ddnsconffile);
while ($z < count($ddnsconfig)) {
if ($begin == false && strstr($ddnsconfig[$z],"# DDNS Provider Parameters Section")) { // search for start of values
break;
} elseif ($begin == false && !strstr($ddnsconfig[$z],"##") && substr($ddnsconfig[$z],0,1) != chr(10)) {
$global_temp = explode("=",trim($ddnsconfig[$z]));
$conf_global[$global_temp[0]]=$global_temp[1];
}
$z++;
}
} else {
$conf_global['daemon'] = 0;
}
exec('ps | grep ddclient | grep -v grep', $ddnsstatus);
exec($ddnsbin.' --help | tail -n 4 | head -n 1',$ddnsversion);
exec($ddnspath.'/ddnscmd.sh next-check 2>&1',$ddnscheck);
if ($ddnscheck[0] == "" && $ddnsstatus[0] == "") {
$sek = 0;
} elseif (intval($ddnscheck[0]) > 0 && $ddnsstatus != "") {
$checktext = "sleeping";
$sek = intval($ddnscheck[0]);
} elseif (intval($ddnscheck[0]) == 0 && $ddnsstatus != "") {
$checktext = "connecting";
$sek = 15;
}
if (file_exists($ddnsconffile.'.bak')) {
echo "<input type=\"hidden\" id=\"undostate\" name=\"undostate\" value=\"\">";
} else {
echo "<input type=\"hidden\" id=\"undostate\" name=\"undostate\" value=\"disabled\">";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<html><head>
<link rel="stylesheet" type="text/css" href="extjs/ext-3.0.0/resources/css/ext-all.css">
<link rel="stylesheet" type="text/css" href="extjs/ext-3.0.0/resources/css/xtheme-blue.css">
<link rel="stylesheet" type="text/css" href="scripts/ddnsupdater.css">
<script type="text/javascript" src="extjs/ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-3.0.0/ext-all.js"></script>
<script type="text/javascript" src="scripts/ddnsupdater.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>DDNS updater</title>
<meta http-equiv="pragma" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="cache-control" content="no-cache">
</head><body>
<script language="javascript" type="text/javascript">
document.getElementsByTagName("body")[0].style.cursor = 'auto';
var intervaltime=<?php echo $conf_global['daemon'];?>;
var checktext='<?php echo $checktext;?>';
var sek=<?php echo $sek;?>;
var spkver='<?php echo $spkver;?>';
Ext.namespace('Ext.interval');
Ext.interval.values = [
['2592000','30 days'],
['604800','7 days'],
['86400','1 day'],
['43200','12 hours'],
['3600','60 minutes'],
['1800','30 minutes'],
['600','10 minutes'],
['300','5 minutes'],
['240','4 minutes'],
['180','3 minutes'],
['120','2 minutes'],
['60','1 minute']
];
<?php if (count($provider_protocol) == 0) get_provider();
$providerstore = "\nExt.namespace('Ext.provider');\n";
$providerstore .= "Ext.provider.names = [\n";
while(list($protocolname,$providername) = each($provider_name)) {
$providerstore .= "['".$protocolname."','".$providername."','".$provider_server[$protocolname]."'],\n";
}
$providerstore = substr($providerstore,0,-2)."\n";
$providerstore .= "];\n";
print $providerstore;
?>
</script>
<div style="display:none"><div id="spkversionstext">SPK version <?php print $spkver;?></div>
<div id="ddclientversionstext"><?php print $ddnsversion[0];?></div></div>
</body></html>
 
Zuletzt bearbeitet:
Hast du init_3rdparty installiert? Dann ist das eigentlich die normale Reaktion ...

MfG Matthieu
 
das Kamm schon bevor ich init_3rdparty installiert habe und dann als ich init_3rdparty installiert habe Kamm ich nicht mehr in der Web Oberfläche
( Management )
 
Eben, du MUSST zuerst das init_3rdparty Paket installieren. Sonst läuft das nicht.

Wenn das WebUI nicht mehr kommt dann hast vermutlich nicht die aktuelle Version genommen und/oder nicht die neuste FW drauf.

Wurde alles irgendwo im Forum ausführlich diksutiert, auch wie du das wieder reparieren kannst.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat