DDNS Updater Entwicklung & Fehlerbereinigung - Development & bugfixing

Status
Für weitere Antworten geschlossen.

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Einziger kosmetischer Schönheitsfehler: in der Hilfe werden (außer der Hauptüberschrift DDNS updater) die Titel der Unterkapitel / Unterseiten nicht angezeigt (IE, Firefox). Habe das Paket aktualisiert, nicht deinstalliert und erneut installiert - hängt es vielleicht damit zusammen?
Habe die Aktualisierung zuvor bei mir getestet und verlief einwandfrei. War das Paket Init_3rdpartyHelp auch gestartet? Der Indexer für die Hilfe wird mit diesem Paket gepatched.
Paket gestartet = Indexer gepatched
Paket gestoppt = Indexer normal
Ist der Indexer nicht gepatched, kann die Hilfe für 3rdparty Applikationen nicht installiert werden.
Falls daran noch gearbeitet wird, hätte ich noch folgenden (ebenfalls nur kosmetischen) Vorschlag: könnte man die Hostadressen in der Spalte "Hostname / ID" anklickbar machen?
Du möchtest per Klick auf die Seite des Hosters gelangen oder wofür genau?
Ansonsten nochmal ein dickes Lob: eine wirklich schöne und nützliche Erweiterung! Danke!
Gern geschehen. Bin immer froh, wenn ich zufriedene User lese und meine Arbeit nicht umsonst war :)
 

nageniil

Benutzer
Mitglied seit
18. Aug 2009
Beiträge
208
Punkte für Reaktionen
4
Punkte
18
Hallo QTip,

mit dem init_3rdParty-Modul muss ich nochmal testen - im Paketmanagement steht zur Zeit "läuft"... - ach ich sehe gerade, Du meinst das init_3rdPartyHELP - hab ich glatt überlesen, ist aber auch zum Verwechseln ähnlich... (habe ich gar net installiert... schäm...)

Mit den Links meine ich einen Link auf die dort stehende meinname.dyndns.org Adresse (target=_blank), nur halt um zu gucken, ob meine Webseite auf der DS auch wirklich erreichbar ist...
 

visu

Benutzer
Mitglied seit
25. Jan 2011
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Erst mal: Super geiles Tool, Danke für die Arbeit !!!

Evtl. habe ich es überlesen, aber kann ich jetzt die hauseigene DDNS Unterstützung deaktivieren und die dort eingetragenen Daten in den Updater übertragen?
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Erst mal: Super geiles Tool, Danke für die Arbeit !!!

Evtl. habe ich es überlesen, aber kann ich jetzt die hauseigene DDNS Unterstützung deaktivieren und die dort eingetragenen Daten in den Updater übertragen?
Ja, wenn du möchtest, kannst den DDNS von Synology deaktivieren und deine Daten in den DDNS updater eintragen; ich zwinge Niemanden ;)
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Ja, wenn du möchtest, kannst den DDNS von Synology deaktivieren und deine Daten in den DDNS updater eintragen; ich zwinge Niemanden ;)
Bei dem Thema fällt mir was ein: Synology verwendet ja für die Mails an Benutzer die DDNS-Adresse, die auch im hauseigenen Tool eingegeben sind. Könnte man da stattdessen eine andere Adresse eintragen? Ist bekannt wo das gespeichert wird?

MfG Matthieu
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Bei dem Thema fällt mir was ein: Synology verwendet ja für die Mails an Benutzer die DDNS-Adresse, die auch im hauseigenen Tool eingegeben sind. Könnte man da stattdessen eine andere Adresse eintragen? Ist bekannt wo das gespeichert wird?

MfG Matthieu
Welche Mailadresse meinst du? Im Synology DDNS Dialog wird nur der DDNS Hostname angegeben. Meine Benachrichtigungsmails kommen immer über die Mailadresse, die ich unter Bedienfeld - Benach- richtig. eingegeben habe und hat nichts mit dem DDNS zu tun.
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Tschuldigung. Ich meine die DDNS-Adresse, die jeder Nutzer zugeschickt bekommt, wenn das der Admin beim Anlegen so will. Also nicht die Mailadresse selbst, sondern das was man per Mail zugeschickt bekommt.

