vtmdarc issue entire error message
Dave Hallowell <[email protected]>
| Newsgroups | gmane.mail.spam.tmda.user |
|---|---|
| Message-ID | <[email protected]> |
Sorry about that, being unfamiliar with python, I didn't know if the entire
page of error messages was necessary. My bad.
Anyway, thanks Jim for at taking a look at it. Mostly, I just want the TMDA
users (virtual users) to be able to view the global config. I do not want
them to be able to edit it. I am assuming that the contents of the global
lists will be available to be viewed. If this is incorrect, please let
me know.
As I mentioned before, I am running qmail-toaster using Nick Hemmesch's
page
on Linux CentOS v.4.4. tmda-1.1.9-1 and tmda-ofmipd-1.1.9-1 and
tmda-cgi.0.15
Everything within tmda and tmda-cgi works properly (as far as I can tell)
except for the global config file. If I put the tmdarc file in /etc I
get the
errors, without it, I just get a message that the /etc/tmdarc file does not
exist, and everything works. Here is the tmdarc file I am using:
CRYPT_KEY_FILE = "$VUSERDIR/.tmda/crypt_key"
CONFIRM_APPEND = "$VUSERDIR/.tmda/lists/whitelist"
DATADIR = "$VUSERDIR/.tmda/"
PENDING_WHITELIST_APPEND = CONFIRM_APPEND
PENDING_BLACKLIST_APPEND = "$VUSERDIR/.tmda/lists/blacklist"
PENDING_RELEASE_APPEND = CONFIRM_APPEND
FILTER_INCOMING = "$VUSERDIR/.tmda/filters/incoming"
FILTER_OUTGOING = "$VUSERDIR/.tmda/filters/outgoing"
HOSTNAME = "$VDOMAIN"
CONFIG_EXEC = 0
perms are
-rw-r--r-- 1 vpopmail vchkpw 412 Jan 25 16:31 /home/vpopmail/etc/vtmdarc
Here is the entire error message:
A problem occurred in a Python script. Here is the sequence of function
calls leading up to the error, in the order they occurred.
/usr/local/tmda-cgi-0.15/tmda-cgi.py
132 PVars["InProcess"] = {}
133 PVars["LocalConfig"] = "Form"
134 PVars.Save()
135
136 # Share "globals"
PVars undefined
/usr/local/tmda-cgi-0.15/Session.py in __init__(self=<Session.Session
instance>, Form=FieldStorage(None, None, [MiniFieldStorage('user...rd',
'cbs123'), MiniFieldStorage('cmd', 'init')]))
480
481 # Become the user
482 self.BecomeUser()
483
484 # Signal main program
self = <Session.Session instance>, self.BecomeUser = <bound method
Session.BecomeUser of <Session.Session instance>>
/usr/local/tmda-cgi-0.15/Session.py in BecomeUser(self=<Session.Session
instance>)
288 T["ErrMsg"] = ErrStr
289 print T
290 sys.exit()
291
292 # Read in our PVars
global sys = <module 'sys' (built-in)>, sys.exit = <built-in function exit>
/usr/local/tmda-cgi-0.15/tmda-cgi.py in NewImport(name='TMDA',
globals={'BooleanType': <type 'bool'>, 'BufferType': <type 'buffer'>,
'BuiltinFunctionType': <type 'builtin_function_or_method'>,
'BuiltinMethodType': <type 'builtin_function_or_method'>, 'CgiUtil':
<module 'CgiUtil' from '/usr/local/tmda-cgi-0.15/CgiUtil.pyc'>,
'ClassType': <type 'classobj'>, 'CodeType': <type 'code'>,
'ComplexType': <type 'complex'>, 'ConfigParser': <module 'ConfigParser'
from '/usr/lib/python2.3/ConfigParser.pyc'>, 'DictProxyType': <type
'dictproxy'>, ...}, locals=None, fromlist=('Defaults',))
37 from TMDA import Version
38 return Version
39 return OldImport(name, globals, locals, fromlist)
40 __builtins__.__import__ = NewImport
41
global OldImport = <built-in function __import__>, name = 'TMDA',
globals = {'BooleanType': <type 'bool'>, 'BufferType': <type 'buffer'>,
'BuiltinFunctionType': <type 'builtin_function_or_method'>,
'BuiltinMethodType': <type 'builtin_function_or_method'>, 'CgiUtil':
<module 'CgiUtil' from '/usr/local/tmda-cgi-0.15/CgiUtil.pyc'>,
'ClassType': <type 'classobj'>, 'CodeType': <type 'code'>,
'ComplexType': <type 'complex'>, 'ConfigParser': <module 'ConfigParser'
from '/usr/lib/python2.3/ConfigParser.pyc'>, 'DictProxyType': <type
'dictproxy'>, ...}, locals = None, fromlist = ('Defaults',)
/usr/local/tmda/TMDA/Defaults.py
102 import ConfigParser
103 cf = ConfigParser.ConfigParser()
104 cf.read(TMDARC)
105 cf_section = 'TMDA_CONFIG'
106 for option in cf.options(cf_section):
cf = <ConfigParser.ConfigParser instance>, cf.read = <bound method
ConfigParser.read of <ConfigParser.ConfigParser instance>>, TMDARC =
'/home/vpopmail/domains/mydomain.com/drh/.tmda/config'
/usr/lib/python2.3/ConfigParser.py in
read(self=<ConfigParser.ConfigParser instance>,
filenames=['/home/vpopmail/domains/mydomain.com/drh/.tmda/config'])
261 except IOError:
262 continue
263 self._read(fp, filename)
264 fp.close()
265
self = <ConfigParser.ConfigParser instance>, self._read = <bound method
ConfigParser._read of <ConfigParser.ConfigParser instance>>, fp = <open
file '/home/vpopmail/domains/accsnetwork.com/drh/.tmda/config', mode
'r'>, filename = '/home/vpopmail/domains/accsnetwork.com/drh/.tmda/config'
/usr/lib/python2.3/ConfigParser.py in
_read(self=<ConfigParser.ConfigParser instance>, fp=<open file
'/home/vpopmail/domains/accsnetwork.com/drh/.tmda/config', mode 'r'>,
fpname='/home/vpopmail/domains/mydomain.com/drh/.tmda/config')
454 # no section header in the file?
455 elif cursect is None:
456 raise MissingSectionHeaderError(fpname,
lineno, `line`)
457 # an option line?
458 else:
global MissingSectionHeaderError = <class
ConfigParser.MissingSectionHeaderError>, fpname =
'/home/vpopmail/domains/mydomain.com/drh/.tmda/config', lineno = 1, line
= 'CGI_VIRTUALUSER = 1\n'
MissingSectionHeaderError: File contains no section headers. file:
/home/vpopmail/domains/mydomain.com/drh/.tmda/config, line: 1
'CGI_VIRTUALUSER = 1\n'
append = <bound method MissingSectionHeaderError.append
o...rh/.tmda/config, line: 1 'CGI_VIRTUALUSER = 1\n'>
args = ("File contains no section headers.\nfile:
/home/vp...drh/.tmda/config, line: 1\n'CGI_VIRTUALUSER = 1\\n'",)
filename = '/home/vpopmail/domains/mydomain.com/drh/.tmda/config'
line = r"'CGI_VIRTUALUSER = 1\n'"
lineno = 1
message = "File contains no section headers.\nfile:
/home/vp...drh/.tmda/config, line: 1\n'CGI_VIRTUALUSER = 1\\n'"
Again, thank you very much for any help or pointers.
Dave