aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Main.hx
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2020-02-25 11:58:00 +0300
committerRblSb <msrblsb@gmail.com>2020-02-25 11:58:00 +0300
commit93410166580465608c370bb36cdc2b953e43b965 (patch)
tree134d5401111335014a45cfd2b2528904e42a1b5b /src/server/Main.hx
parentd934830a64b915af0b7e8031cb5ef927534c5e86 (diff)
Html escapism
Diffstat (limited to 'src/server/Main.hx')
-rw-r--r--src/server/Main.hx20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/server/Main.hx b/src/server/Main.hx
index 271f6ea..9f7534c 100644
--- a/src/server/Main.hx
+++ b/src/server/Main.hx
@@ -180,12 +180,12 @@ class Main {
sendClientList();
case Login:
final name = data.login.clientName;
- if (name.length == 0 || name.length > config.maxLoginLength
+ if (badNickName(name) || name.length > config.maxLoginLength
|| clients.getByName(name) != null) {
send(client, {type: LoginError});
return;
}
- client.name = data.login.clientName;
+ client.name = name;
client.isUser = true;
send(client, {
type: data.type,
@@ -228,6 +228,7 @@ class Main {
case AddVideo:
final item = data.addVideo.item;
+ item.author = client.name;
final localOrigin = '$localIp:$port';
if (item.url.indexOf(localOrigin) != -1) {
item.url = item.url.replace(localOrigin, '$globalIp:$port');
@@ -245,13 +246,12 @@ class Main {
case RemoveVideo:
if (videoList.length == 0) return;
final url = data.removeVideo.url;
- if (videoList[0].url == url) {
- videoTimer.stop();
- if (videoList.length > 0) restartWaitTimer();
- }
+ final isFirst = videoList[0].url == url;
+ if (isFirst) videoTimer.stop();
videoList.remove(
videoList.find(item -> item.url == url)
);
+ if (isFirst && videoList.length > 0) restartWaitTimer();
broadcast(data);
case Pause:
@@ -368,6 +368,14 @@ class Main {
}
}
+ final htmlChars = ~/[&^<>'"]/;
+
+ function badNickName(name:String):Bool {
+ if (name.length == 0) return true;
+ if (htmlChars.match(name)) return true;
+ return false;
+ }
+
var waitVideoStart:Timer;
var loadedClientsCount = 0;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage