Hi everyone Upon further inspection, I think that the bitwise operations are correct.. (not 100% sure, but looks alright to me)
And also, the code already goes wrong before checking the DICT_FLAG_FOLD_MUL flag... Because the source code says: if (msg_verbose) msg_info("%s: key %s", myname, key); /* * Optionally fold the key. */ if (dict->flags & DICT_FLAG_FOLD_MUL) { And the printed message with msg_info already contains the wrong (lowercase) key there: Dec 27 22:53:09 synio postfix/cleanup[31933]: mail_addr_map: i...@domain.com -> 0: *SRS0*=xxxx=yy=domain.com=i...@otherdomain.com Dec 27 22:53:09 synio postfix/cleanup[31933]: dict_tcp_lookup: key *srs0* =xxxx=yy=domain.com=i...@otherdomain.com So perhaps the UTF8 module changed the case to lowercase before handing it off to dict_tcp_lookup or something..? I really don't know... Kind regards Wesley S. Op do 27 dec. 2018 om 23:48 schreef Wesley van Synio <wes...@syn.io>: > Hi Wietse and others > > I was looking through src/util/dict/utf8.c and I saw the following piece > of code: > > /* > * Proxy the request with casefolding turned off. > */ > *saved_flags = (dict->flags & DICT_FLAG_FOLD_ANY);* > *dict->flags &= ~DICT_FLAG_FOLD_ANY;* > backup = dict->utf8_backup; > value = backup->lookup(dict, fold_res); > *dict->flags |= saved_flags;* > > Perhaps something is going wrong there? > I need to brush up on bitwise operations before I can say for sure.. > but it does look like it might be the possible culprit? > > Kind regards > Wesley > > Op do 27 dec. 2018 om 23:39 schreef Wesley van Synio <wes...@syn.io>: > >> Hi Wietse and others >> >> *I found the root cause of the problem..* >> >> I grepped through the dict and found out that utf8 module is changing the >> dict settings, >> so I wondered if anything would change if I would comment out >> smtputf8_enable = yes >> >> And a new test has revealed that the problem is fixed without this >> configuration! See below: >> >> # postmap -v -q "SRS0=xxxx=YY=domain.com=i...@otherdomain.com" >> tcp:localhost:10001 >> postmap: name_mask: ipv4 >> postmap: inet_addr_local: configured 5 IPv4 addresses >> postmap: dict_open: tcp:localhost:10001 >> postmap: dict_tcp_lookup: key *SRS0=xxxx=YY=domain.com >> <http://domain.com>=i...@otherdomain.com <i...@otherdomain.com>* >> postmap: trying... [127.0.0.1] >> postmap: dict_tcp_lookup: send: get SRS0=xxxx=YY=domain.com= >> i...@otherdomain.com >> postmap: dict_tcp_lookup: recv: 200 SRS1=Ftpn=otherdomain.com==xxxx=YY= >> domain.com=i...@synio.be >> postmap: dict_tcp_lookup: found: SRS1=Ftpn=otherdomain.com==xxxx=YY= >> domain.com=i...@synio.be >> SRS1=Ftpn=otherdomain.com==xxxx=YY=domain.com=i...@synio.be >> >> But... I do want full UTF8 support.. >> >> *So what is going wrong with the combination of UTF8 + dict_tcp_lookup?* >> Any ideas how to fix this in my configuration? Or is this a bug? >> >> Kind regards >> Wesley S. >> >> Op do 27 dec. 2018 om 23:28 schreef Wietse Venema <wie...@porcupine.org>: >> >>> Wesley van Synio: >>> > Is this DICT_FLAG_FOLD_MUL something that I should configure in another >>> > way..? >>> >>> This is the flag that according to my searches is not set anywhere >>> in Postfix. That's why I was asking for verbose logs as a last resort. >>> >>> Wietse >>> >> >> >> -- >> *Synio* >> *Ilgatlaan 9* >> *3500 Hasselt* >> *0477 71 79 25* >> > > > -- > *Synio* > *Ilgatlaan 9* > *3500 Hasselt* > *0477 71 79 25* > -- *Synio* *Ilgatlaan 9* *3500 Hasselt* *0477 71 79 25*