BadVPN – Blame information for rev 1
?pathlinks?
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. |