MfG Matthieu
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Das macht der Dialog beim Erstellen des Benutzers selbst. Das Script schaut in /etc/synoinfo.conf nach dem Parameter "ddns_update". Wenn der Wert =yes lautet, dann wird der Wert für hostname aus /etc/ddns.conf geholt und in der Mail berücksichtigt. Eingreifen kann ich da leider nicht, da beim Setzen von ddns_update=yes automatisch der interne DDNS gestartet werden würde.
Ausser...man deaktiviert den Dienst für den eingebauten DDNS durch Umbenennung, damit er auch durch den Dialog nicht mehr gestartet werden kann. Dann ist zwar ein Haken für aktiviert zu sehen, das dürfte aber kein Problem darstellen.
Wenn das gewünscht ist, kann ich das versuchen so umzusetzen.
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Warnung an alle Nutzer von DDNS-Updater:
Mir ist heute bei einem Stromausfall die gesamte Konfig von DDNS Updater verlogen gegangen. Also nutzt eine USV oder sichert die Konfig manuell noch einmal!

MfG Matthieu
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Es existieren immer 2 Configs. Eine im DDNS updater Verzeichnis (Original) und Eine die beim Start vom DDNS updater nach /tmp/cache/ddclient (Kopie) kopiert wird. Die Datei im tmp ist natürlich nach einem Stromausfall oder nach einem Reboot nicht mehr vorhanden. Deshalb wird beim Start vom DDNS updater geprüft, ob sich einen Config in /tmp/cache/ddclient befindet. Bei negativem Ergebnis, wird die Config aus dem DDNS updater Verzeichnis kopiert.
Da die Config nur im Falle eine Neuanlage oder Änderung beschrieben wird, ist es sehr unwahrschlich, dass diese bei einem Stromausfall verschwindet (ausser es wurden grad Änderungen durchgeführt).
Bei einer Änderung wird zuerst das Original geändert und diese dann wieder nach tmp/... kopiert, hat also immer den gleichen Inhalt.

Schau mal bitte beim nächsten Mal vorher nach (oder schalt deine DS einfach aus), ob sich die Datei noch im DDNS updater Verzeichnis befindet.
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Ich hab noch Version 1.10a in Betrieb, weil mir zum updaten bisher die Zeit fehlte. Kann das damit zusammenhängen?

MfG Matthieu
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Ich hab noch Version 1.10a in Betrieb, weil mir zum updaten bisher die Zeit fehlte. Kann das damit zusammenhängen?

MfG Matthieu
Ja, das habe ich erst später geändert, genau wegen diesem Fall ;)
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Ja, das habe ich erst später geändert, genau wegen diesem Fall ;)
Gut hätten wir das auch geklärt :D
Muss ich vor dem Update außer init_3rdparty_Help noch was installieren oder machen? Beim letzten Mal ist irgendwas schief gelaufen, daraufhin hab ich 1.10a wieder installiert.

MfG Matthieu
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Gut hätten wir das auch geklärt :D
Muss ich vor dem Update außer init_3rdparty_Help noch was installieren oder machen? Beim letzten Mal ist irgendwas schief gelaufen, daraufhin hab ich 1.10a wieder installiert.

MfG Matthieu
Eine Aktualisierung sollte eigentlich funktionieren, ist jedenfalls in den Scripts so vorgesehen, dass die config gesichert und im Anschluss wiederhergestellt wird. Für den Fall der Fälle kannst du dir ja zuvor selbst ein Backup der ddclient.conf erstellen, da die 1.10a schon eine Weile her ist.
 

morklopp

Benutzer
Mitglied seit
12. Apr 2009
Beiträge
94
Punkte für Reaktionen
0
Punkte
0
Irgendwas ist faul?!

Auch auf die Gefahr, dass ich mich zum Affen mach. Ich habe gerade den DDNS Updater installiert, habe wie vorgesehen auch horher die Hilfedatei draufgepackt.

