messhy 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f68749f7a92383377a4ab903e6082fdbac191e4e3213b7dbda9f4215bdd83bec
4
- data.tar.gz: 75f5b278e00b3703e53a5034965c3793dfae55c14cdee0679fd64cee503403ba
3
+ metadata.gz: 6cc5f92c8b8a35dfb82b3639ae13d18e962e6f67ff042b845b4e545ed53e9be3
4
+ data.tar.gz: 8165c8602fdcbb714fe9382dbadd217b399ee94d7c0ab987379c78964af7a166
5
5
  SHA512:
6
- metadata.gz: e368f86af63e0f0947cce3a0b0144637d7428ab451564fba94e4e2e0a9bf6ffa9073c993a0f5485e6ca0653df6bec33cc27225815018a3f4edf9e921d06f5b4e
7
- data.tar.gz: 81658f2d4a3265f896a02a5b9e479b2b07f164c6bc442a560d5e97788210c9b395ded3153d242a9a29596c000ed0ed5e98d2aea54bc303a3e55e6882d0637215
6
+ metadata.gz: 0d86591c5ccd0e3276785836a0250f1e23d991d10c8c4d30920d852245506cfd1d405904c9adf657d16289c65571c802f87bf7111db16bccf0c7b71024675e79
7
+ data.tar.gz: 7ce9ada0585d20b2cff7a108b4c5e68843b3489ceeab3aa21a572b7ab56910bd0a6fbe28e95a30f2f0b2dc3f317684ed123a8d576008e46e706a2c3f107e5d0b
@@ -148,7 +148,7 @@ module Messhy
148
148
  lines << 'cache-size=1000'
149
149
  lines << "local-ttl=#{ttl}"
150
150
  lines << "interface=#{interface}"
151
- lines << 'bind-interfaces'
151
+ lines << 'bind-dynamic'
152
152
  lines << 'listen-address=127.0.0.1'
153
153
  lines << "listen-address=#{server_ip}"
154
154
  lines << ''
@@ -31,6 +31,20 @@ module Messhy
31
31
  listen_port = node_config['listen_port'] || config.listen_port
32
32
  mtu = config.mtu
33
33
 
34
+ # DNS config for PostUp persistence
35
+ dns_server_ips = []
36
+ dns_domain = nil
37
+ dns_interface = nil
38
+ if config.dns_enabled?
39
+ dns_domain = config.dns_domain
40
+ dns_interface = config.dns_interface
41
+ dns_server_ips = config.dns_server_nodes.filter_map { |name|
42
+ config.node_config(name)&.dig('private_ip')
43
+ }
44
+ end
45
+
46
+ is_dns_server = config.dns_enabled? && config.dns_server_nodes.include?(node_name)
47
+
34
48
  # Build peers list (all other nodes)
35
49
  peers = []
36
50
  config.each_node do |peer_name, peer_config|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Messhy
4
- VERSION = '0.8.0'
4
+ VERSION = '0.8.2'
5
5
  end
@@ -9,6 +9,13 @@ MTU = <%= mtu %>
9
9
 
10
10
  # Enable IP forwarding
11
11
  PostUp = sysctl -w net.ipv4.ip_forward=1
12
+ <% if dns_server_ips && !dns_server_ips.empty? -%>
13
+ PostUp = resolvectl dns <%= dns_interface %> <%= dns_server_ips.join(' ') %>
14
+ PostUp = resolvectl domain <%= dns_interface %> ~<%= dns_domain %>
15
+ <% end -%>
16
+ <% if is_dns_server -%>
17
+ PostUp = sleep 1 && systemctl restart dnsmasq || true
18
+ <% end -%>
12
19
  PostDown = sysctl -w net.ipv4.ip_forward=0
13
20
 
14
21
  <% peers.each do |peer| %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: messhy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - BoringCache