NetworkClock je servrová aplikace pro sdílení času po síti. Serverová část má možnost zobrazit systémový čas ve vybraném formátu a změnit systémový čas.
Aplikace reaguje na GET
HTTP
request, kde poskytuje serverový systémový čas. Request může obsahovat volitelným parametrem format
, kde může klient nastavit požadovaný formát odpovědi.
Specifikaci dotazu neleznete v Server/Documentation/Endpoints/GetTimeReqest.yaml
Aby aplikace spávně běžela, pak na systému nesmí běžet žádný deamon, který synchornizuje čas.
Všechy ukázané příkazy jsou prováděny "root" složce řešení - tam, kde se nachází tento soubor.
# docker build -t network_clock .
# docker run -it --rm --privileged -- network_clock
Všechy ukázané příkazy jsou prováděny "root" složce řešení - tam, kde se nachází tento soubor.
- DLL:
WhiteListCaps.so
- Toto DLL musí být při spuštění aplikace nalezitelné operačnímsystémem (například v
/etc/lib
)
$ make -C TimeChanger/src/ WhiteListCaps.so # cp TimeChanger/src/WhiteListCaps.so /usr/lib/ # chmod 755 /usr/lib/WhiteListCaps.so
- Toto DLL musí být při spuštění aplikace nalezitelné operačnímsystémem (například v
- Konfigurační soubor:
/etc/NetworkClock.json
V konfiguračním souboru musí být specifikovaná cesta na aplikaci ChangeTime# cp Server/config.json /etc/NetworkClock.json # chmod 644 /etc/NetworkClock.json
- Spustitelná aplikace:
ChangeTime
$ make -C TimeChanger/src/ ChangeTime # chmod +x TimeChanger/src/SetSUID.sh # TimeChanger/src/SetSUID.sh #Nastavý potřebná práva
dotnet run --configuration Release --project Server/
Server reahuje na GET HTTP
požadavky. Příjmá parametr format, který určuje požadovaný formát odpovědi. Jako klient lze využí nástroj curl
Příklady požadavků:
$ curl 'http://localhost:<port>'
$ curl 'http://localhost:<port>?format=<format>'
Před kompilací a spuštěním aplikace si zkontrolujte, že máte správně nastavenou volací konveci DLLka, které bude aplikace importovat. Nastavení volací konvence je v Server/Program.cs
- line 9