- General improvements
- Parallel download of only needed files at start
- Prettier console output with all streams merged (openvpn, unbound, shadowsocks etc.)
- Simplified Docker final image
- Faster bootup
- DNS over TLS
- Finer grain blocking at DNS level: malicious, ads and surveillance
- Choose your DNS over TLS providers
- Ability to use multiple DNS over TLS providers for DNS split horizon
- Environment variables for DNS logging
- DNS block lists needed are downloaded and built automatically at start, in parallel
- PIA
- A random region is selected if the REGION parameter is left empty (thanks @rorph for your PR)
- Routing and iptables adjusted so it can work as a Kubernetes pod sidecar (thanks @rorph for your PR)
32 lines
954 B
Go
32 lines
954 B
Go
package pia
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"net"
|
|
"strings"
|
|
"testing"
|
|
|
|
loggingMocks "github.com/qdm12/golibs/logging/mocks"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_ModifyLines(t *testing.T) {
|
|
t.Parallel()
|
|
original, err := ioutil.ReadFile("testdata/ovpn.golden")
|
|
require.NoError(t, err)
|
|
originalLines := strings.Split(string(original), "\n")
|
|
expected, err := ioutil.ReadFile("testdata/ovpn.modified.golden")
|
|
require.NoError(t, err)
|
|
expectedLines := strings.Split(string(expected), "\n")
|
|
|
|
var port uint16 = 3000
|
|
IPs := []net.IP{net.IP{100, 10, 10, 10}, net.IP{100, 20, 20, 20}}
|
|
logger := &loggingMocks.Logger{}
|
|
logger.On("Info", "%s: adapting openvpn configuration for server IP addresses and port %d", logPrefix, port).Once()
|
|
c := &configurator{logger: logger}
|
|
modifiedLines := c.ModifyLines(originalLines, IPs, port)
|
|
assert.Equal(t, expectedLines, modifiedLines)
|
|
logger.AssertExpectations(t)
|
|
}
|