diff --git a/etc/httpd.conf b/etc/httpd.conf
index 9c3a0e7..a7e4eb5 100644
--- 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
index d05a0ab..3b39070 100644
--- 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
index 40e9792..228c29a 100755
--- 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="
Not found
" || LIST="Search result for '$search':
"
} || 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="
[$_state]
$_model
- Not configured: $_notconf$_date
+ Not configured:
+ $_notconf
+ $_date
+
+
"
vendors="${vendors}\n${_vendor}"
eval "vendor_$_vendor=\"\$vendor_$_vendor $_device_html\""
diff --git a/var/www/comment b/var/www/comment
new file mode 100755
index 0000000..a076f21
--- /dev/null
+++ 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
index ef0c46a..511ecb0 100644
--- 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
index 355b2a4..a4012eb 100755
--- 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 "OpenBSD dmesg database\n";
echo "";
echo '
OpenBSD dmesg collection
-List of all files
+Our dmesgs list
You can send your dmesg from command line:
curl --data "$(dmesg)" "http://'"$HTTP_HOST"'/upload?vendor=Apple&model=MacBook_Pro_2017_13&state=Bad"
-Beautiful list
+
+Or if you'"'"'re a cool hacker:
+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
+
'
echo "\n";