Displaying 5 results from an estimated 5 matches for "001n".
Did you mean:
0014
2013 Nov 08
1
Dict client unescaping sieve script
I've created a dict service that listens on a unix socket and answers
queries for sieve scripts (among other things).
As I understand it (from the source code at
http://hg.dovecot.org/dovecot-2.2/file/tip/src/lib-dict/dict-client.c),
the dict client will unescape \001n, \001t, and \0011 to line feeds,
tabs, and the \001 character respectively.
In my service I am escaping those three characters in my response (if I
don't escape them the line-oriented nature of the protocol causes a
failure for multiline sieve scripts) but every time LDA attempts to
proces...
2016 Oct 17
1
Dict proxy client returning empty string instead of multiline string
...tack_create(), key, &value);
printf(">%s\n", value); // outputs an empty string
dict_deinit(&dict);
I trimmed it to the bare minimal string manipulation functions involved
but cannot reproduce in that case:
pool_t pool = pool_datastack_create();
char* s1 = "test\001n\001rtest";
char* s2 = t_str_tabunescape(s1);
char* s3 = p_strdup(pool, s2);
printf("1>%s\n", s1);
printf("2>%s\n", s2);
printf("3>%s\n", s3); // all three output the string with NL and CR
Maybe I am missing a function call in the process or ma...
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
...ts an empty string
> > dict_deinit(&dict);
> >
> > I trimmed it to the bare minimal string manipulation functions involved
> > but cannot reproduce in that case:
> >
> > pool_t pool = pool_datastack_create();
> >
> > char* s1 = "test\001n\001rtest";
> > char* s2 = t_str_tabunescape(s1);
> > char* s3 = p_strdup(pool, s2);
> >
> > printf("1>%s\n", s1);
> > printf("2>%s\n", s2);
> > printf("3>%s\n", s3); // all three output the string with NL and...
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
Hi!
This does sound like a bug, we'll have look.
Aki
On 17.10.2016 01:26, Pierre Jaury wrote:
> I dived a little bit further into the rabbit hole, up to the point where
> debugging has become unpracticle but I still haven't found the root
> cause for sure.
>
> I read most of the code for "p_strdup" based on datastack memory pools
> (which are used for
2016 Oct 17
2
Dict proxy client returning empty string instead of multiline string
...;
> >>>
> >>> I trimmed it to the bare minimal string manipulation functions involved
> >>> but cannot reproduce in that case:
> >>>
> >>> pool_t pool = pool_datastack_create();
> >>>
> >>> char* s1 = "test\001n\001rtest";
> >>> char* s2 = t_str_tabunescape(s1);
> >>> char* s3 = p_strdup(pool, s2);
> >>>
> >>> printf("1>%s\n", s1);
> >>> printf("2>%s\n", s2);
> >>> printf("3>%s\n",...