BadVPN – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 Version 1.999.130:
2  
3 - Fix TUN/TAP operation with Linux kernel 3.19. See: https://bugzilla.kernel.org/show_bug.cgi?id=96381
4  
5 - ncd: modules/daemon: Implement custom retry time.
6  
7 - ncd: modules/daemon: Fix the "daemon crashed" log message to include module context.
8  
9 - ncd: modules: arithmetic: Don't fail immediately on arithmetic errors, expose their occurrence.
10  
11 - ncd: Add clock_get_ms function.
12  
13 - ncd: Implement a simple checksum function as used in the Sphereo blue tooth protocol.
14  
15 - ncd: socket: Implement support for opening serial ports.
16  
17 - ncd: Implement struct_decode.
18  
19 - ncd: Implement struct_encode function.
20  
21 - ncd: sys.evdev: Provide event code strings for EV_SYN if available.
22  
23 - ncd: modules: blocker: Implement initial_state argument.
24  
25 - ncd: modules: blocker: Expose the up-state as a variable.
26  
27 - ncd: Implement Do-Interrupt.
28  
29 - ncd: Implement Do.
30  
31 - ncd: Implement lazy evaluation in If clause.
32  
33 - ncd: Implement ifel function to support future lazy If.
34  
35 - ncd: Optimize value::append().
36  
37 - ncd: Implement backtrack_point::rgo.
38  
39 - ncd: modules: explode: Pass through external strings (avoid copy).
40  
41 - ncd: modules: explode: Implement compiling search strings.
42  
43 - ncd: modules: parse: Implement parse_hex_number.
44  
45 - ncd: Implement caret syntax sugar. ^a.b.c = {"a", "b", "c"}
46  
47 - ncd: Fix bugs with bad expectations of null-terminated strings.
48  
49 - ncd: Implement object reference infrastructure and objref module.
50  
51 - ncd: Remove ComposedString type along with the buffer module.
52  
53 - ncd: Implement Block syntax as syntax-sugar around inline_code().
54  
55 - ncd: modules: call: Implement inline_code calls.
56  
57 - ncd: modules: call: Fix bug in call_with_caller_target deinit.
58  
59 - ncd: modules: socket: close: Fix completion order vs closing.
60  
61 - ncd: Fix a bug that caused a bad assertion failure in file_write().
62  
63 - ncd: modules: socket: add read() eof variable
64  
65 - ncd: modules: socket: Implement _caller in client process.
66  
67 - ncd: Add --signal-exit-code option.
68  
69 - ncd: Implement syntax sugar @something = "something".
70  
71 - ncd: Fix crash with num_multiply(..., "0").
72  
73 - ncd: Infrastructure for built-in functions and implementation of many such functions.
74  
75 - ncd: Fix bad assertion regarding map values.
76  
77 Version 1.999.129:
78  
79 - ncd: modules: file_open: Fix typo in assertion.
80  
81 - server: Fix bug forgetting to call BSSLConnection_ReleaseBuffers(). Unless threads are enabled, this is an assert failure if NDEBUG is not defined an a non-issue otherwise.
82  
83 - ncd: Look for various programs in PATH instead of hardcoded paths.
84  
85 - Add compile-udpgw.sh.
86  
87 - ncd: modules: net_dns: Implement net.dns.resolvconf() forspecification of arbitrary resolv.conf lines
88  
89 Version 1.999.128:
90  
91 - tun2socks: add option --append-source-to-username to give the SOCKS server the source IP of the connection
92  
93 - tun2socks: IPv6 support, and updated to newer version of lwIP
94  
95 - tun2socks: fix some bugs/crashes
96  
97 - tun2socks, udpgw: transparent DNS forwarding, though no Windows support on udpgw side (contributed by Kerem Hadimli)
98  
99 - NCD: preliminary support for dynamically loading commands
100  
101 Version 1.999.127:
102  
103 - client, server: implement experimental support for performing SSL operations in worker threads. Currently it's rather inefficient.
104  
105 - NCD: modules: value: implement value::append() for appending to a list
106  
107 - NCD: modules: net_iptables: add single-argument form of append and insert commands, allowing for generic use
108  
109 - NCD: modules: net_iptables: implement net.iptables.insert() and net.ebtables.insert()
110  
111 - NCD: modules: sys_start_process: implement options, including username, term_on_deinit and deinit_kill_time
112  
113 - NCD: modules: sys_request_server: implement _caller in request handler
114  
115 - NCD: modules: add getenv()
116  
117 - NCD: modules: daemon: implement options, including username option
118  
119 - NCD: modules: runonce: add new options format with a map, implement username option
120  
121 - NCD: modules: add buffer(), which exposes a buffer with efficient appending and removing from the beginning.
122  
123 - NCD: add a new internal string representation called ComposedString. This allows modules to expose the concatenation of multiple memroy buffers as a single string value, efficiently.
124  
125 - fix many, hopefully all, strict aliasing violations. In particular, this fixes a bug where the DHCP client integrated into NCD won't work correctly, subject to optimization flags.
126  
127 - NCD: modules: sleep: interpret empty string as no sleeping, add sleep(ms_start) with one argument
128  
129 - NCD: modules: add log(), log_r() and log_fr() commands for logging via the BLog system
130  
131 Version 1.999.126:
132  
133 - NCD: modules: sleep: interpret empty string time as no sleeping, add sleep(ms_start) with one argument
134  
135 - NCD: modules: add log module for message logging using the BLog system
136  
137 - NCD: implement the "include" and "include_guard" directives, which allow separating reusable code into files
138  
139 - NCD: modules: call2: implement call_with_caller_target(), which makes it easier to write reusable code that calls back user-provided code
140  
141 - NCD: modules: call2: remove call2_if(), call2_ifelse(), embcall2(), embcall2_if(), embcall2_ifelse()
142  
143 - NCD: modules: add sys.start_process(), which implements starting and controlling external processes and reading/writing their stdout/stdin
144  
145 - tun2socks: implement SOCKS password authentication
146  
147 - NCD: track the depth of values and limit the maximum depth. This avoids stack overflow with very deeply nested values.
148  
149 - NCD: modules: add substr()
150  
151 - NCD: process_manager: add 2-argument start() method which doesn't take a process identifier
152  
153 - NCD: process_manager: allow process identifiers to be any value not just strings
154  
155 - NCD: multidepend, depend_scope: fix immediate effect order when a depend finishes backtracking
156  
157 - NCD: add depend_scope module to do exactly what the multidepend module does, but with separate non-global dependency name scopes
158  
159 - NCD: multidepend: allow dependency names to be any value not just strings
160  
161 - NCD: implement value::insert(what) for appending to a list
162  
163 - NCD: change the format of addresses in sys.request_server() and sys.request_client() to be the same as in the socket module
164  
165 - NCD: add socket module (sys.connect() and sys.listen())
166  
167 - NCD: fix bug where duplicate template/process names would not be detected and weird behaviour would result
168  
169 - NCD: add backtrack_point() for simple backtracking
170  
171 - NCD: add file_open() for more complete file I/O
172  
173 - NCD: implement parse_ipv6_addr() and parse_ipv6_cidr_addr()
174  
175 - NCD: port to Emscripten/Javascript, for the in-browser demo
176  
177 - NCD: many performance and memory usage improvements
178  
179 - NCD: add assert_false()
180  
181 - NCD: don't link to OpenSSL to for random number generator. Use /dev/urandom instead to generate XIDs for DHCP.
182  
183 - NCD: deprecate ip_in_network() and instead add net.ipv{4,6}.addr_in_network(), net.ipv{4,6}.ifnot_addr_in_network()
184  
185 - NCD: implement some IPv6 modules: net.ipv6.addr(), net.ipv6.route()
186  
187 - NCD: support CIDR style addr/prefix addresses in various modules
188  
189 - NCD: recognize Elif and Else with capital first letter to be consistent with other reserved keywords
190  
191 Version 1.999.123:
192  
193 - NCD: performance improvements related to finding modules for statements
194  
195 - NCD: performance improvements related to resolving object names
196  
197 - NCD: performance improvements related to instantiating statement arguments
198  
199 - NCD: add value::replace_this() and value::replace_this_undo()
200  
201 - NCD: add value::reset()
202  
203 - NCD: add value::replace() and value::replace_undo()
204  
205 - Port to compile with MSVC for Windows.
206  
207 - NCD: add Foreach clause
208  
209 - NCD: implement _caller in spawn(), add spawn::join()
210  
211 - NCD: add explode()
212  
213 - NCD: add hard_reboot() and hard_poweroff()
214  
215 - NCD: add file_stat() and file_lstat()
216  
217 - NCD: fix regex_replace() semantics. It was very broken because it did a complete replacement pass for every regex on the list, so it would match parts that have already been replaced, producing unexpected results.
218  
219 - NCD: small performance improvement
220  
221 Version 1.999.121:
222  
223 - NCD: improve error handling semantics; see http://code.google.com/p/badvpn/source/detail?r=1376
224  
225 - NCD: fix assertion failure in sys.evdev() if a device error occurs (e.g. device unplugged) while an event is being processed. Similar fix in some other modules, but these may not be reproducable.
226  
227 - NCD: some more performance improvements
228  
229 - NCD: some performance improvements (~30% faster interpretation of cpu-bound code)
230  
231 - NCD: implemented If..elif..else clause.
232  
233 - NCD: net.backend.wpa_supplicant: fix to work with wpa_supplicant>=1.0
234  
235 Version 1.999.115:
236  
237 - NCD: Many improvements; new statements, including call(), alias(), foreach(), choose().
238  
239 Version 1.999.113:
240  
241 - NCD: when starting child processes, make sure that file descriptors for standard
242 streams are always open in the child, by opening /dev/null if they are not.
243  
244 - Improve build system to allow selective building of components.
245 By default, everything is built, unless -DBUILD_NOTHING_BY_DEFAULT=1 is given.
246 Individual components can then be enabled or disabled using -DBUILD_COMPONENT=1
247 and -DBUILD_COMPONENT=0.
248  
249 - When starting any BadVPN program, make sure that file descriptors for standard
250 streams are always open in the child, by opening /dev/null if they are not.
251  
252 - NCD: net.backend.wpa_supplicant(): add 'bssid' and 'ssid' variables to allow
253 determining what wireless network wpa_supplicant connected to.
254  
255 - NCD: net.backend.wpa_supplicant(): do not require the user to start wpa_supplicant via
256 stdbuf, but do it automatically.
257  
258 Version 1.999.111:
259  
260 - Improved protocol such that peers can use SSL when comminicating via the server. This
261 improves security, as compromising the server will not allow the attacker to see secret
262 data shared by peers (in particular, encryption keys and OTP seeds when in UDP mode).
263  
264 Compatibility is preserved if an only if the following conditions are met:
265 - The server is using the latest version.
266 - If the network is using SSL, all clients using the new version are using the
267 "--allow-peer-talk-without-ssl" command line option.
268  
269 Be aware, however, that using the "--allow-peer-talk-without-ssl" option negates the
270 security benefits of the new SSL support - not only between pairs of peers where one
271 peer is using the old version, but also between pairs where both peers are capable
272 of SSL. This is because the server can re-initialize the pair, telling them not to use
273 SSL.
274  
275 Version 1.999.107:
276  
277 - Added Windows IOCP support, removing the limitation on ~64 connections. This is important
278 for tun2socks, which may have to handle several hundred connections.
279  
280 Version 1.999.105.2:
281  
282 - Fixed an assertion failure in tun2socks related to sending data to SOCKS.
283  
284 Version 1.999.101.3:
285  
286 - Fixed UDP transport on Windows 7 which didn't work (was only tested on XP).
287  
288 Version 1.999.101:
289  
290 - Fixed a protocol issue present in versions <=1.999.100.3. Compatibility is preserved in
291 case of a new server and old clients, but it is not possible to connect to an old server
292 with a new client.