The format is based on Keep a Changelog.
1.7.1 - 2024-11-13
- deps: bump several versions to latest
- test: fix stale IP, new err code
1.7.0 - 2024-04-29
- feat: added HarakaMx #89
- feat: add add_line_processor, aka line_socket.setup_line_processor
- fix(get_public_ip): set timeout in stun request, fixes #84
- test: added get_implicit_mx tests #89
- change: get_mx: don't filter implicit MX errors #89
1.6.0 - 2024-04-17
- feat: normalizeDomain, for punycode/IDN names
- feat: get_mx now also returns implicit MX records
- feat: added get_implicit_mx
- feat: added resolve_mx_hosts
- doc(Changes): fixed broken tag version links
- doc(CONTRIBUTORS): added
- chore: populate [files] in package.json. Delete .npmignore
- chore(lint): remove duplicate / stale rules from .eslintrc
- dep(punycode): punycode -> punycode.js (avoid name collission)
- chore: refactored get_ips_by_host using Promise.allSettled
1.5.4 - 2024-04-02
- Add timeout to DNS Resolver (#83)
1.5.3 - 2023-12-15
- dep(punycode): override built-in with trailing /
1.5.2 - 2023-12-11
- dep(stun): use updated @msimerson/stun
1.5.1 - 2023-12-03
- feat(is_local_host): also match when
- the mx dest is a hostname that matches our hostname
- the mx dest matches our public IP (may not be locally bound)
- bump dep versions #78
- test update for node v20 #78
- ci: enable CI tests on PRs #77
- test: increase DNS timeouts from 3s to 5s #77
1.5.0 - 2022-12-20
- feat: add async support for get_public_ip #75
- dep: replace vs-stun with stun
- doc: use async/await syntax in examples #74
1.4.1 - 2022-07-22
- feat(get_mx): use async/await
- feat(get_mx): call w/o callback for promise API
- test(get_mx): expand and improve test coverage
- chore(ci): use more shared haraka/.github workflows
1.3.7 - 2022-06-03
- ci: fix the dependabot allow syntax
1.3.6 - 2022-06-01
- chore: replace .release with submodule
- chore(ci): populate test matrix with Node.js LTS versions
- chore(ci): limit dependabot updates to production deps
1.3.5 - 2022-05-27
- chore(ci): use shared GHA workflows
- style(es6): use dns.promises internally
- dep(async): replace async dependency with Promise.all
- doc(README): use code fences around examples (vs indention)
1.3.4 - 2022-01-05
- promisify get_ips_by_host (backwards compatible)
1.3.3 - 2020-01-05
- refactored is_local_host function to return a promise instead of using a callback #65
1.3.2 - 2021-12-20
- add is_local_host function #63
1.3.1 - 2021-10-13
- get_mx: wrap dns.resolveMx in a try haraka/Haraka#2985
- add .release scripts
- add GH workflow, publish release to NPM upon merge to master
- Support passing an array to ip_in_list #60
- add "any" IP to is_local_ip
- add TEST-NET-[1-3] to is_private_ip
- fix: restore the tests wrapping the resolveMX iterable
- get_mx: do not include implicit MX
1.2.1 - 2020-11-17
- bump ipaddr.js to 2.0.0 #56
1.2.0 - 2020-06-23
- added get_mx
- remove deprecated load_tls_ini
- remove deprecated tls_ini_section_with_defaults
- ipv6_bogus: handle parsing broken ipv6 addresses #49
- update async to version 3.0.1 #43
- stop is_private_ip from checking if the IP is bound to a local network interface
- is_local_ip checks local network interfaces too
- add is_local_ip
- ip_in_list doesn't throw on empty list
- add get_primary_host_name haraka/Haraka#2380
- restore tls_ini_section_with_defaults function (deprecated since Haraka 2.0.17)
- get_public_ip: assign timer before calling connect #29
- avoid race where timeout isn't cleared because stun connect errors immediately
- remove TLS functions that have been subsumed into Haraka/tls_socket: tls_ini_section_with_defaults, parse_x509_names, parse_x509_expire, parse_x509, load_tls_dir
- convert concatenated strings to template literals #28
- eslint updates #25, #27
- improved x509 parser #22
- added vs-stun as optional dep (from Haraka) #21
- lint fixes for compat with eslint 4 #18
- skip loading expired x509 (TLS) certs
- make TLS cert dir configurable
- rename certs -> cert (be consistent with haraka/plugins/tls)
- store cert/key as buffers (was strings)
- handle undefined tls.ini section
- add tls_ini_section_with_defaults()
- add load_tls_dir()
- add parse_x509_names()
- add enableSNI TLS option
- initialize TLS opts in (section != main) as booleans
- added tls.ini loading