dmesgdb

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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:
Metc/httpd.conf | 4++++
Mvar/common.sh | 4++--
Mvar/www/beautylist | 10++++++++--
Avar/www/comment | 19+++++++++++++++++++
Mvar/www/dmesgdb.css | 2+-
Mvar/www/upload | 37++++++++++++++-----------------------
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";