PAS-модули · 25.02.2023

NetPath

По следам логической функции пинга (тык) с использованием Synapse.

Данный модуль написан для IDE Lazarus!

Это одна из моих попыток побороть катастрофически долгие запросы к сетевым папкам через проверку доступности целевого узла. В RPDman эта проблема тревожит достаточно часто: пытаешься открыть папку на удалённом хосте и программа уходит в практически бесконечное путешествие.

NetPath же перед тем, как отправить программу на поиски сетевой папки сначала пропингует удалённый ресурс. Так можно быть уверенным, что на момент получения ответа удалённый хост был доступен. По сути, я просто добавил ping перед directoryexists. В проекте использовать данный модуль можно с помощью условий if then else.

В модуле всего две логические функции:

  • NetDirExists(hostname, path) — отвечает за проверку доступности сетевой папки.
  • NetFileExists(hostname, path) — отвечает за проверку наличия файла в сетевой папке.

Во внутренней функции модуля PingWithSynapse выставлен таймаут в 2000 мс, которую можно с легкостью понизить.