- {
- uschar * cp = arg;
- uschar * tmp;
- uschar * name;
-
- if (!(tmp = string_dequote(&cp)) || !(name = expand_string(tmp)))
- {
- if (expand_string_forcedfail) continue;
- *log_msgptr = string_sprintf("failed to expand ACL string \"%s\": %s",
- tmp, expand_string_message);
- return search_find_defer? DEFER : ERROR;
- }
-
- for (acl_narg = 0; acl_narg < sizeof(acl_arg)/sizeof(*acl_arg); acl_narg++)
- {
- while (*cp && isspace(*cp)) cp++;
- if (!*cp) break;
- if (!(tmp = string_dequote(&cp)) || !(acl_arg[acl_narg] = expand_string(tmp)))
- {
- if (expand_string_forcedfail) continue;
- *log_msgptr = string_sprintf("failed to expand ACL string \"%s\": %s",
- arg, expand_string_message);
- return search_find_defer? DEFER : ERROR;
- }
- }
-
- rc = acl_check_internal(where, addr, name, level+1, user_msgptr, log_msgptr);
+ rc = acl_check_wargs(where, addr, arg, level+1, user_msgptr, log_msgptr);