| 
									
										
										
										
											2024-03-15 09:07:06 +08:00
										 |  |  | //go:build aix || darwin || dragonfly || freebsd || (!android && linux) || netbsd || openbsd || solaris || js || zos
 | 
					
						
							|  |  |  | // +build aix darwin dragonfly freebsd !android,linux netbsd openbsd solaris js zos
 | 
					
						
							| 
									
										
										
										
											2021-08-11 23:09:43 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | package sftp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"os" | 
					
						
							|  |  |  | 	"syscall" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func lsLinksUIDGID(fi os.FileInfo) (numLinks uint64, uid, gid string) { | 
					
						
							|  |  |  | 	numLinks = 1 | 
					
						
							|  |  |  | 	uid, gid = "0", "0" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	switch sys := fi.Sys().(type) { | 
					
						
							|  |  |  | 	case *syscall.Stat_t: | 
					
						
							|  |  |  | 		numLinks = uint64(sys.Nlink) | 
					
						
							| 
									
										
										
										
											2021-08-17 19:40:30 +08:00
										 |  |  | 		uid = lsFormatID(sys.Uid) | 
					
						
							|  |  |  | 		gid = lsFormatID(sys.Gid) | 
					
						
							| 
									
										
										
										
											2021-08-11 23:09:43 +08:00
										 |  |  | 	default: | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return numLinks, uid, gid | 
					
						
							|  |  |  | } |