> I think that's better in this case. This is done. Now: - Only one of search_keys or filter parameters should be set. Setting both or neither results in error. - return_key parameter MUST be set. Failure to do so results in error. - projection parameter is optional. If set, the result of the projection will be returned as return_key.
> See "src/postconf/" for how this is handled for LDAP, ... This was.. interesting. Done. > You need to use a static variable to record whether you've already > initialised the library, and do it just once. No need to worry about > threads or locks. Postfix is single-threaded. This is also done. I see something that would need to be fixed. proxymap is terminated by signal 11 on every postmap call I make!! Will update here once that is fixed. In the meantime, let me know if any other modifications are desired. Regards Hamid Maadani June 16, 2022 5:48 PM, "Viktor Dukhovni" <postfix-us...@dukhovni.org> wrote: > On Fri, Jun 17, 2022 at 12:39:30AM +0000, Hamid Maadani wrote: > >> You need to read the mongodb documentation with care and make sure >> that you honour their API contract. For example: >> >> mongoc_init(): >> >> When it comes to 'mongoc_init' and 'mongoc_clean', they are supposed to be >> run once per process. >> If I understand how postfix works correctly, it invokes 'dict_mongodb_open' >> when it loads the shared-object for the dict (postfix-mongodb.so). > > No, this is invoked once per mongodb table. > >> I did not >> Find an init function for the dict libraries, just the open method. >> That would mean that mongoc_init would be run every time that library is >> opened (which should be once for postmap and proxymap, unsure about postfix >> master). > > You need to use a static variable to record whether you've already > initialised the library, and do it just once. No need to worry about > threads or locks. Postfix is single-threaded. > >> Please let me know if my understanding is incorrect. >> Would it be preferred to move this to postfix master process instead of a >> loadable >> module? Even if the user does not want to use Mongo? > > No. That can't work. > >> I guess that's a difference in our way of thinking. Personally, it would be >> easier for me >> this way, but if you see more value in failing in case both are specified, >> that's easy to >> implement. Just let me know. > > I think that's better in this case. > >> Question about using variables in main.cf I'm getting 'unused >> parameter' errors for my mongo variables, where I know I am using >> them. Is there something I need to do in the module to mark a >> variable as used while reading it from the config? > > See "src/postconf/" for how this is handled for LDAP, ... > >> Just Fyi, when compiling postfix, I keep running into <stdio.h> missing from >> src/posttls-finger/posttls-finger.c >> Adding the stdio header resolves the issue, easy fix. > > Feel free to post a patch. I don't see this on FreeBSD or MacOS. What > platform are you building on? > > -- > Viktor.