Annotation of embedaddon/php/ext/standard/ftok.c, revision 1.1.1.2

1.1       misho       1: /* 
                      2:    +----------------------------------------------------------------------+
                      3:    | PHP Version 5                                                        |
                      4:    +----------------------------------------------------------------------+
                      5:    | Copyright (c) 1997-2012 The PHP Group                                |
                      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>