3 Commits
2.3.1 ... 2.3.2

5 changed files with 19 additions and 6 deletions

View File

@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
make: ["lint", "test"]
make: ["lint", "unit-test", "integration-test"]
steps:
- uses: actions/checkout@v4

View File

@ -32,7 +32,7 @@ Take a look at [ifconfig.es](https://ifconfig.es) a live site using `whatismyip`
Get your public IP easily from the command line:
```text
```bash
curl ifconfig.es
127.0.0.1
@ -42,7 +42,7 @@ curl -6 ifconfig.es
Get the IP of your DNS provider:
```text
```bash
curl -L dns.ifconfig.es
2a04:e4c0:47::67 (Spain / OPENDNS)
```
@ -134,7 +134,7 @@ Usage of whatismyip:
-geoip2-city string
Path to GeoIP2 city database
-resolver string
Path to the resolver configuration. It actually enables the resolver for DNS client discover.
Path to the resolver configuration. It actually enables the resolver for DNS client discovery.
-template string
Path to template file
-tls-bind string

View File

@ -70,7 +70,7 @@ func Setup(args []string) (output string, err error) {
&resolverConf,
"resolver",
"",
"Path to the resolver configuration. It actually enables the resolver for DNS client discover.")
"Path to the resolver configuration. It actually enables the resolver for DNS client discovery.")
flags.StringVar(
&App.BindAddress,
"bind",

View File

@ -31,7 +31,7 @@ func GetDNSDiscoveryHandler(store *cache.Cache, domain string, redirectPort stri
return
}
if ctx.Request.Host == domain {
if ctx.Request.Host == domain && ctx.Request.URL.Path == "/" {
ctx.Redirect(http.StatusFound, fmt.Sprintf("http://%s.%s%s", uuid.New().String(), domain, redirectPort))
ctx.Abort()
return

View File

@ -33,6 +33,19 @@ func TestGetDNSDiscoveryHandler(t *testing.T) {
assert.Equal(t, testIP.ipv4+"\n", w.Body.String())
})
t.Run("return 404 if there is a path", func(t *testing.T) {
req, _ := http.NewRequest("GET", "/path", nil)
req.Host = domain
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
c.Request = req
handler(c)
app.ServeHTTP(w, req)
assert.Equal(t, http.StatusNotFound, w.Code)
})
t.Run("redirects if host is domain", func(t *testing.T) {
req, _ := http.NewRequest("GET", "/", nil)
req.Host = domain