@ -1996,27 +1996,31 @@ func flattenNetworkingConfig(in chan networkingCommandEntry) NetworkingConfig {
// Constructor for networking file
func ReadNetworkingConfig ( fd * os . File ) ( NetworkingConfig , error ) {
// start piecing together different parts of the file
// start piecing together all of the differents parts of the file and split
// it into its individual rows.
fromfile := consumeFile ( fd )
tokenized := tokenizeNetworkingConfig ( fromfile )
rows := splitNetworkingConfig ( tokenized )
entries := parseNetworkingConfig ( rows )
// parse the version
// consume the version _first_. this is important because if the version is
// wrong, then there's likely tokens that we won't know how to interpret.
parsed_version , err := networkingReadVersion ( <- rows )
if err != nil {
return NetworkingConfig { } , err
}
// verify that it's 1.0 since that's all we support.
version := parsed_version . Number ( )
if version != 1.0 {
// verify that it's 1.0 since that's all we support for now.
if version := parsed_version . Number ( ) ; version != 1.0 {
return NetworkingConfig { } , fmt . Errorf ( "Expected version %f of networking file. Received version %f." , 1.0 , version )
}
// convert to a configuration
result := flattenNetworkingConfig ( entries )
return result , nil
// now that our version has been confirmed, we can proceed to parse the
// rest of the file and parseNetworkingConfig is free to consume rows as
// much as it wants to.
entries := parseNetworkingConfig ( rows )
// convert what we've parsed into a configuration that's easy to interpret
return flattenNetworkingConfig ( entries ) , nil
}
// netmapper interface