Re: [EXT] Re: How to get a memory pointer in the core process

2024-03-14 Thread Joseph Tam
From: Joan Moreau

> I am trying to avoid closing/ reopening a file pointer to the exact same file
> between each call to the plugin

Can't you do an end-run around all this by having a persistent standalone
process that holds all your persistent data, and the plugin collects session
data and passes it to the persistent process via sockets?  You'll
have to have some initial handshake protocol to establish session context,
but this seems the easiest way to accomplish what you want.

Joseph Tam 
___
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org


Re: [EXT] Re: How to get a memory pointer in the core process

2024-03-14 Thread Joan Moreau via dovecot
Thanks Eduardo

I am trying to avoid closing/ reopening a file pointer to the exact same file
between each call to the plugin



On 14 March 2024 20:08:37 Eduardo M KALINOWSKI via dovecot
 wrote:

 On 14/03/2024 02:49, Joan Moreau via dovecot wrote:
  No, you don´t understand
  There is a core process (/usr/bin/dovecot) running all the
  time. So I want to
  allocate a memory block, the core process keep it and it is
  retrievable by the
  pluging when laded again
  At exit of /usr/bin/dovecot, it just does a "delete()" of
  the said allocation

 While I cannot help you with plugin writing or dovecot internals,
 this 
 does seem like an example of the XY problem[0]. Perhaps if you
 provide a 
 high level description of what you're attempting to do someone might 
 come up with a way to achieve that.

 [0] https://en.wikipedia.org/wiki/XY_problem

 -- 
 Eduardo M KALINOWSKI
 edua...@kalinowski.com.br

 ___
 dovecot mailing list -- dovecot@dovecot.org
 To unsubscribe send an email to dovecot-le...@dovecot.org

___
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org


Re: antispoofing with dovecot submission

2024-03-14 Thread dovecot--- via dovecot

it is possible to do antispoofing, like
reject_authenticated_sender_login_mismatch from postfix ?



I could be wrong, but i believe dovecot submission is only a proxy to postfix 
submission. Dovecot does not directly delivery mail to the world. Meaning the 
mail is still passing through postfix and 
reject_authenticated_sender_login_mismatch would still be applied.

My follow up question would be does dovecot queue the mail or proxy it live? If 
postfix rejected the submission based on something like 
reject_authenticated_sender_login_mismatch does the email client get sent the 
error live by dovecot submission, or would a type of backscatter bounce be 
created between postfix and dovecot?
___
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org


antispoofing with dovecot submission

2024-03-14 Thread Adrian M
Hi,
it is possible to do antispoofing, like
reject_authenticated_sender_login_mismatch from postfix ?
___
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org


Re: [EXT] Re: How to get a memory pointer in the core process

2024-03-14 Thread Eduardo M KALINOWSKI via dovecot

On 14/03/2024 02:49, Joan Moreau via dovecot wrote:

No, you don´t understand
There is a core process (/usr/bin/dovecot) running all the time. So I want to
allocate a memory block, the core process keep it and it is retrievable by the
pluging when laded again
At exit of /usr/bin/dovecot, it just does a "delete()" of the said allocation


While I cannot help you with plugin writing or dovecot internals, this 
does seem like an example of the XY problem[0]. Perhaps if you provide a 
high level description of what you're attempting to do someone might 
come up with a way to achieve that.


[0] https://en.wikipedia.org/wiki/XY_problem

--
Eduardo M KALINOWSKI
edua...@kalinowski.com.br

___
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org


Re: Question about sieve language

2024-03-14 Thread Ralph Seichter via dovecot
* Tom Hendrikx via dovecot:

> Or in readable sieve: [...]

Do you mean to imply that regular expressions are not readable? ;-) All
it takes is a little practice. Besides, regex are more efficient. It is
well worth learning about them, and regex are really not as bad as some
make them out to be.

-Ralph
___
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org


Re: [EXT] Re: How to get a memory pointer in the core process

2024-03-14 Thread Aki Tuomi via dovecot
I do understand, and the problem is that your question is similar to asking how 
to get a memory pointer from systemd for your program.

The short answer is, not doable.

The bit longer answer is that /usr/sbin/dovecot is a fancy service supervisor, 
it's job is to launch and manage processes, it won't give you persistence 
service for data.

Aki

