Skip to content

Commit 0d83f46

Browse files
committed
Merge branch 'master' of github.com:swoole/swoole-src
2 parents 3c5d83c + becb850 commit 0d83f46

File tree

8 files changed

+33
-24
lines changed

8 files changed

+33
-24
lines changed

ext-src/php_swoole.cc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -293,15 +293,15 @@ void php_swoole_set_global_option(HashTable *vht) {
293293
Socket::default_read_timeout = timeout_format(ztmp);
294294
}
295295
if (php_swoole_array_get_value(vht, "socket_buffer_size", ztmp)) {
296-
Socket::default_buffer_size = zval_get_long(ztmp);
296+
Socket::default_buffer_size = php_swoole_parse_to_size(ztmp);
297297
}
298298
if (php_swoole_array_get_value(vht, "socket_timeout", ztmp)) {
299299
Socket::default_read_timeout = Socket::default_write_timeout = timeout_format(ztmp);
300300
}
301301
// [HTTP2]
302302
// ======================================================================
303303
if (php_swoole_array_get_value(vht, "http2_header_table_size", ztmp)) {
304-
swoole::http2::put_default_setting(SW_HTTP2_SETTING_HEADER_TABLE_SIZE, zval_get_long(ztmp));
304+
swoole::http2::put_default_setting(SW_HTTP2_SETTING_HEADER_TABLE_SIZE, php_swoole_parse_to_size(ztmp));
305305
}
306306
if (php_swoole_array_get_value(vht, "http2_enable_push", ztmp)) {
307307
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_ENABLE_PUSH, zval_get_long(ztmp));
@@ -310,13 +310,13 @@ void php_swoole_set_global_option(HashTable *vht) {
310310
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, zval_get_long(ztmp));
311311
}
312312
if (php_swoole_array_get_value(vht, "http2_init_window_size", ztmp)) {
313-
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_INIT_WINDOW_SIZE, zval_get_long(ztmp));
313+
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_INIT_WINDOW_SIZE, php_swoole_parse_to_size(ztmp));
314314
}
315315
if (php_swoole_array_get_value(vht, "http2_max_frame_size", ztmp)) {
316-
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_MAX_FRAME_SIZE, zval_get_long(ztmp));
316+
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_MAX_FRAME_SIZE, php_swoole_parse_to_size(ztmp));
317317
}
318318
if (php_swoole_array_get_value(vht, "http2_max_header_list_size", ztmp)) {
319-
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE, zval_get_long(ztmp));
319+
swoole::http2::put_default_setting(SW_HTTP2_SETTINGS_MAX_HEADER_LIST_SIZE, php_swoole_parse_to_size(ztmp));
320320
}
321321
}
322322

@@ -332,6 +332,14 @@ SW_API bool php_swoole_is_enable_coroutine() {
332332
}
333333
}
334334

