diff options
Diffstat (limited to 'main/main.c')
-rw-r--r-- | main/main.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/main/main.c b/main/main.c index 79ed8812c2..d06b5731ca 100644 --- a/main/main.c +++ b/main/main.c @@ -1214,6 +1214,31 @@ PHPAPI void php_execute_script(zend_file_handle *primary_file CLS_DC ELS_DC PLS_ free_alloca(old_cwd); } +PHPAPI int php_handle_auth_data(const char *auth SLS_DC) +{ + int ret = -1; + + if (auth && auth[0] != '\0' + && strncmp(auth, "Basic ", 6) == 0) { + char *pass; + char *user; + + user = php_base64_decode(auth + 6, strlen(auth) - 6, NULL); + if (user) { + pass = strchr(user, ':'); + if (pass) { + *pass++ = '\0'; + SG(request_info).auth_user = user; + SG(request_info).auth_password = estrdup(pass); + ret = 0; + } else { + efree(user); + } + } + } + return ret; +} + PHPAPI int php_lint_script(zend_file_handle *file CLS_DC ELS_DC PLS_DC) { zend_op_array *op_array; |