mirror of
https://github.com/openziti/desktop-edge-win.git
synced 2026-10-14 08:39:55 +00:00
checkpoint
This commit is contained in:
@@ -254,12 +254,6 @@ func (t *tunnel) runWriteLoop() {
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
func (t *tunnel) AddIntercept(svcId string, service string, host string, port int, ctx unsafe.Pointer) {
|
||||
log.Debugf("about to add intercept for: %s, %s, %d", service, host, port)
|
||||
res := C.ziti_tunneler_intercept_v1(t.tunCtx, ctx, C.CString(svcId), C.CString(service), C.CString(host), C.int(port))
|
||||
log.Debugf("intercept added: %v", res)
|
||||
}*/
|
||||
|
||||
func AddIntercept(svcId string, service string, host string, port int, ctx unsafe.Pointer) {
|
||||
/*for _, t := range devMap {
|
||||
@@ -267,7 +261,7 @@ func AddIntercept(svcId string, service string, host string, port int, ctx unsaf
|
||||
t.AddIntercept(svcId, service, host, int(port), unsafe.Pointer(ctx))
|
||||
}
|
||||
*/
|
||||
log.Debugf("about to add intercept for: %s[] at %s:%d", service, svcId, host, port)
|
||||
log.Debugf("about to add intercept for: %s[%s] at %s:%d", service, svcId, host, port)
|
||||
_ = C.ziti_tunneler_intercept_v1(theTun.tunCtx, ctx, C.CString(svcId), C.CString(service), C.CString(host), C.int(port))
|
||||
}
|
||||
|
||||
|
||||
+27
-24
@@ -19,6 +19,7 @@ package cziti
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"github.com/michaelquigley/pfxlog"
|
||||
"net"
|
||||
"os"
|
||||
@@ -29,8 +30,7 @@ import (
|
||||
var log = pfxlog.Logger()
|
||||
|
||||
func ResetDNS() {
|
||||
log.Info("resetting dns to original-ish state")
|
||||
|
||||
log.Info("resetting DNS server addresses")
|
||||
script := `Get-NetIPInterface | ForEach-Object { Set-DnsClientServerAddress -InterfaceIndex $_.ifIndex -ResetServerAddresses }`
|
||||
|
||||
cmd := exec.Command("powershell", "-Command", script)
|
||||
@@ -104,44 +104,47 @@ func GetUpstreamDNS() []string {
|
||||
|
||||
|
||||
func ReplaceDNS(ips []net.IP) {
|
||||
script := `$dnsinfo=Get-DnsClientServerAddress
|
||||
ipsStrArr := make([]string, len(ips))
|
||||
for i, ip := range ips {
|
||||
ipsStrArr[i] = fmt.Sprintf("'%s'", ip.String())
|
||||
}
|
||||
ipsAsString := strings.Join(ipsStrArr, ",")
|
||||
|
||||
log.Infof("Injecting DNS servers [%s] onto interfaces", ipsAsString)
|
||||
|
||||
script := fmt.Sprintf(`$dnsinfo=Get-DnsClientServerAddress
|
||||
$dnsIps=@(%s)
|
||||
|
||||
# see https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.addressfamily
|
||||
$IPv4=2
|
||||
$IPv6=23
|
||||
|
||||
$dnsUpdates = @{}
|
||||
$dnsPerInterface = @{}
|
||||
|
||||
foreach ($dns in $dnsinfo)
|
||||
{
|
||||
if($dnsUpdates[$dns.InterfaceIndex] -eq $null) { $dnsUpdates[$dns.InterfaceIndex]=[System.Collections.ArrayList]@() }
|
||||
if($dns.AddressFamily -eq $IPv6) {
|
||||
if($dnsPerInterface[$dns.InterfaceIndex] -eq $null) {
|
||||
$dnsPerInterface[$dns.InterfaceIndex]=[System.Collections.ArrayList]@()
|
||||
} else {
|
||||
$dnsServers=$dns.ServerAddresses
|
||||
$ArrList=[System.Collections.ArrayList]@($dnsServers)
|
||||
if(($dnsServers -ne $null) -and ($dnsServers.Contains("::1")) ) {
|
||||
# uncomment when debugging echo ($dns.InterfaceAlias + " IPv6 already contains ::1")
|
||||
} else {
|
||||
$ArrList.Insert(0,"::1")
|
||||
foreach ($dnsIp in $dnsIps)
|
||||
{
|
||||
if(($dnsServers -ne $null) -and ($ArrList.Contains($dnsIp)) ) {
|
||||
# uncomment when debugging echo ($dns.InterfaceAlias + " IPv4 already contains ${dnsIp}")
|
||||
} else {
|
||||
$ArrList.Insert(0, $dnsIp)
|
||||
}
|
||||
}
|
||||
$dnsUpdates[$dns.InterfaceIndex].AddRange($ArrList)
|
||||
}
|
||||
elseif($dns.AddressFamily -eq $IPv4){
|
||||
$dnsServers=$dns.ServerAddresses
|
||||
$ArrList=[System.Collections.ArrayList]@($dnsServers)
|
||||
if(($dnsServers -ne $null) -and ($dnsServers.Contains("127.0.0.1")) ) {
|
||||
# uncomment when debugging echo ($dns.InterfaceAlias + " IPv4 already contains 127.0.0.1")
|
||||
} else {
|
||||
$ArrList.Insert(0,"127.0.0.1")
|
||||
}
|
||||
$dnsUpdates[$dns.InterfaceIndex].AddRange($ArrList)
|
||||
$dnsPerInterface[$dns.InterfaceIndex].AddRange($ArrList)
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($key in $dnsUpdates.Keys)
|
||||
foreach ($key in $dnsPerInterface.Keys)
|
||||
{
|
||||
$dnsServers=$dnsUpdates[$key]
|
||||
$dnsServers=$dnsPerInterface[$key]
|
||||
Set-DnsClientServerAddress -InterfaceIndex $key -ServerAddresses ($dnsServers)
|
||||
}`
|
||||
}`, ipsAsString)
|
||||
|
||||
cmd := exec.Command("powershell", "-Command", script)
|
||||
cmd.Stderr = os.Stderr
|
||||
|
||||
@@ -157,13 +157,7 @@ func (t *RuntimeState) CreateTun(ipv4 string, ipv4mask int) error {
|
||||
}
|
||||
|
||||
dnsServers := []net.IP{
|
||||
net.ParseIP(Ipv4dns).To4(),
|
||||
}
|
||||
if iPv6Disabled() {
|
||||
log.Infof("IPv6 is disabled. Ignoring IPv6 DNS ::1")
|
||||
} else {
|
||||
log.Infof("IPv6 enabled. Adding IPv6 DNS ::1")
|
||||
dnsServers = append(dnsServers, net.ParseIP(Ipv6dns))
|
||||
net.ParseIP(Ipv4dns),
|
||||
}
|
||||
|
||||
log.Infof("adding DNS servers to TUN: %s", dnsServers)
|
||||
|
||||
Reference in New Issue
Block a user