Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "lib.h"
2
#include "sys9.h"
3
#include <sys/types.h>
4
#include <sys/stat.h>
5
#include <unistd.h>
6
#include <string.h>
7
#include <errno.h>
8
#include <stdlib.h>
9
#include "dir.h"
10
 
11
int
12
chown(const char *path, uid_t owner, gid_t group)
13
{
14
	int num;
15
	Dir d;
16
 
17
	_nulldir(&d);
18
 
19
	/* find owner, group */
20
	d.uid = nil;
21
	num = owner;
22
	if(!_getpw(&num, &d.uid, 0)) {
23
		errno = EINVAL;
24
		return -1;
25
	}
26
 
27
	d.gid = nil;
28
	num = group;
29
	if(!_getpw(&num, &d.gid, 0)) {
30
		errno = EINVAL;
31
		return -1;
32
	}
33
 
34
	if(_dirwstat(path, &d) < 0){
35
		_syserrno();
36
		return -1;
37
	}
38
	return 0;
39
}