-
Notifications
You must be signed in to change notification settings - Fork 96
/
ChangeLog
229 lines (210 loc) · 10.3 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
$Id: ChangeLog,v 1.111 2010/06/01 20:26:45 tho Exp $
ChangeLog file of LibU - http://www.koanlogic.com/libu/index.html
LibU x.y.z
- [b64] new module for doing Base64 encoding/decoding
- [config] '#' can be escaped
- [uri] add u_uri_is_absolute interface
- [net] be more tolerant with missing setsockopt() (was causing bind()
failures on MinGW)
- [json] fix a memory leak in the indexing interface
- [hmap] fix bad free() in hmap_clear() when user owns data
- [queue] avoid complaints about redefined macros
- [str] fix inconsistency in u_string_detach_cstr which would impact
also the json_encode interface in case an empty string was
generated
LibU 2.2.0
- [uri] fix excessively greedy match in IP-literal parser when there is no
path component; temp fix in URI builder to take care of IP-literal's
- [uri] the URI parser set flags while decoding (e.g. tell if the host
is IP address or DNS name, or if it is an IP-literal and needs special
treatment when encoding.)
- [daemon] fix compilation on uClinux
- [buf] u_buf_shrink added
- [net] fix u_connect_ex timeout re-computation on EINTR to take care
of Linux non-POSIX compliant behaviour; also check the updated timeout
value after EINTR to catch corner case underflow conditions.
- [net] disable u_net_nagle_off() on Minix
- [array] #undef 'I' (imaginary unit) when including complex.h to avoid
name clash -- e.g. with openssl/rsa.h
- [net] fix u_connect buggy behaviour on EINTR (reported by Mickael Auger)
- [net] add _ex variants to socket creation interfaces to handle timeouted
operations
- [net] ai_resolv fix: don't ask for AI_CANONNAME when hostname is NULL
- [hmap] new discard policy U_HMAP_PCY_CUSTOM which allows user to specify
object comparison function via u_hmap_opts_set_policy_cmp() ; header
cleanup: remove object and policy struct's explicit layout; added
u_hmap_{easy_,}clear() ; missing u_hmap_opts_free() calls in test/
- [test] fix conditional include logics that enables sandboxing
- [str] don't rely on calloc for initialization of str object internal vars
LibU 2.1.0
- fix bug in configure when handling the inline keyword support
- Minix 3.8.1 port
- fix configure to please OpenBSD when searching for [gs]etsockopt and
rusage structure
- [string] new interface u_string_detach_cstr
- [lexer] new module to do basic lexical tokenizing
- [json] new module to encode/decode/validate JSON objects (RFC 4627)
- [bst] new binary search tree module
- [misc] added u_atol and u_atof interfaces
- [rb] malloc based implementation, both using contiguous (i.e. double
sized) and wrapped buffer ; make it work on Windows
- [test] make it work on Windows
- [uri] regex-free uri parser (now recursive descent) ; make it work on
MinGw ; path is now optional and has default value "/" ; fixed missing
"//" in u_uri_knead_authority()
- [config] add u_config_walk function to traverse the config tree
- [carpal] fixed 1.0 compatibility (missing u_con)
- [net] U_NET_OPT_DGRAM_BROADCAST to set DGRAM client socket broadcast
option
- [hmap] added u_hmap_count() to get the current number of objects stored
into hmap
LibU 2.0.0
- [pqueue] added new priority queue module
- [rb] added new ring buffer module
- [test] completely revamped, new interfaces
- [net] module implementation and interfaces revamped
- [uri] complete support for RFC 3986; added u_uri_knead interface to
create conformant URI strings; added tester
- [carpal] dbg(), warn(), info(), err() and friends have been prefixed
with "u_" to avoid conflicts with the <err.h> header
- [config] u_config_print_to_fp with brace delimiters for children records;
documentation fixes by Mickael Auger ; don't dump the 'include'
directive when serializing and/or saving an u_config_t object to
file (would break semantical equivalence)
- [hmap] added u_hmap_foreach_arg which accepts a user defined parameter
that is supplied to the callback function ; add "easy" interface to
simplify some common use cases ; updated docs
- [array] u_array_set_ptr and u_array_get_ptr interfaces changed;
added interfaces for intmax_t and uintmax_t types; use C99 types
explicitly (_Complex and _Bool), to avoid clash with bool and complex
possibly #define'd by the user
- [buf] added u_buf_save interface
- [misc] some minor fixes
- [string] minor fixes and cleanup
- [pwd] internally use u_strtok instead of deprecated u_tokenize
- fix configure bug which prevented IPv6 and UNIX sockets bits inclusion;
also bring back to life --no_ipv6 and --no_unixsock configure flags;
new --no_sctp command line option to explicitly disable SCTP bits
LibU 1.4.1
- [missing] u_va_copy added
- [string] u_string_do_vprintf bug fix (don't use va_list twice)
- [test] list tests fix for 64-bit platforms
LibU 1.4.0
- [config] u_config_get_subkey_value_b bug fix
- [list] u_list_clear added
- [misc] u_strlcpy and u_strlcat added
- added shared lib support for MinGW, Cygwin, Solaris and Dragonfly BSD:
need MaKL >= 1.8.x
- [list] u_list_foreach and u_list_iforeach macros added
- [list] u_list_first and u_list_next added to efficiently iterate on lists
- [misc] added u_strtok_cleanup facility
- [misc] deprecate u_tokenize in favour of u_strtok
LibU 1.3.1:
- [array] add needed #include <stdint.h>
- [misc] u_atoi fix
- [misc] u_strtok added
- [config] fix u_string_aprintf calls (build fix)
LibU 1.3.0:
- [config] u_config_sort_children added
- [config] u_config_del_child added
- [log] u_log_set_{lock,unlock} added to setup locking callbacks (needed on
multi-threading environments)
- [configure] added --no_docs and --do_test configure flags
- [array] dynamic array module added (can be disabled via --no_array
configure argument)
- [list] u_list_insert and u_list_del_n added
- [config] u_config_print_to_fp added
- [configure] netinet/{tcp,in}.h and sys/socket.h tests
- [net] do not include winsock.h
- [config] u_config_load_from_buf and u_config_save_to_buf added
- [config] drivers can set a callback function to resolve include filenames
- [config] load from opaque data sources (u_config_load_from_drv)
- [config] include directive support
- [config] example/config/uconfig program added
- [misc/net] moved u_accept from misc to net
- [pwd] fix a parser problem with GCC 4.2.3
- [headers] cleanup
- [misc] u_path_snprintf memmove fix
- [list] memory leak fix
- [carpal] *_err_rcif() family macros added
LibU 1.2.0:
- [list] added new module for dynamic lists handling (wrapper around
TAILQ_ macros), can be disabled via --no_list configuration argument
- [pwd] added new module for simple password authentication, can be
disabled via --no_pwd configuration argument
- [fs] added new module with u_move, u_copy and u_remove interfaces,
can be disabled via --no_fs configuration argument
- [config] u_config_set_value's now in the public interface
- [config] u_config_get_child_n can return anonymous keys
- [hmap] fix compilation error with GCC 2.95
LibU 1.1.0:
- [missing, misc] windows mingw fixes
- [hmap] u_hmap_foreach_keyval() function added (by Aurelio Colosimo)
- [log] u_strerror_r fix to make it working on 64bit platforms
- [carpal] dbg_if{,m}() fix
LibU 1.0.0:
- [hmap] module rework: implemented linear probing and array resizing based
on prime numbers; void *key, *val in u_hmap_o_t; new interfaces for
managing own data or giving hmap ownership and returning overwritten
objects
- [test] added the unit test module; tests can be separated by module
and/or functionality and can run selectively or all at once
- [misc] added u_{read,write,accept,sleep} auto-restarting functions that
transparently handle EINTR
- [memory] added u_memory_set_{{m,c,re}alloc,free} function by which the
user can override the default memory manager (i.e. libc malloc)
- [config] load in overwrite mode fix
LibU 0.5.0:
- mkstemps() added to the portability layer
- clean separation of "toolbox" modules (i.e. log, env, carpal, etc.)
from "portability" modules (i.e. strlcat/gettimeofday/etc. replacements)
- [net] added UNIX socket support
- [queue] {LIST,TAILQ}_FOREACH_SAFE and TAILQ_FOREACH_REVERSE{_SAFE,}
added
- [config] leak fixed in u_config_do_load(); added new function
u_config_load_from_file(); cs_getline (internal function) fix
- [misc] added new functions u_load_file(), u_data_dump()
- [env] portability fix
- [log] msg_strerror() fix: POSIX vs glibc strerror_r prototypes check
is now performed at runtime since configure check would work when
cross-compiling
- [carpal] added macros for every syslog(3) level:
- {dbg,info,notice,warn,err,crit,alert,emerg,con}_[s]?if[m]?(expr,...)
- [string] added new functions u_string_sprintf() and u_string_reserve()
- [buf] u_buf_printf() added; u_buf_free() memory leak fixed; moved
struct u_buf_s to u/buf.h so that it can be used in TAILs, LISTs, etc;
u_buf_{set,append}() signature sligthtly changed
- headers installation fix
- OpenBSD strlcpy() and strlcat() added to the portability layer
- configure: debug and code optimisation compiler flags are mutually
exclusive; --enable_shared switch to build shared libraries (at least)
on Linux, FreeBSD, NetBSD and Darwin targets (needs MaKL 1.3.0)
LibU 0.4.1:
- u_buf_t type and functions
- warn_err_sif and info_err_sif added
LibU 0.4.0:
- new configure options: --no_ipv6 and --no_unixsock
- makl_target_name instead of makl_os_name to support MAKL_PLATFORM
overloading
- more checks (and relative conditional code): in_addr_t, ssize_t,
<paths.h>, <sysuio.h>, <strings.h>, optarg, optind,
struct sockaddr_in, struct sockaddr_in6, struct sockaddr_un
- gettimeofday implementation (tv_usec always set to zero)
LibU 0.3.2:
- save and restore errno when logging
- on Windows platforms msg_strerror now uses FormatMessage instead of
strerror(3): it also works for non-libc related errors
LibU 0.3.1:
- added daemon(3) function from NetBSD
- fixed a missing include in hmap.c
- configure
- support new MaKL function makl_append_var_mk
- MaKL debug is disabled by default
- added configure.help
LibU 0.3.0:
- new module hmap (hash map)
- disable unneeded modules at configure time:
--no_{net,config,env,log,hmap} command line switches added
- Makefiles fix due to MaKL 1.0.0 toolchain rework
LibU 0.2.0:
- first public release