runconfig/hostconfig.go
6393c383
 package runconfig
 
 import (
767df67e
 	"encoding/json"
 	"io"
0b187b90
 
907407d0
 	"github.com/docker/engine-api/types/container"
6393c383
 )
 
5170a2c0
 // DecodeHostConfig creates a HostConfig based on the specified Reader.
 // It assumes the content of the reader will be JSON, and decodes it.
7ac4232e
 func DecodeHostConfig(src io.Reader) (*container.HostConfig, error) {
767df67e
 	decoder := json.NewDecoder(src)
 
eb97de7d
 	var w ContainerConfigWrapper
767df67e
 	if err := decoder.Decode(&w); err != nil {
 		return nil, err
8344b6d7
 	}
d9753ba2
 
f6ed5905
 	hc := w.getHostConfig()
767df67e
 	return hc, nil
6393c383
 }
f6ed5905
 
 // SetDefaultNetModeIfBlank changes the NetworkMode in a HostConfig structure
 // to default if it is not populated. This ensures backwards compatibility after
 // the validation of the network mode was moved from the docker CLI to the
 // docker daemon.
7ac4232e
 func SetDefaultNetModeIfBlank(hc *container.HostConfig) *container.HostConfig {
f6ed5905
 	if hc != nil {
7ac4232e
 		if hc.NetworkMode == container.NetworkMode("") {
 			hc.NetworkMode = container.NetworkMode("default")
f6ed5905
 		}
 	}
 	return hc
 }