!7
static double refreshEvery = 60;
static int smartBotTimeOut = 60*5;
sS zone = [[
botcompany.de. IN SOA ai1.lol. info.ai1.lol. (
20091118 ; Serial
5M ; Refresh
2M ; Retry
5M ; Expiry
5M ) ; Minimum
@ IN NS ai1.lol.
@ IN NS tinybrain.de.
@ IN A 69.10.46.185
* IN A 69.10.46.185
@ MX 10 mail1.domainssaubillig.de.
]];
lib 1008223 // dnsjava
lib 1010766 // EagleDNS
lib 1004911 // log4j
import se.unlogic.eagledns.EagleDNS;
static File zonesDir;
static EagleDNS eagleDNS;
p {
tryToAcquirePort5000();
S conf = loadSnippet(#1010767);
zonesDir = programFile("zones");
saveZone();
conf = conf.replace(
[[zones]],
[[]] + f2s(zonesDir) + [[]]);
File configFile = saveProgramTextFile("config.xml", conf);
//eagleDNS = nuObject("se.unlogic.eagledns.EagleDNS", f2s(configFile));
eagleDNS = new EagleDNS(f2s(configFile));
bot("Eagle DNS.");
doEvery_daemon(refreshEvery, f refresh);
}
answer {
if "test" ret "OK";
if "refresh" {
refresh();
ret "OK";
}
}
static void refresh() {
saveZone();
eagleDNS.reloadZones();
}
sS makeZone {
S z = rtrim(zone);
S ip = smartBotIP();
if (ip != null) {
z += "\nsmartbot-direct \*smartBotTimeOut*/ IN A " + ip;
z += "\nsmartbot \*smartBotTimeOut*/ IN A " + ip;
}
ret z;
}
static void saveZone {
saveTextFile(newFile(zonesDir, "botcompany.de"), makeZone());
}