View Code? Open in Web Editor
NEW
TCP-based network drive protocol "TinDox" + implementation of server and clients (console, gui).
License: MIT License
CMake 2.52%
C++ 71.81%
Shell 2.18%
Java 3.91%
Kotlin 0.71%
TeX 18.86%
tindox's Introduction
Currently I am working on:
tindox's People
Watchers
tindox's Issues
W szkielecie klienta okienkowego zawiera si臋:
W szkielecie klienta mobilnego zawiera si臋:
Nazwy do poprawy:
Epoll
-> EpollDevice
Streambuf
-> FdBuf
Serwer powinien odpowiada膰 na najprostsze zapytania u偶ytkownika, takie jak:
Projekt potrzebuje dokumentacji ko艅cowej zgodnej z wytycznymi.
Potrzebne s膮:
Proponowany schemat listy u偶ytkownik贸w:
username1:passwd1:perms1
username2:passwd2:perms2
...
Has艂o powinno by膰 "zahaszowane" z wykorzystaniem odpowiedniego algorytmu, np. Keccak.
W szkielecie klienta konsolowego zawiera si臋:
Plik .editorconfig
powinien uwzgl臋dnia膰 wszystkie j臋zyki, kt贸re b臋d膮 pojawia膰 si臋 w projekcie. S膮 to:
Serwer powinien w艂膮cza膰 z powrotem echo w terminalu.
B艂膮d wyst臋puje te偶 w przypadku instrukcji tds user
.
Wykryto w Arch Linuksie.
Problem z serwerem uruchomionym w WSL - u偶ytkownik po roz艂膮czeniu si臋 wpada w niesko艅czon膮 p臋tl臋.
Plik konfiguracyjny dla narz臋dzia clang-format
powinien znikn膮膰 z katalogu g艂贸wnego - nie jest on istotny dla ca艂ego projektu.
Opis komunikat贸w powinien znale藕膰 si臋 w dokumentacji.
Projekt serwera powinien mie膰 swoje CI.
Serwer powinien wypisywa膰 swoje logi nie tylko na ekran, ale tak偶e do dodatkowego pliku (.tds/log
).
Tzw. katalog konfiguracyjny .tds
powinien by膰 jednym, lekkim i czytelnym plikiem w formacie TOML.
Potrzebna jest implementacja tworzenia instancji serwera (polecenie tds init
).
Serwer powinien obs艂ugiwa膰 najni偶sz膮 warstw臋 komunikacyjn膮 - gniazda.
Test klasy SignalDevice
blokuje si臋 w WSL.
TDS powinien umo偶liwia膰 edycj臋 konfiguracji z wykorzystaniem linii komend, np.
tds config max_user_count 256 # Zmiana maksymalnej dozwolonej liczby u偶ytkownik贸w
Potrzebne s膮 proste narz臋dzia do obs艂ugi warstwy sieciowej, czyli mi臋dzy innymi:
- Obs艂uga adresu IPv4
- Obs艂uga resolvera
- Reprezentacja "punktu ko艅cowego" (adres IP + port)
Klient okienkowy powinien obs艂ugiwa膰 najni偶sz膮 warstw臋 komunikacyjn膮 - gniazda.
Plik .gitignore
w katalogu g艂贸wnym jest do niczego (s膮 w nim istotne b艂臋dy), wi臋c:
- Trzeba go poprawi膰 lub
- Trzeba go usun膮膰 (wtedy b臋d膮 potrzebne pliki
.gitignore
w podprojektach).
Projekt potrzebuje podstawowej konfiguracji:
Projekt klienta konsolowego powinien mie膰 swoje CI.
TDS powinien umo偶liwia膰 wy艣wietlanie log贸w serwera na konsoli. Przyk艂ad u偶ycia
tds log # Wy艣wietli logi z ostatniego uruchomienia serwera
Plik CODEOWNERS
powinien odzwierciedla膰 podzia艂 pracy w zespole - ka偶dy cz艂onek zespo艂u powinien mie膰 katalog ze swoim projektem.
Serwer nie powinien si臋 wy艂膮cza膰 przy roz艂膮czeniu jednego klienta.
Wykorzystanie programu CPack mo偶liwi to 艂atwiejsz膮 instalacj臋 programu np. na systemach opartych o Debiana.
Potrzebne jest narz臋dzie (dziedzicz膮ce po IoDevice
) do czytania sygna艂贸w systemowych takich jak SIGINT (Ctrl+C
).
Potrzebne s膮 proste narz臋dzia do obs艂ugi warstwy transportowej (protoko艂u TCP), czyli mi臋dzy innymi:
Plik .gitattributes
mo偶e by膰 lepszy, np. mo偶e zawiera膰 dodatkowe regu艂y dla Linguista.
W szkielecie serwera zawiera si臋:
WONTFIX: linux::FdBuf
zosta艂o usuni臋te z projektu
Projekt potrzebuje dokumentacji wst臋pnej w formie pliku .pdf
.
Projekt klienta mobilnego powinien mie膰 swoje CI.
W pliku README.md
, opr贸cz sk艂adu zespo艂u, powinny znale藕膰 si臋 nast臋puj膮ce informacje:
Klient konsolowy powinien obs艂ugiwa膰 najni偶sz膮 warstw臋 komunikacyjn膮 - gniazda.
Serwer powinien reagowa膰 na proste sygna艂y zewn臋trzne podczas wykonywania polecenia run
.
Dodanie tej biblioteki upro艣ci tworzenie wyj艣cia (stdout) oraz log贸w serwera.
Klient mobilny powinien obs艂ugiwa膰 najni偶sz膮 warstw臋 komunikacyjn膮 - gniazda.
System budowania powinien umo偶liwia膰 instalacj臋 serwera na lokalnej maszynie:
sudo cmake --build build --target install
B臋dzie to przydatne przy m.in. testach integracyjnych.
Projekt klienta okienkowego powinien mie膰 swoje CI.