mirror of
https://git.eworm.de/cgit/routeros-scripts
synced 2025-07-30 15:54:56 +02:00
global-functions: $MkDir: abuse smb share to create directory
The smb feature is provided by system package... So we have it anyway. It gives some benefits compared to abusing fetch: * It is faster! * No need to alter, enable and restore a service! (The share is created disabled.) * Firewall rules can not break this. * No temporary file is created. * Less code! Let's hope we do not introduce new breakage. Closes #14
This commit is contained in:
parent
c0b954abbb
commit
7fb4fdfca2
1 changed files with 5 additions and 7 deletions
|
@ -536,6 +536,7 @@
|
|||
:local Dir [ :tostr $1 ];
|
||||
|
||||
:global CleanFilePath;
|
||||
:global GetRandom20CharHex;
|
||||
:global WaitForFile;
|
||||
|
||||
:set Dir [ $CleanFilePath $Dir ];
|
||||
|
@ -545,17 +546,14 @@
|
|||
}
|
||||
|
||||
:local Return true;
|
||||
:local WwwVal [ / ip service get www ];
|
||||
/ ip service set www address=127.0.0.1/32 disabled=no port=80;
|
||||
:local Name ($Dir . "-" . [ $GetRandom20CharHex ])
|
||||
:do {
|
||||
/ tool fetch http://127.0.0.1/ dst-path=($Dir . "/tmp") as-value;
|
||||
$WaitForFile ($Dir . "/tmp");
|
||||
/ file remove ($Dir . "/tmp");
|
||||
/ ip smb share add disabled=yes directory=$Dir name=$Name;
|
||||
$WaitForFile $Dir;
|
||||
} on-error={
|
||||
:set Return false;
|
||||
}
|
||||
/ ip service set www address=($WwwVal->"address") \
|
||||
disabled=($WwwVal->"disabled") port=($WwwVal->"port");
|
||||
/ ip smb share remove [ find where name=$Name ];
|
||||
:return $Return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue