Hi,

Here's the summary of the previous IRC meeting.

---

COMMUNITY MEETING

Place: #openvpn-devel on irc.freenode.net
List-Post: openvpn-devel@lists.sourceforge.net
Date: Thursday 22nd Aug 2013
Time: 18:00 UTC

Planned meeting topics for this meeting were on this page:

<https://community.openvpn.net/openvpn/wiki/Topics-2013-08-22>

Your local meeting time is easy to check from services such as

<http://www.timeanddate.com/worldclock>

or with

$ date -u


SUMMARY

cron2, jamesyonan, mattock, ngharo, pekster and waldner participated in
this meeting.

--

Discussed "Issues with supplying username/password/response via
file/stdin/management interface" described here:

<https://community.openvpn.net/openvpn/wiki/Topics-2013-08-22>

After a lengthy discussion decided to break this into 3-phase wishlist
(courtesy of pekster):

1) Support username-only in a --auth-user-pass file, and all the backend
code changes this requires. This patch can live on its own.
2) Support inlining the --auth-user-pass file so it doesn't need to be
external.
3) Add support for the MI to handle either the user or both user+pass
from an external file, and still prompt for the c/r.

Waldner will do more testing to fully understand all the code paths and
option combinations, after which we can finalize the above plan.

--

Discussed adding snappy support to openvpn-build and thus the Windows
executables. The problem is that libsnappy pulls in libstdc++ with it,
which weighs 8MB, whereas current installers are only ~1.7MB in size.
Jamesyonan proposed using LZ4 compressor instead, because it's nearly as
fast as snappy, is gaining momentum and does not pull in tons of
dependencies.

Jamesyonan agreed to implement LZ4 for 2.4 at some point, but it will
probably take some months.

--

Discussed the "[PATCH 1/2] Allow use of NetBeans without saving
nbproject/ directory" patch:

<http://news.gmane.org/find-root.php?message_id=%3ccanfrfr0gew0kjt2xpfu6zgmhkpwoqah_pu2hdrod0fdrktz...@mail.gmail.com%3E>

Mattock gave this patch an ACK. It was merged during the meeting.

--

Discussed the "[PATCH 2/2] When using UDP over SOCKS5, send the actual
remote hostname (FQDN) to the proxy server in the first packet" patch:

<http://news.gmane.org/find-root.php?message_id=%3ccanfrfr0zuki5mf0vafxpvnrtrsyyfx3etpgpbznjsclbnqz...@mail.gmail.com%3E>

The rationale behind this patch is a bit unclear. Decided to ask the
author for clarifications on openvpn-devel mailing list.

--

Discussed "configure script fails with static openssl libraries" issue:

<https://community.openvpn.net/openvpn/ticket/305>

Agreed to discuss this on openvpn-devel.

--


Full chatlog as an attachment

-- 
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc

