Skip to content

Commit 3c73835

Browse files
committed
Merge pull request #18 from jbaldwin/master
Add cassandra_cluster_set_connect + request_timeout()
2 parents 6708680 + b27179b commit 3c73835

3 files changed

Lines changed: 45 additions & 3 deletions

File tree

ext/php_cassandra.c

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ const zend_function_entry cassandra_functions[] = {
143143
PHP_FE(cassandra_cluster_set_credentials, NULL)
144144
PHP_FE(cassandra_cluster_set_contact_points, NULL)
145145
PHP_FE(cassandra_cluster_set_port, NULL)
146+
PHP_FE(cassandra_cluster_set_connect_timeout, NULL)
147+
PHP_FE(cassandra_cluster_set_request_timeout, NULL)
146148
PHP_FE(cassandra_cluster_set_ssl, NULL)
147149
/* CassSsl */
148150
PHP_FE(cassandra_ssl_new, NULL)
@@ -678,7 +680,7 @@ PHP_FUNCTION(cassandra_cluster_set_port)
678680
long port;
679681
zval* cluster_resource;
680682

681-
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &port) == FAILURE) {
683+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &cluster_resource, &port) == FAILURE) {
682684
RETURN_FALSE;
683685
}
684686

@@ -689,6 +691,44 @@ PHP_FUNCTION(cassandra_cluster_set_port)
689691
CHECK_RESULT(rc);
690692
}
691693

694+
PHP_FUNCTION(cassandra_cluster_set_connect_timeout)
695+
{
696+
CassCluster* cluster;
697+
long timeout_ms;
698+
zval* cluster_resource;
699+
700+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &cluster_resource, &timeout_ms) == FAILURE) {
701+
RETURN_FALSE;
702+
}
703+
704+
ZEND_FETCH_RESOURCE(cluster, CassCluster*, &cluster_resource, -1,
705+
PHP_CASSANDRA_CLUSTER_RES_NAME, le_cassandra_cluster_res);
706+
707+
// This is void return.
708+
cass_cluster_set_connect_timeout(cluster, (unsigned int)timeout_ms);
709+
CassError rc = CASS_OK;
710+
CHECK_RESULT(rc);
711+
}
712+
713+
PHP_FUNCTION(cassandra_cluster_set_request_timeout)
714+
{
715+
CassCluster* cluster;
716+
long timeout_ms;
717+
zval* cluster_resource;
718+
719+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", &cluster_resource, &timeout_ms) == FAILURE) {
720+
RETURN_FALSE;
721+
}
722+
723+
ZEND_FETCH_RESOURCE(cluster, CassCluster*, &cluster_resource, -1,
724+
PHP_CASSANDRA_CLUSTER_RES_NAME, le_cassandra_cluster_res);
725+
726+
// This is a void return.
727+
cass_cluster_set_request_timeout(cluster, (unsigned int)timeout_ms);
728+
CassError rc = CASS_OK;
729+
CHECK_RESULT(rc);
730+
}
731+
692732
PHP_FUNCTION(cassandra_cluster_set_ssl)
693733
{
694734
CassCluster* cluster;

ext/php_cassandra.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ PHP_FUNCTION(cassandra_cluster_set_token_aware_routing);
127127
PHP_FUNCTION(cassandra_cluster_set_credentials);
128128
PHP_FUNCTION(cassandra_cluster_set_contact_points);
129129
PHP_FUNCTION(cassandra_cluster_set_port);
130+
PHP_FUNCTION(cassandra_cluster_set_connect_timeout);
131+
PHP_FUNCTION(cassandra_cluster_set_request_timeout);
130132
PHP_FUNCTION(cassandra_cluster_set_ssl);
131133

132134
/* CassSsl */

src/Cassandra/Cluster/Builder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,11 @@ public function build()
185185
}
186186

187187
if (!is_null($this->connectTimeout)) {
188-
cassandra_cluster_set_connect_timeout($cluster, $this->connectTimeout);
188+
cassandra_cluster_set_connect_timeout($cluster, ceil($this->connectTimeout * 1000));
189189
}
190190

191191
if (!is_null($this->requestTimeout)) {
192-
cassandra_cluster_set_request_timeout($cluster, $this->requestTimeout);
192+
cassandra_cluster_set_request_timeout($cluster, ceil($this->requestTimeout * 1000));
193193
}
194194

195195
if (!is_null($this->sslOptions)) {

0 commit comments

Comments
 (0)