Welcome! Log In Create A New Profile

Advanced

Re: [PATCH] fix ngx_realpath() for win32

Maxim Dounin
November 01, 2022 11:30AM
Hello!

On Tue, Nov 01, 2022 at 08:15:48PM +0900, Won-Kyu Park wrote:

> # HG changeset patch
> # User Won-Kyu Park <wkpark@gmail.com>
> # Date 1667298839 -32400
> # Tue Nov 01 19:33:59 2022 +0900
> # Node ID c964b33d60679f5cd8d43a8f859d16c2ac6f89e1
> # Parent 1ae25660c0c76edef14121ca64362f28b9d57a70
> fix ngx_realpath() for win32
>
> diff -r 1ae25660c0c7 -r c964b33d6067 src/os/win32/ngx_files.c
> --- a/src/os/win32/ngx_files.c Wed Oct 19 10:56:21 2022 +0300
> +++ b/src/os/win32/ngx_files.c Tue Nov 01 19:33:59 2022 +0900
> @@ -416,14 +416,6 @@
> }
>
>
> -u_char *
> -ngx_realpath(u_char *path, u_char *resolved)
> -{
> - /* STUB */
> - return path;
> -}
> -
> -
> ngx_int_t
> ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir)
> {
> diff -r 1ae25660c0c7 -r c964b33d6067 src/os/win32/ngx_files.h
> --- a/src/os/win32/ngx_files.h Wed Oct 19 10:56:21 2022 +0300
> +++ b/src/os/win32/ngx_files.h Tue Nov 01 19:33:59 2022 +0900
> @@ -172,7 +172,7 @@
> void ngx_close_file_mapping(ngx_file_mapping_t *fm);
>
>
> -u_char *ngx_realpath(u_char *path, u_char *resolved);
> +#define ngx_realpath(path, resolved) (u_char *)_fullpath((char
> *)(resolved), (char *)(path), MAX_PATH)
> #define ngx_realpath_n ""
> #define ngx_getcwd(buf, size) GetCurrentDirectory(size, (char *) buf)
> #define ngx_getcwd_n "GetCurrentDirectory()"
>
> ---- END --------
> This small fix would set $realpath_root as expected for win32.

Could you please clarify "as expected"?

It doesn't look like _fullpath() resolves symbolic links, which is
expected behaviour for $realpath_root.

Rather, it looks like GetFinalPathNameByHandle() should be used if
we want to actually support $realpath_root as it is expected to
work, that is, providing path with symlinks resolved. It might be
tricky to use it though, as it is only available in Windows Vista
or later.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-leave@nginx.org
Subject Author Views Posted

[PATCH] fix ngx_realpath() for win32

Won-Kyu Park 370 November 01, 2022 07:18AM

Re: [PATCH] fix ngx_realpath() for win32

Maxim Dounin 97 November 01, 2022 11:30AM

Re: [PATCH] fix ngx_realpath() for win32

Won-Kyu Park 95 November 02, 2022 02:46AM

Re: [PATCH] fix ngx_realpath() for win32

Maxim Dounin 117 November 02, 2022 08:16PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 147
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready