89
89
{update_period , milliseconds_interval ()} |
90
90
{error_retries , error_retry_behaviour ()} |
91
91
no_cache |
92
- {database_cache_file , file :filename ()}.
92
+ {database_cache_file , file :filename_all ()}.
93
93
-export_type ([loader_opt / 0 ]).
94
94
95
95
-type milliseconds_interval () :: pos_integer ().
152
152
error_retry_behaviour :: error_retry_behaviour (),
153
153
error_retry_behaviour_applies_after_readiness :: boolean (),
154
154
use_cache :: boolean (),
155
- database_cache_file :: file :filename () | undefined
155
+ database_cache_file :: file :filename_all () | undefined
156
156
}).
157
157
-type settings () :: # settings {}.
158
158
@@ -342,7 +342,7 @@ validate_loader_opts(MixedOpts, FetcherOpts) ->
342
342
% Ensure directory exists
343
343
Dirname = filename :dirname (File ),
344
344
(
345
- has_extenstion (File , [" gz" , " mmdb" ])
345
+ has_extension (File , [" gz" , " mmdb" ])
346
346
and
347
347
filelib :is_dir (Dirname )
348
348
)
@@ -466,7 +466,7 @@ schedule_update(Interval, State)
466
466
NewTimer = erlang :send_after (Interval , self (), begin_update ),
467
467
State # state { update_timer = NewTimer }.
468
468
469
- -spec cached_database_path (state ()) -> nonempty_string ().
469
+ -spec cached_database_path (state ()) -> file : filename_all ().
470
470
cached_database_path (# state {
471
471
settings = # settings {
472
472
database_cache_file = DatabaseCacheFile
@@ -475,7 +475,6 @@ cached_database_path(#state{
475
475
)
476
476
when DatabaseCacheFile =/= undefined ->
477
477
DatabaseCacheFile ;
478
-
479
478
cached_database_path (State ) ->
480
479
case State # state .origin of
481
480
{maxmind , EditionName } ->
@@ -878,15 +877,18 @@ extract_mmdb_from_tarball_blob(Tarball) ->
878
877
879
878
-spec has_mmdb_extension (nonempty_string ()) -> boolean ().
880
879
has_mmdb_extension (Filename ) ->
881
- has_extenstion (Filename , [" mmdb" ]).
880
+ has_extension (Filename , [" mmdb" ]).
882
881
883
882
% Make sure the ExpectedExtensions list is passed in reverse order.
884
883
% So if file is "archive.tar.gz", the ExpectedExtensions list is ["gz", "tar"].
885
- -spec has_extenstion ( nonempty_string (), [nonempty_string ()]) -> boolean ().
886
- has_extenstion (Filename , ExpectedExtensions ) ->
884
+ -spec has_extension ( file : filename_all (), [nonempty_string ()]) -> boolean ().
885
+ has_extension (Filename , ExpectedExtensions ) ->
887
886
ExtensionParts = filename_extension_parts (Filename ),
888
887
lists :prefix (ExpectedExtensions , ExtensionParts ).
889
888
889
+ filename_extension_parts (<<BinFilename /bytes >>) ->
890
+ Filename = unicode :characters_to_list (BinFilename ),
891
+ filename_extension_parts_recur (Filename , []);
890
892
filename_extension_parts (Filename ) ->
891
893
filename_extension_parts_recur (Filename , []).
892
894
@@ -966,7 +968,7 @@ fetched_database_modification_datetime({cache, _}, #{modified_on := Modification
966
968
fetched_database_modification_datetime ({filesystem , _ }, #{modified_on := ModificationDate }) ->
967
969
ModificationDate .
968
970
969
- % -spec make_cached_database_blob(nonempty_string (), binary()) -> binary().
971
+ % -spec make_cached_database_blob(file:filename_all (), binary()) -> binary().
970
972
make_cached_database_blob (CachedTarballPath , EncodedDatabase ) ->
971
973
? assertMatch ([" gz" , " mmdb" | _ ], filename_extension_parts (CachedTarballPath )),
972
974
zlib :gzip (EncodedDatabase ).
0 commit comments