From f7e30a1c154fb94299a2dec7cb17b15a24597348 Mon Sep 17 00:00:00 2001 From: Connor Clark Date: Thu, 9 Jun 2016 15:29:21 -0700 Subject: [PATCH] update for grpc 0.14.0 --- cbits/grpc_haskell.c | 9 +++++++++ include/grpc_haskell.h | 3 +++ src/Network/GRPC/LowLevel/Client.hs | 1 + src/Network/GRPC/Unsafe.chs | 2 +- tests/LowLevelTests.hs | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/cbits/grpc_haskell.c b/cbits/grpc_haskell.c index d0790fa..5a608e1 100644 --- a/cbits/grpc_haskell.c +++ b/cbits/grpc_haskell.c @@ -385,3 +385,12 @@ char* call_details_get_host(grpc_call_details* details){ gpr_timespec* call_details_get_deadline(grpc_call_details* details){ return &(details->deadline); } + +void* grpc_server_register_method_(grpc_server* server, const char* method, + const char* host){ + //NOTE: grpc 0.14.0 added more params to this function. None of our code takes + //advantage of them, so we hardcode to the equivalent of 0.13.0's behavior. + return grpc_server_register_method(server, method, host, + GRPC_SRM_PAYLOAD_READ_INITIAL_BYTE_BUFFER, + 0); +} diff --git a/include/grpc_haskell.h b/include/grpc_haskell.h index 1bd7368..132d4da 100644 --- a/include/grpc_haskell.h +++ b/include/grpc_haskell.h @@ -133,4 +133,7 @@ char* call_details_get_host(grpc_call_details* details); gpr_timespec* call_details_get_deadline(grpc_call_details* details); +void* grpc_server_register_method_(grpc_server* server, const char* method, + const char* host); + #endif //GRPC_HASKELL diff --git a/src/Network/GRPC/LowLevel/Client.hs b/src/Network/GRPC/LowLevel/Client.hs index 44d78a1..836fde0 100644 --- a/src/Network/GRPC/LowLevel/Client.hs +++ b/src/Network/GRPC/LowLevel/Client.hs @@ -173,6 +173,7 @@ clientRequest client@(Client{..}) rm@(RegisteredMethod{..}) grpcDebug "clientRequest(R): batch error." return $ Left x Right rs' -> do + grpcDebug $ "clientRequest(R): got " ++ show rs' return $ Right $ compileNormalRequestResults (rs ++ rs') _ -> error "Streaming methods not yet implemented." diff --git a/src/Network/GRPC/Unsafe.chs b/src/Network/GRPC/Unsafe.chs index 8e0ee94..1890f59 100644 --- a/src/Network/GRPC/Unsafe.chs +++ b/src/Network/GRPC/Unsafe.chs @@ -222,7 +222,7 @@ castPeek p = peek (castPtr p) {#fun grpc_server_create as ^ {`ChannelArgsPtr',unReserved `Reserved'} -> `Server'#} -{#fun grpc_server_register_method as ^ +{#fun grpc_server_register_method_ as ^ {`Server', `String', `String'} -> `CallHandle' CallHandle#} {#fun grpc_server_register_completion_queue as ^ diff --git a/tests/LowLevelTests.hs b/tests/LowLevelTests.hs index 8f542ce..1900045 100644 --- a/tests/LowLevelTests.hs +++ b/tests/LowLevelTests.hs @@ -59,7 +59,7 @@ testClientTimeoutNoServer = clientOnlyTest "request timeout when server DNE" $ \c -> do rm <- clientRegisterMethod c "/foo" Normal r <- clientRequest c rm 1 "Hello" mempty - r @?= Left GRPCIOTimeout + r @?= Left GRPCIOUnknownError testServerCreateDestroy :: TestTree testServerCreateDestroy =