You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SNFMilterConfigRequirements.txt 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. Functional Requirements for SNFMilterConfig
  2. $Id: SNFMilterConfigRequirements.txt,v 1.6 2012/05/19 00:37:12 adeniz Exp $
  3. This note specifies the requirements SNFMilterConfig, a command-line
  4. utility to integrate SNFMilter an MTA.
  5. Functional requirements
  6. -----------------------
  7. SNFMilterConfig has four main functional capabilities:
  8. 1) Repair/setup. This directs SNFMilterConfig to copy any missing
  9. configuration files from the sample files. SNFMilterConfig
  10. doesn't check for corrupted configuration files.
  11. When repairing the credentials (identity.xml and getRulebase),
  12. SNFMilterConfig does the following:
  13. a) If only one file exists, copy the other from the sample file,
  14. and propagate the credentials from the file that exists to the
  15. new file.
  16. b) If both files exist but the credentials are not consistent,
  17. propagate the non-testmode credentials from one file to the
  18. other. If both are non-testmode, copy the credentials from
  19. identity.xml to getRulebase.
  20. c) If neither file exists, copy from the sample files.
  21. d) Otherwise, both files exist and are consistent; do nothing.
  22. 2) Integrate/unintegrate. This directs SNFMilterConfig to integrate
  23. with the specified MTA, or to unintegrate from all supported
  24. MTAs.
  25. 3) Specify credentials. This directs SNFMilterConfig to update the
  26. identity.xml and getRulebase files with the specified
  27. credentials. The credentials are updated as follows:
  28. a) Update getRulebase.
  29. b) Download the rulebase.
  30. c) Update identity.xml.
  31. 4) Start/stop SNFMilter. This directs SNFMilterConfig to start or
  32. stop SNFMilter. SNFMilterConfig determines whether or not the
  33. action was successful and that SNFMilter is running as follows:
  34. a) If SNFMilter is configured to use the XCI interface,
  35. SNFMilterConfig attempts to communicate with SNFMilter using
  36. the XCI interface.
  37. b) Otherwise, if SNFMilter is configured to update the status log
  38. every second, SNFMilterConfig checks whether the status.second
  39. log is updated after several seconds.
  40. c) Otherwise, if SNFMilter is configured to update the status log
  41. every minute, SNFMilterConfig checks whether the status.minute
  42. log is updated after a time period sufficiently longer than
  43. one minute.
  44. d) Otherwise, SNFMilterConfig outputs an advisory message.
  45. These functions are independent. For example, specifying credentials
  46. will not create any configuration files that don't exist.
  47. If an error occurs, SNFMilterConfig does the following:
  48. 1) Restores the state of the configuration files, and
  49. 2) Saves a copy of the new configuration files that resulted
  50. in the failure in a file with the same name as the configuration
  51. file, but appended with ".failed".
  52. If an error does not occur, any ".failed" files from a previous run on
  53. SNFMilterConfig are deleted.
  54. The configuration file back and restore is progressive; files are
  55. backed up as they are modified.
  56. Command-line interface
  57. ----------------------
  58. SNFMilterConfig requires exactly one of the following sets of
  59. command-line parameters:
  60. 1) "-repair" or "-setup". Repair/setup the configuration.
  61. 2) "-mta=SPEC", where SPEC is "postfix", "sendmail", or "none".
  62. Integrate with postfix, sendmail, or unintegrate with postfix and
  63. sendmail, respectively.
  64. 3) "-auth=AUTH" and "-id=LICENSE", in any order. Specify the
  65. credentials.
  66. 4) "-start" or "-stop". Start or stop SNFMilter.
  67. 5) "-explain". Output a description of each step as the step is
  68. executed.
  69. 6) "-verbose". Output a description of each step that would be
  70. executed, but not execute any steps.
  71. If no command-line arguments are specified, SNFMilterConfig outputs a
  72. help message that includes the version, and then exists.
  73. Integration with MTAs
  74. ---------------------
  75. postfix--
  76. 1) Add/remove milter specification in main.cf.
  77. 2) Make postfix a member of snfuser ("usermod -G snfuser postfix"
  78. for RedHat).
  79. 3) Create the socket and any parent directories.
  80. sendmail--
  81. 1) Add/remove milter specification in sendmail.mc.
  82. 2) Run "make" to create sendmail.cf.
  83. 3) Create the socket and any parent directories.
  84. Return status
  85. -------------
  86. SNFMilterConfig returns 0 if the specified action was completed with
  87. no detected error. If an error was detected, either in completing
  88. the specified action or in the command-line arguments,
  89. SNFMilterConfig returns -1.
  90. Output
  91. ------
  92. If an error is encountered, SNFMilterConfig outputs a description of
  93. the error encountered.
  94. Non-functional requirements
  95. ---------------------------
  96. Exit status is 0 of success with no detected error, -1 if an error
  97. is detected.
  98. When modifying files, SNFMilterConfig includes comments documenting
  99. the changes and the name of the program.