diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c index cc87e214c9dd49fd33763b95f6dd47ef8e663905..134e02c7fd05d5d6006af62f0557dc584f9e25be 100755 --- a/src/php/ext/grpc/call.c +++ b/src/php/ext/grpc/call.c @@ -292,19 +292,17 @@ PHP_METHOD(Call, start_invoke){ * (optional) * @return long Error code */ -PHP_METHOD(Call, accept){ +PHP_METHOD(Call, server_accept){ long tag; zval *queue_obj; - long flags = 0; - /* "Ol|l" == 1 Object, 1 mandatory long, 1 optional long */ + /* "Ol|l" == 1 Object, 1 long */ if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, - "Ol|l", + "Ol", &queue_obj, grpc_ce_completion_queue, - &tag, - &flags) == FAILURE){ + &tag) == FAILURE){ zend_throw_exception( spl_ce_InvalidArgumentException, - "accept expects a CompletionQueue, a long, and an optional long", + "server_accept expects a CompletionQueue, a long, and an optional long", 1 TSRMLS_CC); return; } @@ -314,10 +312,25 @@ PHP_METHOD(Call, accept){ wrapped_grpc_completion_queue *queue = (wrapped_grpc_completion_queue*)zend_object_store_get_object( queue_obj TSRMLS_CC); - RETURN_LONG(grpc_call_accept(call->wrapped, - queue->wrapped, - (void*)tag, - (gpr_uint32)flags)); + RETURN_LONG(grpc_call_server_accept(call->wrapped, + queue->wrapped, + (void*)tag)); +} + +PHP_METHOD(Call, server_end_initial_metadata) { + long flags = 0; + /* "|l" == 1 optional long */ + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, + "|l", + &flags) == FAILURE) { + zend_throw_exception( + spl_ce_InvalidArgumentException, + "server_end_initial_metadata expects an optional long", + 1 TSRMLS_CC); + } + wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( + getThis() TSRMLS_CC); + RETURN_LONG(grpc_call_server_end_initial_metadata(call->wrapped, flags)); } /** @@ -435,7 +448,8 @@ PHP_METHOD(Call, start_read){ static zend_function_entry call_methods[] = { PHP_ME(Call, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(Call, accept, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Call, server_accept, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Call, server_end_initial_metadata, NULL, ZEND_ACC_PUBLIC) PHP_ME(Call, add_metadata, NULL, ZEND_ACC_PUBLIC) PHP_ME(Call, cancel, NULL, ZEND_ACC_PUBLIC) PHP_ME(Call, start_invoke, NULL, ZEND_ACC_PUBLIC) diff --git a/src/php/tests/unit_tests/EndToEndTest.php b/src/php/tests/unit_tests/EndToEndTest.php index be801bf016b9ce2c44431492438533f40d025232..2996780dc1d4e520510c7229755dcfc47b26bf4a 100755 --- a/src/php/tests/unit_tests/EndToEndTest.php +++ b/src/php/tests/unit_tests/EndToEndTest.php @@ -52,7 +52,12 @@ class EndToEndTest extends PHPUnit_Framework_TestCase{ $server_call = $event->get_call(); $this->assertNotNull($server_call); $this->assertEquals(Grpc\CALL_OK, - $server_call->accept($this->server_queue, $server_tag)); + $server_call->server_accept($this->server_queue, + $server_tag)); + + $this->assertEquals(Grpc\CALL_OK, + $server_call->server_end_initial_metadata()); + // the server sends the status $this->assertEquals(Grpc\CALL_OK, @@ -125,7 +130,11 @@ class EndToEndTest extends PHPUnit_Framework_TestCase{ $server_call = $event->get_call(); $this->assertNotNull($server_call); $this->assertEquals(Grpc\CALL_OK, - $server_call->accept($this->server_queue, $server_tag)); + $server_call->server_accept($this->server_queue, + $server_tag)); + + $this->assertEquals(Grpc\CALL_OK, + $server_call->server_end_initial_metadata()); // start the server read $this->assertEquals(Grpc\CALL_OK, $server_call->start_read($server_tag)); diff --git a/src/php/tests/unit_tests/SecureEndToEndTest.php b/src/php/tests/unit_tests/SecureEndToEndTest.php index d14574b4f7d9d1b7c2c70dda864e59cd0bce7740..167022334f2e51a6e41cdeacd563d5cee18495c9 100755 --- a/src/php/tests/unit_tests/SecureEndToEndTest.php +++ b/src/php/tests/unit_tests/SecureEndToEndTest.php @@ -62,7 +62,11 @@ class SecureEndToEndTest extends PHPUnit_Framework_TestCase{ $server_call = $event->get_call(); $this->assertNotNull($server_call); $this->assertEquals(Grpc\CALL_OK, - $server_call->accept($this->server_queue, $server_tag)); + $server_call->server_accept($this->server_queue, + $server_tag)); + + $this->assertEquals(Grpc\CALL_OK, + $server_call->server_end_initial_metadata()); // the server sends the status $this->assertEquals(Grpc\CALL_OK, @@ -135,7 +139,11 @@ class SecureEndToEndTest extends PHPUnit_Framework_TestCase{ $server_call = $event->get_call(); $this->assertNotNull($server_call); $this->assertEquals(Grpc\CALL_OK, - $server_call->accept($this->server_queue, $server_tag)); + $server_call->server_accept($this->server_queue, + $server_tag)); + + $this->assertEquals(Grpc\CALL_OK, + $server_call->server_end_initial_metadata()); // start the server read $this->assertEquals(Grpc\CALL_OK, $server_call->start_read($server_tag));