]> granicus.if.org Git - php/commitdiff
Added arginfo stub for posix extension
authorStephen Reay <stephen.reay@me.com>
Mon, 12 Aug 2019 10:24:35 +0000 (12:24 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Wed, 14 Aug 2019 12:40:37 +0000 (14:40 +0200)
ext/posix/posix.c
ext/posix/posix.stub.php [new file with mode: 0644]
ext/posix/posix_arginfo.h [new file with mode: 0644]

index 17956d0a79e3bd489142f556cdce5c18d129a040..e44bd3808b919795a237ee892c0cd6364b84e4a7 100644 (file)
@@ -25,7 +25,7 @@
 #include "ext/standard/info.h"
 #include "ext/standard/php_string.h"
 #include "php_posix.h"
-
+#include "posix_arginfo.h"
 
 #if HAVE_POSIX
 
 ZEND_DECLARE_MODULE_GLOBALS(posix)
 static PHP_MINFO_FUNCTION(posix);
 
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_kill, 0, 0, 2)
-       ZEND_ARG_INFO(0, pid)
-       ZEND_ARG_INFO(0, sig)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getpid, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getppid, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getuid, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_setuid, 0, 0, 1)
-       ZEND_ARG_INFO(0, uid)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_geteuid, 0)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_SETEUID
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_seteuid, 0, 0, 1)
-       ZEND_ARG_INFO(0, uid)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getgid, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_setgid, 0, 0, 1)
-       ZEND_ARG_INFO(0, gid)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getegid, 0)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_SETEGID
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_setegid, 0, 0, 1)
-       ZEND_ARG_INFO(0, gid)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_GETGROUPS
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getgroups, 0)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_GETLOGIN
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getlogin, 0)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getpgrp, 0)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_SETSID
-ZEND_BEGIN_ARG_INFO(arginfo_posix_setsid, 0)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_setpgid, 0, 0, 2)
-       ZEND_ARG_INFO(0, pid)
-       ZEND_ARG_INFO(0, pgid)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_GETPGID
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getpgid, 0, 0, 1)
-       ZEND_ARG_INFO(0, pid)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_GETSID
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getsid, 0, 0, 1)
-       ZEND_ARG_INFO(0, pid)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_uname, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_times, 0)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_CTERMID
-ZEND_BEGIN_ARG_INFO(arginfo_posix_ctermid, 0)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_ttyname, 0, 0, 1)
-       ZEND_ARG_INFO(0, fd)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_isatty, 0, 0, 1)
-       ZEND_ARG_INFO(0, fd)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getcwd, 0)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_MKFIFO
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_mkfifo, 0, 0, 2)
-       ZEND_ARG_INFO(0, pathname)
-       ZEND_ARG_INFO(0, mode)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_MKNOD
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_mknod, 0, 0, 2)
-       ZEND_ARG_INFO(0, pathname)
-       ZEND_ARG_INFO(0, mode)
-       ZEND_ARG_INFO(0, major)
-       ZEND_ARG_INFO(0, minor)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_access, 0, 0, 1)
-       ZEND_ARG_INFO(0, file)
-       ZEND_ARG_INFO(0, mode)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getgrnam, 0, 0, 1)
-       ZEND_ARG_INFO(0, name)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getgrgid, 0, 0, 1)
-       ZEND_ARG_INFO(0, gid)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getpwnam, 0, 0, 1)
-       ZEND_ARG_INFO(0, username)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getpwuid, 0, 0, 1)
-       ZEND_ARG_INFO(0, uid)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_GETRLIMIT
-ZEND_BEGIN_ARG_INFO(arginfo_posix_getrlimit, 0)
-ZEND_END_ARG_INFO()
-#endif
-
-#ifdef HAVE_SETRLIMIT
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_setrlimit, 0, 0, 3)
-       ZEND_ARG_INFO(0, resource)
-       ZEND_ARG_INFO(0, softlimit)
-       ZEND_ARG_INFO(0, hardlimit)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO(arginfo_posix_get_last_error, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_strerror, 0, 0, 1)
-       ZEND_ARG_INFO(0, errno)
-ZEND_END_ARG_INFO()
-
-#ifdef HAVE_INITGROUPS
-ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_initgroups, 0, 0, 2)
-       ZEND_ARG_INFO(0, name)
-       ZEND_ARG_INFO(0, base_group_id)
-ZEND_END_ARG_INFO()
-#endif
-/* }}} */
-
 /* {{{ posix_functions[]
  */
 static const zend_function_entry posix_functions[] = {
@@ -302,7 +136,7 @@ static const zend_function_entry posix_functions[] = {
 #endif
 
        PHP_FE(posix_get_last_error,                                    arginfo_posix_get_last_error)
-       PHP_FALIAS(posix_errno, posix_get_last_error,   arginfo_posix_get_last_error)
+       PHP_FALIAS(posix_errno, posix_get_last_error,   arginfo_posix_errno)
        PHP_FE(posix_strerror,                                                  arginfo_posix_strerror)
 #ifdef HAVE_INITGROUPS
        PHP_FE(posix_initgroups,        arginfo_posix_initgroups)
diff --git a/ext/posix/posix.stub.php b/ext/posix/posix.stub.php
new file mode 100644 (file)
index 0000000..625a087
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+
+function posix_kill(int $pid, int $sig): bool {}
+
+function posix_getpid(): int {}
+
+function posix_getppid(): int {}
+
+function posix_getuid(): int {}
+
+function posix_setuid(int $uid): bool {}
+
+function posix_geteuid(): int {}
+
+#ifdef HAVE_SETEUID
+function posix_seteuid(int $uid): bool {}
+#endif
+
+function posix_getgid(): int {}
+
+function posix_setgid(int $gid): bool {}
+
+function posix_getegid(): int {}
+
+#ifdef HAVE_SETEGID
+function posix_setegid(int $gid): bool {}
+#endif
+
+#ifdef HAVE_GETGROUPS
+/** @return array|false */
+function posix_getgroups() {}
+#endif
+
+#ifdef HAVE_GETLOGIN
+/** @return string|false */
+function posix_getlogin() {}
+#endif
+
+function posix_getpgrp(): int {}
+
+#ifdef HAVE_SETSID
+function posix_setsid(): int {}
+#endif
+
+function posix_setpgid(int $pid, int $pgid): bool {}
+
+#ifdef HAVE_GETPGID
+/** @return int|false */
+function posix_getpgid(int $pid) {}
+#endif
+
+#ifdef HAVE_GETSID
+/** @return int|false */
+function posix_getsid(int $pid) {}
+#endif
+
+/** @return array|false */
+function posix_uname() {}
+
+/** @return array|false */
+function posix_times() {}
+
+
+#ifdef HAVE_CTERMID
+/** @return string|false */
+function posix_ctermid() {}
+#endif
+
+/**
+ * @return string|false
+ */
+function posix_ttyname($fd) {}
+
+function posix_isatty($fd): bool {}
+
+/** @return string|false */
+function posix_getcwd() {}
+
+#ifdef HAVE_MKFIFO
+function posix_mkfifo(string $pathname, int $mode): bool {}
+#endif
+
+#ifdef HAVE_MKNOD
+function posix_mknod(string $pathname, int $mode, int $major = 0, int $minor = 0): bool {}
+#endif
+
+function posix_access(string $file, int $mode = 0): bool {}
+
+/** @return array|false */
+function posix_getgrnam(string $name) {}
+
+/** @return array|false */
+function posix_getgrgid(int $gid) {}
+
+/** @return array|false */
+function posix_getpwnam(string $username) {}
+
+/** @return array|false */
+function posix_getpwuid(int $uid) {}
+
+#ifdef HAVE_GETRLIMIT
+/** @return array|false */
+function posix_getrlimit() {}
+#endif
+
+#ifdef HAVE_SETRLIMIT
+function posix_setrlimit(int $resource, int $softlimit, int $hardlimit): bool {}
+#endif
+
+function posix_get_last_error(): int {}
+
+function posix_errno(): int {}
+
+function posix_strerror(int $errno): string {}
+
+#ifdef HAVE_INITGROUPS
+function posix_initgroups(string $name, int $base_group_id): bool {}
+#endif
diff --git a/ext/posix/posix_arginfo.h b/ext/posix/posix_arginfo.h
new file mode 100644 (file)
index 0000000..91042fb
--- /dev/null
@@ -0,0 +1,158 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_kill, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, pid, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, sig, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_getpid, 0, 0, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_posix_getppid arginfo_posix_getpid
+
+#define arginfo_posix_getuid arginfo_posix_getpid
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_setuid, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, uid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_posix_geteuid arginfo_posix_getpid
+
+#if defined(HAVE_SETEUID)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_seteuid, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, uid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#define arginfo_posix_getgid arginfo_posix_getpid
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_setgid, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, gid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_posix_getegid arginfo_posix_getpid
+
+#if defined(HAVE_SETEGID)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_setegid, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, gid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_GETGROUPS)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getgroups, 0, 0, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_GETLOGIN)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getlogin, 0, 0, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#define arginfo_posix_getpgrp arginfo_posix_getpid
+
+#if defined(HAVE_SETSID)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_setsid, 0, 0, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_setpgid, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, pid, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, pgid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_GETPGID)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getpgid, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, pid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_GETSID)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getsid, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, pid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_uname, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_posix_times arginfo_posix_uname
+
+#if defined(HAVE_CTERMID)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_ctermid, 0, 0, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_ttyname, 0, 0, 1)
+       ZEND_ARG_INFO(0, fd)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_isatty, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_INFO(0, fd)
+ZEND_END_ARG_INFO()
+
+#define arginfo_posix_getcwd arginfo_posix_uname
+
+#if defined(HAVE_MKFIFO)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_mkfifo, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, pathname, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_MKNOD)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_mknod, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, pathname, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, major, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, minor, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_access, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, file, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getgrnam, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getgrgid, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, gid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getpwnam, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, username, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getpwuid, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, uid, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_GETRLIMIT)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_posix_getrlimit, 0, 0, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if defined(HAVE_SETRLIMIT)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_setrlimit, 0, 3, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, resource, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, softlimit, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, hardlimit, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#define arginfo_posix_get_last_error arginfo_posix_getpid
+
+#define arginfo_posix_errno arginfo_posix_getpid
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_strerror, 0, 1, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, errno, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if defined(HAVE_INITGROUPS)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_initgroups, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, base_group_id, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif