diff options
Diffstat (limited to 'CHANGELOG')
-rwxr-xr-x | CHANGELOG | 170 |
1 files changed, 169 insertions, 1 deletions
@@ -1,6 +1,174 @@ Firma CHANGELOG --------------- +17/08/2005 - 0.3-cvs (rev 1.31) - luis + + - On function GetMessage, renamed variable "STDIN" + to "stdin" and declared it as local. + +17/08/2005 - 0.3-cvs (rev 1.30) - luis + + - Changed project description to: "firma: GnuPG-based encrypted + mailing list manager" + + - Declared/renamed/removed variables and arrays: + o Configuration file variables: + MAIL -> MAIL_AGENT + MAIL_ARGS -> MAIL_AGENT_ARGS + GPG -> GPG_BINARY + LISTNAME -> LIST_ADDRESS + LISTADMIN -> LIST_ADMIN + GPGDIR -> LIST_HOMEDIR + PASSWD -> PASSPHRASE + + o GnuPG variables: + GPGFLAGS -> GPG_FLAGS + GPGCOMMAND -> GPG + GPGLIST -> GPG_LIST_KEYS + GPGDECRYPT -> GPG_DECRYPT + GPGENCRYPT -> GPG_ENCRYPT + + o Other global variables: + FIRMA_LIST_PATH -> LISTS_DIR + FROMADD -> SENDER_ADDRESS + array -> ARRAY + CONFIG_FILE -> LIST_NAME + CONFIG_PATH -> LIST_PATH + CONFIG -> LIST_CONFIG_FILE + LINES, n, i -> ( removed ) + ( new ) -> FIRMA_CONFIG_FILE + o Global arrays: + MESSAGE -> ORIG_MESSAGE + GPG_MESSAGE -> ORIG_GPG_MESSAGE + LIST_MESSAGE -> MESSAGE_BODY + USED_ARRAYS -> GLOBAL_ARRAYS + ADMINCOMMANDS -> ( removed ) + ( new ) -> ORIG_MESSAGE_HEADERS + + o Local variables: + ADMIN -> administrator + EMAIL -> email + KEYID -> keyid + signal -> ( removed ) + ( new ) -> element, i, j, uid_count, chosen_uid_number + + - firma now uses two different configuration files: a general one, + containing the variables MAIL_AGENT, MAIL_AGENT_ARGS, GPG_BINARY and + LISTS_DIR, and a list specific file, containing the variables + LIST_ADDRESS, LIST_ADMIN, LIST_HOMEDIR and PASSPHRASE. + + - Edited the comments at the beggining of the script to reflect the + change above. + + - As suggested by the Advanced Bash-Scripting Guide (ABSG)[1], added + descriptive headers to all functions, describing its function, what + it expects as input, on what other functions it depends and what exit + codes it returns. + + - Also as suggested by the ABSG[1], renamed all functions from + all_lower_case_names to MixedCaseNames. + + - Renamed some functions to make their use more clear: + gpg_args -> DeclareGpgVars + check_config -> split into two: CheckFirmaConfigFile + and CheckListConfigFile + get_gpg_stderr -> GetGpgDecryptStderr + message_list -> SendListMessage + message_list_error -> SendWarningMessage + message_list_return -> SendBounceMessage + list_admin -> ListAdministration + + - Added some more GnuPG flags: + o To the GPG_FLAGS variable: --no-options, --no-default-keyring, + --no-auto-check-trustdb + o And to the GPG_ENCRYPT variable: --local-user $LIST_ADDRESS, + --no-emit-version, --trust-model always + The last one replaced the "--always-trust" option, since its + deprecated according to GnuPG's manual. + + - Minor changes on functions: Usage, Check*ConfigFile, GetMessage, + GetSubscribersList, SendListMessage, SendWarningMessage, + SendBounceMessage, ProcessMessage, NewList and ChooseUid + + o Usage: + Explained what options expect an argument; + Commented out the -r (--list-request) option description, since + it's not implemented yet; + Added a description of the administrative tasks accepted by the + -a option; + Other minor changes. + + o Check*ConfigFile: + Added a check to see if the LISTS_DIR is an existing directory; + Added a check to avoid more than 3 sequential repetitions of the + same character in the PASSPHRASE; + Other minor changes in the PASSPHRASE, LIST_ADDRESS and + LIST_ADMIN checks. + o GetMessage: + Added a check to see if the message was successfully stored in + the ORIG_MESSAGE array. + + o GetSubscribersList: + Added a check to see if there are any subscribers to send + messages to in a given list. + + o SendListMessage, SendWarningMessage, SendBounceMessage: + Just minor changes. + + o ProcessMessage: + (* SECURITY FIX *) A public key with an UID containing GOODSIG + in its name, comment or email address would be able to send + messages to any list. And a UID containing BADSIG in any of + these fields, would be able to send messages to the list + administrator(s) of any list. Fixed. + + o NewList: + Just minor changes. + + o ChooseUid: + Declared keyid, uid_count and chosen_uid_number as local + variables, moving them to the beginning of the function; + Minor syntax changes in the checkings; + Added lots of comments, explaining what the checkings and the + expect script are doing. + + - Major changes on functions: GetGpgMessage, GetMessageHeaders, + ListAdministration and "main" + + o GetGpgMessage: + Improved function to run faster, specially when processing large + messages (over 50KB or so). + + o GetMessageHeaders: + Improved to run faster independent of the size of the message + being processed. + + o ListAdministration: + Structured function using the "case" bash builtin; + Made command parsing more consistent: checking if a given + command exists, if the right number of arguments were passed, + if the arguments are valid for this command, and, if anything + is wrong, showing descriptive and concise error messages; + New administrative tasks can be easily added to this new nested + "case" structure. + + o "main": + Also structured using the "case" bash builtin; + The long options --admin-task, --create-newlist, --help, + --process-message and --version are now accepted; + Commented out the -r (--list-request) option, since it's not + implemented yet; + Made the command-line options parsing more consistent (read + explanation above); + Changed "umask" from 0777 to 0077. Otherwise, function NewList + cannot create configuration files for new lists; + Improved parsing of option -a (--admin-task), removing + unecessary commands and routines from this part of the code; + Again, new command-line options can be easily added to this new + nested "case" structure. + + [1] http://www.tldp.org/LDP/abs/html/unofficialst.html + 10/08/2005 - 0.3-cvs (rev 1.29) - rhatto - Fix: Now LIST_MESSAGE _really_ works @@ -85,7 +253,7 @@ Firma CHANGELOG - New: Implemented size and complexity checks for the lists' passphrase. - firma would not work as expected if the PASSWD variable contained - characters such as $, `, ', ", \. Fixed. Now PASSWD has to be^M + characters such as $, `, ', ", \. Fixed. Now PASSWD has to be enclosed in single quotes and cannot contain any single quote in its value. - Checked the entire code and tried to make it clearer and more |