> On 14/03/2024 07:49 EET Joan Moreau via dovecot  wrote:
> 
>  
> No, you don´t understand
> 
> There is a core process (/usr/bin/dovecot) running all the time. So I 
> want to allocate a memory block, the core process keep it and it is 
> retrievable by the pluging when laded again
> 
> At exit of /usr/bin/dovecot, it just does a "delete()" of the said 
> allocation
> 
> On 2024-03-14 13:25, Aki Tuomi via dovecot wrote:
> 
> > Hi!
> > 
> > Sorry but that's just not possible, ther is no "core" where to create 
> > such object. There is no "dovecot" where to store things.
> > 
> > When user logs in, dovecot executes /usr/libexec/dovecot/imap and 
> > transfers the connection fd there. then plugins and stuff are loaded, 
> > and the user does what he does, and then plugins and stuff are unloaded 
> > and process exists and no longer exists in memory.
> > 
> > You are clearly asking about memory persistence between sessions, and 
> > this can be done with
> > 
> > a) services (internal or external), such as redis, sql, or something 
> > else
> > b) storing things to disk
> > 
> > Aki
> > 
> > On 13/03/2024 18:45 EET Joan Moreau via dovecot  
> > wrote:
> > 
> > No, I am not referring to that
> > 
> > I want to create an object at first call in memory
> > 
> > that object would be retrievable at second and furthers calls of the
> > plugin, as long as dovecot is running
> > 
> > On 2024-03-13 16:29, Aki Tuomi via dovecot wrote:
> > 
> > Not really no. You should use e.g. dict inteface for storing this kind
> > of stateful data. When deinit is called the calling core process will
> > likely die too.
> > 
> > Aki
> > 
> > On 13/03/2024 10:19 EET Joan Moreau  wrote:
> > 
> > Keep a pointer in memory retrievable each time a plugin is called
> > 
> > So the plugin keep the memory, not has to restart everything at each
> > call
> > 
> > On 12 March 2024 08:53:38 Aki Tuomi via dovecot 
> > wrote:
> > 
> > On 11/03/2024 10:42 EET Joan Moreau  wrote:
> > 
> > Hi
> > Is it possible, from a plugin perspective, to create and recover a
> > pointer in the core process (i.e. memory not lost between 2 calls to
> > the plugin, even after the "deinit" of the plugin" ) ?
> > 
> > Thanks
> > Hi Joan!
> > 
> > May I ask what you are attempting to achieve in more detail?
> > 
> > Aki
> > ___
> > dovecot mailing list -- dovecot@dovecot.org
> > To unsubscribe send an email to dovecot-le...@dovecot.org   
> > ___
> > dovecot mailing list -- dovecot@dovecot.org
> > To unsubscribe send an email to dovecot-leave@dovecot.orgNo, I am not 
> > referring to that
> > I want to create an object at first call in memory
> > that object would be retrievable at second and furthers calls of the 
> > plugin, as
> > long as dovecot is running
> > 
> > On 2024-03-13 16:29, Aki Tuomi via dovecot wrote:
> > Not really no. You should use e.g. dict inteface for storing this
> > kind of stateful data. When deinit is called the calling core process
> > will likely die too.
> > 
> > Aki
> > 
> > On 13/03/2024 10:19 EET Joan Moreau  wrote:
> > 
> > Keep a pointer in memory retrievable each time a plugin is
> > called
> > 
> > So the plugin keep the memory, not has to restart
> > everything at each call
> > 
> > On 12 March 2024 08:53:38 Aki Tuomi via dovecot
> >  wrote:
> > 
> > On 11/03/2024 10:42 EET Joan Moreau
> >  wrote:
> > 
> > Hi
> > Is it possible, from a plugin
> > perspective, to create and recover a
> > pointer in the core process (i.e.
> > memory not lost between 2 calls to the
> > plugin, even after the "deinit" of the
> > plugin" ) ?
> > 
> > Thanks
> > 
> > Hi Joan!
> > 
> > May I ask what you are attempting to achieve in
> > more detail?
> > 
> > Aki
> > ___
> > dovecot mailing list -- dovecot@dovecot.org
> > To unsubscribe send an email to dovecot-
> > le...@dovecot.org
> > ___
> > dovecot mailing list -- dovecot@dovecot.org
> > To unsubscribe send an email to dovecot-le...@dovecot.org
> > 
> > ___
> > dovecot mailing list -- dovecot@dovecot.org
> > To unsubscribe send an email to dovecot-le...@dovecot.org
>   ___
> dovecot mailing list -- dovecot@dovecot.org
> To unsubscribe send an email to dovecot-leave@dovecot.orgNo, you don´t 
> understand
> There is a core process (/usr/bin/dovecot) running all the time. So I want to
> allocate a memory block, the core process keep it and it is retrievable by the
> pluging when laded again
> At exit