Skip to content

Commit

Permalink
Make connect callback work
Browse files Browse the repository at this point in the history
  • Loading branch information
mgdm committed Sep 18, 2013
1 parent 77d2395 commit faacfcb
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions mosquitto.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ PHP_METHOD(Mosquitto_Client, connect)
int host_len, interface_len, retval;
long port = 1883;
long keepalive = 0;
zend_fcall_info connect_callback;
zend_fcall_info_cache connect_callback_cache;
zend_fcall_info connect_callback = empty_fcall_info;
zend_fcall_info_cache connect_callback_cache = empty_fcall_info_cache;

PHP_MOSQUITTO_ERROR_HANDLING();
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|llfs!",
Expand All @@ -64,14 +64,18 @@ PHP_METHOD(Mosquitto_Client, connect)

object = (mosquitto_client_object *) zend_object_store_get_object(getThis() TSRMLS_CC);

object->connect_callback = connect_callback;
object->connect_callback_cache = connect_callback_cache;
if (ZEND_FCI_INITIALIZED(connect_callback)) {
object->connect_callback = connect_callback;
object->connect_callback_cache = connect_callback_cache;
Z_ADDREF_P(connect_callback.function_name);

if (connect_callback.object_ptr != NULL) {
Z_ADDREF_P(connect_callback.object_ptr);
if (connect_callback.object_ptr != NULL) {
Z_ADDREF_P(connect_callback.object_ptr);
}

mosquitto_connect_callback_set(object->client, php_mosquitto_connect_callback);
}

mosquitto_connect_callback_set(object->client, php_mosquitto_connect_callback);

if (interface == NULL) {
retval = mosquitto_connect(object->client, host, port, keepalive);
Expand Down Expand Up @@ -238,7 +242,12 @@ static zend_object_value mosquitto_client_object_new() {
PHP_MOSQUITTO_API void php_mosquitto_connect_callback(struct mosquitto *mosq, void *obj, int rc)
{
mosquitto_client_object *object = (mosquitto_client_object *) obj;
zval *params[1], *retval_ptr = NULL;
zval *retval_ptr = NULL;
zval **params = ecalloc(1, sizeof (zval));

if (!ZEND_FCI_INITIALIZED(object->connect_callback)) {
return;
}

ALLOC_INIT_ZVAL(params[0]);
ZVAL_LONG(params[0], rc);
Expand Down

0 comments on commit faacfcb

Please sign in to comment.