shared/idmap/idmapset_linux.go
func CurrentIdmapSet() (*IdmapSet, error) {
	idmapset := new(IdmapSet)

	if shared.PathExists("/proc/self/uid_map") {
		// Parse the uidmap
		entries, err := getFromProc("/proc/self/uid_map")
		if err != nil {
			return nil, err
		}

		for _, entry := range entries {
			e := IdmapEntry{Isuid: true, Nsid: entry[0], Hostid: entry[1], Maprange: entry[2]}
			idmapset.Idmap = Extend(idmapset.Idmap, e)
		}
	} else {
		// Fallback map
		e := IdmapEntry{Isuid: true, Nsid: 0, Hostid: 0, Maprange: 0}
		idmapset.Idmap = Extend(idmapset.Idmap, e)
	}

	if shared.PathExists("/proc/self/gid_map") {
		// Parse the gidmap
		entries, err := getFromProc("/proc/self/gid_map")
		if err != nil {
			return nil, err
		}

		for _, entry := range entries {
			e := IdmapEntry{Isgid: true, Nsid: entry[0], Hostid: entry[1], Maprange: entry[2]}
			idmapset.Idmap = Extend(idmapset.Idmap, e)
		}
	} else {
		// Fallback map
		e := IdmapEntry{Isgid: true, Nsid: 0, Hostid: 0, Maprange: 0}
		idmapset.Idmap = Extend(idmapset.Idmap, e)
	}

	return idmapset, nil
}
func CurrentIdmapSet() (*IdmapSet, error) {
	idmapset := new(IdmapSet)

	if shared.PathExists("/proc/self/uid_map") {
		// Parse the uidmap
		entries, err := getFromProc("/proc/self/uid_map")
		if err != nil {
			return nil, err
		}

		for _, entry := range entries {
			e := IdmapEntry{Isuid: true, Nsid: entry[0], Hostid: entry[1], Maprange: entry[2]}
			idmapset.Idmap = Extend(idmapset.Idmap, e)
		}
	} else {
		// Fallback map
		e := IdmapEntry{Isuid: true, Nsid: 0, Hostid: 0, Maprange: 0}
		idmapset.Idmap = Extend(idmapset.Idmap, e)
	}

	if shared.PathExists("/proc/self/gid_map") {
		// Parse the gidmap
		entries, err := getFromProc("/proc/self/gid_map")
		if err != nil {
			return nil, err
		}

		for _, entry := range entries {
			e := IdmapEntry{Isgid: true, Nsid: entry[0], Hostid: entry[1], Maprange: entry[2]}
			idmapset.Idmap = Extend(idmapset.Idmap, e)
		}
	} else {
		// Fallback map
		e := IdmapEntry{Isgid: true, Nsid: 0, Hostid: 0, Maprange: 0}
		idmapset.Idmap = Extend(idmapset.Idmap, e)
	}

	return idmapset, nil
}
func CurrentIdmapSet ( ) ( * IdmapSet , error ) { idmapset := new ( IdmapSet ) if shared . PathExists ( " " ) { // Parse the uidmap entries , err := getFromProc ( " " ) if err != nil { return nil , err } for _ , entry := range entries { e := IdmapEntry { Isuid : true , Nsid : entry [ 0 ] , Hostid : entry [ 1 ] , Maprange : entry [ 2 ] } idmapset . Idmap = Extend ( idmapset . Idmap , e ) } } else { // Fallback map e := IdmapEntry { Isuid : true , Nsid : 0 , Hostid : 0 , Maprange : 0 } idmapset . Idmap = Extend ( idmapset . Idmap , e ) } if shared . PathExists ( " " ) { // Parse the gidmap entries , err := getFromProc ( " " ) if err != nil { return nil , err } for _ , entry := range entries { e := IdmapEntry { Isgid : true , Nsid : entry [ 0 ] , Hostid : entry [ 1 ] , Maprange : entry [ 2 ] } idmapset . Idmap = Extend ( idmapset . Idmap , e ) } } else { // Fallback map e := IdmapEntry { Isgid : true , Nsid : 0 , Hostid : 0 , Maprange : 0 } idmapset . Idmap = Extend ( idmapset . Idmap , e ) } return idmapset , nil }
/*
 * Create an idmap of the current allocation
 */
/ * Create an idmap of the current allocation