1// Copyright 2012 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build linux darwin dragonfly freebsd openbsd netbsd solaris
6
7package tar
8
9import (
10	"os"
11	"syscall"
12)
13
14func init() {
15	sysStat = statUnix
16}
17
18func statUnix(fi os.FileInfo, h *Header) error {
19	sys, ok := fi.Sys().(*syscall.Stat_t)
20	if !ok {
21		return nil
22	}
23	h.Uid = int(sys.Uid)
24	h.Gid = int(sys.Gid)
25	// TODO(bradfitz): populate username & group.  os/user
26	// doesn't cache LookupId lookups, and lacks group
27	// lookup functions.
28	h.AccessTime = statAtime(sys)
29	h.ChangeTime = statCtime(sys)
30	// TODO(bradfitz): major/minor device numbers?
31	return nil
32}
33