Skip to content

Commit

Permalink
Merge branch 'secure-server-api-changes' of github.com:nathanielmanis…
Browse files Browse the repository at this point in the history
…taatgoogle/grpc into credit
  • Loading branch information
ctiller committed Mar 6, 2015
2 parents 60a5bfc + a55c094 commit bea386b
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 33 deletions.
6 changes: 3 additions & 3 deletions src/python/src/grpc/_adapter/_c_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def testServer(self):
_c.init()

completion_queue = _c.CompletionQueue()
server = _c.Server(completion_queue, None)
server = _c.Server(completion_queue)
server.add_http2_addr('[::]:0')
server.start()
server.stop()
Expand All @@ -102,7 +102,7 @@ def testServer(self):

service_tag = object()
completion_queue = _c.CompletionQueue()
server = _c.Server(completion_queue, None)
server = _c.Server(completion_queue)
server.add_http2_addr('[::]:0')
server.start()
server.service(service_tag)
Expand All @@ -119,7 +119,7 @@ def testServer(self):
del completion_queue

completion_queue = _c.CompletionQueue()
server = _c.Server(completion_queue, None)
server = _c.Server(completion_queue)
server.add_http2_addr('[::]:0')
server.start()
thread = threading.Thread(target=completion_queue.get, args=(_FUTURE,))
Expand Down
4 changes: 2 additions & 2 deletions src/python/src/grpc/_adapter/_low_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def setUp(self):
self.host = 'localhost'

self.server_completion_queue = _low.CompletionQueue()
self.server = _low.Server(self.server_completion_queue, None)
self.server = _low.Server(self.server_completion_queue)
port = self.server.add_http2_addr('[::]:0')
self.server.start()

Expand Down Expand Up @@ -260,7 +260,7 @@ def setUp(self):
self.host = 'localhost'

self.server_completion_queue = _low.CompletionQueue()
self.server = _low.Server(self.server_completion_queue, None)
self.server = _low.Server(self.server_completion_queue)
port = self.server.add_http2_addr('[::]:0')
self.server.start()

Expand Down
43 changes: 18 additions & 25 deletions src/python/src/grpc/_adapter/_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,30 +42,16 @@

static int pygrpc_server_init(Server *self, PyObject *args, PyObject *kwds) {
const PyObject *completion_queue;
PyObject *server_credentials;
static char *kwlist[] = {"completion_queue", "server_credentials", NULL};
static char *kwlist[] = {"completion_queue", NULL};

if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!O:Server", kwlist,
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!:Server", kwlist,
&pygrpc_CompletionQueueType,
&completion_queue, &server_credentials)) {
return -1;
}
if (server_credentials == Py_None) {
self->c_server = grpc_server_create(
((CompletionQueue *)completion_queue)->c_completion_queue, NULL);
return 0;
} else if (PyObject_TypeCheck(server_credentials,
&pygrpc_ServerCredentialsType)) {
self->c_server = grpc_secure_server_create(
((ServerCredentials *)server_credentials)->c_server_credentials,
((CompletionQueue *)completion_queue)->c_completion_queue, NULL);
return 0;
} else {
PyErr_Format(PyExc_TypeError,
"server_credentials must be _grpc.ServerCredentials, not %s",
Py_TYPE(server_credentials)->tp_name);
&completion_queue)) {
return -1;
}
self->c_server = grpc_server_create(
((CompletionQueue *)completion_queue)->c_completion_queue, NULL);
return 0;
}

static void pygrpc_server_dealloc(Server *self) {
Expand All @@ -92,13 +78,21 @@ static PyObject *pygrpc_server_add_http2_addr(Server *self, PyObject *args) {
}

static PyObject *pygrpc_server_add_secure_http2_addr(Server *self,
PyObject *args) {
PyObject *args,
PyObject *kwargs) {
const char *addr;
PyObject *server_credentials;
static char *kwlist[] = {"addr", "server_credentials", NULL};
int port;
if (!PyArg_ParseTuple(args, "s:add_secure_http2_addr", &addr)) {

if (!PyArg_ParseTupleAndKeywords(args, kwargs, "sO!:add_secure_http2_addr",
kwlist, &addr, &pygrpc_ServerCredentialsType,
&server_credentials)) {
return NULL;
}
port = grpc_server_add_secure_http2_port(self->c_server, addr);
port = grpc_server_add_secure_http2_port(
self->c_server, addr,
((ServerCredentials *)server_credentials)->c_server_credentials);
if (port == 0) {
PyErr_SetString(PyExc_RuntimeError, "Couldn't add port to server!");
return NULL;
Expand Down Expand Up @@ -138,8 +132,7 @@ static PyMethodDef methods[] = {
METH_VARARGS, "Add a secure HTTP2 address."},
{"start", (PyCFunction)pygrpc_server_start, METH_NOARGS,
"Starts the server."},
{"service", (PyCFunction)pygrpc_server_service, METH_O,
"Services a call."},
{"service", (PyCFunction)pygrpc_server_service, METH_O, "Services a call."},
{"stop", (PyCFunction)pygrpc_server_stop, METH_NOARGS, "Stops the server."},
{NULL}};

Expand Down
7 changes: 4 additions & 3 deletions src/python/src/grpc/_adapter/fore.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,13 +280,14 @@ def _start(self):
0 if self._requested_port is None else self._requested_port)
self._completion_queue = _low.CompletionQueue()
if self._root_certificates is None and not self._key_chain_pairs:
self._server = _low.Server(self._completion_queue, None)
self._server = _low.Server(self._completion_queue)
self._port = self._server.add_http2_addr(address)
else:
server_credentials = _low.ServerCredentials(
self._root_certificates, self._key_chain_pairs)
self._server = _low.Server(self._completion_queue, server_credentials)
self._port = self._server.add_secure_http2_addr(address)
self._server = _low.Server(self._completion_queue)
self._port = self._server.add_secure_http2_addr(
address, server_credentials)
self._server.start()

self._server.service(None)
Expand Down

0 comments on commit bea386b

Please sign in to comment.