johannes Tue Nov 20 21:24:35 2007 UTC
Added files:
/php-src/ext/sysvmsg/tests 003.phpt
Modified files:
/php-src/ext/sysvmsg php_sysvmsg.h sysvmsg.c
Log:
Add msg_queue_exists() function (Benjamin Schulz)
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvmsg/php_sysvmsg.h?r1=1.9&r2=1.10&diff_format=u
Index: php-src/ext/sysvmsg/php_sysvmsg.h
diff -u php-src/ext/sysvmsg/php_sysvmsg.h:1.9
php-src/ext/sysvmsg/php_sysvmsg.h:1.10
--- php-src/ext/sysvmsg/php_sysvmsg.h:1.9 Mon Jan 8 22:35:25 2007
+++ php-src/ext/sysvmsg/php_sysvmsg.h Tue Nov 20 21:24:34 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_sysvmsg.h,v 1.9 2007/01/08 22:35:25 nlopess Exp $ */
+/* $Id: php_sysvmsg.h,v 1.10 2007/11/20 21:24:34 johannes Exp $ */
#ifndef PHP_SYSVMSG_H
#define PHP_SYSVMSG_H
@@ -48,6 +48,7 @@
PHP_FUNCTION(msg_set_queue);
PHP_FUNCTION(msg_send);
PHP_FUNCTION(msg_receive);
+PHP_FUNCTION(msg_queue_exists);
typedef struct {
key_t key;
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvmsg/sysvmsg.c?r1=1.32&r2=1.33&diff_format=u
Index: php-src/ext/sysvmsg/sysvmsg.c
diff -u php-src/ext/sysvmsg/sysvmsg.c:1.32 php-src/ext/sysvmsg/sysvmsg.c:1.33
--- php-src/ext/sysvmsg/sysvmsg.c:1.32 Thu Sep 27 18:28:42 2007
+++ php-src/ext/sysvmsg/sysvmsg.c Tue Nov 20 21:24:34 2007
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sysvmsg.c,v 1.32 2007/09/27 18:28:42 dmitry Exp $ */
+/* $Id: sysvmsg.c,v 1.33 2007/11/20 21:24:34 johannes Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -73,6 +73,7 @@
PHP_FE(msg_remove_queue, NULL)
PHP_FE(msg_stat_queue, NULL)
PHP_FE(msg_set_queue, NULL)
+ PHP_FE(msg_queue_exists, NULL)
{NULL, NULL, NULL} /* Must be the last line in sysvmsg_functions[]
*/
};
/* }}} */
@@ -136,7 +137,7 @@
{
php_info_print_table_start();
php_info_print_table_row(2, "sysvmsg support", "enabled");
- php_info_print_table_row(2, "Revision", "$Revision: 1.32 $");
+ php_info_print_table_row(2, "Revision", "$Revision: 1.33 $");
php_info_print_table_end();
}
/* }}} */
@@ -217,6 +218,24 @@
}
/* }}} */
+/* {{{ proto bool msg_queue_exists(int key)
+ Check wether a message queue exists */
+PHP_FUNCTION(msg_queue_exists)
+{
+ long key;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &key) ==
FAILURE) {
+ return;
+ }
+
+ if (msgget(key, 0) < 0) {
+ RETURN_FALSE;
+ }
+
+ RETURN_TRUE;
+}
+/* }}} */
+
/* {{{ proto resource msg_get_queue(int key [, int perms]) U
Attach to a message queue */
PHP_FUNCTION(msg_get_queue)
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvmsg/tests/003.phpt?view=markup&rev=1.1
Index: php-src/ext/sysvmsg/tests/003.phpt
+++ php-src/ext/sysvmsg/tests/003.phpt
--TEST--
msg_queue_exists()
--SKIPIF--
<?php if (!extension_loaded("sysvmsg")) die("skip sysvmsg extension is not
available")?>
--FILE--
<?php
$id = ftok(__FILE__, 'r');
msg_remove_queue(msg_get_queue($id, 0600));
var_dump(msg_queue_exists($id));
$res = msg_get_queue($id, 0600);
var_dump($res);
var_dump(msg_queue_exists($id));
var_dump(msg_remove_queue($res));
var_dump(msg_queue_exists($id));
echo "Done\n";
?>
--EXPECTF--
bool(false)
resource(%d) of type (sysvmsg queue)
bool(true)
bool(true)
bool(false)
Done
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php