Annotation of embedaddon/php/ext/standard/pageinfo.c, revision 1.1

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: Jim Winstead <jimw@php.net>                                  |
        !            16:    +----------------------------------------------------------------------+
        !            17: */
        !            18: 
        !            19: /* $Id: pageinfo.c 321634 2012-01-01 13:15:04Z felipe $ */
        !            20: 
        !            21: #include "php.h"
        !            22: #include "pageinfo.h"
        !            23: #include "SAPI.h"
        !            24: 
        !            25: #include <stdio.h>
        !            26: #include <stdlib.h>
        !            27: #if HAVE_PWD_H
        !            28: #ifdef PHP_WIN32
        !            29: #include "win32/pwd.h"
        !            30: #else
        !            31: #include <pwd.h>
        !            32: #endif
        !            33: #endif
        !            34: #if HAVE_GRP_H
        !            35: # ifdef PHP_WIN32
        !            36: #  include "win32/grp.h"
        !            37: # else
        !            38: #  include <grp.h>
        !            39: # endif
        !            40: #endif
        !            41: #ifdef PHP_WIN32
        !            42: #undef getgid
        !            43: #define getgroups(a, b) 0
        !            44: #define getgid() 1
        !            45: #define getuid() 1
        !            46: #endif
        !            47: #if HAVE_UNISTD_H
        !            48: #include <unistd.h>
        !            49: #endif
        !            50: #include <sys/stat.h>
        !            51: #include <sys/types.h>
        !            52: #ifdef PHP_WIN32
        !            53: #include <process.h>
        !            54: #endif
        !            55: 
        !            56: #include "ext/standard/basic_functions.h"
        !            57: 
        !            58: /* {{{ php_statpage
        !            59:  */
        !            60: PHPAPI void php_statpage(TSRMLS_D)
        !            61: {
        !            62:        struct stat *pstat;
        !            63: 
        !            64:        pstat = sapi_get_stat(TSRMLS_C);
        !            65: 
        !            66:        if (BG(page_uid)==-1 || BG(page_gid)==-1) {
        !            67:                if(pstat) {
        !            68:                        BG(page_uid)   = pstat->st_uid;
        !            69:                        BG(page_gid)   = pstat->st_gid;
        !            70:                        BG(page_inode) = pstat->st_ino;
        !            71:                        BG(page_mtime) = pstat->st_mtime;
        !            72:                } else { /* handler for situations where there is no source file, ex. php -r */
        !            73:                        BG(page_uid) = getuid();
        !            74:                        BG(page_gid) = getgid();
        !            75:                }
        !            76:        }
        !            77: }
        !            78: /* }}} */
        !            79: 
        !            80: /* {{{ php_getuid
        !            81:  */
        !            82: long php_getuid(void)
        !            83: {
        !            84:        TSRMLS_FETCH();
        !            85: 
        !            86:        php_statpage(TSRMLS_C);
        !            87:        return (BG(page_uid));
        !            88: }
        !            89: /* }}} */
        !            90: 
        !            91: long php_getgid(void)
        !            92: {
        !            93:        TSRMLS_FETCH();
        !            94: 
        !            95:        php_statpage(TSRMLS_C);
        !            96:        return (BG(page_gid));
        !            97: }
        !            98: 
        !            99: /* {{{ proto int getmyuid(void)
        !           100:    Get PHP script owner's UID */
        !           101: PHP_FUNCTION(getmyuid)
        !           102: {
        !           103:        long uid;
        !           104:        
        !           105:        uid = php_getuid();
        !           106:        if (uid < 0) {
        !           107:                RETURN_FALSE;
        !           108:        } else {
        !           109:                RETURN_LONG(uid);
        !           110:        }
        !           111: }
        !           112: /* }}} */
        !           113: 
        !           114: /* {{{ proto int getmygid(void)
        !           115:    Get PHP script owner's GID */
        !           116: PHP_FUNCTION(getmygid)
        !           117: {
        !           118:        long gid;
        !           119:        
        !           120:        gid = php_getgid();
        !           121:        if (gid < 0) {
        !           122:                RETURN_FALSE;
        !           123:        } else {
        !           124:                RETURN_LONG(gid);
        !           125:        }
        !           126: }
        !           127: /* }}} */
        !           128: 
        !           129: /* {{{ proto int getmypid(void)
        !           130:    Get current process ID */
        !           131: PHP_FUNCTION(getmypid)
        !           132: {
        !           133:        int pid;
        !           134:        
        !           135:        pid = getpid();
        !           136:        if (pid < 0) {
        !           137:                RETURN_FALSE;
        !           138:        } else {
        !           139:                RETURN_LONG((long) pid);
        !           140:        }
        !           141: }
        !           142: /* }}} */
        !           143: 
        !           144: /* {{{ proto int getmyinode(void)
        !           145:    Get the inode of the current script being parsed */
        !           146: PHP_FUNCTION(getmyinode)
        !           147: {
        !           148:        php_statpage(TSRMLS_C);
        !           149:        if (BG(page_inode) < 0) {
        !           150:                RETURN_FALSE;
        !           151:        } else {
        !           152:                RETURN_LONG(BG(page_inode));
        !           153:        }
        !           154: }
        !           155: /* }}} */
        !           156: 
        !           157: PHPAPI long php_getlastmod(TSRMLS_D)
        !           158: {
        !           159:        php_statpage(TSRMLS_C);
        !           160:        return BG(page_mtime);
        !           161: }
        !           162: 
        !           163: /* {{{ proto int getlastmod(void)
        !           164:    Get time of last page modification */
        !           165: PHP_FUNCTION(getlastmod)
        !           166: {
        !           167:        long lm = php_getlastmod(TSRMLS_C);
        !           168:        if (lm < 0) {
        !           169:                RETURN_FALSE;
        !           170:        } else {
        !           171:                RETURN_LONG(lm);
        !           172:        }
        !           173: }
        !           174: /* }}} */
        !           175: 
        !           176: /*
        !           177:  * Local variables:
        !           178:  * tab-width: 4
        !           179:  * c-basic-offset: 4
        !           180:  * End:
        !           181:  * vim600: sw=4 ts=4 fdm=marker
        !           182:  * vim<600: sw=4 ts=4
        !           183:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>