Hi,
Here's the summary of previous IRC meeting.
---
COMMUNITY MEETING
Place: #openvpn-devel on irc.freenode.net
List-Post: openvpn-devel@lists.sourceforge.net
Date: Monday 26th Oct 2015
Time: 20:00 CET (19:00 UTC)
Planned meeting topics for this meeting were here:
<https://community.openvpn.net/openvpn/wiki/Topics-2015-10-26>
The next meeting has not been scheduled yet, but is probably arranged
two weeks from now.
Your local meeting time is easy to check from services such as
<http://www.timeanddate.com/worldclock>
SUMMARY
cron2, jamesyonan, janjust, lev, mattock, plai, ValdikSS and syzzer
participated in this meeting.
---
Discussed the Windows team ideas:
<http://thread.gmane.org/gmane.network.openvpn.devel/10292/focus=10319>
All people present were fine with creating a new #openvpn-windows IRC
channel and Windows-specific forum board. Samuli will discuss both of
these ideas with the people who are actually affected by them (i.e.
people on #openvpn and on forums) before moving forward.
It was also agreed to make OpenVPN-GUI a subproject in GitHub, and to
allow pull requests in the general case. Mattock will take care of the
technical side and co-maintain the repo with d12fk.
--
Talked about the OpenVPN T-shirts. All were in favor of the band T-shirt
style, with a logo and a list of OpenVPN hackathon years and locations.
The names of the locations will follow the English conventions (e.g.
"Munich" instead of "Mũnchen"). We'll wait until we know the location of
the next hackathon (2016) before printing the T-shirts.
--
Talked about the format of Changes.rst:
<https://github.com/OpenVPN/openvpn/blob/master/Changes.rst>
All were fine with the format. However, there is no Changes.rst in
release/2.3 branch, which needs to be fixed. Mattock will create the 2.3
Changes.rst and send in a patch.
--
Discussed the "Add Windows DNS Leak fix using WFP
('block-outside-dns')" patch:
<https://github.com/ValdikSS/openvpn-with-patches/commit/3bd4d503d21aa34636e4f97b3e32ae0acca407f0>
ValdikSS sent an improved version of the patch after the meeting:
<http://thread.gmane.org/gmane.network.openvpn.devel/10419>
There seems to be no way to merge this patch without building separate
installers for Windows XP and Windows Vista (and later). It was decided
to have three different binaries in the future:
1) Windows XP / 32-bit / NDIS5 tap-driver
2) Windows Vista+ / 32-bit / NDIS6 tap-driver / DNS leak fix
3) Windows Vista+ / 64-bit / NDIS6 tap-driver / DNS leak fix
Mattock will take a stab at modifying openvpn-build to support this setup.
---
Full chatlog has been attached to this email.
--
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc
irc freenode net: mattock
(21:02:03) mattock: ok meeting time
(21:02:31) mattock: so lev, valdikss and cron2 are already here
(21:02:33) mattock: who else?
(21:02:37) mattock: https://community.openvpn.net/openvpn/wiki/Topics-2015-10-26
(21:02:38) vpnHelper: Title: Topics-2015-10-26 – OpenVPN Community (at
community.openvpn.net)
(21:03:09) ***syzzer here too
(21:03:22) ***cron2_ is sort-of here, need to finish something first
(21:03:28) cron2_: but looks at the channel
(21:03:29) noko [pa...@gate6.zhovner.com] è entrato nella stanza.
(21:03:50) mattock: hi syzzer!
(21:04:04) syzzer: hi :)
(21:04:05) mattock: I emailed James, just in case he's interested in reviewing
the DNS leak fix
(21:05:35) syzzer: makes sense
(21:05:49) janjust [~janjust@openvpn/community/support/janjust] è entrato nella
stanza.
(21:05:49) modalità (+v janjust) da ChanServ
(21:06:07) janjust: g'evening folks
(21:06:18) syzzer: hi janjust :)
(21:06:25) ValdikSS: cześć!
(21:07:30) mattock: hi janjust!
(21:07:39) cron2_: h
(21:07:41) cron2_: i
(21:07:43) janjust: hi syzzer , mattock1
(21:07:43) cron2_: argh :)
(21:07:45) janjust: and cron2_
(21:07:50) lev__: begroeting!
(21:07:57) janjust: lol
(21:08:16) mattock: we have so many people today
(21:08:22) mattock: a good day for bikeshedding :)
(21:08:32) mattock: I suggest we start from the top while waiting for cron2
(21:08:47) mattock: #1 Windows team ideas
(21:08:52) janjust: the topic of utmost importance is, of course, what to print
on the t shirts
(21:09:01) mattock: yes, agreed :P
(21:09:08) syzzer: janjust, now you're here let me just hijack you ;) did you
find time to look at or test my polarssl counterpart of the
--client-cert-verify patch?
(21:09:14) janjust: it's been keeping me awake at night for days now ;)
(21:09:21) mattock: janjust: :D
(21:09:42) janjust: oops, syzzer , no not yet - I saw your patch but did not
look at the code just yet. will apply patch to my git tree later tonight
(21:10:15) syzzer: ah, ok, interested to hear your comments :)
(21:10:28) syzzer: good, back to the t-shirts then!
(21:10:43) janjust: but, for the windows team idea: I like the idea, feel like
I should spend time on it , perhaps just as tester, but am afraid that I will
not have the time for it that the team deserves
(21:10:57) mattock: well, none of us really do have the time
(21:11:06) mattock: but hopefully some Windows volunteers emerge
(21:11:14) janjust: yup
(21:11:23) janjust: I'll be team mascotte then ;)
(21:11:28) janjust: nah we need a woman for that :P
(21:11:41) ***janjust kicks himself for sexist remark #1
(21:12:21) mattock: so in a nutshell the basic approach is:
(21:12:21) mattock: 1. Separate IRC channel, but #openvpn remains the primary
support channel
(21:12:21) mattock: 2. Separate forum board
(21:12:21) mattock: 3. Put openvpn-gui to GitHub as a subproject (Heiko
suggested this himself)
(21:12:34) mattock: and then we sit back and see if something happens
(21:13:02) mattock: of course I will have to talk about this proposal on forums
and #openvpn before making any moves
(21:13:05) cron2_: no objections from me
(21:13:19) cron2_: it might work, or not, but I'm fairly sure it will not do
*harm*
(21:13:28) janjust: agreed
(21:13:29) mattock: yeah, my thoughts exactly :)
(21:14:00) mattock: if nobody is opposed, we can probably move on to the real
topic of today: T-shirts
(21:14:17) ValdikSS: openvpn-gui should really be on github and mattock1
already has a repo
(21:14:49) mattock: yeah, I can add the openvpn-gui repo myself
(21:14:55) syzzer: that is the easy part, the harder part is, who is going to
maintain that repo/
(21:15:03) mattock: yes
(21:15:35) janjust: not me - I haven't finished git 101 yet ;)
(21:15:43) syzzer: maybe d12fk + mattock1 makes sense
(21:15:46) mattock: I can merge some pull requests / patches, but if actual
code contribution come in, somebody else needs to take a look
(21:16:09) janjust: mattock1, +1
(21:16:40) cron2_: well, I'll give a look, and might see stupid (obviously
stupid) things...
(21:16:58) syzzer: ^^ yeah, I can do that too
(21:17:07) mattock: most excellent!
(21:17:39) mattock: and we might even get somebody interested in co-maintaining
the project in the long run
(21:17:53) mattock: someone new, you never know
(21:18:20) mattock: a guy did some pretty good job with NSIS in openvpn and
openvpn-gui a while back, coming out of nowhere
(21:18:32) mattock: anyways, T-shirts?
(21:18:36) ValdikSS: We should allow github pull-requests and not to force
patches via maillist then
(21:18:46) lev__: totally agree
(21:18:46) mattock: I tend to agree with that
(21:19:45) syzzer: I like the mailinglist actually, but won't object
(21:19:52) mattock: we could do thorough review if the patch in question looks
like it needs one
(21:20:08) mattock: many of the patches are language fixes and such
(21:20:35) ValdikSS: I don't like malilists. I'm not against it, but it's not
really convenient for 2015.
(21:20:52) janjust: #t-shirts: just read the idea of putting the list of
OpenVPN hackathons on the back : great idea!
(21:21:12) cron2_: +1
(21:21:19) janjust: #mailinglists: I'm old fashioned so I prefer mailinglists.
And come guys, we're here using IRC - that's sooooo 80s
(21:21:46) mattock: so many hooks for starting a bikeshedding discussion here :D
(21:22:00) cron2_: valdikss: what the windows team does is up to the windows
team, but dazo and I are very mailing list centric workers, so everything else
is making our workflow much more complex
(21:22:35) mattock: I think the mailing lists are fine, once you've subscribed
(21:22:35) cron2_: like, a github pull request is really "I have to download
the patch to my local machine, test it, merge, it, push it out again" as github
is not the primary repository but only pushed into
(21:22:47) mattock: they're a bit of a hurdle for "I just want to contribute
this one small patch"
(21:23:59) mattock: but having per-subproject contribution rules is fine
(21:24:13) syzzer: sure
(21:24:18) mattock: I think OpenVPN (core) needs more strict rules for what
goes in and how
(21:24:42) mattock: than most of the other subprojects
(21:25:14) syzzer: so, matttock will create the repo, and grant d12fk
superpowers?
(21:25:20) mattock: sounds good to me
(21:25:38) mattock: once d12fk tells me his GitHub account name
(21:25:49) mattock: I can probably guess it, but better safe than sorry
(21:27:16) mattock: so back to the T-shirts
(21:27:26) mattock: is the band T-shirt style ok?
(21:27:43) syzzer: I like it
(21:28:02) syzzer: even though I missed the two Brussels meetings
(21:28:31) cron2_: I like it too :)
(21:28:41) mattock: logo on the front and the "tour list" on the back?
(21:29:01) janjust: perhaps make the list go back to 1966 ;)
(21:29:19) syzzer: just make sure to put the extra e in Muenchen instead of
Brussels ;)
(21:29:57) janjust: but yeah I like the tour list idea. Muenchen? Can't we
add an umlaut? or do it fully in english?
(21:30:57) syzzer: hahaa, the bikeshedding has started! but yes, all in English
is probably better :) I just notice the extra e in Bruessels
(21:31:26) mattock: (james is trying to join, but he has nickserv identify
issues)
(21:31:27) cron2_: English is oK for me, but then "Munich" and "Brussels" :)
(21:31:55) mattock: fully english, no mutants please :P
(21:32:40) mattock: and the idea of converting umlauts in ae, oe and ue is a
horrible convention
(21:33:48) mattock: we can order the T-shirts before the next meetup
(21:33:57) mattock: so that we know the place for 2016
(21:34:11) syzzer: and you don't have to send them ;)
(21:34:35) mattock: yes, although there are probably a few guys who deserve a
shirt and can't make it
(21:34:39) janjust: errr, have we decided on the place for 2016? I'm fine with
Delft again, but I just wasn't aware that we had decided that
(21:34:49) mattock: no, no decisions
(21:34:50) lev__: Helsinki ?
(21:34:54) mattock: that is one option
(21:35:01) mattock: would be quite convenient for me and lev
(21:35:03) cron2_: lev__: so you have the OK from your boss? :)
(21:35:06) syzzer: lev__: you might know this by heart: what will a 2.3 client
do when it gets a P_DATA_V2 packet from a server?
(21:35:09) cron2_: MUC->Helsinki works out
(21:35:26) cron2_: syzzer: I think it should work fine
(21:35:34) lev__: not yet, but I see no reason to get NACK
(21:35:56) cron2_: syzzer: 0e1fd33247460bdfa65d306e8bcdd3cbafed8b73
(21:36:04) mattock: good, openvpn-speak spreading into real life
(21:36:23) cron2_: (if more recent than 2.3.6 or so, older versions will not
advertise IV_PROTO=2)
(21:36:39) cron2_: ((and "not understand the packet, and throw a tantrum", or
so))
(21:37:37) syzzer: ah, thanks. Looks like they will process it just fine
indeed :)
(21:37:43) cron2_: Acked-by: Steffan Karger <steffan.kar...@fox-it.com>
(21:37:46) cron2_: :)
(21:37:58) syzzer: I was wondering whether they would just be able to send or
could also receive
(21:38:22) syzzer: (thinking about what to do with all the mixed modes wrt AEAD)
(21:39:00) cron2_: well, they won't support these bits... only peer-id, no
AEAD, no COMP_V2
(21:39:24) syzzer: re location: Helsinki works for me too, and if it's not
possible, I'm happy to receive you once more in Delft
(21:40:03) cron2_: jftr, another year in Munich would be fine for me ("much
easier on the traveling" :) ) and I think Heiko also offered to host
(21:40:18) cron2_: Delft was nice, so I'm fine going there again... many optiosn
(21:40:19) mattock: yeah, heiko did that
(21:40:27) syzzer: no, but for AEAD mode it might make sense to make the server
always send V2 packets if the client supports it
(21:40:28) mattock: we can throw the dice if we can't decide
(21:40:37) mattock: plus we don't have to decide _now_
(21:40:39) mattock: :)
(21:40:47) janjust: exactly
(21:41:40) lev__: I try to get an ACK before spring 2016
(21:42:15) mattock: sounds good
(21:42:38) lev__: it is still 2015, isn't it?
(21:42:53) syzzer: I hope so...
(21:43:01) janjust: we just switched to winter time so it's 2016 :P
(21:43:04) cron2_: "date" agrees with me
(21:43:07) cron2_: 2015!
(21:44:16) mattock: yep, in /bin/date we trust
(21:44:36) mattock: shall we move on to topic #3, "Changes.rst"?
(21:45:30) cron2_: ok
(21:45:30) syzzer: it's in, right?
(21:45:54) cron2_: I think the question is "are we fine with what we have for
2.4 now, and what should be in changes.rst for 2.3"
(21:46:54) mattock: I have not actually had a look, but will do now
(21:47:07) syzzer: https://github.com/OpenVPN/openvpn/blob/master/Changes.rst
(21:47:08) vpnHelper: Title: openvpn/Changes.rst at master · OpenVPN/openvpn ·
GitHub (at github.com)
(21:48:16) syzzer: it would be nice to maintain one for 2.3 too, but that would
also mean synchronising between 2.3 and master I think?
(21:48:47) cron2_: yeah, that puts a bit of burden on dazo and me
(21:49:06) syzzer: yes
(21:49:13) cron2_: "stuff that goes into 2.3 *and* has user-visible effects
needs to be hand-fitted to Changes.rst"
(21:49:21) cron2_: (because a patch wont apply)
(21:50:03) mattock: yep, it would get nasty
(21:50:17) mattock: another reason to release 2.4 a.s.a.p. so that we can ditch
2.3 :)
(21:50:18) cron2_: but I'm fine to do that - part of the release process
("ChangeLog, Changes.rst, version.m4, tag, ship")
(21:50:33) cron2_: mattock1: it will be the same for 2.5/master vs. 2.4 after
that :)
(21:50:56) mattock: oh yes, so there's no pot of gold at the end of the 2.4
rainbow
(21:51:12) cron2_: a small one :)
(21:51:16) mattock: :)
(21:51:55) mattock: ok so are we going to make a Changes.rst for 2.3?
(21:51:57) cron2_: as I'm a bit busy these days I would welcome a Changes.rst
for 2.3 based on the actual changes in there
(21:52:00) cron2_: yes!
(21:52:37) mattock: hmm, I believe the original 2.3 release announcement(s)
might have a crude list we could start from
(21:52:37) cron2_: I'm happy to maintain it, just the initial "go through
changelog and find report-worthy changes" would benefit from someone else
getting this started
(21:53:21) mattock: this is a good resource, very little noise:
http://news.gmane.org/gmane.network.openvpn.announce
(21:53:22) vpnHelper: Title: Gmane Loom (at news.gmane.org)
(21:53:28) methamp [m...@greyhat.pw] è entrato nella stanza.
(21:53:31) mattock: I can compile a proposal list
(21:53:46) syzzer: just send a patch ;)
(21:53:51) cron2_: I was about to say that :)
(21:54:01) mattock: well, I can do that
(21:54:09) syzzer: gets you one more commit in the repo :p
(21:54:41) syzzer: other than that, I think the format is fine like this
(21:54:42) mattock: then I can brag about it in a bar
(21:54:45) mattock: sounds good
(21:54:47) cron2_: :)
(21:55:12) mattock: so next topic: patch review?
(21:55:32) ValdikSS: By the way, there is another serious topic to discuss:
should OpenVPN drop Windows XP support?
(21:55:42) cron2_: we already did
(21:55:47) ValdikSS: Oh
(21:55:49) cron2_: 2.4 will no longer run on XP
(21:56:02) cron2_: 2.3 will continue to support XP as long as we can
(21:56:28) cron2_: (the problem is that some of the IPv6 API calls -
GetIpRoute2() and friends - are not supported on XP, and working around that is
more painful than we could be bothered, for an end-of-life os)
(21:56:35) mattock: =until supporting Windows XP would require significant work
on our part
(21:58:46) ValdikSS: Should we review my patch then?
(21:58:56) cron2_: is it on the list?
(21:59:12) ValdikSS: on the topic list but not on the maillist
(21:59:29) mattock: it was linked to this channel yesterday I believe
(21:59:52) mattock:
https://github.com/ValdikSS/openvpn-with-patches/commit/3bd4d503d21aa34636e4f97b3e32ae0acca407f0
(22:00:09) ValdikSS: Currently it won't work if server doesn't push dhcp-option
DNS or user doesn't set it in the config. As lev__ mentioned, user can set DNS
on the interface statically and I'm in doubt how should OpenVPN handle this —
ignore block-outside-dns as it does right now, block outside dns always even
without DNS or check it somehow.
(22:00:42) cron2_: I think it should do what it's told: "block DNS if
block-outside-dns is requested"
(22:01:49) cron2_: meh, if this is vista and up, it can't go into 2.3
(22:02:11) ValdikSS: Windows XP doesn't support WFP
(22:02:50) janjust: the patch only really applies to 8.1 and higher anyway,
right?
(22:02:56) ValdikSS: Yes.
(22:03:01) mattock: yeah
(22:03:10) ValdikSS: More to 10, as in 8.1 you can disable Smart DNS.
(22:03:11) cron2_: but that implies "building two different installers for 2.3,
at least"
(22:04:08) methamp: Maybe I should've posted this to -devel and not the main
channel. Is OpenVPN Connect still broken on iOS 9?
(22:04:14) mattock: no more 2.3 installers please... there are already NDIS 5
and NDIS 6 tap-driver versions
(22:04:21) methamp: I'm on what I believe is the latest version and while the
VPN looks like it's connected, no traffic is actually routed through it. Been
flipping through forum threads all day.
(22:04:29) ValdikSS: methamp: I believe it is.
(22:04:36) cron2_: methamp: just look into trac before spamming an ongoing
discussion
(22:04:38) mattock: methamp: we're having a meeting, but valdikss is probably
right
(22:04:42) ValdikSS: methamp: https://community.openvpn.net/openvpn/ticket/614
here's a workaround
(22:04:43) vpnHelper: Title: #614 (Connect on iOS 9: IPv4 routing doesn't work
with dual-stack) – OpenVPN Community (at community.openvpn.net)
(22:05:04) ValdikSS: methamp: just push 2 routes instead of redirect-gateway.
(22:06:17) cron2_: ValdikSS: well, the patch on the openvpn side of things
looks reasonable. win32.h definitely needs explanations what these magic
DEFINE_GUID things are good for
(22:06:57) cron2_: I wonder why you're not passing the adapter index right
away, and call win_adapter_index_to_luid() inside...
(22:07:01) ValdikSS: cron2_: actually, I'm not sure if this is only my mingw
which doesn't include that GUIDs or just mingw doesn't have them at all.
(22:07:29) methamp: If I understand this correctly, it's an OpenVPN server fix?
(22:07:37) methamp: Meaning, as an end-user of someone else's VPN I can do
nothing?
(22:07:49) cron2_: methamp: complain to the server operator and point to this
trac ticket
(22:08:07) methamp: Oh, jesus.... I might as well look for an alternative
OpenVPN client if one exists. My provider will not fix this anytime soon.
(22:08:18) ValdikSS: cron2_: hrmm, you're right, I should move luid to the
existing function.
(22:08:18) methamp: And I just left a provider that had their own custom client
:-x
(22:08:35) ValdikSS: methamp: add to your config: route-nopull route 0.0.0.0/1
route 128.0.0.0/1
(22:09:42) cron2_: mattock1: since methamp has so politely interrupted the
conversation anyway - have you heard anything from James about #614? He should
be argueing with Apple about this...
(22:10:35) ValdikSS: cron2_: just FYI, replacing redirect-gateway with routes
works perfectly fine with dual-stack.
(22:11:02) janjust: ValdikSS, those 2 routes just mean "redirect-gateway def1"
right?
(22:11:16) mattock: cron2: I only know that Aplle should fix it, and that we
have no clue when / if that happens
(22:11:18) methamp: cron2_: I apologize for chatting here as a basic user --
unfortunately, the main channel seemed fairly dead and this isn't a firewall
issue.
(22:11:22) methamp: Thank you for your time.
(22:11:26) ValdikSS: janjust: they technically work as redirect-gateway def1,
but works on apple.
(22:11:31) mattock: methamp: take care!
(22:11:39) cron2_: methamp: it's not the "chatting as user" but "interrupting
an ongoing discussion"
(22:11:46) mattock: =a community meeting
(22:11:54) mattock: scheduled one to be exact
(22:12:12) methamp: I didn't get the memo. I'll stop typing now.
(22:12:12) cron2_: mattock1: so he already raised the issue - this is important
to know :)
(22:12:32) mattock: methamp: np
(22:12:41) cron2_: methamp: it's basic well-behaviour: before starting to type,
look what's happening. If this looks like a discussion, maybe wait for it to
end?
(22:12:43) ValdikSS: Well, I don't think that's an issue. We should use another
channel if we don't want to get interruped.
(22:12:47) mattock: ok so back to the WIndows 10 DNS fix
(22:12:55) cron2_: it was really impolite and inconsiderate
(22:13:04) ValdikSS: I don't think so. Whatever.
(22:13:22) cron2_: well, I completely lost track of my review, so thanks a lot
(22:13:25) ***cron2_ goes fetch a beer now
(22:13:27) mattock: let's not sabotage our own discussion any further
(22:13:34) mattock: now there's an idea :)
(22:13:52) mattock: it seems jamesyonan is unable to join, nickserv is playing
tricks with him
(22:14:40) ValdikSS: Should block-outside-dns use OPT_P_IPWIN32 to make it
possible to ignore server push with route-nopull?
(22:15:33) ValdikSS: Should it always block outside DNS even if no DNS is
assigned?
(22:15:46) ValdikSS: no DNS inside tunnel*
(22:16:58) syzzer: ValdikSS: yes, I think it should. I the user doesn't want
to block, (s)he should simply not push or enable the option
(22:17:21) janjust: mattock1, I've created a channel #openvpn-meeting, can
james connect to that?
(22:17:30) mattock: janjust: I'll ask
(22:17:43) ValdikSS: Well, it should be blocked with route-nopull then
(22:18:19) ValdikSS: I just think about it from a point of view of VPN service.
User may want to do route-nopull and not to have blocked DNS.
(22:19:21) syzzer: makes sense to me (but, I'm not really the networking
authority here...)
(22:19:48) mattock: cron2: thoughts?
(22:20:12) mattock: guys: jamesyonan joined #openvpn-meeting channel
(22:20:14) cron2_: IPWIN32 is good
(22:20:16) janjust: all: I've created a channel #openvpn-meeting where james
could join
(22:20:19) mattock: let's move over there
(22:20:29) mattock: he has vested interested in ValdikSS's patch
(switched to #openvpn-meeting channel)
(22:18:17) janjust: hiya, there should be no restrictions on this channel AFAIK
(22:18:27) mattock: hi, I asked james to join this one
(22:19:37) jamesyonan [~jamesy...@c-67-166-32-18.hsd1.co.comcast.net] è entrato
nella stanza.
(22:19:42) syzzer: ah, there we go!
(22:19:44) janjust: hi james!
(22:19:50) janjust: let's get the rest into this channel
(22:19:54) jamesyonan: hi guys
(22:19:59) mattock: hi jamesyonan!
(22:20:00) ValdikSS [~valdikss@95.215.45.33] è entrato nella stanza.
(22:20:24) cron2_ [~gert@openvpn/community/developer/cron2] è entrato nella
stanza.
(22:20:27) cron2_: hey
(22:20:37) mattock: hi all
(22:20:44) ValdikSS: hello
(22:20:45) mattock: jamesyonan:
https://community.openvpn.net/openvpn/wiki/Topics-2015-10-26
(22:20:57) mattock: we just started discussing this patch:
https://github.com/ValdikSS/openvpn-with-patches/commit/3bd4d503d21aa34636e4f97b3e32ae0acca407f0
(22:21:21) lev__ [~l...@stipakov.fi] è entrato nella stanza.
(22:21:28) lev__: hello
(22:22:59) janjust: perhaps we should always use a channel like this for
meetings - keeps out the riff raff ;)
(22:24:20) jamesyonan: so does this patch work by simply firewalling off the
non-tap interfaces for DNS traffic?
(22:24:34) mattock: janjust: that would work for me
(22:24:34) ValdikSS: yes
(22:25:05) ValdikSS: it filters only exactly that tap interface that openvpn
instance uses.
(22:25:38) mattock: will this work on multiple simultaneous OpenVPN connections?
(22:25:42) ValdikSS: yes.
(22:25:55) jamesyonan: is this the main issue with OpenVPN DNS on Win 10 or
other there other DNS issues as well?
(22:26:35) ValdikSS: I don't know of any other issues regarding DNS on 10.
(22:29:23) jamesyonan: ValdikSS: this is great, thanks for figuring this out
(22:29:36) mattock: any issues with the patch itself?
(22:29:47) ValdikSS: So I should 1. drop win_adapter_index_to_luid and move
it's code to win_wfp_block_dns, 2. always block DNS even if it's not set
(22:30:05) lev__: well, I'd like to test it more
(22:30:06) jamesyonan: what about building on pre-Vista -- will this code
#ifdef itself out?
(22:30:28) ValdikSS: I'm afraid it won't
(22:30:39) ValdikSS: Are there any defines for Windows XP only?
(22:33:03) ValdikSS: And regarding merging it into 2.3 — this is really needed
only on Windows 8.1 and higher and not really on XP.
(22:33:13) jamesyonan: well if you were building for XP, you'd be using a lower
platform SDK version (7.1A I believe)
(22:33:21) ValdikSS: Or it's a rule that all the functions should work with any
Windows versions?
(22:33:22) cron2_: there's NTDDI_VERSION which is >= NTDDI_VISTA if you have,
well, vista and up
(22:33:47) cron2_: ValdikSS: the rule is "we only build a single openvpn.exe
which should work on XP, since we still support XP"... which is a bit
problematic here
(22:34:32) cron2_: so to get this in, you'd need to convince mattock1 to start
building "XP-only" and "vista and up" installers now
(22:34:34) ValdikSS: cron2_: Oh, I though that Windows XP and Vista+ packages
have different openvpn.exes. Do they have only different tap adapter drivers?
(22:34:49) cron2_: only different TAP driver (plus 32/64 bit bundles)
(22:34:59) ValdikSS: I see.
(22:35:10) jamesyonan: I've been finding with my recent work porting OpenVPN 3
to windows, that's its often more convenient to build separate versions of
binaries for XP and Vista+
(22:35:44) mattock: yeah, and having eight different flavors of openvpn
installers (bitness/tap-driver/this patch) does not make sense
(22:35:47) mattock: we have four already
(22:36:19) syzzer: can we drop the NDIS5 by now?
(22:36:25) mattock: not if we want to support XP
(22:36:32) mattock: it only supports NDIS5
(22:36:51) cron2_: I could see an "XP+NDIS5" and "Vista+NDIS6" bundle (and both
in 32/64)
(22:37:03) syzzer: ^^ yes, that
(22:37:18) mattock: that would make sense
(22:37:22) jamesyonan: with openvpn 3, we're supporting XP, and it looks like
we'll have three binaries in the installer : XP 32-bit, Vista+ 32 and 64 bits
(22:37:48) mattock: yeah, only some random guy is using XP 64-bit
(22:37:50) ValdikSS: I have 7,35% visitors with Windows XP on my Russian
website.
(22:38:18) ValdikSS: AFAIK Windows XP is still huge in China.
(22:38:27) mattock: yep, pirated versions
(22:38:44) ValdikSS: In Russia, too.
(22:39:18) ValdikSS: I even have 2 users from Windows 2000.
(22:39:19) mattock: so there is no way to merge the DNS fix without producing
different binaries for XP and Vista?
(22:39:22) ValdikSS: with*
(22:39:23) mattock: :)
(22:39:41) ValdikSS: mattock1: I'm afraid you're right.
(22:40:00) jamesyonan: well we would already need to have 32 vs. 64 bits, so
adding a third option shouldn't be a big deal
(22:40:06) ValdikSS: But I don't think that's a huge problem since we have
different installers anyway.
(22:40:11) mattock: that might require quite heavy amending of openvpn-build,
but it should be doable
(22:40:36) mattock: openvpn-build works in a bit straightforward fashion, but
I'll have a look
(22:40:58) mattock: so there are a few changes that have to be made, and lev
wants to test this patch a bit more
(22:41:10) mattock: and I'll have a look at what needs to be done at the
installer / build end
(22:41:22) mattock: anything else about this patch?
(22:42:04) ValdikSS: It's not very efficient since it adds additional rules if
there is another openvpn instance is running, but I don't know how to solve it
(22:42:51) ValdikSS: Well, I know how to solve it, with all filters
enumeration, but that would add additional code.
(22:42:57) mattock: but adding the rules in one-time task at connection time?
(22:43:39) ValdikSS: Right now it add rules to block svchost.exe every time.
(22:44:00) syzzer: when will the rules get removed?
(22:44:42) ValdikSS: I mean, if you run 2 openvpns in parallel, it would add 2
firewall subclasses, each of them blocks svchost and allows tap adapter
(22:44:48) jamesyonan: are there any performance issues? such as time to add
and remove the rules?
(22:44:56) lev__: it also missing library references to vcxproj file but that's
not a showstopper
(22:45:09) ValdikSS: Ideally it should detect another running openvpn and add
only permit rule for another tap
(22:45:30) ValdikSS: I don't think this is a performance issue, more like a
"not ideal code" issue.
(22:45:49) ValdikSS: I mean, you definitely won't spot any performance
differences
(22:45:59) ValdikSS: Maybe on 10gbit+ links only
(22:46:01) mattock: is the rule-adding function (or rather, the firewall thing)
reliable?
(22:46:07) jamesyonan: I don't think very many people run concurrent tunnels
(22:46:08) mattock: or could it, say, hang and block openvpn
(22:46:22) ValdikSS: No, all the functions are non-blocking
(22:46:30) mattock: ok
(22:46:42) mattock: so in the worst case DNS leakage does not get fixed
(22:46:46) ValdikSS: I checked some cases like when the internet connection
suddenly drops and it works fine.
(22:46:59) ValdikSS: Doesn't block openvpn from reconnecting
(22:47:22) ValdikSS: Oh, another important thing. This code is written in a way
that all the errors are non-fatal
(22:47:25) ValdikSS: Is this correct?
(22:47:35) jamesyonan: do the firewall rules automatically disappear when TAP
interface goes down, or do they need to be manually removed?
(22:47:40) ValdikSS: Like, if we can't block outside DNS, it would produce only
warning.
(22:48:04) ValdikSS: jamesyonan: They disappear on disconnect or crash.
(22:48:16) ValdikSS: jamesyonan: If openvpn.exe crashes, firewall rules are
cleared.
(22:49:00) ValdikSS: jamesyonan: didn't test it when tap interface suddenly
does down.
(22:49:06) jamesyonan: ValdikSS: I tend to use this to bracket Vista+ code: #if
_WIN32_WINNT >= 0x0600
(22:49:48) jamesyonan: MS headers don't set this automatically though, because
they want you to tell them what is the minimum Windows version being targetted
(22:50:08) jamesyonan:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
(22:51:25) ValdikSS: jamesyonan: thanks for the hint, i'll try to use it
(22:52:09) ValdikSS: I need someone to test if their mingw versions have that
GUIDs defined or it's only my (probably outdated) mingw version
(22:52:47) mattock: valdikss: just let me know what needs to be done
(22:52:57) cron2_: the mingw64 version shipped with ubuntu 14 seems to be
fairly up to date
(22:53:19) ValdikSS: mattock1: remove all DEFINE_GUID in win32.h and try to
compile
(22:53:37) mattock: ok
(22:54:22) mattock: so I suppose we can't really give a (preliminary) ACK at
this point, right?
(22:54:37) mattock: we're approaching the two-hour limit
(22:55:13) jamesyonan: ValdikSS: what did you mean when you said "I know how to
solve it, with all filters enumeration, but that would add additional code"
(22:55:46) ValdikSS: jamesyonan: there is no api call to search sublayer by name
(22:56:09) jamesyonan: is this for detecting other tap instances?
(22:56:40) ValdikSS: jamesyonan: well, the proper way is to add only one
sublayer for all running openvpn instances
(22:56:57) ValdikSS: jamesyonan: it should block svchost.exe only once and add
all allowed tap adapters
(22:57:23) ValdikSS: jamesyonan: right now every instance adds its own sublayer
which blocks svchost.exe
(22:57:37) ValdikSS: jamesyonan: so it's just a duplicate of firewall rules
(22:58:17) jamesyonan: so it's only an issue with multiple tap instances?
(22:58:39) ValdikSS: I still not sure if it's really an issue. What all of you
think?
(23:00:36) jamesyonan: I would tend to think your current approach is okay
(23:01:03) mattock: so the additional code would be to list all filters, parse
the list and see if the rules that are about to be added already exist?
(23:01:18) mattock: and if the exist, not add them
(23:01:51) mattock: if so, just adding possibly redundant rules (in case there
are multiple openvpn instances) is probably not any worse
(23:02:14) ValdikSS: mattock1: yes.
(23:02:40) ValdikSS: mattock1: and it should delete or not delete that rules on
termination
(23:02:52) jamesyonan: doesn't it seem cleaner though to have each tap
interface have its own separate rules?
(23:03:33) jamesyonan: if different tap interfaces were sharing the same rules,
might that introduce race conditions for creation/deletion?
(23:03:38) ValdikSS: I just understood another problem. If we have more than
one openvpn instance, another instance could have problems with reconnecting
(23:04:24) ValdikSS: One instance would block svchost.exe and another instance
would have problem resolving domain name
(23:05:34) ValdikSS: Not sure how to solve this problem without shared bus with
multiple openvpn instances
(23:06:24) jamesyonan: well I think if you were running multiple tunnels, that
certain options could only make sense on one of the tunnels, such as
redirect-gateway and DNS forwarding
(23:07:39) jamesyonan: which is one of the reasons why I suspect multiple
concurrent tunnels is a rare use case
(23:09:11) jamesyonan: I assume this code requires admin privileges?
(23:09:34) ValdikSS: jamesyonan: yes.
(23:10:09) ValdikSS: So, should this code fail with a non-fatal error or should
it terminate openvpn?
(23:11:51) jamesyonan: maybe block-outside-dns should have a parameter for
optional or required?
(23:12:05) jamesyonan: to control whether failure is fatal
(23:13:24) ValdikSS: And another question: should this code be ansi-compatible,
or unicode only?
(23:13:39) jamesyonan: are those GUIDs unique to your code, or are they
well-known GUIDs from Windows?
(23:14:10) jamesyonan: what sort of strings are you dealing with?
(23:15:08) ValdikSS: jamesyonan: that one from win32.h? They are well-known
GUIDs, I got it from visual studio.
(23:15:38) ValdikSS: jamesyonan: functions like GetSystemDirectoryA/W, TCHAR vs
wchar_t
(23:15:51) jamesyonan: so they should be #ifdefed out when building with visual
studio?
(23:17:16) jamesyonan: Unicode is probably better.
(23:17:32) ValdikSS: jamesyonan: probably yes.
(23:17:40) ValdikSS: I didn't test with visual studio
(23:18:08) mattock: I have to split, it's getting late
(23:18:23) mattock: feel free to go on, though
(23:18:31) jamesyonan: ok, thanks guys
(23:18:55) ValdikSS: we should leave this patch and continue
(23:18:57) jamesyonan: I will probably be able to test this in the context of
openvpn 3
(23:18:59) lev__: I compiled that patch with Visual Studio
(23:19:09) plai [~arne@openvpn/community/developer/plaisthos] è entrato nella
stanza.
(23:19:16) ***plai is back from Sports!
(23:19:18) mattock: oh plaisthos
(23:19:21) mattock: hi plai!
(23:19:25) plai: but meeting is probably over ;)
(23:19:27) ValdikSS: lev__: without commenting guids in win32.h?
(23:19:33) mattock: yeah, almost at least
(23:19:34) janjust: hi arne, nope still going strong
(23:19:51) mattock: those who have the endurance are still here
(23:20:04) lev__: ValdikSS: yeah, MSVS 2013
(23:20:12) mattock: I will split now, but I'll check what happened here
tomorrow morning and send the summary
(23:20:13) mattock: buy!
(23:20:15) mattock: sorry
(23:20:19) mattock: bye! :)
(23:20:19) jamesyonan: or those on western hemisphere time
(23:20:25) mattock: yeah
(23:20:45) ***syzzer still lurking...
(23:23:45) lev__: cron2_: are you planning to merge server restart notification
patch
(23:24:11) cron2_: you keep asking and I will continue to give the same answer
(23:24:42) cron2_: "yes, as time permits, unless i find something that plai
overlooked in reviewing" (which is unlikely, though)
(23:25:05) cron2_: what about plai's remark about a followup patch to not
accept new connections after "GO AWAY, CLIENT!" has been sent?
(23:25:50) lev__: I agree that it makes sence
(23:25:53) lev__: sense
(23:26:45) lev__: will implement, just have to find a correct way of doing it
(23:30:41) lev__: it is a bit more than one flag in multi_context (or whatever
it is called which holds all multi_instances) "i am shutting down"
(23:59:39) ValdikSS: Is the meeting over?
(23:59:57) syzzer: usually mattock1 is the one to call the meeting over
(27/10/2015 00:00:39) syzzer: but I think it is, yes...
(00:01:26) syzzer: must be really late in Moscow by now
(00:01:30) janjust: I'm out... I need to install a new version of OpenVPN for
Android ;)
(00:01:39) ValdikSS: Just made v2 of block-outside-dns, if anyone interested
https://github.com/ValdikSS/openvpn-with-patches/commit/ce580f983345dfbb8d900df2fb1b1300569c1f17
(00:01:56) syzzer: you should probably send it to the list
(00:03:24) ValdikSS: syzzer: ok I will
(00:07:33) syzzer: ok, I'm out too :)
(00:07:35) syzzer: good night!
(00:08:32) plai: good night