Univention Bugzilla – Attachment 7833 Details for
Bug 41006
S4-Connector doesn't sync MX / TXT records if A record is set
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
sync_mx_and_txt_dns_records.diff
sync_mx_and_txt_dns_records.diff (text/plain), 2.33 KB, created by
Arvid Requate
on 2016-07-26 13:22:39 CEST
(
hide
)
Description:
sync_mx_and_txt_dns_records.diff
Filename:
MIME Type:
Creator:
Arvid Requate
Created:
2016-07-26 13:22:39 CEST
Size:
2.33 KB
patch
obsolete
>Index: modules/univention/s4connector/s4/dns.py >=================================================================== >--- modules/univention/s4connector/s4/dns.py (Revision 70207) >+++ modules/univention/s4connector/s4/dns.py (Arbeitskopie) >@@ -86,6 +86,17 @@ > self.data.wPriority=priority > self.data.nameTarget=name > >+class TXTRecord(dnsp.DnssrvRpcRecord): >+ def __init__(self, slist, priority=0, serial=1, ttl=3600): >+ super(TXTRecord, self).__init__() >+ self.wType=dnsp.DNS_TYPE_TXT >+ self.dwSerial=serial >+ self.dwTtlSeconds=ttl >+ stringlist = dnsp.string_list() >+ stringlist.count = len(slist) >+ stringlist.str = slist >+ self.data = stringlist >+ > import univention.admin.handlers > import univention.admin.handlers.dns.forward_zone > import univention.admin.handlers.dns.alias >@@ -571,6 +582,29 @@ > mx.append( [str(ndrRecord.data.wPriority), __append_dot(ndrRecord.data.nameTarget)] ) > return mx > >+def __pack_txtRecord(object, dnsRecords): >+ slist=[] >+ for txtRecord in object['attributes'].get('tXTRecord', []): >+ if txtRecord: >+ ud.debug(ud.LDAP, ud.INFO, '__pack_txtRecord: %s' % txtRecord) >+ txtRecord=univention.s4connector.s4.compatible_modstring(txtRecord) >+ slist.append(txtRecord) >+ if slist: >+ txt_record = TXTRecord(slist) >+ ndr_txt_record = ndr_pack(txt_record) >+ dnsRecords.append(ndr_txt_record) >+ ud.debug(ud.LDAP, ud.INFO, '__pack_txtRecord: %s' % ndr_txt_record) >+ >+def __unpack_txtRecord(object): >+ txt=[] >+ dnsRecords=object['attributes'].get('dnsRecord', []) >+ for dnsRecord in dnsRecords: >+ dnsRecord=dnsRecord.encode('latin1') >+ ndrRecord=ndr_unpack(dnsp.DnssrvRpcRecord, dnsRecord) >+ if ndrRecord.wType == dnsp.DNS_TYPE_TXT: >+ txt.append( [str(ndrRecord.data.wPriority), __append_dot(ndrRecord.data.nameTarget)] ) >+ return txt >+ > def __pack_cName(object, dnsRecords): > for c in object['attributes'].get('cNAMERecord', []): > c=univention.s4connector.s4.compatible_modstring(__remove_dot(c)) >@@ -717,6 +751,8 @@ > > __pack_mxRecord(object, dnsRecords) > >+ __pack_txtRecord(object, dnsRecords) >+ > s4connector.lo_s4.modify(soa_dn, [('dnsRecord', old_dnsRecords, dnsRecords)]) > > return True >@@ -870,6 +906,9 @@ > else: > __pack_aRecord(object, dnsRecords) > >+ __pack_mxRecord(object, dnsRecords) >+ __pack_txtRecord(object, dnsRecords) >+ > dnsNodeDn=s4_dns_node_base_create(s4connector, object, dnsRecords) > > return True
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 41006
:
7831
|
7833
|
7837
|
7840