|
1 1998-03-19 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
2 |
|
3 * vmailmgrd.pod: Documented the -d and -D options for logging. |
|
4 |
|
5 * daemon/log.cc (finish): It is not correct to un-freeze a string |
|
6 stream while a character pointer to its contents is still in use. |
|
7 Moved the "out.freeze(0)" call to after the contents were used. |
|
8 |
|
9 1998-03-15 Bruce Guenter <bguenter@hal.qcc.sk.ca> |
|
10 |
|
11 * lib/config.h: Added explanations of the various definitions, and |
|
12 added the definitions DO_SHADOW and MAILDIR_ARG_STR. |
|
13 |
|
14 * lib/pwentry_getpw.cc: #include the config.h file, which may |
|
15 define DO_SHADOW. |
|
16 |
|
17 * commands/checkvpw.cc (find_maildir): Use the configuration macro |
|
18 MAILDIR_ARG_STR instead of the hard coded string "maildir". |
|
19 |
|
20 1998-03-14 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
21 |
|
22 * commands/checkvpw.cc (getdata): Wrote some small modifications |
|
23 here to make it more correct and slightly more efficient. |
|
24 |
|
25 1998-03-12 Bruce Guenter <bguenter@hal.qcc.sk.ca> |
|
26 |
|
27 * commands/checkvpw.cc (authenticate): Coded the server call to |
|
28 use the convenience constructor. |
|
29 |
|
30 * commands/vdeliver.cc (main): Coded the server call to use the |
|
31 convenience constructor. |
|
32 |
|
33 * lib/server.cc (server_call): Added several convenience |
|
34 constructors, taking 0-4 string arguments. |
|
35 |
|
36 1998-03-12 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
37 |
|
38 * Released version 0.69pre9 |
|
39 |
|
40 * commands/vadduser.cc (setup): Initialize the random number |
|
41 generator. |
|
42 |
|
43 * commands/vpasswd.cc (main): Initialize the random number |
|
44 generator before changing passwords. This helps to prevent |
|
45 identical "salt"s in the passwords. |
|
46 |
|
47 * commands/vadduser.cc (setup): Added a check for the |
|
48 '.qmail-default' file, and print a short message explaining how to |
|
49 create it if it does not exist. |
|
50 |
|
51 1998-03-11 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
52 |
|
53 * commands/vdeliver.cc (exit_msg): Forgot to write a trailing |
|
54 newline in the exit messages. Fixed. |
|
55 |
|
56 1998-03-10 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
57 |
|
58 * commands/vdeluser.cc (main): Changed the response messages to |
|
59 look more like the other command programs. |
|
60 |
|
61 * lib/Makefile: Added rules to build the common library as a |
|
62 shared object, libvmailmgr.so.$(libversion), to which all the |
|
63 other programs link. |
|
64 |
|
65 * version: Added new version variables: libversion and soversion, |
|
66 used for building versioned shared objects. |
|
67 |
|
68 * lib/passwdfn.cc (getpasswd): Fixed the problem that would cause |
|
69 an error message about an empty password to be printed if the |
|
70 passwords were different. |
|
71 |
|
72 * commands/vpasswd.cc (main): Removed the server call in this |
|
73 program and made it use vuser_chpass instead. |
|
74 |
|
75 * lib/vuser_chpass.cc (vuser_chpass): Wrote this pair of routines |
|
76 which change the password of a user in a virtual password table. |
|
77 |
|
78 * daemon/chpass.cc (CMD(chpass)): Modified to use vuser_chpass. |
|
79 |
|
80 1998-03-09 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
81 |
|
82 * daemon/chpass.cc (CMD(chpass)): Converted to use autodelete. |
|
83 |
|
84 * daemon/adduser.cc (CMD(adduser)): Converted to use autodelete. |
|
85 |
|
86 1998-03-08 Bruce Guenter <bguenter@hal.qcc.sk.ca> |
|
87 |
|
88 * Released version 0.69pre8 |
|
89 |
|
90 * lib/vuser_lookup.cc (vuser_lookup): Converted to use autodelete. |
|
91 |
|
92 * lib/vuser_delalias.cc (vuser_delalias): Converted to use autodelete. |
|
93 |
|
94 * lib/vuser_deluser.cc (vuser_deluser): Converted to use autodelete. |
|
95 |
|
96 * lib/pwentry_delpw.cc (delpw): Fixed the same problem as in putpw. |
|
97 (delpw): Fixed the typo in creating the output file (output file |
|
98 name is in variable 'copyfile', not 'file'). |
|
99 |
|
100 * lib/pwentry_putpw.cc (putpw): istream.getline should be used |
|
101 instead of istream.get which doesn't discard the newline. |
|
102 |
|
103 * lib/vuser_add.cc (bad_chars): Removed the check for the |
|
104 directory separator in this routine, as '/' is a valid character |
|
105 in both password fields and e-mail addresses. |
|
106 |
|
107 1998-03-04 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
108 |
|
109 * vaddalias.pod: Updated the document to reflect the below change. |
|
110 |
|
111 * commands/vaddalias.cc (main): Modified the user lookup code to |
|
112 skip looking up a local user if the address contains a hostname |
|
113 (preceeded by an at sign (@)). |
|
114 |
|
115 * lib/mystring.cc (find): Modified this routine to add an "offset" |
|
116 parameter at which to start the search. |
|
117 |
|
118 1998-02-26 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
119 |
|
120 * released version 0.69pre7 |
|
121 |
|
122 * commands/checkvpw.cc (main): If the environment variable |
|
123 TCPLOCALHOST is not set, get the host name from gethostname(3). |
|
124 |
|
125 * daemon/main.cc (abortreq): Now generates a temporary response |
|
126 (with code=bad) and calls finishreq. |
|
127 (finishreq): Wrote this routine which logs a response and closes |
|
128 the connection. |
|
129 (main): Print out a message regarding the status of logging. |
|
130 (parse_options): Added code to parse the command line options. |
|
131 |
|
132 * daemon/log.cc (logresponse): Added this routine that optionally |
|
133 logs both the command and the response if either the response |
|
134 indicates an error or the program is logging all responses. |
|
135 Also set up all the other routines to log to a string which is |
|
136 only optionally logged given the above conditions. |
|
137 |
|
138 1998-02-22 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
139 |
|
140 * daemon/log.cc: Wrote various 'logcommand' routines into this file. |
|
141 |
|
142 1998-02-21 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
143 |
|
144 * daemon/main.cc (handle_connection): Removed command logging from |
|
145 this central location and distributed it to all the command |
|
146 modules, so that sensitive information (passwords) can be sensibly |
|
147 omitted. |
|
148 |
|
149 * commands/checkvpw.cc (strcasestr): Fixed bug that failed to |
|
150 match 'needle' in the 'haystack' if the occurrence of 'needle' was |
|
151 followed by non-nul characters. |
|
152 |
|
153 * commands/vdeliver.cc (main): Now reports error messages to |
|
154 stdout, so that bounce messages will contain some description of |
|
155 what goes wrong. |
|
156 |
|
157 * commands/checkvpw.cc (main): Fixed bug in setting maildir for |
|
158 virtual users: argument maildirarg+1 was being set, but maildirarg |
|
159 is already incremented. |
|
160 |
|
161 1998-02-19 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
162 |
|
163 * lib/qmail.cc (find_virtual): Converted to fstream I/O. |
|
164 |
|
165 * lib/pwentry_putpw.cc (putpw): Converted to fstream I/O. |
|
166 |
|
167 * lib/pwentry_getpw.cc (getpw_byname): Converted to fstream I/O. |
|
168 |
|
169 * lib/pwentry_delpw.cc (delpw): Converted to fstream I/O. |
|
170 |
|
171 * lib/passwdfn.cc: Removed a pile of unused code. |
|
172 |
|
173 * lib/mystring.h (operator<<): Added this operator which provides |
|
174 ostream support for class mystring. |
|
175 |
|
176 1998-02-18 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
177 |
|
178 * After much thought and time spent developing the fdio classes, I |
|
179 discovered that I was just re-developing the standard C++ iostream |
|
180 classes. So, all further I/O will be based on iostreams, and all |
|
181 use of the fdio classes will be converted. |
|
182 |
|
183 * vmailmgr.pod: Pulled this manual page, describing the general |
|
184 overview of the vmailmgr package, from the vmailmgr.texi |
|
185 file. There is now no content in the vmailmgr.texi file, and it |
|
186 is removed from the package. |
|
187 |
|
188 * vdelalias.pod: Pulled this manual page for vdelalias. |
|
189 |
|
190 * vaddalias.pod: Pulled this manual page for vaddalias. |
|
191 |
|
192 * vdeluser.pod: Pulled this manual page for vdeluser. |
|
193 |
|
194 * vadduser.pod: Pulled this manual page for vadduser. |
|
195 |
|
196 * vpasswd.pod: Pulled this manual page for vpasswd. |
|
197 |
|
198 1998-02-17 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
199 |
|
200 * checkvpw.pod: Pulled this manual page for checkvpw from |
|
201 vmailmgr.texi. |
|
202 |
|
203 * vmailmgrd.pod: Wrote this manual page for vmailmgrd. |
|
204 |
|
205 * vdeliver.pod: Wrote this manual page for vdeliver and removed |
|
206 the section for vmailmgr.texi pertaining to vdeliver. |
|
207 |
|
208 1998-02-16 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
209 |
|
210 * daemon/lookup.cc (CMD(lookup)): Removed the code to check the |
|
211 arguments. |
|
212 (CMD(lookup)): Fixed a logic flaw that reported virtual users with |
|
213 an erroneously empty destination field as valid users. |
|
214 |
|
215 * daemon/check.cc (CMD(check)): Removed the code to check the |
|
216 arguments. |
|
217 |
|
218 * daemon/daemon.h (class command): The array of arguments is now |
|
219 an array of pointers to mystring instead of an array of mystring's. |
|
220 |
|
221 * daemon/dispatch.cc (dispatch_cmd): Added code to handle virtual |
|
222 domain parsing and argument counting. |
|
223 |
|
224 * daemon/command.cc (replace_first_two): Wrote this routine to |
|
225 help consolidate the virtual-domain parsing routines into |
|
226 dispatch_cmd. |
|
227 |
|
228 * released version 0.69pre6 |
|
229 |
|
230 * daemon/main.cc (abortreq): Removed the abortreq/0 routine. |
|
231 |
|
232 * commands/vadduser.cc: Adapted this program to use the fdio library. |
|
233 |
|
234 * commands/vaddalias.cc (main): Adapted this program to use the |
|
235 fdio library, and fixed the logic problem that prevented any alias |
|
236 from being added. |
|
237 |
|
238 * lib/pwentry_delpw.cc (delpw): Added this routine to delete a |
|
239 password entry. |
|
240 |
|
241 * lib/pwentry.h: turned the addpw/setpw macros into inline routines. |
|
242 |
|
243 * commands/vdeluser.cc (main): Adapted this program to use the |
|
244 vuser_deluser routine and fdio. |
|
245 |
|
246 * commands/vdelalias.cc (main): Adapted this program to use the |
|
247 vuser_delalias routine and fdio. |
|
248 |
|
249 * lib/vuser_delalias.cc (vuser_delalias): Wrote this routine to |
|
250 delete an alias. |
|
251 |
|
252 * lib/vuser_deluser.cc (vuser_deluser): Adapted this routine from |
|
253 vdeluser.cc to delete a user and its maildir. |
|
254 |
|
255 * lib/vuser_add.cc (bad_chars): Added the directory separator |
|
256 ('/') to the list of bad characters. |
|
257 |
|
258 * daemon/dispatch.cc (struct dispatch ): Started to add support |
|
259 for a unified parameter decoder. |
|
260 |
|
261 * lib/qmail.cc: Removed the 'dot_qmail_name' and 'valid_name' |
|
262 routines, which are no longer necessary. |
|
263 |
|
264 1998-02-12 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
265 |
|
266 * lib/fdio_base.cc (fdstream): Remove the trigger character |
|
267 argument to the constructors, set the trigger to '\n' if the file |
|
268 descriptor is a tty. |
|
269 |
|
270 1998-02-11 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
271 |
|
272 * lib/fdio.h (class fdistream): Started writing the input class. |
|
273 |
|
274 * daemon/main.cc (logcommand): Added a special case to blank out |
|
275 the last argument (the password) for "check" commands. |
|
276 |
|
277 * daemon/lookup.cc (lookup_maildir): Converted to use autodelete. |
|
278 |
|
279 * daemon/main.cc (main): Added a handler for SIGHUP (currently |
|
280 does nothing, will eventually signal to clear all cached tables). |
|
281 |
|
282 * commands/checkvpw.cc (find_maildir): Fixed logic negation problem. |
|
283 (main): Fixed problem in call to lookup_maildir (hostname/username |
|
284 arguments were out of order). |
|
285 |
|
286 1998-02-10 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
287 |
|
288 * commands/checkvpw.cc (lookup_maildir): Wrote this routine to |
|
289 explicitly lookup the maildir of a user. |
|
290 (authenticate): Removed the code to parse the maildir field out of |
|
291 the response message from "check". |
|
292 (main): Recoded to find the maildir argument, use it as the |
|
293 default maildir, and only replace that argument in the case of |
|
294 authenticating a virtual user. |
|
295 |
|
296 * daemon/lookup.cc (CMD): The main command now takes similar |
|
297 arguments to all the other commands which handle virtual domains, |
|
298 and returns either the "destination" field for a virtual user or |
|
299 an empty string for a real user. |
|
300 |
|
301 * daemon/check.cc (check): Removed the code to lookup the |
|
302 maildir. The check command no longer reports maildir |
|
303 information. This happens to make this routine a great deal |
|
304 simpler. |
|
305 (check): Use autodelete<T> for basepw and virtpw. |
|
306 (CMD): Recoded the main command routine to check is_local before |
|
307 find_virtual. |
|
308 |
|
309 * lib/autodelete.h (class autodelete ): Wrote this (template) |
|
310 class to automatically delete a pointer when it is goes out of |
|
311 scope. |
|
312 |
|
313 * lib/config.h: Added new define, DEFAULT_MAILDIR, that represents |
|
314 the default maildir to use if none is given. |
|
315 |
|
316 1998-02-08 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
317 |
|
318 * released version 0.69pre5 |
|
319 |
|
320 * lib/fdio_out.cc (write): Handle unbuffered reads/writes. |
|
321 (write): Corrected handling of triggerchar. |
|
322 |
|
323 * lib/fdio.h (class fdstream): Add setbuffer and settrigger |
|
324 methods to setup or reset the buffering and trigger characters. |
|
325 |
|
326 * daemon/main.cc (msg): Rewrote these routines to use the new fdio |
|
327 classes. |
|
328 |
|
329 * lib/fdio_out.cc: Wrote this file, containing the output class |
|
330 fdostream. |
|
331 |
|
332 * lib/fdio_base.cc: Wrote this file, containing the base I/O class |
|
333 fdstream. |
|
334 |
|
335 1998-02-07 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
336 |
|
337 * lib/pwentry_getpw.cc (getpw_byname): Fixed shadow password |
|
338 support (password field is sp_pwdp, not spw_pwdp). |
|
339 |
|
340 * lib/response_message.cc (codestr): Wrote this function that |
|
341 returns a string version of the response code. |
|
342 |
|
343 * daemon/main.cc (handle_connection): Modified to print out more |
|
344 useful information for logging: request contents and responses. |
|
345 |
|
346 * commands/vadduser.cc (add_user,add_alias): Check to make sure |
|
347 the user or alias does not exist before adding it. |
|
348 |
|
349 * commands/vaddalias.cc (main): Rewrote this program to use the |
|
350 vuser_* routines. |
|
351 |
|
352 * daemon/lookup.cc (lookup_maildir): Rewrote this function to use |
|
353 vuser_lookup. |
|
354 |
|
355 * lib/vuser_lookup.cc (vuser_lookup): Moved this function out of |
|
356 daemon/lookup.cc. |
|
357 |
|
358 1998-02-06 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
359 |
|
360 * released version 0.69pre4 |
|
361 |
|
362 * commands/vadduser.cc (add_user): Completed rewriting this |
|
363 program to use the vuser_* routines. |
|
364 |
|
365 * lib/pwentry_getpw.cc (getpw_byname): Added support for shadow |
|
366 passwords (untested). |
|
367 |
|
368 * lib/pwentry_setpw.cc (putpw): Fixed bug in string comparison: |
|
369 when the name to add is longer than the name in the password file, |
|
370 the extra characters are not compared. |
|
371 |
|
372 * lib/vuser_add.cc (vuser_addalias): Wrote this routine, adds an |
|
373 alias to a password file. |
|
374 (vuser_add): Modified this routine to create a maildir only if the |
|
375 maildir parameter is not empty. Also, check if the name and |
|
376 password contain invalid characters (currently only checks for ':' |
|
377 and whitespace). |
|
378 |
|
379 * commands/testclient.cc (main): Rewrote to use the new |
|
380 response::message routine. |
|
381 |
|
382 * lib/response_message.cc (message): Wrote this routine which |
|
383 returns the msg field with a prefix tag corresponding to the code |
|
384 field. |
|
385 |
|
386 * lib/response.h (struct response): Added operator!, returns true |
|
387 if the response is not ok. |
|
388 |
|
389 * lib/vuser_add.cc (vuser_add): Added new vuser_add routine which |
|
390 builds the vpwentry and passes it to the other vuser_add routine. |
|
391 |
|
392 1998-01-29 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
393 |
|
394 * lib/vuser_add.cc (vuser_add): Modified this routine to call |
|
395 addpw instead of setpw. |
|
396 |
|
397 * lib/pwentry.h: Renamed setpw to putpw and made two new macros, |
|
398 setpw and addpw, that call it. |
|
399 |
|
400 * lib/pwentry_setpw.cc (putpw): Added support to setpw to only add |
|
401 (no overwrite) new entries, and renamed it to putpw. |
|
402 |
|
403 1998-01-28 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
404 |
|
405 * lib/vuser_add.cc (vuser_add): Moved part of adduser from |
|
406 daemon/adduser.cc here, with the name vuser_add. |
|
407 |
|
408 * daemon/chpass.cc (chpass): Rewrote to use the new saved_uidgid |
|
409 class. |
|
410 |
|
411 * commands/vpasswd.cc (main): Rewrote to use the new response |
|
412 class. |
|
413 |
|
414 * commands/vdeliver.cc (main): Rewrote to use the new response |
|
415 class. |
|
416 |
|
417 * commands/testclient.cc (main): Rewrote to use the new response |
|
418 class. |
|
419 |
|
420 * commands/checkvpw.cc (authenticate): Rewrote to use new response |
|
421 class. |
|
422 |
|
423 * lib/server.h: Removed the class server_response, which was |
|
424 functionally identical to class response. |
|
425 |
|
426 * lib/pwentry_getpw.cc (getpw_byname): Moved the implementation of |
|
427 this routine into a separate file. |
|
428 |
|
429 * lib/pwentry_setpw.cc (setpw): Moved the implementation of this |
|
430 routine into a separate file. |
|
431 (setpw_pass): Commented out this routine, for now. |
|
432 |
|
433 * Moved pwcrypt.h, pwcrypt.cc, pwentry.h, pwentry.cc into lib. |
|
434 |
|
435 * lib/response_write.cc (write): Moved the implementation of |
|
436 response::write into this file. |
|
437 |
|
438 * lib/response.h (struct response ): Moved this class from |
|
439 daemon/daemon.h into this file, as I plan to use it in some |
|
440 non-daemon applications. |
|
441 |
|
442 * daemon/uidgid.h (class saved_uidgid): Moved the |
|
443 push_uidgid/pop_uidgid behavior into this class, which allows me |
|
444 to let C++ automatically "pop" the uid/gid state when a routine |
|
445 exits. |
|
446 |
|
447 1998-01-27 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
448 |
|
449 * commands/vadduser.cc: Started modifying this program to call the |
|
450 server. |
|
451 |
|
452 * daemon/adduser.cc (adduser): Finished implementing this function. |
|
453 |
|
454 * daemon/lookup.cc (lookup_maildir): Modified the lookup logic |
|
455 such that an empty destination field is invalid. |
|
456 |
|
457 * daemon/pwentry.cc (putpw): Fixed to add a newline at the end of |
|
458 the entry. |
|
459 (setpw): Fixed logic error with the final return code. |
|
460 |
|
461 * daemon/pwcrypt.cc (encrypt): Wrote this routine which generates |
|
462 a random salt and encrypts the password using this new random |
|
463 salt. |
|
464 |
|
465 * daemon/chpass.cc (chpass): Simplify matters by resetting the |
|
466 password in the vpw structure and calling setpw instead of |
|
467 setpw_pass. |
|
468 |
|
469 * daemon/pwentry.cc: Moved the crypt_cmp routine into its own |
|
470 file, pwcrypt.cc. |
|
471 |
|
472 1998-01-26 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
473 |
|
474 * daemon/dispatch.cc (CMD(statall)): Wrote this routine to return |
|
475 stats on all the routines in the dispatch table. |
|
476 |
|
477 * daemon/adduser.cc (adduser): Started to write this module which |
|
478 adds a virtual account to a domain. |
|
479 |
|
480 * daemon/chpass.cc (chpass): modified to use the new userlookup |
|
481 and pwentry functions. |
|
482 |
|
483 * daemon/check.cc (check): modified to use the new userlookup. |
|
484 |
|
485 * daemon/lookup.cc (userlookup): modified to get the virtual |
|
486 password table entry if it exists, using the new pwentry |
|
487 functions. |
|
488 (lookup_maildir): modified to use the new pwentry functions. |
|
489 |
|
490 * daemon/pwentry.cc (getpw_byname/2): Written, looks up a global |
|
491 password entry. |
|
492 (getpw_byname/3): Written, looks up a virtual password entry. |
|
493 Note that the return value from all the 'getpw*' functions must be |
|
494 deleted. |
|
495 (setpw): Written, sets an entry in a virtual password file. |
|
496 (setpw_pass): Written, sets the password in a virtual password |
|
497 file. |
|
498 |
|
499 * daemon/pwentry.h (struct pwentry, vpwentry): Wrote this header |
|
500 to encapsulate global and virtual password file lookups. |
|
501 |
|
502 * lib/passwdfn.cc: Commented out all the password file |
|
503 manipulation functions. |
|
504 |
|
505 * lib/passwdfn.h: Commented out all the password file manipulation |
|
506 functions. |
|
507 |
|
508 1998-01-25 Bruce Guenter <bguenter@mikhail.qcc.sk.ca> |
|
509 |
|
510 * commands/vdeliver.cc: Remove the duplicate definitions of |
|
511 functions provided in the "stat_fns" header file. |
|
512 |
|
513 * Changed the package's name to 'vmailmgr' (Virtual MAIL |
|
514 ManaGeR). It is quite readily apparent that this package has |
|
515 evolved into something much larger than just a password checking |
|
516 program. |
|
517 |