Compare commits
No commits in common. "principale" and "4d8cb8d5c11530c5ffb6211dd1d70f546db90927" have entirely different histories.
principale
...
4d8cb8d5c1
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,8 +1,6 @@
|
|||||||
*.o
|
*.o
|
||||||
.flavor
|
.flavor
|
||||||
.objs
|
.objs
|
||||||
*.so
|
sqlite3.so
|
||||||
assets.h
|
assets.h
|
||||||
cert
|
cert
|
||||||
*.db
|
|
||||||
*.log
|
|
||||||
|
23
README.md
23
README.md
@ -1,23 +0,0 @@
|
|||||||
# Une application web pour faire un portail utilisateurs
|
|
||||||
|
|
||||||
portal_user est une application web basé https://kore.io pour servir de portail aux utilisateurs pour un serveur mail(opensmtpd) + XMPP(prosody).
|
|
||||||
|
|
||||||
## Comme on a fait du C ben on a choisi de le faire en C.
|
|
||||||
Oui, on fait cette application avant tout pour apprendre donc pas
|
|
||||||
de prise de tête on fait avec ce qu'on connaît.
|
|
||||||
Pour le CSS c'est basé sur picoCSS comme ça tout reste léger; il y a un thème sombre et un clair c'est très bien.
|
|
||||||
|
|
||||||
## installer kore :
|
|
||||||
### Sous linux :
|
|
||||||
Debian: apt install kore
|
|
||||||
|
|
||||||
Archlinux: pacman -S kore
|
|
||||||
|
|
||||||
OpenBSD: pkg_add kore
|
|
||||||
|
|
||||||
Il vous faudra installé les dépendances pour les librairie sqlite3 aussi.
|
|
||||||
|
|
||||||
## Lancer le programme :
|
|
||||||
kodev run
|
|
||||||
|
|
||||||
et rendez-vous sur http://127.0.0.1:8888/
|
|
@ -1,62 +0,0 @@
|
|||||||
<!DOCTYPE>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<link rel="stylesheet" href="/css/style.css">
|
|
||||||
<title>Portal User</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<nav class="container-fluid">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<details role="list" >
|
|
||||||
<summary aria-haspopup="listbox" role="link" class="secondary">Theme</summary>
|
|
||||||
<ul role="listbox">
|
|
||||||
<li><a href="#" data-theme-switcher="auto">Auto</a></li>
|
|
||||||
<li><a href="#" data-theme-switcher="light">Light</a></li>
|
|
||||||
<li><a href="#" data-theme-switcher="dark">Dark</a></li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<details role="list" >
|
|
||||||
<summary aria-haspopup="listbox" role="link" class="secondary"> Mon compte </summary>
|
|
||||||
<ul role="listbox">
|
|
||||||
<li><a href="#"> Mes services </a> </li>
|
|
||||||
<li><a href="#"> Documentation </a></li>
|
|
||||||
<li><a href="#"> Changer mon mot de passe </a></li>
|
|
||||||
<li><a href="/logout"> Se déconnecter </a></li>
|
|
||||||
</ul>
|
|
||||||
</details>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="container">
|
|
||||||
<hgroup>
|
|
||||||
<h1> Bienvenue sur kitoy.me </h1>
|
|
||||||
<h2> Gérez votre compte sur kitoy.me </h2>
|
|
||||||
<h3> Connecté en tant que : $login$ </h3>
|
|
||||||
</hgroup>
|
|
||||||
|
|
||||||
<!-- Nav -->
|
|
||||||
</header><!-- ./ Header -->
|
|
||||||
|
|
||||||
|
|
||||||
<main class="container">
|
|
||||||
<h2> Gérer votre compte </h2>
|
|
||||||
|
|
||||||
<p>message debug: $msg$</p>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
<!-- Minimal theme switcher -->
|
|
||||||
<script src="/js/theme-switcher.js"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
|
|
||||||
</html>
|
|
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<!-- Markup example 2: input is after label -->
|
<!-- Markup example 2: input is after label -->
|
||||||
<label for="Login"> Login </label>
|
<label for="Login"> Login </label>
|
||||||
<input type="login" name="login" id="login" placeholder="Email address" value="" required>
|
<input type="Login" id="Login" name="login" placeholder="Login" value="$login$" required>
|
||||||
|
|
||||||
<label for="Password"> Mot de passe </label>
|
<label for="Password"> Mot de passe </label>
|
||||||
<input type="Password" id="Password" name="password" placeholder="Password" value="" required>
|
<input type="Password" id="Password" name="password" placeholder="Password" value="" required>
|
||||||
|
1316
assets/style.css
1316
assets/style.css
File diff suppressed because it is too large
Load Diff
106
assets/theme-switcher.js~
Normal file
106
assets/theme-switcher.js~
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
/*
|
||||||
|
* Theme switcher
|
||||||
|
*
|
||||||
|
* Pico.css - https://picocss.com
|
||||||
|
* Copyright 2019-2021 - Licensed under MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const themeSwitcher = {
|
||||||
|
// Config
|
||||||
|
_scheme: 'auto',
|
||||||
|
change: {
|
||||||
|
light: '<i>Turn on dark mode</i>',
|
||||||
|
dark: '<i>Turn off dark mode</i>',
|
||||||
|
},
|
||||||
|
buttonsTarget: '.theme-switcher',
|
||||||
|
|
||||||
|
// Init
|
||||||
|
init() {
|
||||||
|
this.scheme = this._scheme;
|
||||||
|
this.initSwitchers();
|
||||||
|
},
|
||||||
|
|
||||||
|
// Prefered color scheme
|
||||||
|
get preferedColorScheme() {
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
return 'dark';
|
||||||
|
} else {
|
||||||
|
return 'light';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Init switchers
|
||||||
|
initSwitchers() {
|
||||||
|
const buttons = document.querySelectorAll(this.buttonsTarget);
|
||||||
|
buttons.forEach(
|
||||||
|
function (button) {
|
||||||
|
button.addEventListener(
|
||||||
|
'click',
|
||||||
|
function (event) {
|
||||||
|
if (this.scheme == 'dark') {
|
||||||
|
this.scheme = 'light';
|
||||||
|
} else {
|
||||||
|
this.scheme = 'dark';
|
||||||
|
}
|
||||||
|
}.bind(this),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
// Add new button
|
||||||
|
addButton(config) {
|
||||||
|
// Insert Switcher
|
||||||
|
let button = document.createElement(config.tag);
|
||||||
|
button.className = config.class;
|
||||||
|
document.querySelector(config.target).appendChild(button);
|
||||||
|
},
|
||||||
|
|
||||||
|
// Set scheme
|
||||||
|
set scheme(scheme) {
|
||||||
|
if (scheme == 'auto') {
|
||||||
|
if (this.preferedColorScheme == 'dark') {
|
||||||
|
this._scheme = 'dark';
|
||||||
|
} else {
|
||||||
|
this._scheme = 'light';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set to Dark
|
||||||
|
else if (scheme == 'dark' || scheme == 'light') {
|
||||||
|
this._scheme = scheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set to Apply theme
|
||||||
|
this.applyScheme();
|
||||||
|
},
|
||||||
|
|
||||||
|
// Get scheme
|
||||||
|
get scheme() {
|
||||||
|
return this._scheme;
|
||||||
|
},
|
||||||
|
|
||||||
|
// Apply scheme
|
||||||
|
applyScheme() {
|
||||||
|
// Root attribute
|
||||||
|
document.querySelector('html').setAttribute('data-theme', this.scheme);
|
||||||
|
|
||||||
|
// Buttons text
|
||||||
|
const buttons = document.querySelectorAll(this.buttonsTarget);
|
||||||
|
let text;
|
||||||
|
buttons.forEach(
|
||||||
|
function (button) {
|
||||||
|
if (this.scheme == 'dark') {
|
||||||
|
text = this.change.dark;
|
||||||
|
} else {
|
||||||
|
text = this.change.light;
|
||||||
|
}
|
||||||
|
button.innerHTML = text;
|
||||||
|
button.setAttribute('aria-label', text.replace(/<[^>]*>?/gm, ''));
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default themeSwitcher;
|
@ -4,12 +4,12 @@
|
|||||||
# Set to yes if you wish to produce a single binary instead
|
# Set to yes if you wish to produce a single binary instead
|
||||||
# of a dynamic library. If you set this to yes you must also
|
# of a dynamic library. If you set this to yes you must also
|
||||||
# set kore_source together with kore_flavor.
|
# set kore_source together with kore_flavor.
|
||||||
#single_binary=yes
|
#single_binary=no
|
||||||
#kore_source=/home/joris/src/kore
|
#kore_source=/home/joris/src/kore
|
||||||
#kore_flavor=
|
#kore_flavor=
|
||||||
|
|
||||||
# The flags below are shared between flavors
|
# The flags below are shared between flavors
|
||||||
cflags=-Wall -Wmissing-declarations -Wshadow -I/usr/local/include
|
cflags=-Wall -Wmissing-declarations -Wshadow
|
||||||
cflags=-Wstrict-prototypes -Wmissing-prototypes
|
cflags=-Wstrict-prototypes -Wmissing-prototypes
|
||||||
cflags=-Wpointer-arith -Wcast-qual -Wsign-compare
|
cflags=-Wpointer-arith -Wcast-qual -Wsign-compare
|
||||||
ldflags=-lsqlite3
|
ldflags=-lsqlite3
|
||||||
@ -20,23 +20,18 @@ cxxflags=-Wall -Wmissing-declarations -Wshadow
|
|||||||
cxxflags=-Wpointer-arith -Wcast-qual -Wsign-compare
|
cxxflags=-Wpointer-arith -Wcast-qual -Wsign-compare
|
||||||
|
|
||||||
# Mime types for assets served via the builtin asset_serve_*
|
# Mime types for assets served via the builtin asset_serve_*
|
||||||
mime_add=jpg:image/jpeg
|
#mime_add=txt:text/plain; charset=utf-8
|
||||||
mime_add=css:text/css; charset=utf-8
|
#mime_add=png:image/png
|
||||||
mime_add=txt:text/plain; charset=utf-8
|
#mime_add=html:text/html; charset=utf-8
|
||||||
mime_add=png:image/png
|
|
||||||
mime_add=html:text/html; charset=utf-8
|
|
||||||
|
|
||||||
dev {
|
dev {
|
||||||
# These flags are added to the shared ones when
|
# These flags are added to the shared ones when
|
||||||
# you build the "dev" flavor.
|
# you build the "dev" flavor.
|
||||||
cflags=-g
|
cflags=-g
|
||||||
cxxflags=-g
|
cxxflags=-g
|
||||||
}
|
}
|
||||||
|
|
||||||
prod {
|
#prod {
|
||||||
# You can specify additional flags here which are only
|
# You can specify additional flags here which are only
|
||||||
# included if you build with the "prod" flavor.
|
# included if you build with the "prod" flavor.
|
||||||
cflags=-g
|
#}
|
||||||
cxxflags=-g
|
|
||||||
|
|
||||||
}
|
|
||||||
|
35
conf/build.conf.bck
Normal file
35
conf/build.conf.bck
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# sqlite3 build config
|
||||||
|
# You can switch flavors using: kodev flavor [newflavor]
|
||||||
|
|
||||||
|
# Set to yes if you wish to produce a single binary instead
|
||||||
|
# of a dynamic library. If you set this to yes you must also
|
||||||
|
# set kore_source together with kore_flavor.
|
||||||
|
#single_binary=no
|
||||||
|
#kore_source=/home/joris/src/kore
|
||||||
|
#kore_flavor=
|
||||||
|
|
||||||
|
# The flags below are shared between flavors
|
||||||
|
cflags=-Wall -Wmissing-declarations -Wshadow
|
||||||
|
cflags=-Wstrict-prototypes -Wmissing-prototypes
|
||||||
|
cflags=-Wpointer-arith -Wcast-qual -Wsign-compare
|
||||||
|
ldflags=-lsqlite3
|
||||||
|
ldflags=-L/usr/lib
|
||||||
|
cxxflags=-Wall -Wmissing-declarations -Wshadow
|
||||||
|
cxxflags=-Wpointer-arith -Wcast-qual -Wsign-compare
|
||||||
|
|
||||||
|
# Mime types for assets served via the builtin asset_serve_*
|
||||||
|
#mime_add=txt:text/plain; charset=utf-8
|
||||||
|
#mime_add=png:image/png
|
||||||
|
#mime_add=html:text/html; charset=utf-8
|
||||||
|
|
||||||
|
dev {
|
||||||
|
# These flags are added to the shared ones when
|
||||||
|
# you build the "dev" flavor.
|
||||||
|
cflags=-g
|
||||||
|
cxxflags=-g
|
||||||
|
}
|
||||||
|
|
||||||
|
#prod {
|
||||||
|
# You can specify additional flags here which are only
|
||||||
|
# included if you build with the "prod" flavor.
|
||||||
|
#}
|
@ -1,72 +0,0 @@
|
|||||||
# portal_user configuration
|
|
||||||
|
|
||||||
server notls {
|
|
||||||
bind 127.0.0.1 8888
|
|
||||||
tls no
|
|
||||||
}
|
|
||||||
|
|
||||||
load ./portal_user.so init
|
|
||||||
|
|
||||||
http_body_max 1024000000
|
|
||||||
http_body_disk_offload 1024000
|
|
||||||
|
|
||||||
workers 1
|
|
||||||
|
|
||||||
|
|
||||||
validator v_login regex ^[-_.a-zA-Z0-9]*$
|
|
||||||
validator v_password function v_password_func
|
|
||||||
validator v_session function v_session_validate
|
|
||||||
|
|
||||||
pledge wpath cpath flock
|
|
||||||
|
|
||||||
authentication auth_example {
|
|
||||||
authentication_type cookie
|
|
||||||
authentication_value session_id
|
|
||||||
authentication_validator v_session
|
|
||||||
authentication_uri /
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
domain * {
|
|
||||||
attach notls
|
|
||||||
|
|
||||||
|
|
||||||
accesslog kore_access.log
|
|
||||||
|
|
||||||
|
|
||||||
route / {
|
|
||||||
handler portal_user_load
|
|
||||||
methods post get
|
|
||||||
validate post login v_login
|
|
||||||
validate post password v_password
|
|
||||||
}
|
|
||||||
|
|
||||||
route /css/style.css {
|
|
||||||
handler asset_serve_style_css
|
|
||||||
}
|
|
||||||
|
|
||||||
route /js/theme-switcher.js {
|
|
||||||
handler asset_serve_theme_switcher_js
|
|
||||||
}
|
|
||||||
|
|
||||||
route /signup {
|
|
||||||
handler create_user
|
|
||||||
methods get post
|
|
||||||
validate post login v_login
|
|
||||||
validate post password v_password
|
|
||||||
}
|
|
||||||
|
|
||||||
route /portal/bienvenue {
|
|
||||||
handler private_portal
|
|
||||||
authenticate auth_example
|
|
||||||
}
|
|
||||||
|
|
||||||
route /logout {
|
|
||||||
handler v_session_remove
|
|
||||||
authenticate auth_example
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
40
conf/sqlite3.conf
Normal file
40
conf/sqlite3.conf
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# portal_user configuration
|
||||||
|
|
||||||
|
server notls {
|
||||||
|
bind 192.168.1.6 8888
|
||||||
|
tls no
|
||||||
|
}
|
||||||
|
|
||||||
|
load ./sqlite3.so
|
||||||
|
|
||||||
|
http_body_max 1024000000
|
||||||
|
http_body_disk_offload 1024000
|
||||||
|
|
||||||
|
workers 1
|
||||||
|
|
||||||
|
|
||||||
|
validator v_login regex ^[-_.a-zA-Z0-9]*$
|
||||||
|
validator v_password function v_password_func
|
||||||
|
pledge wpath cpath flock
|
||||||
|
domain * {
|
||||||
|
attach notls
|
||||||
|
|
||||||
|
|
||||||
|
accesslog kore_access.log
|
||||||
|
|
||||||
|
|
||||||
|
route / portal_user_load
|
||||||
|
route /css/style.css asset_serve_style_css
|
||||||
|
route /js/theme-switcher.js asset_serve_theme_switcher_js
|
||||||
|
route /signup create_user
|
||||||
|
|
||||||
|
params post / {
|
||||||
|
validate login v_login
|
||||||
|
validate password v_password
|
||||||
|
}
|
||||||
|
params post /signup {
|
||||||
|
validate login v_login
|
||||||
|
validate password v_password
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
422
kore_access.log
Normal file
422
kore_access.log
Normal file
@ -0,0 +1,422 @@
|
|||||||
|
127.0.0.1 - - [10/Feb/2022:10:03:48 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:03:48 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:03:48 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:06:01 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:06:01 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:06:01 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:08:39 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:08:39 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:08:39 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:10:08 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:10:08 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:10:08 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:10:13 +0700] "POST / HTTP/1.1" 200 1713 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:10:13 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:10:10:13 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:42:22 +0700] "POST / HTTP/1.1" 200 1713 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:42:22 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:42:22 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:45:48 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:45:48 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:45:48 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:45:53 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:45:53 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:45:53 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:46:09 +0700] "GET / HTTP/1.1" 200 1705 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:50:56 +0700] "HEAD / HTTP/1.1" 200 1707 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:51:08 +0700] "HEAD / HTTP/1.1" 200 1707 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:52:00 +0700] "HEAD / HTTP/1.1" 200 1707 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:52:36 +0700] "HEAD / HTTP/1.1" 200 1707 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:52:39 +0700] "HEAD / HTTP/1.1" 200 1707 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:52:46 +0700] "HEAD / HTTP/1.1" 200 1707 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:29 +0700] "POST / HTTP/1.1" 200 1713 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:29 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:29 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:46 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:46 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:46 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:53 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:53 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:53 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:56 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:56 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:53:56 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:01 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:01 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:01 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:06 +0700] "POST / HTTP/1.1" 200 1713 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:06 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:06 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:11 +0700] "HEAD / HTTP/1.1" 200 1707 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:14:54:18 +0700] "GET / HTTP/1.1" 200 1705 "-" "curl/7.81.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:02:09 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:02:09 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:02:09 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:02:14 +0700] "POST / HTTP/1.1" 0 20 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:52:09 +0700] "POST / HTTP/1.1" 200 1730 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:52:09 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:52:09 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:53:42 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:53:42 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:53:42 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:53:46 +0700] "POST / HTTP/1.1" 0 20 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:54:46 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:54:46 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:54:46 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:15:54:50 +0700] "POST / HTTP/1.1" 0 20 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:19:37 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:19:37 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:19:37 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:19:41 +0700] "POST / HTTP/1.1" 200 1730 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:19:41 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:19:41 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:24:52 +0700] "POST / HTTP/1.1" 200 1730 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:24:52 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:24:52 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:35:17 +0700] "POST / HTTP/1.1" 200 1730 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:35:17 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:35:17 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:06 +0700] "POST / HTTP/1.1" 200 1730 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:06 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:06 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:15 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:15 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:15 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:20 +0700] "POST / HTTP/1.1" 200 1730 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:20 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:16:39:20 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:51:52 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:51:52 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:51:52 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:53:27 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:53:27 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:53:27 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:57:23 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:57:23 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:57:23 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:57:29 +0700] "POST / HTTP/1.1" 200 1730 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:57:29 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:17:57:29 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:00:42 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:00:42 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:00:42 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:00:48 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:00:48 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:00:48 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:33 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:33 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:33 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:43 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:43 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:43 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:50 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:50 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:50 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:55 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:55 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:01:55 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:02:15 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:02:15 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:02:15 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:03 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:03 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:03 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:12 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:12 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:12 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:16 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:16 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:16 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:28 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:28 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:05:28 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:06:21 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:06:21 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:06:21 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:06:29 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:06:29 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:06:29 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:09:53 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:09:53 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:09:53 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:00 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:00 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:00 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:18 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:18 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:18 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:48 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:48 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:48 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:57 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:57 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:10:57 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:09 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:09 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:09 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:13 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:13 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:13 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:16 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:16 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:16 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:55 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:55 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:55 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:57 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:57 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:11:57 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:00 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:00 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:00 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:01 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:01 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:01 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:14 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:14 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:14 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:16 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:16 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:16 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:19 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:19 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:19 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:26 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:26 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:12:26 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:13:49 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:13:49 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:13:49 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:13:53 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:13:53 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [10/Feb/2022:18:13:53 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:04:48 +0700] "GET / HTTP/1.1" 200 1705 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:04:50 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:04:50 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:04:50 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:05:00 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:05:00 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:05:00 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:14:51 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:14:51 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:14:51 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:29:02 +0700] "GET /signup HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:29:02 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:29:02 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:30:02 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:30:02 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:30:02 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:57:20 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:57:20 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:57:20 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:14:57:31 +0700] "POST /signup HTTP/1.1" 0 24 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:02:10 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:02:10 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:02:10 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:02:15 +0700] "POST /signup HTTP/1.1" 0 24 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:10 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:10 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:10 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:18 +0700] "POST /signup HTTP/1.1" 200 1734 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:18 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:18 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:31 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:31 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:31 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:36 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:36 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:17:36 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:11 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:11 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:11 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:18 +0700] "POST /signup HTTP/1.1" 200 1734 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:18 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:18 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:28 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:28 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:28 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:57 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:57 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:21:57 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:22:01 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:22:01 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:22:01 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:22:12 +0700] "POST / HTTP/1.1" 200 1728 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:22:12 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:22:12 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:25:55 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:25:55 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:25:55 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:26:00 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:26:00 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [12/Feb/2022:15:26:00 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:11:28 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:11:28 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:11:28 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:41:34 +0700] "POST /signup HTTP/1.1" 200 1734 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:41:34 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:41:34 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:42:03 +0700] "POST /signup HTTP/1.1" 200 1734 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:42:03 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:42:03 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:50:06 +0700] "POST /signup HTTP/1.1" 200 1734 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:50:06 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:08:50:06 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:28:30 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:28:30 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:28:30 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:28:52 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:28:52 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:28:52 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:32:50 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:32:50 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:32:50 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:33:11 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:33:11 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:33:11 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:35:00 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:35:00 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:35:00 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:40:51 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:40:51 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:40:51 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:41:51 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:41:51 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:41:51 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:44:28 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:44:28 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:10:44:28 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:13:53:00 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:13:53:00 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:13:53:00 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:13:58:07 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:13:58:07 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:13:58:07 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:13:58:13 +0700] "POST /signup HTTP/1.1" 0 20 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:07 +0700] "GET /signup HTTP/1.1" 200 1709 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:07 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:07 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:14 +0700] "POST /signup HTTP/1.1" 200 1734 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:14 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:14 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:39 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:39 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:00:39 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:02:23 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:02:23 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:02:23 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:04:21 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:04:21 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:04:21 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:07:24 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:07:24 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:07:24 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:07:35 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:07:35 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:07:35 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:09:07 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:09:07 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:09:07 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:09:52 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:09:52 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:09:52 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:11:26 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:11:26 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:11:26 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:15:32 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:15:32 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:15:32 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:45:25 +0700] "GET / HTTP/1.1" 200 1705 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:45:25 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:45:25 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:45:30 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:45:30 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:45:30 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:48:51 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:48:51 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:48:51 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:49:23 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:49:23 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:49:23 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:55:05 +0700] "POST /signup HTTP/1.1" 200 1734 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:55:05 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:55:05 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:55:13 +0700] "POST / HTTP/1.1" 200 1727 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:55:13 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:14:55:13 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:26 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:26 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:26 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:34 +0700] "POST /signup HTTP/1.1" 200 1661 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:34 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:34 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:41 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:41 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:41 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:47 +0700] "POST / HTTP/1.1" 200 1645 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:47 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:13:47 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:15:22 +0700] "POST / HTTP/1.1" 200 1656 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:15:22 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:15:22 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:15:31 +0700] "POST / HTTP/1.1" 200 1660 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:15:31 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
127.0.0.1 - - [14/Feb/2022:15:15:31 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://127.0.0.1:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:05:41 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:05:41 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:05:41 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:08:56 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:08:56 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:08:56 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:33:58 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:33:58 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:33:58 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:53:37 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:53:37 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:53:37 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:55:14 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:55:14 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:55:14 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:57:41 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:57:41 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:57:41 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:58:40 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:58:40 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:58:40 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:59:33 +0700] "GET / HTTP/1.1" 200 1640 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:59:33 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:59:33 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:59:41 +0700] "POST / HTTP/1.1" 200 1656 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:59:41 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:17:59:41 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:55:02 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:55:02 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:55:02 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:56:13 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:56:13 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:56:13 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:57:22 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:57:22 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:19:57:22 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:20:00:28 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:20:00:28 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:20:00:28 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:20:32:58 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:20:32:58 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [14/Feb/2022:20:32:58 +0700] "GET /js/theme-switcher.js HTTP/1.1" 200 807 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:08:53 +0700] "GET / HTTP/1.1" 200 1640 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:09:02 +0700] "POST / HTTP/1.1" 200 1656 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:09:02 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:09:02 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:13:50 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:13:50 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:13:50 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:23:42 +0700] "GET /signup HTTP/1.1" 200 1660 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:23:42 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:23:42 +0700] "GET /css/style.css HTTP/1.1" 200 67719 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:23:53 +0700] "POST /signup HTTP/1.1" 200 1661 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:23:53 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:23:53 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/signup" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:27:14 +0700] "POST / HTTP/1.1" 200 1656 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:27:14 +0700] "GET /css/style.css HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
||||||
|
192.168.1.100 - - [15/Feb/2022:11:27:14 +0700] "GET /js/theme-switcher.js HTTP/1.1" 304 0 "http://192.168.1.6:8888/" "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0"
|
BIN
ktrace.out
Normal file
BIN
ktrace.out
Normal file
Binary file not shown.
@ -1,381 +0,0 @@
|
|||||||
#include <kore/kore.h>
|
|
||||||
#include <kore/http.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sqlite3.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include "assets.h"
|
|
||||||
#include "sessions.h"
|
|
||||||
#include "sqlite_utils.h"
|
|
||||||
#include <pwd.h>
|
|
||||||
|
|
||||||
#define SESSION_LEN 30
|
|
||||||
#define DB_NAME "portal_user.db"
|
|
||||||
|
|
||||||
#if defined(__linux__)
|
|
||||||
|
|
||||||
#include <kore/seccomp.h>
|
|
||||||
#include <crypt.h>
|
|
||||||
|
|
||||||
KORE_SECCOMP_FILTER("sqlite3",
|
|
||||||
KORE_SYSCALL_ALLOW(newfstatat),
|
|
||||||
KORE_SYSCALL_ALLOW(pread64),
|
|
||||||
KORE_SYSCALL_ALLOW(pwrite64),
|
|
||||||
KORE_SYSCALL_ALLOW(fdatasync),
|
|
||||||
KORE_SYSCALL_ALLOW_ARG(write, 0, STDOUT_FILENO)
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
int init(int state);
|
|
||||||
int portal_user_load(struct http_request *);
|
|
||||||
int v_password_func(struct http_request *, char *);
|
|
||||||
int create_user(struct http_request *);
|
|
||||||
int v_session_validate(struct http_request *, char *);
|
|
||||||
int v_session_remove(struct http_request *);
|
|
||||||
int private_portal(struct http_request *);
|
|
||||||
|
|
||||||
hashtable_t *hashtable = NULL;
|
|
||||||
|
|
||||||
int
|
|
||||||
init(int state)
|
|
||||||
{
|
|
||||||
hashtable = ht_create( 65536 );
|
|
||||||
int err=0;
|
|
||||||
if( hashtable == NULL )
|
|
||||||
{
|
|
||||||
kore_log(LOG_ERR, "Can't create hastable sessions");
|
|
||||||
err = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( access( DB_NAME, F_OK ) == 0 && err == 0 )
|
|
||||||
{ kore_log(LOG_NOTICE, "Execute check_db()");
|
|
||||||
err = check_db(DB_NAME);}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
kore_log(LOG_NOTICE, "Create Sqlite Base");
|
|
||||||
err = init_db(DB_NAME);
|
|
||||||
}
|
|
||||||
if (err)
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
else
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
create_user(struct http_request *req)
|
|
||||||
{
|
|
||||||
struct kore_buf *b = NULL;
|
|
||||||
u_int8_t *d = NULL;
|
|
||||||
size_t len = 0;
|
|
||||||
char *salt = NULL, *cryptpwd = NULL;
|
|
||||||
char *zErrMsg = NULL;
|
|
||||||
char *user = NULL, *pwd = NULL, name[50];
|
|
||||||
sqlite3 *db = NULL;
|
|
||||||
char sql[512];
|
|
||||||
|
|
||||||
if (req->method == HTTP_METHOD_GET)
|
|
||||||
http_populate_get(req);
|
|
||||||
else if (req->method == HTTP_METHOD_POST)
|
|
||||||
http_populate_post(req);
|
|
||||||
|
|
||||||
b = kore_buf_alloc(asset_len_signup_html);
|
|
||||||
kore_buf_append(b, asset_signup_html, asset_len_signup_html);
|
|
||||||
|
|
||||||
|
|
||||||
if (req->method == HTTP_METHOD_GET) {
|
|
||||||
kore_buf_replace_string(b, "$msg$", "GO", 4);
|
|
||||||
|
|
||||||
http_response_header(req, "content-type", "text/html");
|
|
||||||
d = kore_buf_release(b, &len);
|
|
||||||
http_response(req, 200, d, len);
|
|
||||||
kore_free(d);
|
|
||||||
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (req->method == HTTP_METHOD_POST)
|
|
||||||
{
|
|
||||||
int rc = sqlite3_open(DB_NAME, &db);
|
|
||||||
|
|
||||||
if (rc != SQLITE_OK) {
|
|
||||||
|
|
||||||
kore_log(LOG_ERR, "Cannot open database: %s\n", sqlite3_errmsg(db));
|
|
||||||
sqlite3_close(db);
|
|
||||||
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
}
|
|
||||||
#if defined(__linux__)
|
|
||||||
salt = crypt_gensalt("$2b$", 15, NULL, 0); //-> linux
|
|
||||||
#elif defined(__OpenBSD__)
|
|
||||||
salt = bcrypt_gensalt(15);
|
|
||||||
#endif
|
|
||||||
if (salt == NULL) {
|
|
||||||
kore_log(LOG_ERR, "crypt_gensalt");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
kore_log(LOG_NOTICE, "bcrypt_salt réussi");
|
|
||||||
|
|
||||||
(void)snprintf(name, sizeof(name), "login");
|
|
||||||
http_argument_get_string(req, name, &user);
|
|
||||||
|
|
||||||
(void)snprintf(name, sizeof(name), "password");
|
|
||||||
http_argument_get_string(req, name, &pwd);
|
|
||||||
|
|
||||||
cryptpwd = crypt(pwd, salt);
|
|
||||||
if (cryptpwd == NULL) {
|
|
||||||
kore_log(LOG_PERROR, "Can't encrypt password");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
kore_log(LOG_NOTICE, "Encrypted called %s", cryptpwd );
|
|
||||||
|
|
||||||
(void)sprintf(sql,
|
|
||||||
"INSERT INTO Users (Email, Password, Active) VALUES(\"%s\",\"%s\",\"yes\");",
|
|
||||||
user, cryptpwd);
|
|
||||||
|
|
||||||
|
|
||||||
printf ( "%s",sql);
|
|
||||||
rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);
|
|
||||||
|
|
||||||
if( rc != SQLITE_OK ){
|
|
||||||
kore_log(LOG_ERR, "SQL error: %s", zErrMsg);
|
|
||||||
sqlite3_free(zErrMsg);
|
|
||||||
} else {
|
|
||||||
kore_log(LOG_NOTICE, "Database successfully created !");
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlite3_close(db);
|
|
||||||
http_response_header(req, "location", "/");
|
|
||||||
http_response_header(req, "content-type", "text/html");
|
|
||||||
d = kore_buf_release(b, &len);
|
|
||||||
http_response(req, HTTP_STATUS_FOUND, NULL, 0);
|
|
||||||
kore_free(d);
|
|
||||||
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
portal_user_load(struct http_request *req)
|
|
||||||
{
|
|
||||||
struct kore_buf *b = NULL;
|
|
||||||
u_int8_t *d = NULL;
|
|
||||||
size_t len = 0;
|
|
||||||
char *login = NULL, *pwd = NULL, name[70];
|
|
||||||
char *err_msg = 0;
|
|
||||||
char salt[29], *cryptpwd = NULL;
|
|
||||||
int rc = 0;
|
|
||||||
sqlite3_stmt *res= NULL;
|
|
||||||
sqlite3 *db = NULL;
|
|
||||||
char *cookie_session = NULL;
|
|
||||||
char *cookie_samesite = NULL;
|
|
||||||
char *cookie = NULL;
|
|
||||||
char *session_id = NULL;
|
|
||||||
|
|
||||||
if (req->method == HTTP_METHOD_GET)
|
|
||||||
http_populate_get(req);
|
|
||||||
else if (req->method == HTTP_METHOD_POST)
|
|
||||||
http_populate_post(req);
|
|
||||||
|
|
||||||
b = kore_buf_alloc(asset_len_index_html);
|
|
||||||
kore_buf_append(b, asset_index_html, asset_len_index_html);
|
|
||||||
|
|
||||||
if (req->method == HTTP_METHOD_GET) {
|
|
||||||
kore_buf_replace_string(b, "$login$", NULL, 0);
|
|
||||||
kore_buf_replace_string(b, "$password$", NULL, 0);
|
|
||||||
kore_buf_replace_string(b, "$msg$", "Toto", 4);
|
|
||||||
|
|
||||||
http_response_header(req, "content-type", "text/html");
|
|
||||||
d = kore_buf_release(b, &len);
|
|
||||||
http_response(req, 200, d, len);
|
|
||||||
kore_free(d);
|
|
||||||
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (req->method == HTTP_METHOD_POST)
|
|
||||||
{
|
|
||||||
rc = sqlite3_open(DB_NAME, &db);
|
|
||||||
|
|
||||||
if (rc != SQLITE_OK)
|
|
||||||
{
|
|
||||||
kore_log(LOG_ERR, "Cannot open database: %s\n", sqlite3_errmsg(db));
|
|
||||||
sqlite3_close(db);
|
|
||||||
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
char *sql = "SELECT Email, Password FROM Users WHERE Email = ?";
|
|
||||||
|
|
||||||
rc = sqlite3_prepare_v2(db, sql, -1, &res, 0);
|
|
||||||
|
|
||||||
if (rc == SQLITE_OK)
|
|
||||||
{
|
|
||||||
(void)snprintf(name, sizeof(name), "login");
|
|
||||||
http_argument_get_string(req, name, &login);
|
|
||||||
sqlite3_bind_text(res, 1, login , -1, NULL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
kore_log(LOG_ERR, "Failed to execute statement: %s\n", sqlite3_errmsg(db));
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlite3_step(res);
|
|
||||||
if (rc != SQLITE_OK ) {
|
|
||||||
kore_log(LOG_ERR, "SQL error: %s\n", err_msg);
|
|
||||||
sqlite3_finalize(res);
|
|
||||||
sqlite3_free(err_msg);
|
|
||||||
sqlite3_close(db);
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
(void)snprintf(name, sizeof(name), "password");
|
|
||||||
http_argument_get_string(req, name, &pwd);
|
|
||||||
|
|
||||||
|
|
||||||
strncpy (salt,(const char *)sqlite3_column_text(res, 1),29);
|
|
||||||
|
|
||||||
|
|
||||||
cryptpwd = crypt(pwd, salt);
|
|
||||||
if (cryptpwd == NULL) {
|
|
||||||
kore_log(LOG_PERROR, "Can't encrypt password");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ( strcmp( (const char *)sqlite3_column_text(res, 1), cryptpwd) )
|
|
||||||
{
|
|
||||||
kore_buf_replace_string(b, "$msg$", "Erreur de login ou mot de passe ", 17);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
kore_log(LOG_NOTICE, "on va faire le set cookie");
|
|
||||||
session_id = gen_session_id(SESSION_LEN);
|
|
||||||
ht_set(hashtable, session_id, login);
|
|
||||||
|
|
||||||
kore_log(LOG_NOTICE, "on a ajouté le sessions dans la hastable");
|
|
||||||
cookie_session = set_cookie_header("session_id", '=', session_id);
|
|
||||||
cookie_samesite = set_cookie_header("SameSite", '=', "Strict");
|
|
||||||
cookie = set_cookie_header(cookie_session, ';', cookie_samesite);
|
|
||||||
kore_log(LOG_NOTICE, "on a set le cookie dans les headers");
|
|
||||||
kore_buf_replace_string(b, "$msg$", "BRAVO !!!", 13);
|
|
||||||
free(session_id);
|
|
||||||
free(cookie_session);
|
|
||||||
free(cookie_samesite);
|
|
||||||
kore_log(LOG_NOTICE, "set cookie OK");
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlite3_finalize(res);
|
|
||||||
sqlite3_close(db);
|
|
||||||
|
|
||||||
|
|
||||||
http_response_header(req, "content-type", "text/html");
|
|
||||||
if (cookie != NULL)
|
|
||||||
{
|
|
||||||
http_response_header(req, "set-cookie", cookie);
|
|
||||||
free(cookie);
|
|
||||||
}
|
|
||||||
d = kore_buf_release(b, &len);
|
|
||||||
|
|
||||||
http_response_header(req, "location", "/portal/bienvenue");
|
|
||||||
http_response(req, HTTP_STATUS_FOUND, NULL, 0);
|
|
||||||
kore_free(d);
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
v_password_func(struct http_request *req, char *data)
|
|
||||||
{
|
|
||||||
kore_log(LOG_NOTICE, "v_password_func called %s", data);
|
|
||||||
|
|
||||||
if ( strlen(data) < 128 )
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
v_session_remove (struct http_request *req)
|
|
||||||
{
|
|
||||||
char *buffer;
|
|
||||||
|
|
||||||
http_populate_cookies(req);
|
|
||||||
if (http_request_cookie(req, "session_id", &buffer))
|
|
||||||
kore_log(LOG_DEBUG, "Got session_id: %s", buffer);
|
|
||||||
|
|
||||||
if (ht_get(hashtable, buffer) != NULL)
|
|
||||||
ht_delete(hashtable, buffer);
|
|
||||||
http_response_header(req, "location", "/");
|
|
||||||
http_response_header(req, "content-type", "text/html");
|
|
||||||
http_response_header(req, "set-cookie", "session_id=""");
|
|
||||||
http_response(req, HTTP_STATUS_FOUND, NULL, 0);
|
|
||||||
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
v_session_validate(struct http_request *req, char *data)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
kore_log(LOG_NOTICE, "v_session_validate: %s", data);
|
|
||||||
|
|
||||||
if ( ht_get(hashtable, data) != NULL )
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
kore_log(LOG_NOTICE, "Session Inexistante");
|
|
||||||
}
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
private_portal(struct http_request *req)
|
|
||||||
{
|
|
||||||
struct kore_buf *b = NULL;
|
|
||||||
u_int8_t *d = NULL;
|
|
||||||
size_t len = 0;
|
|
||||||
char *buffer =NULL ;
|
|
||||||
session_t *account = NULL;
|
|
||||||
|
|
||||||
if (req->method == HTTP_METHOD_GET)
|
|
||||||
http_populate_get(req);
|
|
||||||
|
|
||||||
|
|
||||||
http_populate_cookies(req);
|
|
||||||
|
|
||||||
if (http_request_cookie(req, "session_id", &buffer))
|
|
||||||
kore_log(LOG_DEBUG, "Got session_id: %s", buffer);
|
|
||||||
|
|
||||||
|
|
||||||
b = kore_buf_alloc(asset_len_signup_html);
|
|
||||||
kore_buf_append(b, asset_private_html, asset_len_private_html);
|
|
||||||
|
|
||||||
account = ht_get(hashtable, buffer);
|
|
||||||
if (req->method == HTTP_METHOD_GET) {
|
|
||||||
|
|
||||||
kore_buf_replace_string(b, "$msg$", "GO", 4);
|
|
||||||
|
|
||||||
if (account != NULL)
|
|
||||||
{
|
|
||||||
kore_log(LOG_NOTICE, "account trouvé: %s", account->user);
|
|
||||||
kore_buf_replace_string(b, "$login$", account->user, sizeof(account->user)+1);
|
|
||||||
}
|
|
||||||
http_response_header(req, "content-type", "text/html");
|
|
||||||
d = kore_buf_release(b, &len);
|
|
||||||
http_response(req, 200, d, len);
|
|
||||||
kore_free(d);
|
|
||||||
}
|
|
||||||
return (KORE_RESULT_OK);
|
|
||||||
}
|
|
226
src/sessions.h
226
src/sessions.h
@ -1,226 +0,0 @@
|
|||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <limits.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
struct session_s {
|
|
||||||
char *session_id;
|
|
||||||
char *user;
|
|
||||||
struct session_s *next;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct session_s session_t;
|
|
||||||
|
|
||||||
struct hashtable_s {
|
|
||||||
int size;
|
|
||||||
struct session_s **table;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct hashtable_s hashtable_t;
|
|
||||||
|
|
||||||
static hashtable_t *ht_create( int size );
|
|
||||||
static int ht_hash( hashtable_t *hashtable, char *session_id );
|
|
||||||
static session_t *ht_newpair( char *session_id, char *user );
|
|
||||||
static session_t *ht_get( hashtable_t *hashtable, char *session_id );
|
|
||||||
static void ht_set( hashtable_t *hashtable, char *session_id, char *user );
|
|
||||||
static void ht_delete (hashtable_t *hashtable, char *key);
|
|
||||||
static char *gen_session_id(int len);
|
|
||||||
static char *set_cookie_header( const char *champ, const char separator,
|
|
||||||
const char *session_id);
|
|
||||||
|
|
||||||
|
|
||||||
/* Create a new hashtable. */
|
|
||||||
hashtable_t *ht_create( int size ) {
|
|
||||||
hashtable_t *hashtable = NULL;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if( size < 1 ) return NULL;
|
|
||||||
|
|
||||||
/* Allocate the table itself. */
|
|
||||||
if( ( hashtable = malloc( sizeof( hashtable_t ) ) ) == NULL ) {
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Allocate pointers to the head nodes. */
|
|
||||||
if( ( hashtable->table = malloc( sizeof( session_t * ) * size ) ) == NULL ) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
for( i = 0; i < size; i++ ) {
|
|
||||||
hashtable->table[i] = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
hashtable->size = size;
|
|
||||||
|
|
||||||
return hashtable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hash a string for a particular hash table. */
|
|
||||||
int ht_hash( hashtable_t *hashtable, char *session_id ) {
|
|
||||||
|
|
||||||
unsigned long int hashval = 0;
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
/* Convert our string to an integer */
|
|
||||||
while( hashval < ULONG_MAX && i < strlen( session_id ) ) {
|
|
||||||
hashval = hashval << 8;
|
|
||||||
hashval += session_id[ i ];
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return hashval % hashtable->size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Create a key-value pair. */
|
|
||||||
session_t *ht_newpair( char *session_id, char *user ) {
|
|
||||||
session_t *newpair;
|
|
||||||
|
|
||||||
if( ( newpair = malloc( sizeof( session_t ) ) ) == NULL ) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( newpair->session_id = strdup( session_id ) ) == NULL ) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ( newpair->user = strdup( user ) ) == NULL ) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
newpair->next = NULL;
|
|
||||||
|
|
||||||
return newpair;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Insert a key-value pair into a hash table. */
|
|
||||||
static void ht_set( hashtable_t *hashtable, char *session_id, char *user ) {
|
|
||||||
int bin = 0;
|
|
||||||
session_t *newpair = NULL;
|
|
||||||
session_t *next = NULL;
|
|
||||||
session_t *last = NULL;
|
|
||||||
|
|
||||||
bin = ht_hash( hashtable, session_id );
|
|
||||||
|
|
||||||
next = hashtable->table[ bin ];
|
|
||||||
|
|
||||||
while( next != NULL && next->session_id != NULL && strcmp( session_id, next->session_id ) > 0 ) {
|
|
||||||
last = next;
|
|
||||||
next = next->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* There's already a pair. Let's replace that string. */
|
|
||||||
if( next != NULL && next->session_id != NULL && strcmp( session_id, next->session_id ) == 0 ) {
|
|
||||||
|
|
||||||
free( next->user );
|
|
||||||
next->user = strdup( user );
|
|
||||||
|
|
||||||
/* Nope, could't find it. Time to grow a pair. */
|
|
||||||
} else {
|
|
||||||
newpair = ht_newpair( session_id, user );
|
|
||||||
|
|
||||||
/* We're at the start of the linked list in this bin. */
|
|
||||||
if( next == hashtable->table[ bin ] ) {
|
|
||||||
newpair->next = next;
|
|
||||||
hashtable->table[ bin ] = newpair;
|
|
||||||
|
|
||||||
/* We're at the end of the linked list in this bin. */
|
|
||||||
} else if ( next == NULL ) {
|
|
||||||
last->next = newpair;
|
|
||||||
|
|
||||||
/* We're in the middle of the list. */
|
|
||||||
} else {
|
|
||||||
newpair->next = next;
|
|
||||||
last->next = newpair;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Retrieve a key-value pair from a hash table. */
|
|
||||||
static session_t *ht_get( hashtable_t *hashtable, char *session_id ) {
|
|
||||||
int bin = 0;
|
|
||||||
session_t *pair;
|
|
||||||
|
|
||||||
bin = ht_hash( hashtable, session_id );
|
|
||||||
|
|
||||||
/* Step through the bin, looking for our value. */
|
|
||||||
pair = hashtable->table[ bin ];
|
|
||||||
while( pair != NULL && pair->session_id != NULL && strcmp( session_id, pair->session_id ) > 0 ) {
|
|
||||||
pair = pair->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Did we actually find anything? */
|
|
||||||
if( pair == NULL || pair->session_id == NULL || strcmp( session_id, pair->session_id ) != 0 )
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return pair;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ht_delete (hashtable_t *hashtable, char *key){
|
|
||||||
|
|
||||||
int bin = 0;
|
|
||||||
session_t *pair;
|
|
||||||
session_t *prec;
|
|
||||||
|
|
||||||
bin = ht_hash( hashtable, key );
|
|
||||||
/* Step through the bin, looking for our value. */
|
|
||||||
pair = hashtable->table[ bin ];
|
|
||||||
while( pair != NULL && pair->session_id != NULL && strcmp( key, pair->session_id ) > 0 ) {
|
|
||||||
prec = pair;
|
|
||||||
pair = pair->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Did we actually find anything? */
|
|
||||||
if( pair != NULL || pair->session_id != NULL || strcmp( key, pair->session_id ) == 0 ) {
|
|
||||||
free(pair->session_id);
|
|
||||||
free(pair->user);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
char *gen_session_id(int len){
|
|
||||||
|
|
||||||
int index = 0;
|
|
||||||
char session_id[len];
|
|
||||||
char char1[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/,.-+~`<>:";
|
|
||||||
int c_tmp = 0;
|
|
||||||
char *res;
|
|
||||||
srand((unsigned int)(time(NULL)));
|
|
||||||
|
|
||||||
for(index = 0; index < len; index++)
|
|
||||||
{
|
|
||||||
c_tmp = rand() % sizeof(char1) - 1;
|
|
||||||
session_id[index] = char1[c_tmp];
|
|
||||||
}
|
|
||||||
session_id[len] = '\0';
|
|
||||||
res = strdup(session_id);
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *set_cookie_header( const char *champ, const char separator,
|
|
||||||
const char *session_id) {
|
|
||||||
int lch, lse;
|
|
||||||
int ls = 0;
|
|
||||||
char *result;
|
|
||||||
lch = strlen(champ);
|
|
||||||
lse = strlen(session_id);
|
|
||||||
if (separator)
|
|
||||||
ls = 1;
|
|
||||||
|
|
||||||
result = calloc(lch + ls + lse + 1, sizeof *result);
|
|
||||||
|
|
||||||
if (result != NULL) {
|
|
||||||
memcpy (result, champ, lch);
|
|
||||||
if (separator)
|
|
||||||
result[lch] = separator;
|
|
||||||
|
|
||||||
memcpy (result + lch + ls, session_id, lse + 1 );
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
241
src/sqlite3.c
Normal file
241
src/sqlite3.c
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
#include <kore/kore.h>
|
||||||
|
#include <kore/http.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sqlite3.h>
|
||||||
|
#include "assets.h"
|
||||||
|
#include <pwd.h>
|
||||||
|
#if defined(__linux__)
|
||||||
|
|
||||||
|
#include <kore/seccomp.h>
|
||||||
|
#include <crypt.h>
|
||||||
|
|
||||||
|
KORE_SECCOMP_FILTER("sqlite3",
|
||||||
|
KORE_SYSCALL_ALLOW(newfstatat),
|
||||||
|
KORE_SYSCALL_ALLOW(pread64),
|
||||||
|
KORE_SYSCALL_ALLOW(pwrite64),
|
||||||
|
KORE_SYSCALL_ALLOW(fdatasync),
|
||||||
|
KORE_SYSCALL_ALLOW_ARG(write, 0, STDOUT_FILENO)
|
||||||
|
);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
int portal_user_load(struct http_request *);
|
||||||
|
int v_password_func(struct http_request *, char *);
|
||||||
|
int create_user(struct http_request *);
|
||||||
|
|
||||||
|
int create_user(struct http_request *req)
|
||||||
|
{
|
||||||
|
struct kore_buf *b;
|
||||||
|
u_int8_t *d;
|
||||||
|
size_t len;
|
||||||
|
char *salt, *cryptpwd;
|
||||||
|
char *err_msg = 0;
|
||||||
|
char *user,*pwd,name[10];
|
||||||
|
sqlite3_stmt *res;
|
||||||
|
sqlite3 *db;
|
||||||
|
|
||||||
|
if (req->method == HTTP_METHOD_GET)
|
||||||
|
http_populate_get(req);
|
||||||
|
else if (req->method == HTTP_METHOD_POST)
|
||||||
|
http_populate_post(req);
|
||||||
|
|
||||||
|
b = kore_buf_alloc(asset_len_signup_html);
|
||||||
|
kore_buf_append(b, asset_signup_html, asset_len_signup_html);
|
||||||
|
|
||||||
|
|
||||||
|
if (req->method == HTTP_METHOD_GET) {
|
||||||
|
kore_buf_replace_string(b, "$msg$", "Toto", 4);
|
||||||
|
|
||||||
|
http_response_header(req, "content-type", "text/html");
|
||||||
|
d = kore_buf_release(b, &len);
|
||||||
|
http_response(req, 200, d, len);
|
||||||
|
kore_free(d);
|
||||||
|
|
||||||
|
return (KORE_RESULT_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (req->method == HTTP_METHOD_POST)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
int rc = sqlite3_open("test.db", &db);
|
||||||
|
|
||||||
|
if (rc != SQLITE_OK) {
|
||||||
|
|
||||||
|
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
|
||||||
|
sqlite3_close(db);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
//salt = crypt_gensalt("$2b$", 15, NULL, 0); //-> linux
|
||||||
|
salt = bcrypt_gensalt(15); //-> openbsd
|
||||||
|
|
||||||
|
if (salt == NULL) {
|
||||||
|
perror("crypt_gensalt");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
(void)snprintf(name, sizeof(name), "login");
|
||||||
|
http_argument_get_string(req, name, &user);
|
||||||
|
|
||||||
|
(void)snprintf(name, sizeof(name), "password");
|
||||||
|
http_argument_get_string(req, name, &pwd);
|
||||||
|
|
||||||
|
cryptpwd = crypt(pwd, salt);
|
||||||
|
if (cryptpwd == NULL) {
|
||||||
|
perror("crypt_gensalt");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
printf("Encrypted: %s\n", cryptpwd);
|
||||||
|
char *sql ="INSERT INTO users VALUES(?,?);";
|
||||||
|
|
||||||
|
rc = sqlite3_prepare_v2(db, sql, -1, &res, 0);
|
||||||
|
|
||||||
|
if (rc == SQLITE_OK) {
|
||||||
|
sqlite3_bind_text(res, 1, user, -1, NULL);
|
||||||
|
sqlite3_bind_text(res, 2, cryptpwd, -1, NULL);
|
||||||
|
|
||||||
|
}else {
|
||||||
|
fprintf(stderr, "Failed to execute statement: %s\n", sqlite3_errmsg(db));
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlite3_step(res);
|
||||||
|
if (rc != SQLITE_OK ) {
|
||||||
|
fprintf(stderr, "SQL error: %s\n", err_msg);
|
||||||
|
sqlite3_finalize(res);
|
||||||
|
sqlite3_free(err_msg);
|
||||||
|
sqlite3_close(db);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlite3_close(db);
|
||||||
|
http_response_header(req, "content-type", "text/html");
|
||||||
|
d = kore_buf_release(b, &len);
|
||||||
|
http_response(req, 200, d, len);
|
||||||
|
kore_free(d);
|
||||||
|
|
||||||
|
return (KORE_RESULT_OK);
|
||||||
|
}
|
||||||
|
return (KORE_RESULT_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
int portal_user_load(struct http_request *req)
|
||||||
|
{
|
||||||
|
struct kore_buf *b;
|
||||||
|
u_int8_t *d;
|
||||||
|
size_t len;
|
||||||
|
char *login,*pwd, name[10];
|
||||||
|
char *err_msg = 0;
|
||||||
|
char salt[29], *cryptpwd;
|
||||||
|
int rc;
|
||||||
|
sqlite3_stmt *res;
|
||||||
|
sqlite3 *db;
|
||||||
|
|
||||||
|
if (req->method == HTTP_METHOD_GET)
|
||||||
|
http_populate_get(req);
|
||||||
|
else if (req->method == HTTP_METHOD_POST)
|
||||||
|
http_populate_post(req);
|
||||||
|
|
||||||
|
b = kore_buf_alloc(asset_len_index_html);
|
||||||
|
kore_buf_append(b, asset_index_html, asset_len_index_html);
|
||||||
|
|
||||||
|
if (req->method == HTTP_METHOD_GET) {
|
||||||
|
kore_buf_replace_string(b, "$login$", NULL, 0);
|
||||||
|
kore_buf_replace_string(b, "$password$", NULL, 0);
|
||||||
|
kore_buf_replace_string(b, "$msg$", "Toto", 4);
|
||||||
|
|
||||||
|
http_response_header(req, "content-type", "text/html");
|
||||||
|
d = kore_buf_release(b, &len);
|
||||||
|
http_response(req, 200, d, len);
|
||||||
|
kore_free(d);
|
||||||
|
|
||||||
|
return (KORE_RESULT_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (req->method == HTTP_METHOD_POST)
|
||||||
|
{
|
||||||
|
rc = sqlite3_open("test.db", &db);
|
||||||
|
|
||||||
|
if (rc != SQLITE_OK)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
|
||||||
|
sqlite3_close(db);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *sql = "SELECT email_address, password FROM users WHERE email_address = ?";
|
||||||
|
|
||||||
|
rc = sqlite3_prepare_v2(db, sql, -1, &res, 0);
|
||||||
|
|
||||||
|
if (rc == SQLITE_OK)
|
||||||
|
{
|
||||||
|
(void)snprintf(name, sizeof(name), "login");
|
||||||
|
http_argument_get_string(req, name, &login);
|
||||||
|
sqlite3_bind_text(res, 1, login , -1, NULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Failed to execute statement: %s\n", sqlite3_errmsg(db));
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlite3_step(res);
|
||||||
|
if (rc != SQLITE_OK ) {
|
||||||
|
fprintf(stderr, "SQL error: %s\n", err_msg);
|
||||||
|
sqlite3_finalize(res);
|
||||||
|
sqlite3_free(err_msg);
|
||||||
|
sqlite3_close(db);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
(void)snprintf(name, sizeof(name), "password");
|
||||||
|
http_argument_get_string(req, name, &pwd);
|
||||||
|
|
||||||
|
|
||||||
|
strncpy (salt,(const char *)sqlite3_column_text(res, 1),29);
|
||||||
|
|
||||||
|
|
||||||
|
cryptpwd = crypt(pwd, salt);
|
||||||
|
if (cryptpwd == NULL) {
|
||||||
|
perror("crypt_gensalt");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ( strcmp( (const char *)sqlite3_column_text(res, 1), cryptpwd) )
|
||||||
|
{
|
||||||
|
printf("mauvais mot de passe\n");
|
||||||
|
kore_buf_replace_string(b, "$msg$", "Erreur connection", 17);
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
kore_buf_replace_string(b, "$msg$", "Connection ok", 13);
|
||||||
|
|
||||||
|
}
|
||||||
|
sqlite3_finalize(res);
|
||||||
|
sqlite3_close(db);
|
||||||
|
|
||||||
|
|
||||||
|
http_response_header(req, "content-type", "text/html");
|
||||||
|
d = kore_buf_release(b, &len);
|
||||||
|
http_response(req, 200, d, len);
|
||||||
|
kore_free(d);
|
||||||
|
return (KORE_RESULT_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (KORE_RESULT_ERROR);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int v_password_func(struct http_request *req, char *data)
|
||||||
|
{
|
||||||
|
kore_log(LOG_NOTICE, "v_password_func called %s", data);
|
||||||
|
|
||||||
|
if ( strlen(data) < 128 )
|
||||||
|
return (KORE_RESULT_OK);
|
||||||
|
|
||||||
|
return (KORE_RESULT_ERROR);
|
||||||
|
|
||||||
|
}
|
@ -1,85 +0,0 @@
|
|||||||
#include <kore/kore.h>
|
|
||||||
#include <sqlite3.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int init_db(const char *name);
|
|
||||||
int check_db(const char *name);
|
|
||||||
|
|
||||||
int init_db(const char *name)
|
|
||||||
{
|
|
||||||
sqlite3 *db = NULL;
|
|
||||||
char *zErrMsg = 0;
|
|
||||||
char *sql = "CREATE TABLE Users(" \
|
|
||||||
"Email CHAR(70) PRIMARY KEY NOT NULL, " \
|
|
||||||
"Password TEXT NOT NULL," \
|
|
||||||
"Email_rescue TEXT," \
|
|
||||||
"Alias TEXT," \
|
|
||||||
"XMPP TEXT, " \
|
|
||||||
"Active CHAR(3) NOT NULL, " \
|
|
||||||
"Token CHAR(30), " \
|
|
||||||
"Website TEXT, " \
|
|
||||||
"Date_create BIGINT );";
|
|
||||||
|
|
||||||
int rc = sqlite3_open(name, &db);
|
|
||||||
|
|
||||||
if (rc != SQLITE_OK) {
|
|
||||||
kore_log(LOG_ERR, "Cannot create database: %s\n",
|
|
||||||
sqlite3_errmsg(db));
|
|
||||||
sqlite3_close(db);
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);
|
|
||||||
|
|
||||||
if( rc != SQLITE_OK ){
|
|
||||||
kore_log(LOG_ERR, "SQL error: %s", zErrMsg);
|
|
||||||
sqlite3_free(zErrMsg);
|
|
||||||
} else {
|
|
||||||
kore_log(LOG_NOTICE, "Database successfully created !");
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlite3_close(db);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int check_db(const char *name){
|
|
||||||
sqlite3 *db = NULL;
|
|
||||||
char *zErrMsg = 0;
|
|
||||||
char *sql;
|
|
||||||
int rc = sqlite3_open(name, &db);
|
|
||||||
if (rc != SQLITE_OK) {
|
|
||||||
kore_log(LOG_ERR, "Cannot open database: %s\n",
|
|
||||||
sqlite3_errmsg(db));
|
|
||||||
sqlite3_close(db);
|
|
||||||
return (KORE_RESULT_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
sql = "SELECT EXISTS(SELECT 1 FROM Users WHERE Email=''); " \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE Password='');" \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE Email_rescue='');" \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE Alias='');" \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE XMPP='');" \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE Active='');" \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE Token='');" \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE Website='');" \
|
|
||||||
"SELECT EXISTS(SELECT 1 FROM Users WHERE Date_create='');";
|
|
||||||
|
|
||||||
rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);
|
|
||||||
|
|
||||||
if( rc != SQLITE_OK ){
|
|
||||||
kore_log(LOG_ERR, "SQL error: %s", zErrMsg);
|
|
||||||
sqlite3_free(zErrMsg);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
kore_log(LOG_NOTICE, "Check database 0K!");
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlite3_close(db);
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user