added comments and bug fixes

main
slaytor 2023-11-04 11:08:37 +04:00
parent 1027012e91
commit 71f6da1ce4
6 changed files with 48 additions and 28 deletions

View File

@ -15,6 +15,10 @@ server "dmesg.devel" {
fastcgi strip 1
}
location "/comment" {
fastcgi strip 1
}
location "/" {
directory index upload
}

View File

@ -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"
}

View File

@ -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\""

19
var/www/comment Executable file
View File

@ -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

View File

@ -77,7 +77,7 @@ a.dmesg-link:after {
content: '';
display: block;
}
span.notconf {
span.notconf, span.comment {
margin-left: 24px;
}
a.dmesg-link ~ * {

View File

@ -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";