From 71f6da1ce4c27cbe7e9fb74626727eea7cb69d2f Mon Sep 17 00:00:00 2001 From: slaytor Date: Sat, 4 Nov 2023 11:08:37 +0400 Subject: [PATCH] added comments and bug fixes --- etc/httpd.conf | 4 ++++ var/common.sh | 4 ++-- var/www/beautylist | 10 ++++++++-- var/www/comment | 19 +++++++++++++++++++ var/www/dmesgdb.css | 2 +- var/www/upload | 37 ++++++++++++++----------------------- 6 files changed, 48 insertions(+), 28 deletions(-) create mode 100755 var/www/comment 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
    + $_uname +
    Comment: $_comment
  • " 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";