Cro: libraries and tools for building reactive services in Perl 6 | cro.services/ | Logs: irclog.perlgeek.de/cro/
Set by moderator on 17 January 2018.
01:02 SubxN8 joined
SubxN8 Hi 01:02
01:05 SubxN8 joined 01:07 SubxN8 left 02:58 ilbot3 joined
moderator Cro: libraries and tools for building reactive services in Perl 6 | cro.services/ | Logs: irclog.perlgeek.de/cro/
Geth cro: 0bacbc1358 | Altai-man++ | docs/http-auth-and-sessions.md
Fix redirect
10:38
cro-http/push-promise: 30 commits pushed by Altai-man++
review: github.com/croservices/cro-http/co...1a0e42224f
11:31
cro-http/push-promise: 6e7a7f5ec4 | (Jonathan Worthington)++ | 3 files
Refactor handling of push promises in responses

Get the response parser to attach them, which is simpler. This fixes the hang in the client getting push promises (which was caused by the client itself tapping the preserved Supply of them and thus eating them, so the end user never got to see them). Along with this, turn the test file exhibiting the hang into some basic push promise tests.
13:28
14:31 lizmat joined
Geth cro-http/push-promise: 8ad4cf8c36 | (Jonathan Worthington)++ | lib/Cro/HTTP2/Frame.pm6
More detailed HTTP/2 frame trace output
14:37
cro-http/push-promise: 95ea6b5969 | (Jonathan Worthington)++ | lib/Cro/HTTP2/FrameSerializer.pm6
Correct property name to match usage

Cro::HTTP::Client passed it with this name, not with -promise at the end.
14:38
cro-http/push-promise: 837a08c7b8 | (Jonathan Worthington)++ | lib/Cro/HTTP2/GeneralParser.pm6
Remove unrequired when/proceed
14:42
cro-http/push-promise: df17bdac62 | (Jonathan Worthington)++ | 2 files
More properly handle HTTP/2 reset stream frames

Including breaking the Promise associated with any HTTP/2 push promises that did not yet receive a response.
14:51
cro-http/push-promise: ac77e5d897 | (Jonathan Worthington)++ | it/akamai-push-promise.t
Add basic integration test for push promises

Which, happily, passes.
15:29
jnthn Yay, push promises in the HTTP client actually work against a non-Cro HTTP/2 server :) 15:30
15:54 ilbot3 joined
moderator Cro: libraries and tools for building reactive services in Perl 6 | cro.services/ | Logs: irclog.perlgeek.de/cro/
timotimo sweet! 15:56
Geth cro-http: 5a7b913b09 | Altai-man++ | 8 files
Implement JWT-based Auth with tests;

Also reformat META6.json to use 4 white space characters.
17:37
17:42 sena_kun joined 17:49 lizmat joined
Geth cro: ef99ce300f | Altai-man++ | docs/http-auth-and-sessions.md
Document JWT-based Auth classes
18:02
jnthn Hm, we ended up with JWT stuff in core. I initially thought a module. 20:32
Though...they're probably common enough to include that battery.
sena_kun Ah. 20:55
A module.
:/
Well, we can extract stuff easily. 20:56
I mean, it's just one file plus META6.json.
jnthn, ^
jnthn sena_kun: Let me think about it a little. I did question whether to include it. 20:57
sena_kun ok.
jnthn My guideline is roughly "is this thing likely to be relevant for a long time" and "is this thing likely to be useful to a non-tiny number of users" 20:59
sena_kun btw, I've patched push promises. It indeed passes tests(e.g. switch variable works), but on disable the amount of settings frames increases. Investigating...
jnthn Oh, and "do I want to dependency" :)
s/to/the/
JWTs are basically JSON (will live forever, effectively) and a choice of crypto algorithm, the choice meaning that they're not tied to one algo that could become a less-than-good practice in the future 21:00
And they seem to be in widespread use already
And I guess we already have a dep on OpenSSL for, well, SSL support 21:01
So in that sense it's not really a new dependency 21:02
So, I'm inclined to leave it in core, and just provide that battery :) 21:03
sena_kun cro doesn't present itself as a tiny project, does it? I mean, it's surely modular and stuff, but I don't see it as "We were able to save 4kb without that dependency".
jnthn No 21:04
I worked with express.js and, while I was in some ways impressed from a design perspective how very little they put in core...it was less fun when actually building something and having to go hunt the plugin for "basic" things
So not being that minimal in core was a design decision I made quite early on :) 21:05
At the same time, we don't want every possible thing we can think of in there :) 21:06
So it's just a case of considering each one.
And whether it's something that's going to be relevant to a decent number of our users (and potential future users), and whether it's likely to not be out of date/fashion in a year or two's time. 21:07
sena_kun ugh. those suspicious settings frames are suspicious. :/ 21:09
jnthn By definition ;)
jnthn bbiab
sena_kun exactly
oh, fixed it. 21:12
jnthn yay :) 22:22
Geth cro-http/push-promise: 1b875b0629 | Altai-man++ | 2 files
Remove Ping&Settings handlers from GeneralParser

FrameParser sends it immadiately instead of passing further(i.e. to GeneralParser), so it's a dead code now, and the test was obsolete.
22:25
cro-http/push-promise: 8ac2900ecb | Altai-man++ | 5 files
Refactor server to avoid pushing when disabled

Initially done in two phase handshake(first preface with Bool, then actuall Settings) does not really make much sense, so we can just emitting a Settings frame from the beginning. In response to that, we negotiate server settings based on client's one and send server's settings, then acknowledged settings frame(according to RFC). Fix a tests that were broken by this change and make test's check better, covering the case when FrameSerializer emits more frames than we are awaiting.
sena_kun new commits. :)
sena_kun hmm. I tried to explain situation as good as I could. Maybe I went overboard a bit. :P
jnthn No, those are good commit messages. :) 22:26
sena_kun unfortunately, did not manage to test things with browser today. *yesterday already.
jnthn That's fine, can happen tomorrow 22:27
sena_kun *today
:)
Ah, it's minus one hour over there.
:D
jnthn Yeah, it's still today here ;)
Time. How does it even work. :-)
sena_kun >google sheets 22:28
>-10 hours
Ugh.
Splitting it.
jnthn haha...I've had that too
I think it's google's gentle way of telling people who work at midnight, maybe you should sleep :-)
Hm, seems I put "Generalize body parsing and provide it for web sockets messages and ZeroMQ messages" into the 0.8 goals, so maybe will take a look at that at least for websockets tomorrow 22:29
(Next release will be 0.7.3 for sure) 22:30
I should dive into Cro::ZeroMQ stuff soonish too 22:31
sena_kun ewww.
I'm afraid to touch it because of 4.1/4.2 situation. 22:32
jnthn Oh, right, that means there's every chance I'll be like "works for me!" and half the rest of the world will be like "lol, nope" : 22:34
:/
Still, with our HTTP[S|2.0] in increasingly good shape, I'd like to take a look at getting the ZeroMQ support in better shape 22:35
sena_kun it's worse that we don't really know where the bug is. But we can try to find that out for sure.
jnthn Yeah, I'll see what I can do
jnthn should get a "Debugger Of Last Resort" t-shirt or something
sena_kun with superman's "S", perhaps. :) 22:36
jnthn :P 22:37
sena_kun ok, it's time to sleep already. o/ 22:55
jnthn Rest well, thanks for all the work o/ 22:56
22:57 lizmat joined