Murray Long wrote:
> When passing variables to the perl module,
> "void fr_print_string(const char *in, size_t inlen, char *out, size_t outlen)"
> Escapes all special characters (including '\')

  Yes.

> When variables are returned from perl,
> VALUE_PAIR *pairparsevalue(VALUE_PAIR *vp, const char *value)
> unescapes special characters, but ignores "\\"

  ? I'm not sure how you conclude that.  The code in the v2.1.x branch
handles escaping of '\\' for "string" attributes.  See pairparsevalue(),
the "while" loop:

   while (*cp && (length < (sizeof(vp->vp_strvalue) - 1))) {
        char c = *cp++;

        if (c == '\\') {
                switch (*cp) {
                        ...
                        case '\'':
                                c = '\'';
                                cp++;
                                break;
                        ...

> I've patched the pairparsevalue function to handle an escaped
> backslash, which has solved my problems.  However this is my first
> time looking at freeradius source, so have no idea what knock-on
> effects this will have, so please could someone review this for me.

  What code did you change?

  Alan DeKok.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to