qarminTwórca
0piorunówKorzystał ktoś z samby(libsmbclient) z wielu wątków?
Chciałem w każdym uruchomionym wątku, stworzyć sobie klienta łączącego się z serwerem, przesyłającego jakieś kilku megabajtowe pliki a na końcu zamykający połączenie.
Jednak zauważyłem że wywoływanie smbc_new_context z wielu wątków jednocześnie, powoduje problemy z pamięcią i wysypywanie się programu a nie znalazłem innej metody na łączenie się z serwerem i przesyłanie danych.
Próbowałem grzebać w bindingach które używamy, ale nie udało mi się nic zdziałać - issue https://github.com/veeso/pavao/issues/17
Obecnie w programie dodaję globalnego locka na operacje i tylko jedna na raz może się wykonywać.
Czy samba jest ograniczona do działania tylko w jednym watku w programie, czy może to błąd nakładki której używam, czy może istnieje jakaś opcja do uruchomienia wsparcia wielu wątków?
@qarmin - ale do przesyłania plików weź ty użyj czegoś normalnego jak scp, rsync, robocopy, gołe SSH, sftp a nawet ftp(s).
@koszotorobur Sprzęt ma być dostępny u klientów, więc raczej wszystko z powyższych odpada, bo wymaga bardziej skomplikowanych operacji.
Z sambą jest o tyle dobrze, że niemal każdy z poziomu windowsa, prosto sobie to może postawić(być może w przyszłości jakieś inne metody będą dodane, ale samba to must have).
@qarmin a myślaleś o instalacji z powershella:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
?
@m_h Cóż, z przyzwyczajenia nie napisałem że korzystam z Linuxa, więc to nie jest dostępne tutaj.
@qarmin - no to nie zazdroszczę Ci jako użytkownikowi Linuksa przymusu wspierania tego Windowsowego gówna 😒
Znalazłem libsmb2, która wspiera async - może to Ci zadziała 🤷
@koszotorobur Dzięki, może to zadziała.
Mimo wszystko wydaje mi się, że i tak sambie daleko do np. Dicom w rankingu najbardziej problematycznych api/bibliotek/usług.
@qarmin Ale to są komendy powershellowe, o stąd:
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell
chociaż sam ekspertem od windowsa nie jestem.
Get started with OpenSSH for WindowsLearn how to install and connect to remote machines using the OpenSSH Client and Server for Windows.Microsoft@m_h Samo polecenie `Add-WindowsCapability` i strona `Get started with OpenSSH for Windows` jasno sugeruje że jest to feature tylko dla Windowsa.
Jak budujemy obraz systemu, to raczej nie możemy się opierać na operacjach, które by dokończyć instalację wymagają uruchomienia n razy systemu, a raczej tak właśnie jest z powyższym poleceniem

