]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Merge branch 'nat64' of https://github.com/eqvinox/unbound into eqvinox-nat64
authorGeorge Thessalonikefs <george@nlnetlabs.nl>
Wed, 26 Apr 2023 13:14:39 +0000 (15:14 +0200)
committerGeorge Thessalonikefs <george@nlnetlabs.nl>
Wed, 26 Apr 2023 13:14:39 +0000 (15:14 +0200)
1  2 
daemon/cachedump.c
doc/example.conf.in
doc/unbound.conf.5.in
iterator/iter_utils.c
iterator/iterator.c
iterator/iterator.h
util/config_file.h
util/configlexer.lex
util/configparser.y

Simple merge
Simple merge
Simple merge
index b2a2309ab4b14ac6aedeb22fc91d43edf78f77a3,98fac8186a7e3f42d24cc7c4d230edcd7bbe1644..c8c41a19657f53e077a92ea22955eea0b037bbad
@@@ -172,11 -178,35 +178,37 @@@ iter_apply_cfg(struct iter_env* iter_en
                }
  
        }
+       nat64_prefix = cfg->nat64_prefix;
+       if (!nat64_prefix)
+               nat64_prefix = cfg->dns64_prefix;
+       if (!nat64_prefix)
+               nat64_prefix = DEFAULT_NAT64_PREFIX;
+       if (!netblockstrtoaddr(nat64_prefix, 0, &iter_env->nat64_prefix_addr,
+                              &iter_env->nat64_prefix_addrlen,
+                              &iter_env->nat64_prefix_net)) {
+               log_err("cannot parse nat64-prefix netblock: %s", nat64_prefix);
+               return 0;
+       }
+       if (!addr_is_ip6(&iter_env->nat64_prefix_addr,
+                        iter_env->nat64_prefix_addrlen)) {
+               log_err("nat64_prefix is not IPv6: %s", cfg->nat64_prefix);
+               return 0;
+       }
+       if (iter_env->nat64_prefix_net != 32 && iter_env->nat64_prefix_net != 40 &&
+           iter_env->nat64_prefix_net != 48 && iter_env->nat64_prefix_net != 56 &&
+           iter_env->nat64_prefix_net != 64 && iter_env->nat64_prefix_net != 96 ) {
+               log_err("dns64-prefix length it not 32, 40, 48, 56, 64 or 96: %s",
+                       nat64_prefix);
+               return 0;
+       }
        iter_env->supports_ipv6 = cfg->do_ip6;
        iter_env->supports_ipv4 = cfg->do_ip4;
+       iter_env->use_nat64 = cfg->do_nat64;
        iter_env->outbound_msg_retry = cfg->outbound_msg_retry;
 +      iter_env->max_sent_count = cfg->max_sent_count;
 +      iter_env->max_query_restarts = cfg->max_query_restarts;
        return 1;
  }
  
Simple merge
Simple merge
Simple merge
Simple merge
index 06118e04aab10cb44a5584b3eb9d0475e389098a,91f8af0a7fbbde25e9cc78a40216ca1d61292fa5..d07b8788f01b9e253d5cf735897caffe630ee9d6
@@@ -73,10 -73,9 +73,10 @@@ extern struct config_parser_state* cfg_
  %token VAR_FORCE_TOPLEVEL
  %token VAR_SERVER VAR_VERBOSITY VAR_NUM_THREADS VAR_PORT
  %token VAR_OUTGOING_RANGE VAR_INTERFACE VAR_PREFER_IP4
- %token VAR_DO_IP4 VAR_DO_IP6 VAR_PREFER_IP6 VAR_DO_UDP VAR_DO_TCP
+ %token VAR_DO_IP4 VAR_DO_IP6 VAR_DO_NAT64 VAR_PREFER_IP6 VAR_DO_UDP VAR_DO_TCP
  %token VAR_TCP_MSS VAR_OUTGOING_TCP_MSS VAR_TCP_IDLE_TIMEOUT
  %token VAR_EDNS_TCP_KEEPALIVE VAR_EDNS_TCP_KEEPALIVE_TIMEOUT
 +%token VAR_SOCK_QUEUE_TIMEOUT
  %token VAR_CHROOT VAR_USERNAME VAR_DIRECTORY VAR_LOGFILE VAR_PIDFILE
  %token VAR_MSG_CACHE_SIZE VAR_MSG_CACHE_SLABS VAR_NUM_QUERIES_PER_THREAD
  %token VAR_RRSET_CACHE_SIZE VAR_RRSET_CACHE_SLABS VAR_OUTGOING_NUM_TCP
@@@ -224,11 -223,10 +225,11 @@@ contents_server: contents_server conten
        | ;
  content_server: server_num_threads | server_verbosity | server_port |
        server_outgoing_range | server_do_ip4 |
-       server_do_ip6 | server_prefer_ip4 | server_prefer_ip6 |
-       server_do_udp | server_do_tcp |
+       server_do_ip6 | server_do_nat64 | server_prefer_ip4 |
+       server_prefer_ip6 | server_do_udp | server_do_tcp |
        server_tcp_mss | server_outgoing_tcp_mss | server_tcp_idle_timeout |
        server_tcp_keepalive | server_tcp_keepalive_timeout |
 +      server_sock_queue_timeout |
        server_interface | server_chroot | server_username |
        server_directory | server_logfile | server_pidfile |
        server_msg_cache_size | server_msg_cache_slabs |