mirror of
				https://github.com/containers/podman.git
				synced 2025-10-31 01:50:50 +08:00 
			
		
		
		
	vendor: update psgo to v1.3.0
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
		
							
								
								
									
										41
									
								
								vendor/github.com/containers/psgo/internal/proc/ns.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								vendor/github.com/containers/psgo/internal/proc/ns.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -15,10 +15,20 @@ | ||||
| package proc | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"os" | ||||
|  | ||||
| 	"github.com/pkg/errors" | ||||
| ) | ||||
|  | ||||
| type IDMap struct { | ||||
| 	ContainerID int | ||||
| 	HostID      int | ||||
| 	Size        int | ||||
| } | ||||
|  | ||||
| // ParsePIDNamespace returns the content of /proc/$pid/ns/pid. | ||||
| func ParsePIDNamespace(pid string) (string, error) { | ||||
| 	pidNS, err := os.Readlink(fmt.Sprintf("/proc/%s/ns/pid", pid)) | ||||
| @ -36,3 +46,34 @@ func ParseUserNamespace(pid string) (string, error) { | ||||
| 	} | ||||
| 	return userNS, nil | ||||
| } | ||||
|  | ||||
| // ReadMappings reads the user namespace mappings at the specified path | ||||
| func ReadMappings(path string) ([]IDMap, error) { | ||||
| 	file, err := os.Open(path) | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(err, "cannot open %s", path) | ||||
| 	} | ||||
| 	defer file.Close() | ||||
|  | ||||
| 	mappings := []IDMap{} | ||||
|  | ||||
| 	buf := bufio.NewReader(file) | ||||
| 	for { | ||||
| 		line, _, err := buf.ReadLine() | ||||
| 		if err != nil { | ||||
| 			if err == io.EOF { | ||||
| 				return mappings, nil | ||||
| 			} | ||||
| 			return nil, errors.Wrapf(err, "cannot read line from %s", path) | ||||
| 		} | ||||
| 		if line == nil { | ||||
| 			return mappings, nil | ||||
| 		} | ||||
|  | ||||
| 		containerID, hostID, size := 0, 0, 0 | ||||
| 		if _, err := fmt.Sscanf(string(line), "%d %d %d", &containerID, &hostID, &size); err != nil { | ||||
| 			return nil, errors.Wrapf(err, "cannot parse %s", string(line)) | ||||
| 		} | ||||
| 		mappings = append(mappings, IDMap{ContainerID: containerID, HostID: hostID, Size: size}) | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Giuseppe Scrivano
					Giuseppe Scrivano