~dexter/fakechroot/oneiric

« back to all changes in this revision

Viewing changes to src/openat64.c

  • Committer: piotr.roszatycki at gmail
  • Date: 2011-12-11 17:04:55 UTC
  • mfrom: (41.1.42 sid)
  • Revision ID: piotr.roszatycki@gmail.com-20111211170455-pawopykjjwr0fjjc
Tags: 2.16-1~ppa1natty1
New upstream release 2.16 for natty

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    libfakechroot -- fake chroot environment
 
3
    Copyright (c) 2010 Piotr Roszatycki <dexter@debian.org>
 
4
 
 
5
    This library is free software; you can redistribute it and/or
 
6
    modify it under the terms of the GNU Lesser General Public
 
7
    License as published by the Free Software Foundation; either
 
8
    version 2.1 of the License, or (at your option) any later version.
 
9
 
 
10
    This library is distributed in the hope that it will be useful,
 
11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
13
    Lesser General Public License for more details.
 
14
 
 
15
    You should have received a copy of the GNU Lesser General Public
 
16
    License along with this library; if not, write to the Free Software
 
17
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
 
18
*/
 
19
 
 
20
 
 
21
#include <config.h>
 
22
 
 
23
#ifdef HAVE_OPENAT64
 
24
 
 
25
#define _LARGEFILE64_SOURCE
 
26
#include <stdarg.h>
 
27
#include <stddef.h>
 
28
#include <fcntl.h>
 
29
#include "libfakechroot.h"
 
30
 
 
31
 
 
32
wrapper_alias(openat64, int, (int dirfd, const char * pathname, int flags, ...))
 
33
{
 
34
    int mode = 0;
 
35
    char *fakechroot_path, fakechroot_buf[FAKECHROOT_PATH_MAX];
 
36
    debug("openat64(%d, \"%s\", %d, ...)", dirfd, pathname, flags);
 
37
    expand_chroot_path(pathname, fakechroot_path, fakechroot_buf);
 
38
 
 
39
    if (flags & O_CREAT) {
 
40
        va_list arg;
 
41
        va_start(arg, flags);
 
42
        mode = va_arg(arg, int);
 
43
        va_end(arg);
 
44
    }
 
45
 
 
46
    return nextcall(openat64)(dirfd, pathname, flags, mode);
 
47
}
 
48
 
 
49
#endif