Pike v8.0 release 1738

Method Pike.Security.User()->valid_open()


Method valid_open

int(2bit)|string valid_open(string type, object current, string filename, string flags, int access)

Description

This callback gets called when a new file is to be opened (and the Creds object has BIT_CONDITIONAL_IO set).

Parameter type

The type of file operation requested. Can either be "read" or "write".

Parameter current

The current object, i.e. the Fd object the user is trying to open.

Parameter filename

The file name requested.

Parameter flags

The flag string passed to open, e.g. "cwt".

Parameter access

The access flags requested for the file, e.g. 0666.

Returns

The function can either return a string, which means that the user is allowed to open a file, but the returned file should be opened instead, or it can return an integer. The integers are intepreted as follows.

0

The user was not allowed to open the file. ERRNO will be set to EPERM and an exception is thrown.

1

Do nothing, i.e. valid_open has initilized the current object with an open file. This can (natuarally) only be returned if a current object was given, which is not always the case.

2

The user was allowed to open the file and the open code proceeds.

3

The user was not allowed to open the file and an exception is thrown.