/ awktest.py
awktest.py
 1  # Copyright (c) 2024 Anoduck
 2  # 
 3  # This software is released under the MIT License.
 4  # https://opensource.org/licenses/MIT
 5  
 6  def std_TXT_qry(msg):
 7          qs = msg.question
 8          print str(len(qs)) + ' questions.'
 9          iparpa = qs[0].to_text().split(' ', 1)[0]
10          print 'Host: ' + iparpa
11          resp = make_response(qry=msg)
12  
13          host = iparpa[:-1]
14          punto = host.find(".")
15          dominio = host[punto:]
16          host = "."+host
17          spfresponse = ''
18          if (dominio in dominios) or (host in dominios):
19              ttl = 1
20              DEBUGLOG('Alert domain! (TXT) ID: ' + host)
21              # Here the HANDLE!
22              #os.popen("python /yowsup/yowsup-cli -c /yowsup/config -s <number> \"Host %s\nIP %s\" > /dev/null &"%(id,prov_ip));
23              save_req(LOGALERTFILE, 'Alert domain! (TXT) ID: ' + host+ '\n')
24              if host in dominios: spfresponse = "v=spf1 a:mail%s/24 mx -all "%host
25              if dominio in dominios: spfresponse = "v=spf1 a:mail%s/24 mx -all "%dominio
26              DEBUGLOG('Responding with SPF = ' + spfresponse)
27              rrset = dns.rrset.from_text(iparpa, ttl, dns.rdataclass.IN, dns.rdatatype.TXT, spfresponse)
28              resp.answer.append(rrset)
29              return resp
30  
31  
32          hosts = respuestas(iparpa[:-1], 'TXT')
33          if isinstance(hosts, numbers.Integral):
34              print 'No host....'
35              resp = make_response(qry=msg, RCODE=3)  # RCODE =  3    NXDOMAIN
36              return resp
37  
38          for host in hosts:
39              print 'Adding ' + host.to_text()
40              rrset = dns.rrset.from_text(iparpa, 1000, dns.rdataclass.IN, dns.rdatatype.TXT, host.to_text())
41              resp.answer.append(rrset)