Mercurial > hg > nginx-quic
comparison src/os/win32/ngx_files.c @ 9044:c33eb93f9c7a
Win32: removed attempt to use a drive letter in ngx_fs_bsize().
Just a drive letter might not correctly represent file system being used,
notably when using symlinks (as created by "mklink /d"). As such, instead
of trying to call GetDiskFreeSpace() with just a drive letter, we now always
use GetDiskFreeSpace() with full path.
Further, it looks like the code to use just a drive letter never worked,
since it tried to test name[2] instead of name[1] to be ':'.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Thu, 23 Feb 2023 20:50:00 +0300 |
parents | e818ed227735 |
children | 2acb00b9b5ff |
comparison
equal
deleted
inserted
replaced
9043:e818ed227735 | 9044:c33eb93f9c7a |
---|---|
965 | 965 |
966 | 966 |
967 size_t | 967 size_t |
968 ngx_fs_bsize(u_char *name) | 968 ngx_fs_bsize(u_char *name) |
969 { | 969 { |
970 u_char root[4]; | |
971 u_long sc, bs, nfree, ncl; | 970 u_long sc, bs, nfree, ncl; |
972 | |
973 if (name[2] == ':') { | |
974 ngx_cpystrn(root, name, 4); | |
975 name = root; | |
976 } | |
977 | 971 |
978 if (GetDiskFreeSpace((const char *) name, &sc, &bs, &nfree, &ncl) == 0) { | 972 if (GetDiskFreeSpace((const char *) name, &sc, &bs, &nfree, &ncl) == 0) { |
979 return 512; | 973 return 512; |
980 } | 974 } |
981 | 975 |