[Pdns-users] oracle backend / DNS flag day
pdns at unicycle.net
Tue Jan 22 12:41:17 UTC 2019
On Mon, 21 Jan 2019, bert hubert wrote:
> Providing free Oracle support is very expensive for us in terms of licensing
> and time to setting up a working environment.
> We therefore only fix bugs in the Oracle backend from supported
> (commercial) customers.
I hear what you're saying. Makes sense; especially in perspective of an Oracle licence (...).
Althoug XE is free.
> The GitHub issue you cite has 'help-needed' attached to it, which reflects
> that we are not going to fix the problem.
> > In resume: I need pre-4.1.x to have oracle working but post-4.0.x to have EDNS compliance.
> If you are willing to attempt to fix the errors, we'd welcome your pull
> requests. If you have specific questions, also please ask them and maybe we
> can see what the problem is.
Before doing so, this is what solved the problem:
[user at host pdns-4.1.5]$ diff modules/oraclebackend/oraclebackend.cc modules/oraclebackend/oraclebackend.cc.orig
> string_to_cbuf(mQueryName, name.labelReverse().toString(" ", false)), sizeof(mQueryName));
< string_to_cbuf(mQueryName, name.labelReverse().toString(" ", false), sizeof(mQueryName));
> before = DNSName(boost::replace_all_copy(mResultPrevName," ",".")).labelReverse();
> after = DNSName(boost::replace_all_copy(mResultNextName," ",".")).labelReverse();
< before = DNSName(mResultPrevName);
< after = DNSName(mResultNextName);
[user at host pdns-4.1.5]$ diff ./modules/oraclebackend/oraclebackend.hh ./modules/oraclebackend/oraclebackend.hh.orig
< vector<string> getDomainMasters(const DNSName& domain, int zoneId);
> vector<string> getDomainMasters(const DNSName& domain, int zoneId) override;
< bool feedRecord(const DNSResourceRecord &rr, const DNSName ordername);
> bool feedRecord(const DNSResourceRecord &rr, const DNSName ordername) override;
< bool delTSIGKey(const DNSName& name);
> bool delTSIGKey(const DNSName& name) override;
All credit for that solution goes to Guy Nir, DBA, not limited to an Oracle orientation,
and no fear to tangle/mangle/untangle/unmangle C code (but neither of us consider ourself real programmers).
The first "patch" shows too many ")"'s.
Then second, the function "replace_all_copy" seems missing. Removing it removed the obstacle / solved it.
But I guess the removal will decrease speed of regular users.
Therefor I guess this straight as a pull reuqest isn't desired.
However to me it looks like Guy found the solution pretty rapid.
Bytheway, another worth-to-mention thing he did in the past was avoiding any DNSSEC requirements, using mviews in Oracle (m as in materialized).
So; it's still possible to run with the very old data structure - something I often heard of it was impossible.
Met vriendelijke groet,
With kind regards,
More information about the Pdns-users