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


_____________________________________________
tmda-users mailing list (tmda-users@tmda.net)
http://tmda.net/lists/listinfo/tmda-users

Reply via email to