| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- #!/usr/bin/haserl --shell=/bin/bash --upload-limit=32768 --upload-dir=/tmp
 
- <%# upload limit: 32Mb %>
 
- <%
 
- #some path variables
 
- _WWW='/www'
 
- _TMP="${_WWW}/tmp"
 
- _LOG="${_WWW}/log/upload.log"
 
- _DEBUG=1
 
- err() {
 
-   _ERR="$?"
 
-   [[ "$_ERR" -gt 0 ]] || return 0
 
-   log "$1"
 
-   head "${2:='400'}"
 
-   exit "$_ERR"
 
- } 
 
- log() {
 
-   [[ "$_DEBUG" -gt 0 ]] || return 0
 
-   local _TYPE='I:'
 
-   [[ "$_ERR" -gt 0 ]] && _TYPE='E:'
 
-   local _TIME; printf -v _TIME '%(%d.%m.%Y %H:%M:%S)T' -1
 
-   printf '%b\n' "$_TIME  $_TYPE ${@} " >> "$_LOG"
 
-   [[ "$_DEBUG" -gt 1 ]] && printf '%b\n' "[verbose] $_TYPE ${1}"
 
-   return 0
 
- }
 
- head() {
 
-   case "$1" in
 
-  200|'') printf '%b' 'HTTP/1.1 200 OK\nAccess-Control-Allow-Origin: *\n\n';;
 
-     405) printf '%b' 'HTTP/1.1 405 Method Not Allowed\n\n';;
 
-     406) printf '%b' 'HTTP/1.1 406 Not Acceptable\n\n';;
 
-       *) printf '%b' 'HTTP/1.1 400 Bad Request\n\n';;
 
-   esac
 
- }
 
- #_REF="$HTTP_REFERER"
 
- #_SESS="$SESSIONID"
 
- #log $_REF $_SESS
 
- ## checks and sanitation
 
- [[ ${CONTENT_TYPE^^} == MULTIPART/FORM-DATA* ]] || err 'wrong content type' '406' 
 
- [[ "${REQUEST_METHOD^^}" == "POST" ]] || err 'wrong method, not a post' '405'
 
- _UPLD="${HASERL_fwupload_path##*/}"
 
- mv "$_TMP/$_UPLD" "$_TMP/fwupload.bin" 2>/dev/null || err 'error renaming upload'
 
- log 'upload OK'
 
- head '200'
 
- #UPLD="${HASERL_fwupload_path##*/}"
 
- #UPLD="${_UPLD//[^a-zA-Z0-9_.-]/}"
 
- #[ -n "$_UPLD" ] || err 'empty filename value, sanitation failed?'
 
- #[ -f "$_TMP/$_UPLD" ] || err 'can not access uploaded file, sanitation failed?'
 
- #log "$_UPLD"
 
- %>
 
 
  |