335+
SW_API zend_long php_swoole_parse_to_size(zval *zv) {
336+
if (ZVAL_IS_STRING(zv)) {
337+
return zend_atol(Z_STRVAL_P(zv), Z_STRLEN_P(zv));
338+
} else {
339+
return zval_get_long(zv);
340+
}
341+
}
342+
335343
static void fatal_error(int code, const char *format, ...) {
336344
va_list args;
337345
va_start(args, format);

ext-src/php_swoole_cxx.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ static inline bool php_swoole_is_fatal_error() {
135135
}
136136

137137
ssize_t php_swoole_length_func(const swoole::Protocol *, swoole::network::Socket *, swoole::PacketLength *);
138+
SW_API zend_long php_swoole_parse_to_size(zval *zv);
138139

139140
#ifdef SW_HAVE_ZLIB
140141
#define php_swoole_websocket_frame_pack php_swoole_websocket_frame_pack_ex

ext-src/swoole_client.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ bool php_swoole_client_check_setting(Client *cli, zval *zset) {
386386
* package max length
387387
*/
388388
if (php_swoole_array_get_value(vht, "package_max_length", ztmp)) {
389-
zend_long v = zval_get_long(ztmp);
389+
zend_long v = php_swoole_parse_to_size(ztmp);
390390
cli->protocol.package_max_length = SW_MAX(0, SW_MIN(v, UINT32_MAX));
391391
} else {
392392
cli->protocol.package_max_length = SW_INPUT_BUFFER_SIZE;
@@ -395,18 +395,18 @@ bool php_swoole_client_check_setting(Client *cli, zval *zset) {
395395
* socket send/recv buffer size
396396
*/
397397
if (php_swoole_array_get_value(vht, "socket_buffer_size", ztmp)) {
398-
zend_long v = zval_get_long(ztmp);
398+
zend_long v = php_swoole_parse_to_size(ztmp);
399399
value = SW_MAX(1, SW_MIN(v, INT_MAX));
400400
cli->socket->set_buffer_size(value);
401401
cli->socket->buffer_size = value;
402402
}
403403
if (php_swoole_array_get_value(vht, "buffer_high_watermark", ztmp)) {
404-
zend_long v = zval_get_long(ztmp);
404+
zend_long v = php_swoole_parse_to_size(ztmp);
405405
value = SW_MAX(0, SW_MIN(v, UINT32_MAX));
406406
cli->buffer_high_watermark = value;
407407
}
408408
if (php_swoole_array_get_value(vht, "buffer_low_watermark", ztmp)) {
409-
zend_long v = zval_get_long(ztmp);
409+
zend_long v = php_swoole_parse_to_size(ztmp);
410410
value = SW_MAX(0, SW_MIN(v, UINT32_MAX));
411411
cli->buffer_low_watermark = value;
412412
}

ext-src/swoole_coroutine_scheduler.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ void php_swoole_set_coroutine_option(zend_array *vht) {
154154
PHPCoroutine::enable_preemptive_scheduler(zval_is_true(ztmp));
155155
}
156156
if (php_swoole_array_get_value(vht, "c_stack_size", ztmp) || php_swoole_array_get_value(vht, "stack_size", ztmp)) {
157-
Coroutine::set_stack_size(zval_get_long(ztmp));
157+
Coroutine::set_stack_size(php_swoole_parse_to_size(ztmp));
158158
}
159159
if (php_swoole_array_get_value(vht, "name_resolver", ztmp)) {
160160
if (!ZVAL_IS_ARRAY(ztmp)) {

ext-src/swoole_process_pool.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ static PHP_METHOD(swoole_process_pool, set) {
313313
pp->enable_message_bus = zval_is_true(ztmp);
314314
}
315315
if (php_swoole_array_get_value(vht, "max_package_size", ztmp)) {
316-
pool->set_max_packet_size(zval_get_long(ztmp));
316+
pool->set_max_packet_size(php_swoole_parse_to_size(ztmp));
317317
}
318318
}
319319

ext-src/swoole_server.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1986,7 +1986,7 @@ static PHP_METHOD(swoole_server, set) {
19861986
serv->max_wait_time = SW_MAX(0, SW_MIN(v, UINT32_MAX));
19871987
}
19881988
if (php_swoole_array_get_value(vht, "max_queued_bytes", ztmp)) {
1989-
zend_long v = zval_get_long(ztmp);
1989+
zend_long v = php_swoole_parse_to_size(ztmp);
19901990
serv->max_queued_bytes = SW_MAX(0, SW_MIN(v, UINT32_MAX));
19911991
}
19921992
if (php_swoole_array_get_value(vht, "max_concurrency", ztmp)) {
@@ -2218,7 +2218,7 @@ static PHP_METHOD(swoole_server, set) {
22182218
}
22192219
if (php_swoole_array_get_value(vht, "http_compression_min_length", ztmp) ||
22202220
php_swoole_array_get_value(vht, "compression_min_length", ztmp)) {
2221-
serv->compression_min_length = zval_get_long(ztmp);
2221+
serv->compression_min_length = php_swoole_parse_to_size(ztmp);
22222222
}
22232223
#endif
22242224

@@ -2238,7 +2238,7 @@ static PHP_METHOD(swoole_server, set) {
22382238
serv->upload_tmp_dir = str_v.to_std_string();
22392239
}
22402240
if (php_swoole_array_get_value(vht, "upload_max_filesize", ztmp)) {
2241-
serv->upload_max_filesize = zval_get_long(ztmp);
2241+
serv->upload_max_filesize = php_swoole_parse_to_size(ztmp);
22422242
}
22432243
/**
22442244
* http static file handler
@@ -2308,15 +2308,15 @@ static PHP_METHOD(swoole_server, set) {
23082308
*/
23092309
if (php_swoole_array_get_value(vht, "input_buffer_size", ztmp) ||
23102310
php_swoole_array_get_value(vht, "buffer_input_size", ztmp)) {
2311-
zend_long v = zval_get_long(ztmp);
2311+
zend_long v = php_swoole_parse_to_size(ztmp);
23122312
serv->input_buffer_size = SW_MAX(0, SW_MIN(v, UINT32_MAX));
23132313
}
23142314
/**
23152315
* buffer output size
23162316
*/
23172317
if (php_swoole_array_get_value(vht, "output_buffer_size", ztmp) ||
23182318
php_swoole_array_get_value(vht, "buffer_output_size", ztmp)) {
2319-
zend_long v = zval_get_long(ztmp);
2319+
zend_long v = php_swoole_parse_to_size(ztmp);
23202320
serv->output_buffer_size = SW_MAX(0, SW_MIN(v, UINT32_MAX));
23212321
}
23222322
// message queue key

ext-src/swoole_server_port.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ static PHP_METHOD(swoole_server_port, set) {
271271
port->backlog = SW_MAX(0, SW_MIN(v, UINT16_MAX));
272272
}
273273
if (php_swoole_array_get_value(vht, "socket_buffer_size", ztmp)) {
274-
zend_long v = zval_get_long(ztmp);
274+
zend_long v = php_swoole_parse_to_size(ztmp);
275275
port->socket_buffer_size = SW_MAX(INT_MIN, SW_MIN(v, INT_MAX));
276276
if (port->socket_buffer_size <= 0) {
277277
port->socket_buffer_size = INT_MAX;
@@ -281,7 +281,7 @@ static PHP_METHOD(swoole_server_port, set) {
281281
* !!! Don't set this option, for tests only.
282282
*/
283283
if (php_swoole_array_get_value(vht, "kernel_socket_recv_buffer_size", ztmp)) {
284-
zend_long v = zval_get_long(ztmp);
284+
zend_long v = php_swoole_parse_to_size(ztmp);
285285
port->kernel_socket_recv_buffer_size = SW_MAX(INT_MIN, SW_MIN(v, INT_MAX));
286286
if (port->kernel_socket_recv_buffer_size <= 0) {
287287
port->kernel_socket_recv_buffer_size = INT_MAX;
@@ -291,7 +291,7 @@ static PHP_METHOD(swoole_server_port, set) {
291291
* !!! Don't set this option, for tests only.
292292
*/
293293
if (php_swoole_array_get_value(vht, "kernel_socket_send_buffer_size", ztmp)) {
294-
zend_long v = zval_get_long(ztmp);
294+
zend_long v = php_swoole_parse_to_size(ztmp);
295295
port->kernel_socket_send_buffer_size = SW_MAX(INT_MIN, SW_MIN(v, INT_MAX));
296296
if (port->kernel_socket_send_buffer_size <= 0) {
297297
port->kernel_socket_send_buffer_size = INT_MAX;
@@ -303,11 +303,11 @@ static PHP_METHOD(swoole_server_port, set) {
303303
port->heartbeat_idle_time = SW_MAX(0, SW_MIN(v, UINT16_MAX));
304304
}
305305
if (php_swoole_array_get_value(vht, "buffer_high_watermark", ztmp)) {
306-
zend_long v = zval_get_long(ztmp);
306+
zend_long v = php_swoole_parse_to_size(ztmp);
307307
port->buffer_high_watermark = SW_MAX(0, SW_MIN(v, UINT32_MAX));
308308
}
309309
if (php_swoole_array_get_value(vht, "buffer_low_watermark", ztmp)) {
310-
zend_long v = zval_get_long(ztmp);
310+
zend_long v = php_swoole_parse_to_size(ztmp);
311311
port->buffer_low_watermark = SW_MAX(0, SW_MIN(v, UINT32_MAX));
312312
}
313313
// server: tcp_nodelay
@@ -487,7 +487,7 @@ static PHP_METHOD(swoole_server_port, set) {
487487
* package max length
488488
*/
489489
if (php_swoole_array_get_value(vht, "package_max_length", ztmp)) {
490-
zend_long v = zval_get_long(ztmp);
490+
zend_long v = php_swoole_parse_to_size(ztmp);
491491
port->protocol.package_max_length = SW_MAX(0, SW_MIN(v, UINT32_MAX));
492492
}
493493

ext-src/swoole_socket_coro.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ SW_API bool php_swoole_socket_set_protocol(Socket *sock, zval *zset) {
991991
* package max length
992992
*/
993993
if (php_swoole_array_get_value(vht, "package_max_length", ztmp)) {
994-
zend_long v = zval_get_long(ztmp);
994+
zend_long v = php_swoole_parse_to_size(ztmp);
995995
sock->protocol.package_max_length = SW_MAX(0, SW_MIN(v, UINT32_MAX));
996996
} else {
997997
sock->protocol.package_max_length = SW_INPUT_BUFFER_SIZE;
@@ -1037,7 +1037,7 @@ SW_API bool php_swoole_socket_set(Socket *cli, zval *zset) {
10371037
* socket send/recv buffer size
10381038
*/
10391039
if (php_swoole_array_get_value(vht, "socket_buffer_size", ztmp)) {
1040-
zend_long size = zval_get_long(ztmp);
1040+
zend_long size = php_swoole_parse_to_size(ztmp);
10411041
if (size <= 0) {
10421042
php_swoole_fatal_error(E_WARNING, "socket buffer size must be greater than 0, got " ZEND_LONG_FMT, size);
10431043
ret = false;

0 commit comments

Comments
 (0)