Commit graph

200 commits

Author SHA1 Message Date
Nick
0cb7999e9e
Fixed typo. (#111) 2020-11-23 11:28:46 -06:00
intractable
6382857e2c
grpc-haskell-0.2.0.0: Upgrade to proto3-wire-1.2.0, proto3-suite-0.4.2.0 (#110)
* .gitignore

* release.nix: Minor cleanup

* Fix warning

* Expose max receive message length channel arg in `ServiceOptions`

* Fix warning

* Bump upstream dependencies and patch parameterized-0.5.0.0

* grpc-haskell 0.0.1.0 -> 0.0.2.0
2020-11-16 11:43:28 -06:00
Gabriel Gonzalez
d8f6e0b476
Fix Arithmetic example (#107)
The instructions for testing the `Arithmetic` example were
out of date
2020-09-04 12:04:30 -07:00
Gabriel Gonzalez
d7c3c3847a
Add new test-derivation target to release.nix (#108)
This comes in handy for `nix-shell` when you want to test
against an already built `grpc-haskell`
2020-09-04 11:02:41 -07:00
Gabriel Gonzalez
d532cec4d1
Make server process killable (#105)
35163c3 introduced a new use of `mask` which makes the server
process uninterruptible while waiting for a new incoming request.
This change fixes that by surrounding the logic that waits for a
new request with `unmask`.  This new `unmask` should still
respect the finalization guarantees of the surrounding masked
code.
2020-05-28 13:56:03 -04:00
Gabriel Gonzalez
595cb6a3bf
Update Arithmetic example to use newer proto3-suite (#102)
Related to https://github.com/awakesecurity/proto3-suite/issues/119
2020-02-10 10:19:29 -08:00
Fabian Schneider
bc155c1a52 format correction (#99)
changed , to . to correct the ordering
2019-12-20 08:13:53 -08:00
Moritz Kiefer
4164623844 Don’t free op array values in op_array_destroy (#98)
These values are all already freed in freeOpContext and doing it twice
is an error, see #91
2019-11-21 15:47:55 -08:00
Cj-bc
3defd1dcc5 Fix stack.yaml format to support stack 2.0 configuration (#93)
Information is here:
http://docs.haskellstack.org/en/stable/yaml_configuration/#packages
2019-09-18 08:25:00 -05:00
Moritz Kiefer
be70fc49b0 Mask body of runOps to avoid a heap corruption (#89) 2019-08-29 11:15:48 -05:00
Moritz Kiefer
01b17286b6 Free slice in OpSendStatusFromServerContext (#90)
We allocate the slice in createOpContext via byteStringToSlice but we
never freed it.
2019-08-28 09:46:14 -05:00
Moritz Kiefer
11681ec6b9
Fix sdist tarballs (#88)
A bunch of files have been missing from the tarballs created by `cabal
sdist`. I’ve changed the nix config to check for this and also found
some examples that I forgot to update in a previous PR (sorry about
that).
2019-08-28 09:28:26 +02:00
Moritz Kiefer
5ceeae74cc Upgrade to gRPC 1.22 (#85) 2019-08-22 11:12:21 -05:00
Moritz Kiefer
35163c3c18 Fix async exception handling (#86)
Previously, grpc-haskell used a lot of code in the form of

```
do x <- acquireResource
   f x `finally` releaseResource x
```

This is not safe since you can get killed after acquiring the resource
but before installing the exception handler via `finally`. We have
seen various gRPC assertion errors and crashes on shutdown when this
got triggered.
2019-08-22 10:55:33 -05:00
Moritz Kiefer
a26497c82c Expose ClientCall in ClientReaderHandler and ClientRWHandler (#87)
This allows you to cancel the call from within the callback using
`clientCallCancel`.
2019-08-22 10:53:41 -05:00
Moritz Kiefer
6e09678dc7 Upgrade nixpkgs to the latest nixpkgs-unstable (#84)
* Upgrade nixpkgs to the latest nixpkgs-unstable

* Bump proto3-suite
2019-08-20 10:47:32 -05:00
intractable
a818985323
Provide Network.GRPC.HighLevel.Client.simplifyServerStreaming (#82) 2019-08-12 13:03:25 -05:00
j6carey
c83eacd1f3
Move to newer proto3-suite. (#81) 2019-06-18 12:51:25 -07:00
j6carey
75cf21839b
Port grpc-haskell[-core] to ghc-8.6 and modern tasty. (#77)
Note that even though we can now build grpc-haskell and grpc-haskell-core
with modern tasty, the environment in which we built those test programs
did not support actually running all them successfully, due to the need to test
generated code in the context of the appropriate libraries.  We do not yet
know whether test programs built with new versions of tasty would succeed
in the appropriate environment.  In principle this could be discovered, but
the work involved is far from trivial, and therefore we defer it to another
time.  Tests built with the old tasty still succeed.
2019-03-25 16:52:04 -07:00
j6carey
c2a3aa6496
Allow dependency upon async-2.2.* (#75) 2019-02-11 10:44:16 -08:00
Manoj P R
e17f2cee46 Fix broken links to proto3-wire and proto3-suite (#72) 2019-01-22 08:40:55 -06:00
j6carey
bc457cc4e3
Shut down server when serverLoop thread is killed. (#71)
Previously, killing the thread running serverLoop
would not actually shut down the server, leading
to file descriptor leaks and perhaps worse effects.
2019-01-07 15:53:10 -08:00
intractable
28288a17b7
Client helpers, re-exports, and fixups (#70)
* Derive `Show` instance for `ClientSSLKeyCertPair`

* Add a couple client helper functions & add additional exports

* Add `grpc-haskell-core` target; add `c2hs` dep

* Fix examples broken by #68

* rm `build-tools` and `include-dirs` directives from toplevel `.cabal`

* More `ClientConfig` fixes

* Ensure examples are built
2018-10-14 17:52:59 -05:00
ryan4729
c80269089c fix tests broken by previous commit (#69) 2018-10-09 19:29:29 -05:00
ryan4729
24bdacca3a allow clients to set authority header (#68) 2018-09-24 08:37:05 -07:00
Travis Athougies
991b389a16 Add max metadata size option (#67) 2018-07-27 10:41:18 -05:00
Ewout
9c6b3f63b6 Fix build on GHC 8.4 (#63)
* Fix haddock: postfix comments on GADT constructors don't work.

See https://github.com/haskell/haddock/issues/43 .

* Remove unused dependencies from cabal file..

* Semigroup instances for compatibility with GHC 8.4.
2018-06-18 12:24:19 -07:00
Gabriel Gonzalez
55f51eaa24
Build against latest proto3-suite (#56)
This reflects the latest changes in generating `ToSchema` instances
2018-04-20 13:37:12 -07:00
j6carey
3ee4dabc2d
Add a comment to ClientReaderRequest. (#55)
It was not obvious from the type how many times the
final field of ClientReaderRequest would be invoked.
(Assuming it is invoked once per stream increment
results in a hang, which can be confusing.)
2018-04-02 09:34:35 -07:00
Parnell Springmeyer
2cfca15c31
Fix the output of the nixpkgs derivation and make the pin forwards compatible with Nix 2.0 (#52)
* Fix the output of the nixpkgs derivation

* Use the fixed-output sha256 hash for builtins.fetchTarball

This change makes the nixpkgs pin forwards compatible with Nix 1.12.x
and Nix 2.0.

* Correct the phrasing of the code comment
2018-03-12 11:06:21 -05:00
Christian Lavoie
5fd44880da Remove proto3-wire dependency from core package. (#47) 2018-01-30 09:20:05 -08:00
Christian Lavoie
9cfb3da770 Extract lowlevel bits into a core package (#42) 2018-01-29 08:59:34 -08:00
Gabriel Gonzalez
1959939f50
Update to Nixpkgs 17.09 (#45)
This is a "shallow" update, meaning that there are still several dependencies
(such as `grpc` or Haskell packages) that are still pinned and those pins might
not be necessary any longer after this change.
2018-01-26 12:14:53 -08:00
gbaz
f0925d5b5f
Merge pull request #43 from awakesecurity/gb/use-latest-proto3-suite
update to latest proto3-suite
2018-01-17 12:17:51 -05:00
Gershom
351e8a8f75 update to latest proto3-suite 2018-01-17 12:16:38 -05:00
intractable
3fb4d88526
Tweak shebangs to run tests from nix-shell under NixOS (#41) 2017-12-28 10:04:44 -06:00
Remy Goldschmidt
4ef32ccf42 Use deterministic bootstrapping for nixpkgs (#40) 2017-12-28 09:41:39 -06:00
intractable
19125b42be
proto3-suite => 97c4f66 (#37)
* `proto3-suite` => `9394ade` and regenerate CG artifacts

* `proto3-suite` => `56cf36f`

* `proto3-wire` => `a938330`

* `proto3-suite` => `e8f2acb`

* Update `stack.yaml`

* Update CG artifacts for Echo and Arithmetic examples

* Update `stack.yaml`

* `proto3-suite` => `aff63e6` and add related nix deps

* Update CG artifacts for Echo and Arithmetic examples

* `proto3-suite` => `97c4f66`

* Nitpick: Rename test exe from `test` to `tests`

* Add `.gitattributes` files to mark generated modules
2017-11-02 15:36:57 -05:00
intractable
4a30625a70 Expose ClientError type (#36)
* Expose the max receive message length channel argument + unittest

* `ClientError` GADT ctor => `ClientErrorResponse`, expose `ClientError`

Prior to this commit, the name `ClientError` was both:
  - The name of a data constructor name for the `ClientResult` GADT
  - A name of an internal sum type for capturing different kinds of client
    errors

We want to expose the latter to users of the library, and so expose the latter
and rename the former.

* Remove unused `MultiWayIf` lang ext
2017-10-23 10:11:13 -05:00
intractable
3aa835a6f2 Expose GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH channel arg (#35)
* Expose the max receive message length channel argument + unittest

* Remove unused `MultiWayIf` ext
2017-10-20 16:39:26 -05:00
intractable
192bea70e8 Remove warnings from Arithmetic example (#34)
* Remove warnings from Arithmetic example

* Yes, Parnell, the binding isn't needed ;P
2017-10-20 15:53:47 -05:00
intractable
0ff7b36610 proto3-suite => 281a533 (#33)
* `proto3-suite` => `8bd72bb`

* `proto3-suite` => `5885153`

* Update `stack.yaml`

* `proto3-suite` => `281a533`

* Update `stack.yaml`
2017-09-09 11:32:52 -05:00
Olivier Nicole
679e3d7ded Make serverRequestCall interruptible (#30)
Instead of making a blocking foreign call without a timeout, we set a
timeout of one second. This way, the thread returns in Haskell code (and
thus is interruptible) at least every second. This is useful in order to
be able to kill `Server`s, see
https://github.com/awakesecurity/gRPC-haskell/issues/22.
2017-08-21 10:35:05 -05:00
Olivier Nicole
e0c567ec55 Make withServer provide the actual port (#29)
* Make withServer provide the actual port

Again, useful to make a server listen on any available port by giving it
port zero (for testing).

* Re-introduce check on server port

* Add port field to Server

* Style: Remove unneeded newline

* Revert changes in tests
2017-08-21 10:34:30 -05:00
intractable
ab8ec43d17 Updateproto3-suite, proto3-wire, and related deps (#31)
* Update turtle, optparse-{applicative,generic}; remove stack dep from nix-shell env

* Track proto3-suite changes to readDotProtoWithContext

* Update proto3-suite gitrev, use `compileDotProtoFileOrDie` in `GeneratedTests`

* Bump `proto3-suite` rev

* Bump `proto3-suite` and `proto3-wire` gitrevs, update `stack.yaml`
2017-08-19 09:16:10 -05:00
intractable
087ce6f49c Update self-signed SSL cert used by test suite (#28) 2017-08-06 03:06:53 -05:00
intractable
918e3a8d5a Derive Read instance for StatusCode (#27) 2017-08-05 23:46:12 -05:00
teh
d64c58efcf Typo fix (#26) 2017-08-05 10:06:53 -07:00
Connor Clark
a2d99ca178 latest lts resolver (#24) 2017-07-19 09:01:55 -07:00
intractable
fe55845d3f Update to latest proto3-suite, remove compile-proto-file exe (#23)
* Squash merge from branch `joel-fix-build-issues-and-broken-tests`

* Update `proto3-wire` and `proto3-suite` refs in `stack.yaml`

* Update `proto3-wire` and `proto3-suite` refs via `cabal2nix` for `nix` builds

* Remove `compile-proto-file` from the repo, as it is now available via `proto3-suite`

* Update `proto3-suite` ref in `stack.yaml`

* Update `proto3-suite` ref via `cabal2nix` for `nix` builds

* Update `proto3-suite` and `proto3-wire` gitrevs

* Regenerate Echo and Arithmetic example modules from their respective .protos

* Fix typo
2017-07-17 20:42:35 -05:00