diff --git a/nameserver/http.go b/nameserver/http.go index a1501d98..20753a98 100644 --- a/nameserver/http.go +++ b/nameserver/http.go @@ -36,7 +36,7 @@ func ServeHTTP(listener net.Listener, version string, server *DNSServer, dockerC }) muxRouter.Methods("GET").Path("/domain").HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - fmt.Fprintln(w, server.Zone.Domain()) + fmt.Fprint(w, server.Zone.Domain()) }) muxRouter.Methods("PUT").Path("/name/{id:.+}/{ip:.+}").HandlerFunc(func(w http.ResponseWriter, r *http.Request) { diff --git a/proxy/create_container_interceptor.go b/proxy/create_container_interceptor.go index b1f10522..22d29214 100644 --- a/proxy/create_container_interceptor.go +++ b/proxy/create_container_interceptor.go @@ -94,7 +94,8 @@ func (i *createContainerInterceptor) setWeaveDNS(container *createContainerReque name := r.URL.Query().Get("name") if container.Hostname == "" && name != "" { container.Hostname = name - container.Domainname = i.getDNSDomain() + // Strip trailing period because it's unusual to see it used on the end of a host name + container.Domainname = strings.TrimSuffix(i.getDNSDomain(), ".") } return nil diff --git a/test/270_use_name_as_hostname_test.sh b/test/270_use_name_as_hostname_test.sh index a7b4ce44..ccb0ff86 100755 --- a/test/270_use_name_as_hostname_test.sh +++ b/test/270_use_name_as_hostname_test.sh @@ -3,7 +3,7 @@ . ./config.sh NAME=c1 -DOMAIN=weave.local. +DOMAIN=weave.local HOSTNAME=$NAME-hostname.$DOMAIN # Docker inspect hostname + domainname of container $2 on host $1 diff --git a/weave b/weave index 58b58057..339a1c0e 100755 --- a/weave +++ b/weave @@ -660,7 +660,8 @@ dns_args() { DNS_ARGS="$DNS_ARG $DNS_SEARCH_ARG" if [ -n "$NAME_ARG" -a -z "$HOSTNAME_SPECIFIED" ] ; then DOMAIN=$(call_dns GET /domain 2>/dev/null) || DOMAIN=weave.local. - DNS_ARGS="$DNS_ARGS --hostname=$NAME_ARG.$DOMAIN" + # Strip trailing period off DNS domain to reduce surprise + DNS_ARGS="$DNS_ARGS --hostname=$NAME_ARG.${DOMAIN%.}" fi }