!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.
]];
sS zone2 = [[
ai1.space. IN SOA ai1.lol. info.ai1.lol. (
20091118 ; Serial
5M ; Refresh
2M ; Retry
5M ; Expiry
5M ) ; Minimum
@ IN NS tinybrain.de.
@ IN NS ai1.lol.
@ IN A 185.183.156.46
* IN A 185.183.156.46
@ MX 10 mail1.domainssaubillig.de. ; TODO
]];
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");
saveZones();
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() {
saveZones();
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 saveZones {
saveTextFile(newFile(zonesDir, "botcompany.de"), makeZone());
saveTextFile(newFile(zonesDir, "ai1.space"), zone2);
}