|
1 1998-01-25 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
2 |
|
3 * commands/vdeliver.cc (main): Added support for optionally adding |
|
4 the From, Delivered-To:, and Return-Path: line to the start of the |
|
5 output mail, either to a file or to qmail-inject (which omits the |
|
6 From line). |
|
7 |
|
8 1998-01-24 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
9 |
|
10 * commands/checkvpw.cc (authenticate): Revised the logic to only |
|
11 validate the password if an 'ok' code is returned (was previously |
|
12 the default case), and to indicate bad data otherwise. |
|
13 |
|
14 * commands/testclient.cc (main): Added a case for the new econn |
|
15 return code. |
|
16 |
|
17 * daemon/lookup.cc (CMD(lookup)): Wrote this routine to lookup a |
|
18 virtual user's delivery instructions. Returns one of: &address, |
|
19 &address@hostname, /full/path/to/maildir, or ./maildir |
|
20 |
|
21 * daemon/dispatch.cc (CMD(stat)): Added a new field to the |
|
22 dispatch table, count, which is used to count the number of times |
|
23 that function has been invoked. The new function, stat, can be |
|
24 used to return this count on a per-function basis. |
|
25 |
|
26 * commands/vdeliver.cc (main): If the call caused a connection |
|
27 error, defer the message (return 111). |
|
28 |
|
29 * lib/server.cc (call): Return 'econn' when either building the |
|
30 connection, sending, or receiving data fails. |
|
31 |
|
32 * lib/server.h (struct server_response): Added another error code |
|
33 'econn', used to denote an error with the connection itself. |
|
34 |
|
35 * lib/mystring.h (class mystring): Changed the 'nil' constant to |
|
36 'const char*' type from 'mystring' type. This avoids the need for |
|
37 a special protected constructor just for this object, and more |
|
38 accurately reflects its purpose as a placeholder buffer for empty |
|
39 strings. |
|
40 (operator!=): Revised this operation to test if the string to |
|
41 which this is being compared is a NULL pointer. |
|
42 |
|
43 * commands/vdeliver.cc: Wrote this program to be inserted in a |
|
44 .qmail-default file, to serve as the delivery agent for all the |
|
45 addresses. |
|
46 |
|
47 * lib/mystring.cc (dup): Wrote dup/5 routine for combining 5 |
|
48 strings. |
|
49 |
|
50 1998-01-22 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
51 |
|
52 * daemon/main.cc (main): Fixed bug in socket bind call to use |
|
53 correct length value computed by SUN_LEN macro. Still need to |
|
54 actually allocate the memory for the sockaddr_un with malloc |
|
55 instead of relying on the buffer for sun_path being long enough. |
|
56 |
|
57 * lib/server.cc (connect): Fixed bug in socket connect call to use |
|
58 correct length value computed by SUN_LEN macro. |
|
59 |
|
60 * Released version 0.69pre1 pre-release. |
|
61 |
|
62 * commands/checkvpw.cc: Moved the definitions of the FAIL_* macros |
|
63 into this file from lib/debug.h |
|
64 |
|
65 * daemon/check.cc (check): Fixed several logic bugs. |
|
66 |
|
67 * src/checkvpw.cc (main): Rewrote this program to use the 'check' |
|
68 feature of the daemon. |
|
69 |
|
70 * daemon/main.cc (handle_connection): Print out a message when the |
|
71 request completes as well as when it is started. |
|
72 |
|
73 * daemon/chpass.cc: Fixed some one-off bugs in the command-line |
|
74 handling. |
|
75 |
|
76 * src/vpasswd.cc (main): Rewrote this program to be a simple |
|
77 server call stub to the 'chpass' feature. |
|
78 |
|
79 * checkvpw.texi: Started reorganizing this document for the |
|
80 inclusion of documentation on the daemon program. |
|
81 |
|
82 * lib/server.h (class server_call): Removed the 'msg' class -- it |
|
83 was causing all sorts of headaches from memory deallocation, and |
|
84 was originally implemented as a premature optimization. |
|
85 |
|
86 1998-01-21 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
87 |
|
88 * lib/debug.h: Added trace, traceptr, and tracestr functions, to |
|
89 trace the flow of class methods. |
|
90 |
|
91 * lib/mystring.cc: Introduced the "nil" string -- a constant |
|
92 statically allocated empty string. Duplicating an empty string or |
|
93 a null pointer duplicates the pointer to this nil string, instead |
|
94 of allocating more memory. Freeing the nil string is not allowed. |
|
95 |
|
96 1998-01-18 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
97 |
|
98 * Started rewriting the protocol used to communicate between the |
|
99 client and server to be more efficient. See doc/protocol.txt for |
|
100 a very sketchy protocol definition. |
|
101 |
|
102 * daemon/check.cc (check): Wrote this routine to do password |
|
103 checking, copied mostly from src/checkvpw.cc. |
|
104 |
|
105 * src/testclient.cc: Wrote this program to serve as a test client |
|
106 to the server, to test all the data paths through the client |
|
107 library and the server functions without depending on the |
|
108 implementation of the other programs. |
|
109 |
|
110 * lib/server.h (class server_call): Wrote the classes in this file |
|
111 and lib/server.cc to encapsulate a call to the server and its |
|
112 response. |
|
113 |
|
114 1998-01-14 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
115 |
|
116 * Started work on the checkvpw daemon -- a user-space server that |
|
117 handles all the real functionality of all the other programs via a |
|
118 UNIX domain socket. It currently handles checking passwords (for |
|
119 checkvpw) and changing passwords (for vpasswd). |
|
120 |
|
121 * lib/mystring.cc (operator+): wrote a new copy of this that takes |
|
122 a 'const char*' second parameter. |
|
123 (*): Rewrote several of the routines that return a new mystring to |
|
124 use the 'named return value' extension of gcc (if being compiled |
|
125 under gcc). |
|
126 |
|
127 1998-01-13 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
128 |
|
129 * lib/mystring: Added or modified several routines that take |
|
130 "const char*" instead of "const mystring&" as parameters, to |
|
131 prevent the unnecessary spurious creation of temporary |
|
132 mystring's. |
|
133 |
|
134 1998-01-11 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
135 |
|
136 * lib/passwdfn.cc (fsetpasswd): This new routine encrypts the |
|
137 given password and sets it in the named password file. |
|
138 |
|
139 * src/vpasswd.cc (main): Require that the new password is not the |
|
140 same as the newly entered password. |
|
141 (main): Use the newly written 'fssetpasswd' routine. |
|
142 |
|
143 * lib/mystring.cc (append): Wrote this method to support string |
|
144 concatenation using "+" and "+=" operators. |
|
145 |
|
146 * lib/cgi-base.h (class CGI): Started this class to provide helper |
|
147 functions for CGI applications. |
|
148 |
|
149 1998-01-10 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
150 |
|
151 * lib/cgi-base.cc (main): Wrote this main routine of all CGI |
|
152 programs; calls cgi_main with the CGI arguments as a parameter. |
|
153 (main): Print an error message and don't call cgi_main if there |
|
154 was an error fetching the CGI arguments. |
|
155 |
|
156 * lib/cgi-base.h (class CGIArgs ): Wrote this class to encapsulate |
|
157 the list of arguments or input items on a CGI form. |
|
158 |
|
159 * lib/mystring.h (class mystring): Wrote a default constructor. |
|
160 Wrote operator!, returns true if the string is empty. |
|
161 |
|
162 * Reorganized the directory structure: generic library files are |
|
163 in "lib", program sources are in "src", and CGI sources are in |
|
164 "CGI". |
|
165 |
|
166 * src/*.h: Prepended "CHECKVPW__" to the file identifier macro in |
|
167 most of the header files |
|
168 |
|
169 1998-01-06 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
170 |
|
171 * vpasswd.cc (main): Changed occurences of "passwd" to use the |
|
172 PASSWORD_FILE define. |
|
173 |
|
174 1998-01-05 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
175 |
|
176 * spec (Requires): checkvpw does not really "require" qmail, it's |
|
177 just the only thing that currently uses it, so I removed this |
|
178 requirement. |
|
179 |
|
180 * released version 0.65-1 |
|
181 |
|
182 * Makefile: makefile included in the distributed sources does not |
|
183 contain the sections specific to building the distribution. |
|
184 |
|
185 * qmail.cc (find_virtual): fixed bug in search logic |
|
186 |
|
187 1998-01-03 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
188 |
|
189 * mystring.cc (operator=): written |
|
190 |
|
191 * checkvpw.texi (checkvpw): updated the documentation to reflect |
|
192 the changes listed below. |
|
193 |
|
194 * qmail.cc (find_virtual): modified the logic searching for a |
|
195 virtual domain to match that of qmail -- wildcards in the |
|
196 virtualdomains file are not automatic, but are represented by a |
|
197 leading '.' in the host name. The new search is also |
|
198 non-recursive and only reads the virtualdomains file once. |
|
199 |
|
200 1998-01-02 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
201 |
|
202 * checkvpw.cc (main): If the user name contains a '@' symbol, |
|
203 treat the string following the '@' as the host name, and the |
|
204 string preceding the '@' as the username within that host's |
|
205 virtual domain. |
|
206 |
|
207 * mystring.h (class mystring): modified the subst, lower, and |
|
208 upper methods to return a new (modified) mystring instead of |
|
209 modifying the current string. |
|
210 (class mystring): wrote the 'left', 'right', and 'sub' methods, |
|
211 which return portions of the string. |
|
212 (class mystring): wrote the 'find' method, finds a single |
|
213 character in the string |
|
214 |
|
215 * Makefile: patched for glibc to automatically add the separate |
|
216 "crypt" library to the link stage if it is detected in its |
|
217 "normal" location (/usr/lib/libcrypt.*) |
|
218 |
|
219 1997-12-26 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
220 |
|
221 * mystring.cc: recoded "dup" functions to handle NULL pointers as |
|
222 empty strings |
|
223 |
|
224 1997-12-24 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
225 |
|
226 * checkvpw.cc (main): Changed both the normal and the virtual |
|
227 authentication case to call the same authentication routine. This |
|
228 allows a user to enter "userid-virtualuser" as a pop-3 username |
|
229 that will access user "virtualuser" in the mail domain that |
|
230 "userid" controls. |
|
231 |
|
232 Thu Nov 27 22:07:42 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
233 |
|
234 * qmail.cc (find_virtual): moved into qmail.cc from checkvpw.cc |
|
235 |
|
236 Wed Nov 26 11:52:24 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
237 |
|
238 * released version 0.64-1 |
|
239 |
|
240 * vdeluser.cc (main): convert user names to lower case |
|
241 |
|
242 * vdelalias.cc: removed routine dot_qmail_name (duplicates qmail.cc) |
|
243 |
|
244 * vpasswd.cc (main): convert the user name to lower case |
|
245 |
|
246 * vadduser.cc (set_password): convert the user name to lower case |
|
247 (main): various conversions to ensure usernames are all lower case |
|
248 |
|
249 * qmail.cc (dot_qmail_name): make the .qmail file name lowercase |
|
250 |
|
251 * checkvpw.cc (struct auth_data): convert the name to lower case |
|
252 on input |
|
253 |
|
254 * mystring.cc (tolower,toupper): written, convert strings to all |
|
255 upper or lower case |
|
256 |
|
257 Thu Nov 20 13:56:55 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
258 |
|
259 * released version 0.63-1 |
|
260 |
|
261 * vdeluser.cc (dot_qmail_rm): removed the code to strip trailing |
|
262 whitespace -- the trailing \n is already in the search string |
|
263 (dot_qmail_rm): provide more information on what files are being |
|
264 removed |
|
265 (main): fixed a bug that would cause mail directory for only the |
|
266 first user named to be removed |
|
267 |
|
268 Tue Nov 18 12:32:47 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
269 |
|
270 * released version 0.62-1 |
|
271 |
|
272 * vdeluser.cc (dot_qmail_rm): added code to strip trailing |
|
273 whitespace from the string returned by fgets |
|
274 |
|
275 * passwdfn.cc (getpasswd_stdin): added code to strip trailing |
|
276 whitespace from the string returned by fgets |
|
277 |
|
278 * checkvpw.cc (auth_virtual): fixed a whole series of one-off bugs |
|
279 that would cause authorization to fail in certain cases |
|
280 (find_virtual_recurse): added code to strip trailing whitespace |
|
281 from virtual prefixes |
|
282 |
|
283 Thu Nov 13 11:17:02 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
284 |
|
285 * vadduser.cc (check_names): now checks for the existance of |
|
286 .qmail files |
|
287 |
|
288 * released version 0.61-1 |
|
289 |
|
290 * passwdfn.cc (getpasswd): split getpasswd() into two more |
|
291 functions, getpasswd_stdin() and getpasswd_interactive(), to avoid |
|
292 using the default mystring constructor |
|
293 |
|
294 * mystring.h (class mystring): removed default constructor -- it |
|
295 appears to have been causing segmentation faults |
|
296 |
|
297 Wed Nov 12 09:20:04 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
298 |
|
299 * passwdfn.cc (getpasswd): fixed length of fgets from 8 to 9 |
|
300 |
|
301 * released version 0.60-1 |
|
302 |
|
303 * Updated the documentation to reflect the change in password |
|
304 handling. |
|
305 |
|
306 * mystring.h (class mystring): added a default constructor |
|
307 |
|
308 * vpasswd.cc (main): changed to use getpasswd |
|
309 |
|
310 * vadduser.cc (set_password): changed to use getpasswd |
|
311 |
|
312 * passwdfn.cc (getpasswd): written, gets a password from the |
|
313 user. If stdin is a tty, then it uses the prompts and getpass() |
|
314 function, otherwise it just reads the password with no prompts. |
|
315 |
|
316 * released version 0.59-1 |
|
317 |
|
318 * vpasswd.cc (main): bugfix: manually duplicate all the fields of |
|
319 pw into newpw, using strdup on strings. This avoids future calls |
|
320 to getpwent overwriting the existing data (the strings in the pw |
|
321 structure are pointers to static data). |
|
322 |
|
323 Mon Sep 22 13:47:16 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
324 |
|
325 * released version 0.58-1 |
|
326 |
|
327 * qmail.cc: this file will include some QMail specific functions |
|
328 (dot_qmail_name): moved into qmail.cc from vaddalias and vadduser |
|
329 |
|
330 * vadduser.cc (main): make sure all names are valid |
|
331 |
|
332 * vaddalias.cc (main): make sure the aliases are valid before |
|
333 creating them |
|
334 |
|
335 Fri Sep 19 12:01:04 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
336 |
|
337 * released version 0.57-1 |
|
338 |
|
339 * checkvpw.texi: updated documentation for vaddalias and vdelalias |
|
340 |
|
341 * vdelalias.cc: wrote vdelalias to delete aliases |
|
342 |
|
343 * vaddalias.cc: wrote vaddalias to add a new alias to an existing |
|
344 user |
|
345 |
|
346 * stat_fns.h (is_file): added |
|
347 |
|
348 Thu Sep 18 09:05:46 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
349 |
|
350 * tweaked root-level Makefile to clean up after building a |
|
351 distribution |
|
352 |
|
353 * released version 0.56-1 |
|
354 |
|
355 * stat_fns.h: written -- has some simple file testing routines |
|
356 |
|
357 * mystring: added a 'length' member to the class to allow for |
|
358 faster length calculations |
|
359 |
|
360 * checkvpw.texi: updated the documentation for vdeluser |
|
361 |
|
362 * spec: added vdeluser to list of programs |
|
363 |
|
364 * vdeluser.cc: re-write vdeluser perl script as C++ to avoid any |
|
365 dependancies on perl |
|
366 |
|
367 * passwdfn.cc (fdelpwnam): wrote function to delete an entry |
|
368 |
|
369 * checkvpw.cc (auth_virtual): use definition instead of "passwd" |
|
370 |
|
371 * config.h: added definition for the temporary password file |
|
372 |
|
373 * vadduser.cc (main): moved setting the password back up before |
|
374 creating any of the rest of the account -- if a user mis-types a |
|
375 password, none of the rest of the account will be created |
|
376 accidentally. |
|
377 |
|
378 Wed Sep 17 10:02:58 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
379 |
|
380 * vdeluser: wrote (as a perl script) to delete mail users |
|
381 |
|
382 * released version 0.55-1 |
|
383 |
|
384 * checkvpw.texi: updated the documentation |
|
385 |
|
386 * released version 0.54-2 |
|
387 |
|
388 * spec: added a %attr tag for the documentation files. |
|
389 |
|
390 Tue Sep 16 10:50:16 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
391 |
|
392 * released version 0.54-1 |
|
393 |
|
394 * checkvpw.cc (auth_virtual): make the maildir string point to a |
|
395 subdirectory in USER_DIR |
|
396 |
|
397 * vadduser.cc: user mail directories are now stored in USER_DIR |
|
398 |
|
399 * config.h: created for global defines |
|
400 |
|
401 * mystring.cc (subst): substitute all instances of the <from> |
|
402 character with the <to> character (new) |
|
403 |
|
404 * vadduser.cc (main): create symlinks to the master .qmail-<user> |
|
405 file instead of creating multiple files for aliases |
|
406 |
|
407 * released version 0.53-1 |
|
408 |
|
409 * passwdfn.cc (fsetpwnam): fixed a bug that prevented more than |
|
410 one entry from being added to a password file |
|
411 |
|
412 * vadduser.cc (main): changed the default UID and GID to add to |
|
413 the password file to the current UID and GID |
|
414 |
|
415 Mon Sep 15 16:55:09 1997 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
416 |
|
417 * released version 0.52-2 |
|
418 |
|
419 * modified file structure to move sources and documentation into |
|
420 separate directories |
|
421 |
|
422 * released version 0.52-1 |
|
423 |
|
424 * Changed program name to checkvpw. I never did like the long |
|
425 name... |
|
426 |
|
427 * Added GNU COPYING file to package. |
|
428 |
|
429 * vadduser.cc (make_dot_qmail): checks for the .qmail-<ext> file |
|
430 before creating one |
|
431 (main): checks for the user in the password file before adding one |
|
432 |
|
433 * passwdfn.cc (fsetpwnam): modified to create the file if it |
|
434 doesn't exist |
|
435 |
|
436 * released version 0.51-2 |
|
437 |
|
438 * added ChangeLog and TODO to spec file |
|
439 |
|
440 * vpasswd.cc (main): vpasswd no longer requires that the |
|
441 administrator types in the old password to change to a new one |
|
442 |