imap4d: no transcript with --foreground

View: New views
5 Messages — Rating Filter:   Alert me  

imap4d: no transcript with --foreground

by Simon Josefsson-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I see that 'imap4d_transcript' is set in 'imap4d_connection':

int
imap4d_connection (int fd, struct sockaddr *sa, int salen, void *data,
                   mu_ip_server_t srv, time_t timeout, int transcript)
{
  idle_timeout = timeout;
  imap4d_transcript = transcript;

However this function is not used when --foreground is used:

  /* Actually run the daemon.  */
  if (mu_m_server_mode (server) == MODE_DAEMON)
    {
      mu_m_server_begin (server);
      status = mu_m_server_run (server);
      mu_m_server_end (server);
      mu_m_server_destroy (&server);
    }
  else
    {
      /* Make sure we are in the root directory.  */
      chdir ("/");
      status = imap4d_mainloop (fileno (stdin), stdin, stdout);
    }

I'm not familiar enough with the mu_cfg stuff to know how to extract the
transcript variable from the parsed configuration.  But it seems that
the last else-clause should set 'imap4d_transcript' if set in the
configuration file.  Help?

/Simon


_______________________________________________
Bug-mailutils mailing list
Bug-mailutils@...
http://lists.gnu.org/mailman/listinfo/bug-mailutils

Re: imap4d: no transcript with --foreground

by Sergey Poznyakoff-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Simon Josefsson <simon@...> ha escrit:

> However this function is not used when --foreground is used

Perhaps you mean --inetd, not --foreground? The only effect of
the `--foreground' is that it inhibits the use of daemon()
functions, so that the program remains attached to its controlling
terminal.

When `--inetd' is in effect, the transcript settings do not
apply, indeed.  That's because `transcript' is defined on a per server
basis. That is, you might have, for example:

server 127.0.0.1 {
  transcript yes;
}

server 213.130.31.41 {
  transcript no;
}

both in a single config file. The daemon will then show session
transcripts for sessions obtained on 127.0.0.1, but not for those
received on 213.130.31.41. However, neither of these settings apply
to inetd mode.

What about introducing a special `server' block, e.g.:

server inetd {
 ...
}

?

Regards,
Sergey


_______________________________________________
Bug-mailutils mailing list
Bug-mailutils@...
http://lists.gnu.org/mailman/listinfo/bug-mailutils

Re: imap4d: no transcript with --foreground

by Simon Josefsson-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sergey Poznyakoff <gray@...> writes:

> Simon Josefsson <simon@...> ha escrit:
>
>> However this function is not used when --foreground is used
>
> Perhaps you mean --inetd, not --foreground? The only effect of
> the `--foreground' is that it inhibits the use of daemon()
> functions, so that the program remains attached to its controlling
> terminal.

Yes, and that was the behaviour I wanted.

> When `--inetd' is in effect, the transcript settings do not
> apply, indeed.

As far as I could tell the transcript does work mostly.  It is just some
parts of imap4d where it does not work.

> That's because `transcript' is defined on a per server basis. That is,
> you might have, for example:
>
> server 127.0.0.1 {
>   transcript yes;
> }
>
> server 213.130.31.41 {
>   transcript no;
> }
>
> both in a single config file. The daemon will then show session
> transcripts for sessions obtained on 127.0.0.1, but not for those
> received on 213.130.31.41. However, neither of these settings apply
> to inetd mode.
>
> What about introducing a special `server' block, e.g.:
>
> server inetd {
>  ...
> }
>
> ?

Or use a global 'transcript' directive that applies to imap4d generally?
E.g. in a global config file:

program imap4d { transcript yes; };

or in a imap4d-specific rc file just

transcript yes;

/Simon


_______________________________________________
Bug-mailutils mailing list
Bug-mailutils@...
http://lists.gnu.org/mailman/listinfo/bug-mailutils

Re: Re: imap4d: no transcript with --foreground

by Sergey Poznyakoff-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Simon Josefsson <simon@...> ha escrit:

> Or use a global 'transcript' directive that applies to imap4d generally?

Yes, that's the simplest way. Please, try this:

diff --git a/imap4d/imap4d.c b/imap4d/imap4d.c
index 55917fa..8136018 100644
--- a/imap4d/imap4d.c
+++ b/imap4d/imap4d.c
@@ -341,6 +341,8 @@ static struct mu_cfg_param imap4d_cfg_param[] = {
     N_("List of fields to return in response to ID command.") },
   { ".server", mu_cfg_section, NULL, 0, NULL,
     N_("Server configuration.") },
+  { "transcript", mu_cfg_bool, &imap4d_transcript, 0, NULL,
+    N_("Enable transcript globally") },
   TCP_WRAPPERS_CONFIG
   { NULL }
 };

 
Regards,
Sergey


_______________________________________________
Bug-mailutils mailing list
Bug-mailutils@...
http://lists.gnu.org/mailman/listinfo/bug-mailutils

Re: imap4d: no transcript with --foreground

by Simon Josefsson-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Sergey Poznyakoff <gray@...> writes:

> Simon Josefsson <simon@...> ha escrit:
>
>> Or use a global 'transcript' directive that applies to imap4d generally?
>
> Yes, that's the simplest way. Please, try this:

Yes, that works fine.

Thanks,
/Simon

> diff --git a/imap4d/imap4d.c b/imap4d/imap4d.c
> index 55917fa..8136018 100644
> --- a/imap4d/imap4d.c
> +++ b/imap4d/imap4d.c
> @@ -341,6 +341,8 @@ static struct mu_cfg_param imap4d_cfg_param[] = {
>      N_("List of fields to return in response to ID command.") },
>    { ".server", mu_cfg_section, NULL, 0, NULL,
>      N_("Server configuration.") },
> +  { "transcript", mu_cfg_bool, &imap4d_transcript, 0, NULL,
> +    N_("Enable transcript globally") },
>    TCP_WRAPPERS_CONFIG
>    { NULL }
>  };
>
>  
> Regards,
> Sergey


_______________________________________________
Bug-mailutils mailing list
Bug-mailutils@...
http://lists.gnu.org/mailman/listinfo/bug-mailutils