[prev in list] [next in list] [prev in thread] [next in thread]
List: pecl-cvs
Subject: [PECL-CVS] cvs: pecl /ssh2 ssh2.c
From: "Sara Golemon" <pollita () php ! net>
Date: 2004-12-27 22:33:18
Message-ID: cvspollita1104186798 () cvsserver
[Download RAW message or body]
pollita Mon Dec 27 17:33:18 2004 EDT
Modified files:
/pecl/ssh2 ssh2.c
Log:
Implement callbacks for debug/ignore -- plus minor fixes
http://cvs.php.net/diff.php/pecl/ssh2/ssh2.c?r1=1.1&r2=1.2&ty=u
Index: pecl/ssh2/ssh2.c
diff -u pecl/ssh2/ssh2.c:1.1 pecl/ssh2/ssh2.c:1.2
--- pecl/ssh2/ssh2.c:1.1 Fri Dec 24 18:40:09 2004
+++ pecl/ssh2/ssh2.c Mon Dec 27 17:33:17 2004
@@ -15,7 +15,7 @@
| Author: Sara Golemon <pollita@php.net> |
+----------------------------------------------------------------------+
- $Id: ssh2.c,v 1.1 2004/12/24 23:40:09 pollita Exp $
+ $Id: ssh2.c,v 1.2 2004/12/27 22:33:17 pollita Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -82,7 +82,37 @@
*/
LIBSSH2_DEBUG_FUNC(php_ssh2_debug_cb)
{
+ php_ssh2_session_data *data;
+ zval *zdisplay, *zmessage, *zlanguage;
+ zval **args[3];
+ SSH2_TSRMLS_FETCH(*abstract);
+ if (!abstract || !*abstract) {
+ return;
+ }
+ data = (php_ssh2_session_data*)*abstract;
+ if (!data->debug_cb) {
+ return;
+ }
+
+ MAKE_STD_ZVAL(zmessage);
+ ZVAL_STRINGL(zmessage, (char*)message, message_len, 1);
+ args[0] = &zmessage;
+
+ MAKE_STD_ZVAL(zlanguage);
+ ZVAL_STRINGL(zlanguage, (char*)language, language_len, 1);
+ args[1] = &zlanguage;
+
+ MAKE_STD_ZVAL(zdisplay);
+ ZVAL_LONG(zdisplay, always_display);
+ args[2] = &zdisplay;
+
+ if (FAILURE == call_user_function_ex(NULL, NULL, data->disconnect_cb, NULL, 3, \
args, 0, NULL TSRMLS_CC)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failure \
calling disconnect callback"); + }
+ zval_ptr_dtor(&zdisplay);
+ zval_ptr_dtor(&zmessage);
+ zval_ptr_dtor(&zlanguage);
}
/* }}} */
@@ -91,12 +121,35 @@
*/
LIBSSH2_IGNORE_FUNC(php_ssh2_ignore_cb)
{
+ php_ssh2_session_data *data;
+ zval *zretval = NULL, *zmessage;
+ zval **args[1];
+ SSH2_TSRMLS_FETCH(*abstract);
+
+ if (!abstract || !*abstract) {
+ return;
+ }
+ data = (php_ssh2_session_data*)*abstract;
+ if (!data->ignore_cb) {
+ return;
+ }
+ MAKE_STD_ZVAL(zmessage);
+ ZVAL_STRINGL(zmessage, (char*)message, message_len, 1);
+ args[0] = &zmessage;
+
+ if (FAILURE == call_user_function_ex(NULL, NULL, data->ignore_cb, &zretval, 1, \
args, 0, NULL TSRMLS_CC)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failure \
calling ignore callback"); + }
+ zval_ptr_dtor(&zmessage);
+ if (zretval) {
+ zval_ptr_dtor(&zretval);
+ }
}
/* }}} */
/* {{{ php_ssh2_macerror_cb
- * Called when a MAC error occurs, offers the change to ignore
+ * Called when a MAC error occurs, offers the chance to ignore
* WHY ARE YOU IGNORING MAC ERRORS??????
*/
LIBSSH2_MACERROR_FUNC(php_ssh2_macerror_cb)
@@ -120,7 +173,7 @@
args[0] = &zpacket;
if (FAILURE == call_user_function_ex(NULL, NULL, data->macerror_cb, &zretval, 1, \
args, 0, NULL TSRMLS_CC)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failure calling disconnect \
callback"); + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failure calling macerror \
callback"); } else {
retval = zval_is_true(zretval) ? 0 : -1;
}
@@ -586,7 +639,7 @@
static void php_ssh2_session_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
{
LIBSSH2_SESSION *session = (LIBSSH2_SESSION*)rsrc->ptr;
- php_ssh2_session_data **data = libssh2_session_abstract(session);
+ php_ssh2_session_data **data = \
(php_ssh2_session_data**)libssh2_session_abstract(session);
if (*data) {
if ((*data)->ignore_cb) {
--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic