aboutsummaryrefslogtreecommitdiff
path: root/unix/boot/bootlib/osgetowner.c
blob: 489997c12225ad7aafc903cf59ee178b6b81fbd0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
 */

#include <sys/types.h>
#include <sys/stat.h>
#include "bootlib.h"


/* OS_GETOWNER -- Get the user and group identifications for a file.  This is
 * not a required function and is expected to rarely work when transporting
 * files to a host at a different site.  Nonetheless it is useful when moving
 * files between compatible hosts at a single site, so we make use of it in
 * case it works.  It is sufficient to merely set uid and gid to 0 and return.
 */
void
os_getowner (
  char	*fname,
  int	*uid, 
  int	*gid 
)
{
	struct	stat fi;

	if (stat (vfn2osfn(fname,0), &fi) != -1) {
	    *uid = fi.st_uid;
	    *gid = fi.st_gid;
	}
}