/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos

  • Committer: Teddy Hogeborn
  • Date: 2008-08-16 03:29:08 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080816032908-ihw7c05r2mnyk389
Add feature to specify custom environment variables for plugins.

* plugin-runner.c (plugin): New members "environ" and "envc" to
                            contain possible custom environment.
  (getplugin): Return NULL on failure instead of doing exit(); all
               callers changed.
  (add_to_char_array): New helper function for "add_argument" and
                       "add_environment".
  (addargument): Renamed to "add_argument".  Return bool.  Call
                 "add_to_char_array" to actually do things.
  (add_environment): New; analogous to "add_argument".
  (addcustomargument): Renamed to "add_to_argv" to avoid confusion
                       with "add_argument".
  (main): New options "--global-envs" and "--envs-for" to specify
          custom environment for plugins.  Print environment for
          plugins in debug mode.  Use asprintf instead of strcpy and
          strcat.  Use execve() for plugins with custom environments.
          Free environment for plugin when freeing plugin list.

Show diffs side-by-side

added added

removed removed

Lines of Context:
119
119
        self.domain = domain
120
120
        self.host = host
121
121
        self.rename_count = 0
 
122
        self.max_renames = max_renames
122
123
    def rename(self):
123
124
        """Derived from the Avahi example code"""
124
125
        if self.rename_count >= self.max_renames:
125
126
            logger.critical(u"No suitable service name found after %i"
126
127
                            u" retries, exiting.", rename_count)
127
128
            raise AvahiServiceError("Too many renames")
128
 
        name = server.GetAlternativeServiceName(name)
129
 
        logger.error(u"Changing name to %r ...", name)
 
129
        self.name = server.GetAlternativeServiceName(self.name)
 
130
        logger.info(u"Changing name to %r ...", str(self.name))
130
131
        syslogger.setFormatter(logging.Formatter\
131
132
                               ('Mandos (%s): %%(levelname)s:'
132
 
                               ' %%(message)s' % name))
 
133
                               ' %%(message)s' % self.name))
133
134
        self.remove()
134
135
        self.add()
135
136
        self.rename_count += 1