irc freenode net: mattock
(20.53.21) ngharo: o/
(20.57.41) mattock: nice
(21.00.45) cron2: o/
(21.00.53) waldner: \o
(21.00.59) waldner: (I'm left-handed)
(21.01.10) mattock: hi
(21.01.18) mattock: shall we start?
(21.01.21) jamesyonan [~jamesyona@24.9.78.222] è entrato nella stanza.
(21.01.21) modalità (+o jamesyonan) da ChanServ
(21.01.34) mattock: https://community.openvpn.net/openvpn/wiki/Topics-2013-08-22
(21.01.35) vpnHelper: Title: Topics-2013-08-22 – OpenVPN Community (at 
community.openvpn.net)
(21.02.07) mattock: so cron2, ngharo, waldner, mattock and jamesyonan already
(21.02.11) mattock: good attendance
(21.02.41) mattock: first we have a fairly hairy topic, based on pekster's and 
waldner's earlier discussion:
(21.02.41) mattock: "Issues with supplying username/password/response via 
file/stdin/management interface"
(21.02.57) ***pekster is still hiding in the shadows too
(21.03.04) mattock: hi pekster!
(21.03.13) mattock: krzee promised to be present, too
(21.03.36) mattock: waldner: is there something you'd like to add to the very 
problem brief description in the wiki? 
(21.04.00) waldner: well, I'll give a short background
(21.04.20) waldner: just so everyone can see what we're talking about
(21.04.31) waldner: here: 
http://article.gmane.org/gmane.network.openvpn.devel/7776
(21.04.33) vpnHelper: Title: Gmane -- PATCH Support for username only auth 
file. (at article.gmane.org)
(21.04.53) waldner: that was the (still outstanding) patch that prompted me to 
do this
(21.05.15) waldner: I said, that's great, however I'd like to put the username 
in the config directly, rather than create a file
(21.05.37) waldner: so after some discussion, it was agreed that inlining 
auth-user-pass would be the way to go
(21.05.44) waldner: which seems excellent to me
(21.05.58) waldner: so this explains the first two points
(21.06.19) waldner: inlining the file, and the possibility to only specifiy a 
username, rather than both username/pass
(21.06.29) waldner: so far so good
(21.06.46) waldner: so I started looking at the code and doing tests, to 
understand how it works currently
(21.07.05) waldner: the main function is get_user_pass_cr, misc.c
(21.07.44) waldner: doing various tests, I see that function is invoked from 
many different places (some of which are not a strictly username/password 
dialog)
(21.08.14) waldner: in particular, it is involved in challenge/response
(21.08.23) waldner: so when c/r is used, it prompts for username, password, and 
response to the challenge (statis or dynamic)
(21.08.39) waldner: it can prompt on stdin or via the management interface
(21.09.07) waldner: now trying a few combination of options to understand how 
all the code paths work, I came across a few issues
(21.09.43) waldner: the main one is that one can in principle use both 
"auth-user-pass file.txt" *and* "static-challenge sometext" 
(21.10.06) waldner: when one does that, username and password are read from the 
file, but the user is not prompted for the challenge at all
(21.10.41) waldner: now I agree that this combination of options doesn't make 
much sense from a security standpoint, but if we allow it it should work, 
otherwise it should be forbidden
(21.10.58) waldner: thoughts?
(21.11.05) mattock: jamesyonan: is the above behavior intentional, or 
accidental?
(21.11.29) mattock: I think forbidding it makes most sense
(21.12.17) ngharo: walder, curious if you've been in contact with the original 
patch author?
(21.12.30) pekster: The one edge-case I see where it's possibly useful to do 
both is if we allow --auth-user-pass (inline or not) to supply the username 
only, then prompt for the pass plus the challenge response
(21.12.45) waldner: ngharo: no (not yet, better)
(21.12.48) cron2: pekster: this sounds like a useful case for me
(21.12.50) pekster: As I understand the issue, this won't work as it stands 
today, right?
(21.12.53) mattock: yep, in that context it makes sense
(21.13.33) waldner: correct, as it stands today it doesn't work
(21.14.00) jamesyonan: yes, there's no support right now for challenge/response 
+ user/pw file
(21.14.30) waldner: so better to bail out if one does that, and if/when support 
is added lift the restriction?
(21.14.50) mattock: does that = use both config option at the same time
(21.15.18) mattock: bail out at startup?
(21.15.27) waldner: what's "="?
(21.15.28) pekster: Right, rather than silently failing when the c/r is never 
sent
(21.15.54) waldner: yes, just where many other checks are done, it would just 
be one more
(21.16.11) waldner: there are already many combinations that are incompatible 
and openvpn terminates
(21.16.31) mattock: so this would allow username-only password file/inline 
section
(21.16.40) mattock: but if c/r is added, then it bails out
(21.16.47) waldner: yes
(21.16.51) mattock: makes sense
(21.16.59) pekster: That's actually an independent issue; as the code stands 
_today_ it's broken with external --auth-user-pass and c/r used together
(21.17.37) waldner: yes, but we can detect that combination and abort
(21.17.55) mattock: pekster: but it breaks silently, without a clear error 
message
(21.17.57) mattock: afaik
(21.18.04) pekster: And this may be by design ( jamesyonan may have details, or 
AS usecases,) but I agree it shouldn't silently fail
(21.18.16) waldner: doesn't even "break", the user just sees they can't 
authenticate
(21.18.41) mattock: jamesyonan: is there a use-case for not bailing out when 
--auth-user-pass and c/r are used together?
(21.18.49) mattock: currently it just gives "auth failed"
(21.19.20) waldner: (probably an attentive user would notice that thay're not 
prompted for the c/r)
(21.19.29) jamesyonan: how hard would it be to just modify c/r code to use 
user/pw file when available?
(21.19.51) waldner: jamesyonan: when the user is prompted on stdin, not too much
(21.19.56) jamesyonan: and only prompt for c/r
(21.20.04) waldner: however, when the prompt comes in the management, it's more 
complex
(21.20.32) waldner: because in the management interface one is supposed to send 
a string that contains username and responses encoded together
(21.21.02) jamesyonan: I would tend to think that if people are authenticating 
through management interface, that they wouldn't be using a static user/pw file
(21.21.15) waldner: so it would have to be the application that drives the 
management interface that would need to be smarter
(21.21.30) waldner: yes, that's what one option is banning it altogether
(21.21.33) waldner: *why
(21.22.20) waldner: (sorry, above I meant "password and response encoded 
together")
(21.22.28) pekster: jamesyonan: That was my thought too, so the "frontned" (the 
app driving the user experiencing) should be the one in this case to read from 
an external file in this case, if it so chooses
(21.23.06) pekster: The alternative here when using c/r over the management 
interface is make that codepath more complicated by handling inputs with 
user+pass+c/r, or just permutations, then format the reply to send to the server
(21.23.47) waldner: it would probably need a new type of prompt to present to 
the management interface
(21.23.56) pekster: That feels messy to me, and if there's a frontend app 
that's supposed to be managing the user experience, I'm wondering why it 
wouldn't do it all in that widget
(21.24.01) jamesyonan: how about just don't ask the MI for user/pw when already 
available in file?
(21.24.09) waldner: ie, it would become similar to how the user is prompted on 
stdin
(21.24.52) waldner: jamesyonan: yes, that happens already, however the response 
should still be prompted 
(21.25.05) waldner: (the resposne to the challenge)
(21.25.11) pekster: So, the proposal is just ask for the needed details and 
format the reply internal to the code? That might actually make things easier 
instead of expecting the input on the management interface to be this 
combination of it all
(21.26.16) pekster: For reference, the management-notes.txt says the dynamic 
c/r is to be formatted: password "Auth" 
"SCRV1:<BASE64_PASSWORD>:<BASE64_RESPONSE>"
(21.26.59) waldner: yes, like password "Auth" "SCRV1:Zm9v:ODY3NTMwOQ=="
(21.27.11) pekster: Can we just have the client-side here enter in a normal 
sequence of pass (if it wasn't supplied in the --auth-user-pass file) and then 
the c/r as different parts?
(21.27.32) waldner: except if the password is read from a file and the user 
isn't prompted, the management interface has no way to know the password
(21.27.37) pekster: Nevermind the SCRV1 part, what if it just takes the input 
and expects the code to deal with how to format the reply?
(21.28.06) waldner: pekster: that's one option, however it requires changing 
the MI prompts
(21.28.13) waldner: (likely)
(21.28.32) jamesyonan: well I think the issue here is that the MI expects 
clients to be able to generate the special packed pw/resp string, while when 
operating off of stdin, it does the packing itself
(21.28.46) waldner: jamesyonan: correct
(21.28.58) pekster: Right; is there a way to unify both of these input methods 
perhaps?
(21.29.44) jamesyonan: this was a way to add c/r support without breaking MI 
compatibility
(21.30.46) waldner: so if we introduce a new prompt type, we'd also need to 
take care that the current way of prompting keeps working
(21.31.36) mattock: is there anything preventing adding a new prompt and 
keeping the old one for compatibility?
(21.31.53) waldner: ie, support both "PASSWORD:Need 'Auth' username/password 
SC:1,Please enter token PIN" (current) and a new, separate prompt to only 
prompt for the response
(21.32.34) pekster: Perhaps adding a `'PASSWORD:Need 'Challenge-Response' 
password` inquiry across the management interface?
(21.32.44) waldner: if we detect that user/pw come from a file we prompt for 
user/pw only using the standard MI prompt, and then prompt separately for the 
response
(21.32.50) pekster: Then a `challenge-response "Auth" "the response here"` 
format?
(21.32.51) waldner: yes
(21.33.01) waldner: that's a new prompt, as said
(21.33.05) jamesyonan: I'm okay with that as long as it doesn't break existing 
clients
(21.33.16) pekster: This way the existing behaviour keeps working for SCRV1 
query/reply
(21.33.27) mattock: and in the long run this new approach would replace the old 
one?
(21.33.28) waldner: it shouldn't, as long as they don't start using user+pw 
from file
(21.33.44) mattock: not just augment it
(21.33.59) pekster: mattock: I think it would work as an adjunct to the old 
method
(21.34.12) mattock: ok
(21.34.29) pekster: Unless we want to set a target date to deprecate the 
current feature, and break all frontends relying on it
(21.34.38) waldner: I think that's not doable
(21.34.39) cron2: we can't do that
(21.34.41) pekster: (sounds like it'll break as-yet-unknown things)
(21.35.24) pekster: Yea, so I like thte idea of adding a new query method in 
this case, and implementations using it are expected to know how to speak that 
method or it'll fail (which it does today anyway, so no loss)
(21.35.30) mattock: interesting how this all started from "allow username-only 
auth-user-pass file"
(21.35.52) pekster: Yes... :)
(21.36.06) waldner: well, in fact this is how it is *now*, even before trying 
to do anything
(21.36.54) waldner: and since adding the features initially mentioned will 
necessarily have to pass through that code, it has to be cleared up upfront
(21.37.06) jamesyonan: this still needs proof-of-concept testing to ensure that 
it doesn't break existing clients
(21.37.26) mattock: so, if I understood this correctly, we should make openvpn 
bail out at startup if --auth-user-pass and c/r are used together
(21.37.27) pekster: With the advantage that this use-case will actually work. 
If the username only is supplied externally (which includes "inline") it just 
uses the existing SCRV1 method. If user+pass are supplied, the fronttend 
management (or stdin) client needs to use this new response mechanism. Anyone 
see issues with that solution?
(21.38.03) mattock: then we add support for inline auth-user-pass
(21.38.08) waldner: well I'd do this: for the time being, and to not break 
compatibility, we just bail if one uses user/pw from file and static challenge
(21.38.18) jamesyonan: for example, what if a client that already understands 
SCRV1 usage chokes when a new auth field is prompted for by MI and it doesn't 
recognize it
(21.38.42) jamesyonan: and what about dynamic challenge/response mode?
(21.39.00) waldner: jamesyonan: that'd require that openvpn knew the 
capabilities of the application driving the MI
(21.39.06) pekster: But it would never choke like that unless the config asked 
it to use c/r with an external auth file, right?
(21.39.08) waldner: jamesyonan: yes, what about it
(21.39.31) jamesyonan: will proposed solution work with both static and dynamic 
c/r?
(21.39.45) waldner: jamesyonan: I wasn't able to test dynamic c/r
(21.39.50) waldner: does it require an AS server?
(21.40.29) waldner: or if not, how do I enable it?
(21.41.10) pekster: Ah, so the tricky part here is what does this mean from 
management-notes.txt: "The OpenVPN dynamic challenge/response protocol works by 
returning a specially formatted error message after initial successful 
authentication.  This error message contains the challenge question..."
(21.41.14) jamesyonan: the docs should explain it 
(21.41.17) jamesyonan: no AS is required
(21.41.21) waldner: (I had it planned to bring this up anyway)
(21.41.33) waldner: the docs say the server sends a special error message to 
the client, which prompts the client's MI to prompt for the response
(21.41.46) waldner: I even see the code where it does that
(21.41.59) waldner: but for the love of me I'm not able to trigger that 
response from the server
(21.42.43) waldner: otherwise I'd have tested it already to have a more 
complete picture
(21.43.21) waldner: if someone knows how to do it, I'm all ears
(21.43.35) jamesyonan: if you don't use AS, the server would need to be driven 
from the MI and understand how to deliver the special AUTH_FAILED that tells 
the client to do a dynamic challenge
(21.43.54) waldner: right, so which message is that? is it in the docs?
(21.44.02) waldner: which MI command is it?
(21.44.32) waldner: (the docs I have are 
http://openvpn.net/index.php/open-source/documentation/miscellaneous/79-management-interface.html)
(21.44.34) vpnHelper: Title: Management Interface (at openvpn.net)
(21.46.03) waldner: (I've tried with "echo" with no luck)
(21.46.18) pekster: Ah, now I think I see it waldner, look at the `COMMAND -- 
client-deny` section
(21.46.37) pekster: It needs to format a special AUTH_FAILED reply as 
documented in the dynamic challenge response section
(21.46.50) pekster: Think of it as "extra text after the AUTH_FAIL part
(21.47.17) waldner: pekster: right, it may well be that
(21.47.22) jamesyonan: yes, that sounds right
(21.47.29) pekster: client-deny {CID} {KID} "reason-text" 
["client-reason-text"] <<-- that bit
(21.47.39) waldner: I had not associated it with the later paragraph about 
dymanic challenge
(21.47.51) pekster: So, that's the test-case for dynamic auth. And it sounds 
like this is all fine "as long as current behaviour is maintained"
(21.47.59) waldner: right
(21.48.05) pekster: waldner: I hadn't either until just now :)
(21.48.14) jamesyonan: right, you fail the auth with a 
CRV1:<flags>:<state_id>:<username_base64>:<challenge_text> string
(21.48.26) waldner: yes, makes sense now
(21.48.49) ngharo: would it make sense to get the username-only support in now 
since that is fairly trivial and deal with the c/r and MI issues after, rather 
than all in one?
(21.49.31) pekster: Yes, I'd like to see these treated as independent issues
(21.49.37) waldner: ngharo: it isn't as easy as it sounds
(21.49.49) pekster: Especially if we end up eventually doing both, the patches 
will be easier to see what they do, I think
(21.49.56) waldner: it certainly can be done regardless of what we've been 
discussing so far
(21.50.28) waldner: however that require changes the very code that also does 
c/r and prompts for user/pass
(21.50.33) pekster: Let me put it this way: adding support for username-only 
doesn't break anything except user+c/r, and that's already not working today
(21.50.47) waldner: and the various ifs and flags that determine what and where 
to prompt
(21.51.56) waldner: pekster: yes, it shouldn't break anything since the MI does 
not change
(21.52.21) mattock: I think it makes sense to implement the username-only stuff 
first
(21.52.40) mattock: and make openvpn bail out if auth-user-pass is used with c/r
(21.52.50) pekster: So, how about breaking this into a "3-phase wishlist." 1) 
support username-only in a --auth-user-pass file, and all the backend code 
changes this requires. This patch can live on its own. Phase 2) support 
inlining the --auth-user-pass file so it doesn't need to be external. Phase 3) 
Add support for the MI to handle either the user or both user+pass from an 
external file, and still prompt for the c/r
(21.52.57) waldner: I propose then I'd do more testing including dynamic 
challenge and I'll come up with a better/more definitive plan that we can 
discuss again in a future meeting
(21.53.07) waldner: yes, along those lines
(21.53.37) waldner: also because we've spent a lot of time on this already and 
there were other topics for the meeting
(21.53.55) pekster: Sounds like we've made some progress anyway, and opened up 
new lines of testing for you. This feels good
(21.54.00) waldner: agreed
(21.54.12) ngharo: ^5
(21.54.32) pekster: jamesyonan, thanks for the insight into how the 
server-initiated challenge works, that helped open the door :)
(21.54.38) mattock: waldner: so you'll do more thorough testing now, or after 
phase 3) as proposed by pekster?
(21.55.02) waldner: I'll do more testing to fully understand all the code paths 
and option combinations
(21.55.17) mattock: ok, I'll mention our initial plan in the summary
(21.55.18) mattock: next topic
(21.55.23) waldner: then I'll come up with a plan, which will likely be as 
pekster said
(21.55.33) mattock: actually, I think we could review some of the patches in 
the patch queue
(21.55.37) waldner: or a small variation thereof
(21.55.50) mattock: pekster and me could discuss openvpn-build some other day 
on this channel
(21.55.59) mattock: others are probably not _that_ interested in it :P
(21.56.08) waldner: thanks everyone for the comments and ideas
(21.56.14) ngharo: I'm working on replying to all open, unreplied GitHub 
tickets to not discourage potential contributors on GitHub.  So I will be 
replying to the pull request (https://github.com/OpenVPN/openvpn/pull/5) with 
some information discussed here
(21.56.14) mattock: except maybe the snappy support?
(21.56.15) vpnHelper: Title: Support for username-only auth file. by mludvig · 
Pull Request #5 · OpenVPN/openvpn · GitHub (at github.com)
(21.56.16) pekster: Yes, I'd rather see pending patches discussed first anyway
(21.56.18) cron2: the first patch on the Patches page has already been ACKed by 
dazo and pushed :)
(21.56.37) mattock: cron2: I'll move it to the correct page
(21.56.50) mattock: what about Jesse Glick's patches
(21.56.53) mattock: he was asking about those
(21.56.55) cron2: jamesyonan: do you have built a windows client with snappy 
support?
(21.57.16) cron2: mattock: you brought up snappy, let's stick to that topic for 
a moment :-)
(21.57.18) jamesyonan: cron2: no, haven't attempted that yet
(21.57.26) mattock: ok, snappy
(21.57.45) mattock: so the issue with snappy support is that it pulls with it 
libstdc++, which is 8MB
(21.57.58) mattock: and OpenVPN windows installers are ~1.7MB currently
(21.58.01) mattock: so it's huge
(21.58.01) waldner: I'd put the existing username-only from file patch on hold 
until I've done more testing, not because I want to dismiss it but because I 
want to see if it can be used as starting point for the bigger changes we're 
planning (it may very well be)
(21.58.08) cron2: ok... well, mattock has it working, but it requires 
libstdc++.dll, which is 8mb... so that's the currently open issue... find 
compile options (on the cross-build) that achieve "--static-libstdc++" 
(21.58.35) cron2: so I was curious whether it builds nicely with MSVC :)
(21.58.44) mattock: ngharo: check waldner's comment ^^^
(21.59.06) cron2: pekster: how are you building windows binaries?  
--disable-snappy?
(21.59.11) mattock: I did some work to get it to statically compile, but 
haven't really succeeded yet
(21.59.21) mattock: this is actually related to openvpn-build not being able to 
resume builds
(21.59.39) mattock: because doing this kind of openvpn-build development is 
fairly painful if you have to reinitiate the build every time
(21.59.47) mattock: and it takes ~20 mins on my VM
(21.59.48) cron2: who is openvpn-build maintainer these days?  mattock?
(21.59.50) mattock: me
(21.59.52) pekster: cron2, I'm not building git master; my windows builds are 
2.3.2 mainline, and I add in individual patches now. Maybe mattock has more 
info on mater builds
(22.00.05) mattock: I usually build 2.3.x too
(22.00.08) jamesyonan: cron2: wondering if we should look at LZ4 as a third 
compressor option
(22.00.09) mattock: haven't built master recently
(22.00.16) cron2: pekster: ic.  2.3.2 has no snappy support, so you don't run 
into that
(22.00.23) pekster: Exactly
(22.00.45) jamesyonan: it's almost as fast as Snappy but is extremely small and 
without dependencies
(22.00.46) cron2: jamesyonan: what would be the benefit?  I haven't heard about 
LZ4 before, and have no real idea about pro/cons of the various algorithms and 
implementations
(22.00.54) cron2: ah
(22.01.08) pekster: I haven't looked at how ./build works, but I think it 
should be easy enough to make it just rebuild openvpn and not the deps, with a 
way to override this if needed
(22.01.26) mattock: does someone actually _need_ openvpn windows binaries with 
snappy support?
(22.01.35) cron2: if LZ4 can be done without fighting libstdc++, that would be 
nice
(22.01.40) mattock: I mean, if someone really does, can't we just offload the 
work to him/her?
(22.01.49) mattock: why bother ourselves
(22.02.05) mattock: I don't recall anyone asking for snappy support in the 
windows binaries
(22.02.14) cron2: AS would need to be taught to handle yet another option, 
while 2.4/master still has no idea about compression negotiation, so we won't 
lose much
(22.02.15) pekster: +1. This is what we do today with 
enable_x509_alt_username=no
(22.03.17) pekster: If there's a "less intrusive" in terms of required library 
support available for compression, that sounds much preferred for Windows where 
stdlibc++ isn't generally availalbe system-wide
(22.03.43) mattock: jamesyonan: do you have plans to implement LZ4 anyways?
(22.03.45) cron2: jamesyonan: so what would be the plan for ios/android?  keep 
snappy there, or drop snappy and move to lz4?
(22.04.02) jamesyonan: cron2: LZ4 seems to be getting a lot of momentum, i.e. 
it's in linux kernel now and used for dynamic filesystem compression
(22.04.46) jamesyonan: OpenVPN 3 actually supports LZ4 right now in the code, 
but the support isn't compiled in atm for Android/iOS clients
(22.07.48) cron2: with the new compression framework, it shouldn't be very hard 
to add - and then we have a fast compressor (LZ4) and a "compatible" one (LZO), 
and could just leave off snappy on memory- or library-constraint systems 
(embedded clients, windows, ...)
(22.08.06) mattock: who would implement LZ4 support in Git master?
(22.08.08) cron2: sounds good to me, though I have no time right now to do the 
actual coding
(22.08.18) ***cron2 points at jamesyonan
(22.08.24) mattock: I would tend to do the same :P
(22.08.37) mattock: I think I saw jamesyonan o/ :D
(22.08.47) cron2: (two busy weeks coming, then two weeks of vacation with lousy 
Internet, *then* work on the backlog)
(22.09.16) cron2: but I'm happy to test and review the result, as I feel 
comfortable around the compression layer now :)
(22.10.34) mattock: next topic?
(22.10.48) cron2: lol, you *could* actually wait for James to agree :-)
(22.10.59) mattock: that could take a while, if he doesn't want to :)
(22.11.29) mattock: jamesyonan: would you be willing to implement LZ4 support 
in 2.3/2.4 in the near future?
(22.11.39) cron2: ok... patches from Jesse.  The first one looks harmless 
enough, but I have no idea what NetBeans is... 
(22.11.48) mattock: it's like Eclipse
(22.11.49) cron2: mattock: 2.4, not 2.3 - 2.3 does not have the compression 
layer infrastructure
(22.11.53) mattock: ah yes
(22.11.56) mattock: 2.4
(22.12.03) cron2: so 2.3 is "lzo only"
(22.12.05) mattock: you can write and build software with it
(22.12.51) jamesyonan: now that we already have compression negotiation, adding 
LZ4 shouldn't be too difficult
(22.13.09) mattock: does that count as a "yes, I can do it"?
(22.13.28) jamesyonan: I can certainly do it, but the question is the timeframe
(22.13.41) jamesyonan: it would be months before I could get to it
(22.13.46) mattock: I don't think we're in a particular hurry
(22.13.55) mattock: nobody has requested snappy or lz4 afaik
(22.14.03) mattock: in the windows installers or in openvpn itself
(22.14.41) mattock: I can give Jesse's first patch an ACK
(22.14.45) mattock: the .gitignore one
(22.14.53) cron2: mattock: ok, noted
(22.14.58) mattock: next one
(22.15.11) mattock: "When using UDP over SOCKS5, send the actual remote 
hostname (FQDN) to the proxy server in the first packet."
(22.15.21) cron2: the snappy/lz4 timeframe would be relevant for the openvpn 
connect windows client - so that's James' timeframe anyway :)
(22.15.25) mattock: http://thread.gmane.org/gmane.network.openvpn.devel/7795
(22.15.27) vpnHelper: Title: Gmane Loom (at thread.gmane.org)
(22.15.28) pekster: I haven't really looked into the 2nd patch, UDP over 
SOCKS5, but I don't really understand the usecase, and the fact that it doesn't 
work with IPv6 is probably an issue now that 2.3 can do IPv6
(22.16.16) cron2: yeah, similar sentiments here - I have no idea *why* he's 
doing what he's doing, so no feature-ACK from me -> needs more discussion
(22.16.22) pekster: Specifically, I'm not sure how this is a benefit: "so that 
many hostnames can map
(22.16.26) pekster: to the same IP of the reverse proxy
(22.17.04) cron2: ask for specific use cases, and why it would then not break 
if the IP address is put into later packets
(22.17.14) pekster: Yes, that bit confused me too
(22.17.26) cron2: (and maybe we'll have to rewrite SOCKs anyway when plaisthos' 
dual-stack patches show up)
(22.18.38) mattock: can you guys ask for clarifications from Jasse?
(22.18.40) mattock: Jesse
(22.19.20) mattock: or is it all-out NACK based on current information?
(22.19.36) cron2: it's a "convince me that it's useful, then I'll look at the 
code"
(22.20.06) mattock: ok, care to ask Jesse to convince you?
(22.20.09) cron2: which is better than "go away, this code is bad and it makes 
no sense" :-)
(22.20.25) mattock: agreed :)
(22.20.28) cron2: pekster: can you do that?
(22.20.33) pekster: Right, I "sort of" understand the feature, but not the 
implementation details or the rationale
(22.20.43) pekster: Sure, I can draft up a reply to that within a day or two
(22.20.51) cron2: thanks
(22.21.06) mattock: thanks!
(22.21.19) pekster: I'm not too skilled with some of the code bits, but I don't 
think that's required here since we need a more high-level reasoning/explanation
(22.21.23) mattock: shall we try one or two patches?
(22.21.44) cron2: pekster: exactly.  I'll do the staring-at-the-code then
(22.22.49) cron2: mattock: I'm not qualified to comment on the AEAD stuff - 
that would be James, or andj/syzzer (who are hiding)...
(22.23.22) cron2: Arne's 2013-04-20 patch is in my "understand the code, agree 
with Arne" queue
(22.24.01) mattock: ok, then we're more or less done, except for the bug queue
(22.24.07) mattock: which grows slowly but steadily
(22.24.11) pekster: The AEAD mode lists AES-GCM as an example, but don't we 
support that specific mode now with TLSv1.2 patch?
(22.24.22) cron2: well, there's the "UI version" patch... and maybe James can 
comment on the AEAD one
(22.24.37) mattock: (updated the patches page)
(22.24.48) pekster: Some of the bugs are OpenVPN Connected related (eg: #314)
(22.24.58) pekster: Should those be forwarded to someone@corp and then closed 
out with a reference there?
(22.25.32) mattock: I personally think it's fine if they're in Trac
(22.25.45) mattock: I've been pointing the right people to them
(22.25.56) cron2: are they being handled?
(22.26.01) mattock: not sure
(22.26.02) pekster: Ah, okay. How about a unique component for them though, so 
we can filter by that?
(22.26.04) mattock: and there is one problem
(22.26.08) mattock: yes, that one
(22.26.13) mattock: we'd need unique components for them
(22.26.24) cron2: so let's add them :)
(22.26.24) mattock: I think I'll ask about this on our internal email list
(22.26.31) cron2: +1
(22.26.37) pekster: ie: the corp folks can filter by "corp feature a OR corp 
feature B", and I'm willing to set taht up and triage if we go that route; just 
let me know
(22.26.50) mattock: then we can decide whether to forward these reporters 
somewhere else, or let the company people handle them in Trac
(22.26.53) pekster: It'll both help the corp side out, and let the GPL hackers 
filter them out
(22.26.58) mattock: yeah
(22.27.33) mattock: taking a quick look at the "bugs since June 1st" list: 
https://community.openvpn.net/openvpn/query?status=accepted&status=assigned&status=new&status=reopened&time=06%2F01%2F13..08%2F22%2F13&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority
(22.27.34) vpnHelper: Title: Custom Query – OpenVPN Community (at 
community.openvpn.net)
(22.28.22) mattock: this one is fixed, right: 
https://community.openvpn.net/openvpn/ticket/320
(22.28.24) vpnHelper: Title: #320 ("Add a new TAP-Windows virtual ethernet 
adapter" doesn't exist anymore) – OpenVPN Community (at community.openvpn.net)
(22.28.42) pekster: Yes, as of today that patch is merged into master
(22.28.47) mattock: ok, I'll close it
(22.29.35) mattock: this is actually more like a patch: 
https://community.openvpn.net/openvpn/ticket/305
(22.29.36) vpnHelper: Title: #305 (configure script fails with static openssl 
libraries) – OpenVPN Community (at community.openvpn.net)
(22.30.28) mattock: any comments on that one?
(22.30.52) mattock: are there any side-effects in doing what the bug reporter 
suggests?
(22.30.56) cron2: no idea
(22.31.28) cron2: we should bring it to openvpn-devel, as there's a few people 
with good autoconf knowledge there
(22.31.32) mattock: yep, let's do that
(22.31.54) mattock: it's getting pretty late here... shall we call it a day?
(22.32.27) cron2: I'd actually like to hear James' opinion on the 
OPENVPN_GUI_VERSION thing
(22.32.37) cron2: jamesyonan: this is 
http://thread.gmane.org/gmane.network.openvpn.devel/7636/focus=7646
(22.32.38) mattock: if we try to have weekly meetings we should be able to 
clear the bug and patch backlogs easily 
(22.32.38) vpnHelper: Title: Gmane Loom (at thread.gmane.org)
(22.32.54) mattock: ah, interesting
(22.33.03) cron2: if someone actually acks things instead of deferring... :-)
(22.33.12) mattock: yep
(22.34.07) cron2: jamesyonan: for Android, and maybe for Windows as well, it 
would be useful to see the GUI version in the server logs, using 
push-peer-info.  We're not exactly sure how to do this "nicely" - so this 
proposed implementation has a special "IV_" string which can the gui set using 
"--setenv IV_OPENVPN_GUI_VERSION whatever"
(22.34.27) cron2: this works and is safe enough, but maybe you have other ideas 
how "it should look like"
(22.35.27) vpnHelper: RSS Update - testtrac: Allow use of NetBeans without 
saving nbproject/ directory. 
<https://github.com/OpenVPN/openvpn/commit/550fe1a3a12ad9affbdff6ab1fc3e846f5e8d0b5>
(22.39.08) mattock: jamesyonan: ^^^
(22.39.13) mattock: any comments?
(22.40.02) waldner: gtg now, thanks everyone and have a good 
$part_of_day_in_your_timezone
(22.40.16) mattock: waldner: thanks to you too!
(22.40.21) mattock: and see you later
(22.40.32) waldner: :) bye
(22.40.38) mattock: I think I'll split too, unless jamesyonan appear fairly 
soon :P
(22.41.08) jamesyonan: hi, I'm here… NetBeans patch looks fine
(22.41.32) mattock: that's merged already
(22.41.41) mattock: can you have a look at cron2's question right above
(22.42.09) ender^ ha abbandonato la stanza (quit: Remote host closed the 
connection).
(22.42.29) ender| [~ender1@2a01:260:4094:1:42:42:42:42] è entrato nella stanza.
(22.46.23) jamesyonan: cron2: agreed that GUI version logging is a good idea
(22.47.53) ngharo: How about this, more verbose TLS logging: 
https://github.com/kdienes/openvpn/commit/c9e78375e13c47c7c279b1f31e853dfe2bcc6d6a
(22.47.54) vpnHelper: Title: tls_ctx_load_ca: Improve certificate error 
messages · c9e7837 · kdienes/openvpn · GitHub (at github.com)
(22.48.03) ngharo: i dont think this one made it to the mailing list or other 
channels
(22.49.45) mattock: ngharo: that's probably true
(22.50.23) cron2: ngharo: can you send it to openvpn-devel@ please?
(22.50.29) ngharo: will do
(22.50.37) mattock: thanks!
(22.52.09) mattock: jamesyonan: I take it the suggested implementation also 
makes sense?

Reply via email to