Annotation of embedaddon/php/ext/standard/ftok.c, revision 1.1.1.4
1.1 misho 1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
1.1.1.4 ! misho 5: | Copyright (c) 1997-2014 The PHP Group |
1.1 misho 6: +----------------------------------------------------------------------+
7: | This source file is subject to version 3.01 of the PHP license, |
8: | that is bundled with this package in the file LICENSE, and is |
9: | available through the world-wide-web at the following url: |
10: | http://www.php.net/license/3_01.txt |
11: | If you did not receive a copy of the PHP license and are unable to |
12: | obtain it through the world-wide-web, please send a note to |
13: | license@php.net so we can mail you a copy immediately. |
14: +----------------------------------------------------------------------+
15: | Author: Andrew Sitnikov <sitnikov@infonet.ee> |
16: +----------------------------------------------------------------------+
17: */
18:
1.1.1.2 misho 19: /* $Id$ */
1.1 misho 20:
21: #include "php.h"
22:
23: #include <sys/types.h>
24:
25: #ifdef HAVE_SYS_IPC_H
26: #include <sys/ipc.h>
27: #endif
28:
29: #if HAVE_FTOK
30: /* {{{ proto int ftok(string pathname, string proj)
31: Convert a pathname and a project identifier to a System V IPC key */
32: PHP_FUNCTION(ftok)
33: {
34: char *pathname, *proj;
35: int pathname_len, proj_len;
36: key_t k;
37:
1.1.1.2 misho 38: if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ps", &pathname, &pathname_len, &proj, &proj_len) == FAILURE) {
1.1 misho 39: return;
40: }
41:
42: if (pathname_len == 0){
43: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Pathname is invalid");
44: RETURN_LONG(-1);
45: }
46:
47: if (proj_len != 1){
48: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Project identifier is invalid");
49: RETURN_LONG(-1);
1.1.1.2 misho 50: }
1.1 misho 51:
1.1.1.2 misho 52: if (php_check_open_basedir(pathname TSRMLS_CC)) {
1.1 misho 53: RETURN_LONG(-1);
54: }
55:
56: k = ftok(pathname, proj[0]);
57: if (k == -1) {
58: php_error_docref(NULL TSRMLS_CC, E_WARNING, "ftok() failed - %s", strerror(errno));
59: }
60:
61: RETURN_LONG(k);
62: }
63: /* }}} */
64: #endif
65:
66: /*
67: * Local variables:
68: * tab-width: 4
69: * c-basic-offset: 4
70: * End:
71: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>