@@ -93,6 +93,8 @@ zend_class_entry* phongo_exception_from_mongoc_domain(uint32_t /* mongoc_error_d
93
93
switch (code ) {
94
94
case 50 : /* ExceededTimeLimit */
95
95
return php_phongo_executiontimeoutexception_ce ;
96
+ case MONGOC_ERROR_STREAM_SOCKET :
97
+ return php_phongo_connectiontimeoutexception_ce ;
96
98
case 11000 : /* DuplicateKey */
97
99
return php_phongo_duplicatekeyexception_ce ;
98
100
case MONGOC_ERROR_CLIENT_AUTHENTICATE :
@@ -101,7 +103,6 @@ zend_class_entry* phongo_exception_from_mongoc_domain(uint32_t /* mongoc_error_d
101
103
case MONGOC_ERROR_STREAM_INVALID_TYPE :
102
104
case MONGOC_ERROR_STREAM_INVALID_STATE :
103
105
case MONGOC_ERROR_STREAM_NAME_RESOLUTION :
104
- case MONGOC_ERROR_STREAM_SOCKET :
105
106
case MONGOC_ERROR_STREAM_CONNECT :
106
107
case MONGOC_ERROR_STREAM_NOT_ESTABLISHED :
107
108
return php_phongo_connectionexception_ce ;
@@ -747,8 +748,6 @@ ssize_t phongo_stream_writev(mongoc_stream_t *stream, mongoc_iovec_t *iov, size_
747
748
php_phongo_stream_socket * base_stream = (php_phongo_stream_socket * )stream ;
748
749
TSRMLS_FETCH_FROM_CTX (base_stream -> tsrm_ls );
749
750
750
- php_phongo_set_timeout (base_stream , timeout_msec );
751
-
752
751
for (i = 0 ; i < iovcnt ; i ++ ) {
753
752
sent += php_stream_write (base_stream -> stream , iov [i ].iov_base , iov [i ].iov_len );
754
753
}
@@ -767,6 +766,8 @@ ssize_t phongo_stream_readv(mongoc_stream_t *stream, mongoc_iovec_t *iov, size_t
767
766
size_t cur = 0 ;
768
767
TSRMLS_FETCH_FROM_CTX (base_stream -> tsrm_ls );
769
768
769
+ php_phongo_set_timeout (base_stream , timeout_msec );
770
+
770
771
do {
771
772
read = php_stream_read (base_stream -> stream , iov [cur ].iov_base , iov [cur ].iov_len );
772
773
mongoc_log (MONGOC_LOG_LEVEL_DEBUG , MONGOC_LOG_DOMAIN , "Reading got: %ld wanted: %ld" , read , min_bytes );
@@ -1622,6 +1623,7 @@ PHP_MINIT_FUNCTION(phongo)
1622
1623
PHP_MINIT (WriteException )(INIT_FUNC_ARGS_PASSTHRU );
1623
1624
PHP_MINIT (DuplicateKeyException )(INIT_FUNC_ARGS_PASSTHRU );
1624
1625
PHP_MINIT (ExecutionTimeoutException )(INIT_FUNC_ARGS_PASSTHRU );
1626
+ PHP_MINIT (ConnectionTimeoutException )(INIT_FUNC_ARGS_PASSTHRU );
1625
1627
1626
1628
PHP_MINIT (Type )(INIT_FUNC_ARGS_PASSTHRU );
1627
1629
PHP_MINIT (Serializable )(INIT_FUNC_ARGS_PASSTHRU );
0 commit comments