commit 71f6da1ce4c27cbe7e9fb74626727eea7cb69d2f
parent 1027012e919715b4e0b840a4318f88b692b48e03
Author: slaytor <slaytor@riga.magicfreedom.com>
Date: Sat, 4 Nov 2023 11:08:37 +0400
added comments and bug fixes
Diffstat:
6 files changed, 48 insertions(+), 28 deletions(-)
diff --git a/etc/httpd.conf b/etc/httpd.conf
@@ -15,6 +15,10 @@ server "dmesg.devel" {
fastcgi strip 1
}
+ location "/comment" {
+ fastcgi strip 1
+ }
+
location "/" {
directory index upload
}
diff --git a/var/common.sh b/var/common.sh
@@ -13,13 +13,13 @@ fail() {
}
str_purifier() {
- sed -e 's/[^A-Za-z0-9\_\.\+\%\-]*//g' -e 's/\+/\\ /g' -e 's/%2B/+/g' -e 's/%3A/:/g'
+ sed -e 's/[^A-Za-z0-9,\_\.\+\%\-]*//g' -e 's/\+/\\ /g' -e 's/%2B/+/g' -e 's/%3A/:/g' -e 's/%20/\\ /g'
}
get_param() {
_name="$1"
_value="$(echo "$REQUEST_URI" | sed -n "s/^.*$_name=\([^&]*\).*\$/\1/p" | str_purifier)"
eval $_name="$_value"
- [ -z "$(eval "echo -ne \$$_name")" ] && eval $_name="Unknow"
+ [ -z "$(eval "echo -ne \$$_name")" ] && eval $_name="Unknown"
}
diff --git a/var/www/beautylist b/var/www/beautylist
@@ -8,7 +8,7 @@ _SOURCE=$DB/*
get_param search
-[ "$search" != "Unknow" ] && {
+[ "$search" != "Unknown" ] && {
_SOURCE="$(grep -i -m1 -R -l "$search" $DB | sed -E -n 's/^(.*)\/(dmesg|state|vendor|date)$/\1/p' | sort | uniq)"
[ -z "$_SOURCE" ] && LIST="<h2>Not found</h2>" || LIST="<h2>Search result for '$search':</h2>"
} || search=""
@@ -22,13 +22,19 @@ do
_date="$(<$_d/date)"
_notconf="$(<$_d/notconf)"
_md5="$(<$_d/md5)"
+ _comment="$(<$_d/comment)"
+ _uname="$(<$_d/uname)"
_dmesg_link="/list/$_vendor-$_model[$_state]-$_md5.txt"
_device_html="
<li>
<a class='dmesg-link' href='$_dmesg_link'>
<span class='$_state' title='$_state'>[$_state]</span>
$_model</a>
- <span class='notconf'>Not configured: </span><span class='notconf-val'>$_notconf</span><span class='date'>$_date</span>
+ <span class='notconf'>Not configured: </span>
+ <span class='notconf-val'>$_notconf</span>
+ <span class='date'>$_date</span><br>
+ <span class='comment'>$_uname</span>
+ <br><span class='comment'>Comment: $_comment</span>
</li>"
vendors="${vendors}\n${_vendor}"
eval "vendor_$_vendor=\"\$vendor_$_vendor $_device_html\""
diff --git a/var/www/comment b/var/www/comment
@@ -0,0 +1,19 @@
+#!/bin/sh
+. /var/common.sh
+
+get_param token
+
+[ "$token" = "Unknown" ] && fail
+
+HD="$DB/$token"
+
+[ -e "$HD" ] && {
+ get_param comment
+ [ "$comment" = "Unknown" ] && fail "ERROR: no comment"
+ [ ${#comment} -gt 128 ] && fail "too much comment size (need <= 128 bytes)"
+ echo -en "$comment" > "$HD/comment"
+}
+echo -en "Content-type: text/html\r\n\r\n"
+echo "Ok"
+echo "Your comment: '$comment' has been accepted"
+exit 0
diff --git a/var/www/dmesgdb.css b/var/www/dmesgdb.css
@@ -77,7 +77,7 @@ a.dmesg-link:after {
content: '';
display: block;
}
-span.notconf {
+span.notconf, span.comment {
margin-left: 24px;
}
a.dmesg-link ~ * {
diff --git a/var/www/upload b/var/www/upload
@@ -7,7 +7,7 @@ LIST=/var/www/list
gen_user_token() {
get_param token
- [ "$token" != "Unknow" ] && [ -e "$DB/$token" ] && {
+ [ "$token" != "Unknown" ] && [ -e "$DB/$token" ] && {
echo -en "$token"
true
} || {
@@ -38,23 +38,6 @@ check_dmesg_file() {
return 0
}
-#get_params() {
-# _vendor="$(echo "$REQUEST_URI" | sed -n 's/^.*vendor=\([^&]*\).*$/\1/p' | str_purifier)"
-#
-# _model="$(echo "$REQUEST_URI" | sed -n 's/^.*model=\([^&]*\).*$/\1/p' | str_purifier)"
-#
-# _state="$(echo "$REQUEST_URI" | sed -n 's/^.*state=\([^&]*\).*$/\1/p' | str_purifier)"
-#
-# [ -z "$_vendor" ] && _vendor="Unknow"
-# [ -z "$_model" ] && _model="Unknow"
-# [ -z "$_state" ] && _state="Unknow"
-# echo -en "$_vendor" > "$HD/vendor"
-# echo -en "$_model" > "$HD/model"
-# echo -en "$_state" > "$HD/state"
-# mkdir -p "$LIST/$_vendor"
-# echo "$_vendor-_-$_model-[$_state]"
-#}
-
_RESULT=""
[ "$REQUEST_METHOD" = "POST" -a "$CONTENT_LENGTH" -gt 0 ] && {
@@ -66,7 +49,7 @@ _RESULT=""
DFILE="$HD/dmesg"
mkdir -p "$HD"
- [ "$token" != "Unknow" ] && {
+ [ "$TOKEN" != "Unknown" ] && {
_v="$(<$HD/vendor)"
_m="$(<$HD/model)"
_s="$(<$HD/state)"
@@ -101,6 +84,8 @@ _RESULT=""
MD5="$(md5 -q "$DFILE")"
echo -en "$MD5" > "$HD/md5"
+ grep OpenBSD "$DFILE" > "$HD/uname"
+
FULL_LINK_NAME="$vendor-$model[$state]-${MD5}.txt"
LINK_NAME="$model[$state]-${MD5}.txt"
@@ -110,8 +95,11 @@ _RESULT=""
_RESULT="
Thank you, your dmesg was uploaded!
- Link: http://$HTTP_HOST/list/$FULL_LINK_NAME
- Edit URI: /upload?token=$TOKEN&vendor=$vendor&model=$model&state=$state
+ Link: http://$HTTP_HOST/list/$FULL_LINK_NAME
+ Token: $TOKEN
+ Edit: curl --data \"$(dmesg)\" '/upload?token=$TOKEN&vendor=$vendor&model=$model&state=$state'
+ Also you can add a comment:
+ ftp -V -o - 'http://$HTTP_HOST/comment?token=$TOKEN&comment=ethernet ok, storage ok'
"
}
@@ -125,9 +113,12 @@ echo "<HTML><HEAD><title>OpenBSD dmesg database</title></HEAD>\n";
echo "<body>";
echo '
<h1>OpenBSD dmesg collection</h1>
-<p><a href="/list">List of all files</a></p>
+<p><a href="/beautylist">Our dmesgs list</a></p>
<p>You can send your dmesg from command line:</p>
<p><i>curl --data "$(dmesg)" "http://'"$HTTP_HOST"'/upload?<b>vendor=Apple&model=MacBook_Pro_2017_13&state=Bad</b>"</i></p>
-<p><a href="/beautylist">Beautiful list</a></p>
+<p>
+Or if you'"'"'re a cool hacker:<br>
+<i>echo -ne "POST /upload?vendor=Apple&model=MacBook_Pro_2017_13&state=Bad HTTP/1.0\\r\\nHost: '"$HTTP_HOST"'\\r\\nContent-Type: application/x-www-form-urlencoded\\r\\nContent-Length: $(dmesg|wc -c|tr -d ' ')\\r\\n\\r\\n$(dmesg)\\r\\n" | nc '"$HTTP_HOST"' 80</i>
+</p>
'
echo "</body></HTML>\n";