Wenn ich ihn jetzt aber aufrufen will bekomme ich in erster Linie Codesalat. Sieht wie folgt aus. Was hab ich falsch gemacht?

<?php
// ****************************************************************** //
// * ddnsupdater - 3rdparty DDNS updater (webUI for ddclient) * //
// * Modul: ddnsupdater (index) * //
// * -------------------------------------- * //
// * Version 1.17 - 19/01/2011 * //
// * for more information check the changelog * //
// ******************************************************************* //
//$start = time();
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.1 403 Forbidden");
exit("403 Forbidden");
}
$spkver = "1.17";
include_once("include/config.php");
if ($_GET["debug"] == 1) {
exec($ddnspath.'/ddnscmd.sh debug',$debugret);
print '<script type="text/javascript">window.open("/webman/3rdparty/ddnsupdater/ddnsdebug.zip","top=200,left=600,width=400,height=300")</script>';
print 'After you saved the debug file, you can close this window';
die;
}
include_once("include/get_provider.php");
exec('PATH="/opt/bin:/opt/sbin:$PATH"',$ret);
exec('/bin/ps | grep ddclient | grep -v grep', $ddnsstatus);
exec($ddnsbin.' --help | tail -n 5 | head -n 1 | cut -d " " -f 3-',$ddnsversion);
exec($ddnspath.'/ddnscmd.sh dsmversion 2>&1',$dsmversion);
exec($ddnspath.'/ddnscmd.sh dsmlanguage 2>&1',$dsmlanguage);
exec($ddnspath.'/ddnscmd.sh languages 2>&1',$ddnslanguages);
exec($ddnspath.'/ddnscmd.sh checkstart',$ddnsperl);
exec($ddnspath.'/ddnscmd.sh next-check 2>&1',$ddnscheck);
if ($ddnscheck[0] == "" && $ddnsstatus[0] == "") {
$sek = -1;
} elseif (intval($ddnscheck[0]) > 0 && $ddnsstatus != "") {
$checktext = "sleeping";
$sek = intval($ddnscheck[0]);
} elseif (intval($ddnscheck[0]) == 0 && $ddnsstatus != "") {
$checktext = "connecting";
$sek = 5;
}
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;
}
?>
<!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" >
<head>
<link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css">
<link rel="stylesheet" type="text/css" href="extjs/resources/css/xtheme-gray.css">
<link rel="stylesheet" type="text/css" href="scripts/ddnsupdater.css">
<link rel="shortcut icon" href="favicon.ico">
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script language="javascript" type="text/javascript">
function getUrlVars(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++){
hash = hashes.split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
function convert_iso2syno(searchlang) {
var langconv = Array();
langconv['de'] = 'ger'; //german
langconv['en'] = 'enu'; //english US
langconv['zh'] = 'chs'; //chinese simplified
langconv['cs'] = 'csy'; //czech
langconv['jp'] = 'jpn'; //japan
langconv['ko'] = 'krn'; //korean
langconv['da'] = 'dan'; //danish
langconv['fr'] = 'fre'; //french
langconv['it'] = 'ita'; //italian
langconv['nl'] = 'nld'; //dutch
langconv['no'] = 'nor'; //norwegian
langconv['pl'] = 'plk'; //polish
langconv['ru'] = 'rus'; //russian
langconv['sp'] = 'spn'; //spanish
langconv['sv'] = 'sve'; //swedish
langconv['hu'] = 'hun'; //hungarian
langconv['tr'] = 'trk'; //turkish
langconv['pt'] = 'ptg'; //portuguese european
if (langconv[searchlang] != '' && langconv[searchlang] != undefined){
return langconv[searchlang];
} else {
return 'enu';
}
}
function convert_syno2iso(searchlang) {
var langconv = Array();
langconv['ger'] = 'de'; //german
langconv['enu'] = 'en'; //english US
langconv['chs'] = 'zh'; //chinese simplified
langconv['csy'] = 'cs'; //czech
langconv['jpn'] = 'jp'; //japan
langconv['krn'] = 'ko'; //korean
langconv['dan'] = 'da'; //danish
langconv['fre'] = 'fr'; //french
langconv['ita'] = 'it'; //italian
langconv['nld'] = 'nl'; //dutch
langconv['nor'] = 'no'; //norwegian
langconv['plk'] = 'pl'; //polish
langconv['rus'] = 'ru'; //russian
langconv['spn'] = 'sp'; //spanish
langconv['sve'] = 'sv'; //swedish
langconv['hun'] = 'hu'; //hungarian
langconv['trk'] = 'tr'; //turkish
langconv['ptg'] = 'pt'; //portuguese european
if (langconv[searchlang] != '' && langconv[searchlang] != undefined){
return langconv[searchlang];
} else {
return 'en';
}
}
var language = '<?php print $dsmlanguage[0];?>';
var urllang = getUrlVars()['lang'];
if (urllang != undefined && urllang != '') {
var ddnslang = convert_iso2syno(urllang);
} else if (language == 'def') {
if (navigator.appName == 'Netscape') {
var language = navigator.language.substr(0,2);
} else {
var language = navigator.browserLanguage.substr(0,2);
}
var ddnslang = convert_iso2syno(language);
} else if (language == undefined || language == '') {
ddnslang = 'enu';
} else {
ddnslang = language;
}

document.write('<script type="text/javascript" src="extjs/locale/ext-lang-' + convert_syno2iso(ddnslang) + '.js"\></script\>');
document.write('<script type="text/javascript" src="scripts/ddnsupdater.js"\></script\>');
document.write('<script type="text/javascript" src="help/enu/gui.js"\></script\>');
document.write('<script type="text/javascript" src="help/' + ddnslang + '/gui.js"\></script\>');
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="cache-control" content="no-cache">
</head><title>DDNS updater</title><body>
<!--[if lt IE 7]><style>
/* style for IE 6 + IE5.5 + IE5.0 */
.gainlayout { height: 0; }
</style><![endif]-->
<!--[if IE 7]><style>
.gainlayout { zoom: 1;}
</style><![endif]-->
<script type="text/javascript" src="scripts/functions.js"></script>
<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;?>';
var ddclientver='<?php print $ddnsversion[0];?>';
var use_ssl = '<?php print $ddnsperl[0];?>';
var dsmversion = '<?php print $dsmversion[0];?>';
var languages = '<?php for($i=0;$i<count($ddnslanguages);$i++){print $ddnslanguages[$i]." ";}?>';
<?php if (count($provider_protocol) == 0) get_provider();
reset($provider_name);
$providerstore = "\nExt.namespace('Ext.provider');\n";
$providerstore .= "Ext.provider.names = [\n";
$protocolstore = "\nExt.namespace('Ext.protocol');\n";
$protocolstore .= "Ext.protocol.names = [\n";
$pc = 0;
while(list($protocolname,$providername) = each($provider_name)) {
$providerstore .= "['".$protocolname."','".$providername."','".$provider_server[$protocolname]."'],\n";
if ($pc < count($provider_protocol)) $protocolstore .= "['".$protocolname."','".$provider_comment[$protocolname]."'],\n";
$pc++;
}
$providerstore = substr($providerstore,0,-2)."\n";
$protocolstore = substr($protocolstore,0,-2)."\n";
$providerstore .= "];\n";
$protocolstore .= "];\n";
print $providerstore;
print $protocolstore;
?>
</script>
<div id="ddnsmain"></div><div style="display:none"><div id="spkversionstext">SPK version <?php print $spkver;?></div></div>
<?php //echo date("s",time() - $start);?>
</body></html>
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Dir fehlt "init_3rdparty.spk". Gibts auch hier im Forum von itari. Das ist Voraussetzung für fast alle Community-Anwendungen.

MfG Matthieu
 

brandon7gr

Benutzer
Mitglied seit
11. Nov 2010
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Guten tag friends,

Ich spreche und ich verstehe Deutch aber nicht sehr gut :)

So if anyone can answer me in english i would like to ask a question. I have installed everything correct and everything is working just fine. Is there any way that i can start this program automatically ?? (Due to some power failure i have to manually start the DS and therefore the program).

Many thanks for the great support and work.
Antony.
 
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