Only one round of reading bits out of urandom;
[tinc] / ChangeLog
1 2000-02-07  Guus Sliepen    <guus@sliepen.warande.net>
2
3         * Version 0.3.3
4
5         * src/net.c: fixed add_mac_addresses to work with the latest
6           kernels. Requires properly set up MAC address of the tap
7           device and some changes to config file.
8
9 1999-10-20  Ivo Timmermans  <zarq@iname.com>
10
11         * src/net.c (add_queue), src/net.h: removed `prev' element
12
13 1999-09-17  Ivo Timmermans  <zarq@iname.com>
14
15         * configure.in: define __USE_BSD, used in lib/xmalloc.c
16
17 1999-08-23  Ivo Timmermans  <zarq@iname.com>
18
19         * src/tincd.c (detach): initialize xalloc_fail_func
20
21         * src/protocol.c (key_changed_h): use key_changed_t
22
23 1999-08-20  Ivo Timmermans  <zarq@iname.com>
24
25         * Version 0.3
26         
27         * cipher/Makefile.am src/Makefile.am: remove the -ansi -Wall
28         compiler flags
29
30 1999-08-19  Ivo Timmermans  <zarq@iname.com>
31
32         * src/net.c: made some messages more userfriendly
33         (xsend, xrecv): the right amount of bytes
34         (handle_tap_input): check for short IP packets
35
36         * cipher/cipher.c (do_encrypt): calculate out->len the readable
37         way; added two bytes to in->len in calculation
38
39 1999-08-15  Ivo Timmermans  <zarq@iname.com>
40
41         * Version 0.2.26
42         
43         * src/net.c (send_packet): open an udp socket if necessary
44         (setup_vpn_connection): set status.dataopen to 1
45         (write_n): new function, called from xrecv
46
47         * src/protocol.c (add_host_h): don't open a data connection yet
48
49         * src/net.h: new status flag `dataopen'
50
51         * src/net.c, src/protocol.c, src/tincd.c: revisited syslog
52         messages
53
54         * src/net.c (flush_queue): largely copied from prune_conn_list in
55         netutl.c
56         
57 1999-08-13  Ivo Timmermans  <zarq@iname.com>
58
59         * src/protocol.c (ans_key_h): test if the key's for us with an
60         exact match
61
62 1999-08-12  Ivo Timmermans  <zarq@iname.com>
63
64         * src/net.c (send_packet): add two more bytes to the queue
65         (send_broadcast_ping): remember time
66         (main_loop): test for timeout even when select didn't timeout
67
68         * src/netutl.h (dump_conn_list): added proto for dump_conn_list
69
70         * src/tincd.c (make_names): use CONFDIR as base directory, from a
71         patch by James
72         (sigusr2_handler): new function, call regenerate_keys
73         (setup_signals): install sigusr2_handler
74
75         * src/net.c (xrecv): write two more bytes to the tap device
76
77         * src/Makefile.am: define CONFDIR
78
79         * src/netutl.c (lookup_conn): check for exact match first
80
81 1999-08-08  Ivo Timmermans  <zarq@iname.com>
82
83         * src/net.c (send_packet): do not check for our own idea of an
84         expired key, we would have known about this anyway, via the
85         KEY_CHANGED request.
86
87         * Version 0.2.25
88
89         * Did some rechecking on the debuglevels
90
91         * src/protocol.c (notify_one): call getsockopt
92         (ack_h): check if another request follows me
93         (add_host_h): idem
94
95         * src/netutl.c (prune_conn_list): rewritten
96
97         * src/protocol.c (del_host_h): return 0 when deleting someone that
98         we do not know of, as this is not fatal.
99
100         * src/net.c (close_network_connections): moved the send_termreq
101         over to where it belongs
102
103         * src/netutl.c (dump_conn_list): new function, called from
104         sigusr1_handler
105
106         * src/tincd.c (sigusr1_handler): new function
107
108 1999-08-07  Ivo Timmermans  <zarq@iname.com>
109
110         * Version 0.2.24
111
112         * doc/tincd.conf.5: added documentation for the KeyExpire value
113
114         * src/tincd.c (sigsegv_handler): act nicely on a second segv
115
116         * src/encr.c (recalculate_encryption_keys): new function, called
117         from regenerate_keys
118
119         * src/protocol.c (set_keys): alloc strlen(ek) instead of k->len
120         bytes for encryption key
121
122         * src/protocol.h: added prototype for send_key_changed2
123
124         * src/protocol.c (send_key_changed): new function
125         (key_changed_h): new function
126         (send_key_changed2): new function
127
128         * src/protocol.h: new request type: KEY_CHANGED
129
130         * src/tincd.c (sigsegv_handler): ignore any following SIGSEGV's
131
132         * cipher/cipher.h: add prototype for cipher_init
133
134         * src/net.c (send_packet): check for expiring keys
135         (handle_incoming_vpn_data): idem
136
137         * src/protocol.c (send_key_answer): use `my_key_expiry'
138
139         * src/encr.c (generate_private_key): adjust my_key_expiry
140         (regenerate_keys): new function
141
142         * src/conf.c: add configure option `KeyExpire'
143
144         * src/encr.c: add key expiration times
145
146 1999-08-05  Ivo Timmermans  <zarq@iname.com>
147
148         * Version 0.2.23
149         
150         * I don't know what I did, but at least everything seems to work
151         ok now :) Have a look at the diff to know what's changed.
152
153 1999-08-03  Ivo Timmermans  <zarq@iname.com>
154
155         * src/protocol.c (public_key_h): moved the `Connection activated'
156         message over to send_ack
157
158         * src/net.c (send_packet): add 4 bytes less to the sendqueue
159         (twice)
160
161 1999-08-02  Ivo Timmermans  <zarq@iname.com>
162
163         * src/net.c (add_mac_addresses): switched 30 and 26 in indices, as
164         Hans suggested
165
166         * src/netutl.c (prune_conn_list): changed, partly from a patch
167         from Hans
168
169         * src/tincd.c (detach): added debug level in startup message
170
171 1999-06-18  Ivo Timmermans  <zarq@iname.com>
172
173         * doc/Makefile.am: removed design* from build process
174
175         * configure.in: added __USE_BSD define for libc5 systems
176
177 1999-05-09  Ivo Timmermans  <zarq@iname.com>
178
179         * doc/tinc.texi: merged with design.texi
180
181 1999-05-08  Ivo Timmermans  <zarq@iname.com>
182
183         * doc/Makefile.am: included tinc.texi
184
185 1999-05-05  Ivo Timmermans  <zarq@iname.com>
186
187         * cipher/cipher.c, cipher/cipher.h, src/encr.c: replaced all
188         occurrences of `cypher' by `cipher'
189
190 1999-04-16  Ivo Timmermans  <zarq@iname.com>
191
192         * AUTHORS: added acknowledgements for Martin Schulze and Eric
193         Young
194
195         * TODO: updated a little
196
197 1999-04-11  Ivo Timmermans  <zarq@iname.com>
198
199         * Version 0.2.22
200
201         * src/encr.c (free_key): return if key == NULL
202
203         * src/protocol.c (send_del_host): new function
204         (del_host_h): new function
205         (termreq_h): call notify_others(..., send_del_host)
206         (add_host_h): update call to notify_others
207
208         * src/netutl.c (free_conn_element): call free_key twice
209
210         * src/encr.c (free_key): new function, updated encr.h
211
212         * src/netutl.c (free_conn_element): free the send/recv queues
213         (destroy_queue): new function, called by free_conn_element
214         (destroy_conn_list): use free_conn_element
215
216         * src/protocol.h: new request DEL_HOST, new typedef del_host_t
217
218         * placed some random comments
219
220         * src/net.c (strtoip): moved to netutl.c; updated net.h and
221         netutl.h
222
223         * src/protocol.c (notify_one): new function
224
225 1999-04-10  Ivo Timmermans  <zarq@iname.com>
226
227         * src/net.c (hostlookup): moved to netutl.c; updated netutl.h
228
229         * src/protocol.c (public_key_h): removed half of the whole
230         function, mainly because we handle keys differently now
231         (notify_others): don't test for `myself'
232         (public_key_h): call notify_others
233         (notify_others): test for the source
234         (public_key_h): updated accordingly
235         (add_host_h): extended
236
237         * src/net.h: removed field `nr' from conn_list_t
238
239         * Version 0.2.21
240
241         * src/net.c (flush_queue): meddled with some pointers, thanks to
242         Fruit for helping me out on this one
243
244 1999-04-09  Ivo Timmermans  <zarq@iname.com>
245
246         * src/netutl.c (lookup_conn): removed `const' keyword
247
248         * src/net.h: merged sq_element_t and rq_element_t into
249         queue_element_t and send_queue_t and recv_queue_t into
250         packet_queue_t; updated conn_list_t
251
252         * src/net.c: moved lookup_conn, free_conn_list, prune_conn_list,
253         new_conn_list, destroy_list to netutl.c, updated net.h and
254         netutl.h
255         (flush_queue): written as a generalized version of flush_*_queue
256         (add_queue): generalized
257         (add_recv_queue): removed
258
259         * src/Makefile.am: added netutl.c and netutl.h
260
261         * src/netutl.h: new file
262
263         * src/netutl.c: new file
264
265         * src/net.c (add_recv_queue): written.. but we need something
266         better
267
268         * src/protocol.c (send_key_request): test for fw == NULL
269
270 1999-04-08  Ivo Timmermans  <zarq@iname.com>
271
272         * src/net.c (xsend): send `from' field
273
274         * src/net.h: added field `from' to struct real_packet_t
275
276         * src/protocol.h: increased protocol version, protocol 3 or lower
277         is not supported anymore.
278
279         * src/net.c (handle_incoming_vpn_data): test for valid key before
280         decrypting; updated protocol.h
281
282         * src/protocol.c: include utils.h
283         (set_keys): new function
284         (ans_key_h): flush queue when key arrived
285         (send_key_request): removed parameter `cl'
286
287         * lib/Makefile.am: updated to include utils.c/h
288
289         * lib/utils.c: new file
290
291         * lib/utils.h: new file
292
293         * src/encr.c (powerize): rewritten, changed name to
294         make_shared_key, updated src/encr.h
295
296         * src/protocol.c (send_passphrase): don't print out that ugly
297         passphrase
298         (req_key_h): send key to tmp->from instead of tmp->to :)
299         (calculate_h, calc_res_h, almost_key_h): removed, we now have a
300         better way of dealing with keys anyway
301
302         * src/net.c (new_conn_list): initialize p->nexthop to p
303
304         * src/protocol.c (req_key_h): written
305         (send_key_answer): new function
306         (ans_key_h): written
307
308         * src/net.h: added field waitingforkey to status_bits_t
309         added field nexthop to conn_list_t
310
311 1999-04-07  Ivo Timmermans  <zarq@iname.com>
312
313         * src/protocol.c (send_key_request): new function
314
315         * src/protocol.h: added REQ_KEY, ANS_KEY, key_req_t
316
317         * src/net.h: add `validkey' to struct status_bits_t
318
319         * Version 0.2.20 (intermediate)
320         
321         * src/net.c (handle_incoming_vpn_data): update call to do_decrypt
322
323         * cipher/cipher.c (do_encrypt): add parameter `key', call
324         cipher_set_key
325         (do_decrypt): idem
326
327         * src/net.c (handle_tap_input): moved de_encrypt call to xsend
328
329         * src/protocol.c: added req_key_h and ans_key_h
330
331         * src/net.c (add_queue): removed `to'
332         (send_packet): changed call to add_queue accordingly
333
334         * src/net.h: removed field `to' from sq_element_t
335
336         * src/net.c (flush_queue): new function
337         (send_packet): call flush_queue before attempting to send
338
339         * src/net.h: included public and shared keys in struct conn_list_t
340
341 1999-04-06  Ivo Timmermans  <zarq@iname.com>
342
343         * src/net.c (add_queue): written
344
345         * src/net.h: added new field sq to conn_list_t, declared struct
346         send_queue_t and sq_element_t
347
348         * src/key.c: new file
349
350         * src/key.h: new file
351
352 1999-04-03  Ivo Timmermans  <zarq@iname.com>
353
354         * Version 0.2.19
355         
356         * cipher/Makefile.am: don't make and install a libcipher.so
357
358         * Version 0.2.18
359         
360         * src/encr.c (security_init): call cypher_init
361
362         * cipher/cipher.c (cypher_init): written, sets values to
363         dynamically loaded functions
364
365         * configure.in: added libtool support, various Makefile.am were
366         also updated
367
368         * src/genauth.c: removed the encrypting part
369
370         * src/net.c (handle_incoming_vpn_data): updated call to
371         do_bf_decrypt to do_encrypt
372         (handle_tap_input): same with the call to do_bf_encrypt
373
374         * cipher/cipher.c (low_bf_crypt_key): written
375         (do_encrypt, do_decrypt): written (hardcoded to blowfish)
376
377         * src/encr.c (low_bf_crypt_key, do_bf_encrypt, do_bf_decrypt):
378         romeved
379
380         * configure.in: added support for libtool, Makefiles in the dir
381         `cipher' added 
382
383         * Makefile.am: include this new dir, libbf removed
384
385         * new dir `cipher', moved libbf into it, renamed to blowfish
386
387 1999-04-02  Ivo Timmermans  <zarq@iname.com>
388
389         * src/net.c (check_network_activity): handle an error on outgoing
390         data connection
391
392 1999-04-01  Ivo Timmermans  <zarq@iname.com>
393
394         * Version 0.2.17
395         
396         * src/net.c (destroy_conn_list): written
397         (close_network_connections): call destroy_conn_list()
398
399         * configure.in: added some more tests.
400
401         * src/tincd.c (sigsegv_handler): re-execute with g_argv
402
403         * Version 0.2.16
404
405         * doc/Makefile.maint: replaced man_MANS with dyn_MANS
406
407         * doc/Makefile.am: it didn't install tincd.conf.5
408
409         * doc/tincd.conf.5: written
410
411         * doc/tincd.conf.sample: rewritten to reflect these changes in
412         syntax
413
414         * src/conf.c (readconfig): rewritten. config file now accepts and
415         tolerates spaces, and any integer base for integer variables, and
416         better error reporting. parsing is now case insensitive. = signs
417         may be omitted.
418
419 1999-03-31  Ivo Timmermans  <zarq@iname.com>
420
421         * doc/Makefile.am (EXTRA_DIST): included tincd.conf.sample
422
423 1999-03-29  Ivo Timmermans  <zarq@iname.com>
424
425         * Version 0.2.15
426
427         * src/tincd.c (sighup_handler): close and re-open all network
428         connections
429         (sigsegv_handler): ignoring it for now
430
431         * src/conf.h (get_config_val): added declaration
432
433         * src/net.c (get_timeout): removed, moved code to
434         setup_network_connections
435
436         * src/tincd.c (parse_options): Call add_config_val() instead of
437         storing it in `timeout'
438
439 1999-02-10  Ivo Timmermans  <zarq@iname.com>
440
441         * Version 0.2.14
442
443         * src/net.c (get_timeout): added
444         (main_loop): call get_timeout
445
446         * src/conf.c, src/conf.h: PingTimeout config option added
447
448         * src/conf.c, src/conf.h: timeout declared
449
450         * src/tincd.c (long_options, usage, parse_options): Added -t option
451         
452 1999-01-25  Ivo Timmermans  <zarq@iname.com>
453
454         * src/encr.c (low_bf_crypt): obsolete, removed
455
456         * src/net.c (terminate_connection): special case for ping timeouts
457         (check_dead_connections): set timeout flag
458
459         * src/protocol.c (send_timeout, timeout_h): written
460
461 1999-01-24  Ivo Timmermans  <zarq@iname.com>
462
463         * src/net.c (free_conn_element): written; updated prune_conn_list
464         to use it
465         (new_conn_list): written
466         (create_new_connection): uses new_conn_list, updated call from
467         handle_new_meta_connection
468
469         * src/net.h: added hostname field to conn_list_t, updated several
470         functions to use and initialize it
471
472 1999-01-23  Ivo Timmermans  <zarq@iname.com>
473
474         * src/net.c (prune_conn_list): simplified
475
476         * configure.in: increased version number to 0.2.14
477
478         * Version 0.2.13
479
480         * src/net.c (delete_conn_from_list): removed
481         (prune_conn_list): written
482         (setup_outgoing_connection, create_new_connection,
483         handle_new_meta_connection): status.remove = 0  
484         (main_loop): inserted call to prune_conn_list
485         (check_network_activity, check_dead_connections,
486         send_broadcast_ping, terminate_connection): added test for
487         status.remove
488         (terminate_connection): set status.remove to 1 instead of just
489         deleting an entry
490
491         * src/net.h: added field `remove' to struct status_bits_t
492
493         * configure.in: increased version number to 0.2.13
494
495         * Version 0.2.12
496
497         * src/net.c (create_new_connection): removed the `initiating
498         authentication sequence.' part of the message
499         (delete_conn_from_list): rewritten
500         (check_dead_connections): all those SEGV's came from here, when a
501         free'd p was referenced in the next step of the for loop
502
503 1999-01-22  Ivo Timmermans  <zarq@iname.com>
504
505         * src/net.c (terminate_connection): remove calls to shutdown()
506
507         * configure.in: increased version number to 0.2.12
508
509         * Version 0.2.11
510         
511         * src/net.c (setup_myself): myself->status.active=1 when
512         successfully set up, so that the appropriate sockets may be closed
513         (close_network_connections): updated to use that information
514         default value for myself is NULL
515         (close_network_connections): test if myself != NULL before
516         referencing it
517
518         * src/conf.c (add_config_val): new values now get added in front
519         of the list
520
521         * src/conf.h: removed value for privatekeyfile
522
523         * src/protocol.c (send_public_key): used sizeof(public_key_t) for
524         dynamic allocation
525
526 1999-01-20  Ivo Timmermans  <zarq@iname.com>
527
528         * TODO: written; updated Makefile.am to include TODO in
529         distribution
530
531         * doc/tincd.x: written
532
533         * src/tincd.c (usage): some text beautifying
534
535 1999-01-19  Ivo Timmermans  <zarq@iname.com>
536
537         * doc/Makefile.am: updated to use help2man
538
539         * configure.in: added test for perl which is in m4/perl.m4
540
541         * m4/perl.m4, doc/GNUmakefile, doc/Makefile.maint,
542         doc/Makefile.summ, doc/help2man: included from fileutils 4.0
543
544 1999-01-18  Ivo Timmermans  <zarq@iname.com>
545
546         * src/tincd.c (main): updated to point to COPYING and AUTHORS when
547         requesting version info
548
549         * src/protocol.c (send_public_key): updated to use new
550         public_key_t struct
551
552         * src/encr.c (calculate_shared_key): renamed to set_shared_key,
553         changed prototype accordingly in src/encr.h
554         (set_shared_key): dynamic allocation of tmp
555         removed definitions for his_public_key and our_shared_key
556         include stdlib.h
557         (get_public_key): removed, obsolete due to my_public_key_base36,
558         also removed prototype from src/encr.h
559
560         * src/encr.h: changed prototype for powerize
561
562         * src/encr.c (powerize): rewritten, args changed
563
564         * src/protocol.c (send_calculate): written
565
566         * src/protocol.h: added declarations for struct calculate_t and
567         struct public_key_t
568
569         * src/encr.h: add declaration for my_public_key_base36
570
571         * src/encr.c (calculate_public_key): also store my public key in
572         the variable my_public_key_base36, for later use in protocol.c
573
574         * src/net.h: added field `nr' to struct conn_list_t
575         added some comments
576
577         * src/protocol.c (public_key_h): starts calculation of a shared
578         key instead of immediately activating connection
579
580         * src/net.c (strtoip): fixed ip->ip assignment
581
582         * src/conf.c: #include net.h
583         (add_config_val): removed superfluous xmalloc
584
585         * src/net.h: added prototype tor strtoip
586
587         * src/conf.c (strtoip): rewritten to accept textual hostnames
588         replaced all calls to charpos() with strchr()
589         removed charpos()
590         (strtoip): moved to net.c
591
592         * configure.in: increased version number to 0.2.11
593
594         * Version 0.2.10
595
596         * src/tincd.c: Did some function re-ordering and commenting
597
598         * src/encr.c (low_bf_crypt_key): copied from low_bf_crypt, this
599         function also requires an encrypting key to be given
600         (encrypt_passphrase): Updated to use low_bf_crypt_key
601         (verify_passphrase): Updated to use low_bf_crypt_key
602
603 1999-01-14  Ivo Timmermans  <zarq@iname.com>
604
605         * src/encr.c (verify_passphrase): written
606         (encrypt_passphrase): written
607
608         * src/protocol.c (send_passphrase): calls encrypt_passphrase
609
610         * src/encr.c (read_passphrase): rewritten
611         (security_init): updated to call read_passphrase
612
613         * src/tincd.c (make_names): created new variable confbase
614
615 1999-01-13  Ivo Timmermans  <zarq@iname.com>
616
617         * NEWS: added mention of 0.2.10
618
619         * configure.in: increased version to 0.2.10
620
621         * restarted this ChangeLog thingy.
622
623