1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301
|
1.6
* Fix segmentation fault when using the --tar option
* Add --propfind option to allow the PROPFIND method to work even without defined authentication
1.5
* Fix appstream bullshit XML crap
* Update to build with gcc-15
1.4
* Update qweborf to use pyqt6
1.3
* Move qweborf in /usr/bin/
1.2
- Move /lib to /usr/lib
- Drop NoNewPrivileges from the .service file
1.1
- Move to codeberg
1.0
- I declare weborf is now stable!
- Fix a security bug where the path for CGI scripts was not null-terminated in certain configurations (CVE-2023-46586)
0.20
- restyle qweborf to fit on a mobile screen
- ignore Content-Type header in PUT requests, instead of failing
0.19
- qweborf can store the default settings
0.18
- Wait for weborf to create socket in testsuite
- Add an icon for qweborf (copied from Oxygen)
- Appstream metainfo file for qweborf
0.17
- Fix MOVE and COPY methods to support relative URI
- Fix parsing issues in the daemon startup script
- Test suite added
- Add github workflows to run tests
- Improve compatibility with range requests
- Set conent length for redirection responses
- Partially fix deadlock possibility while running a CGI page
- Pass CGI filename as parameter
- Fix error where responses with size 0 would cause timeouts
0.16
- qweborf has a normal makefile
- Authentication example comes with a systemd file
- CGI wrappers eliminated
- CGI disabled by default
- Default basedir to /srv/www
- Bug: webdav reported wrong file size on certain architectures
0.15
- Finally support https
- Support systemd. It's now easy to run several weborf instances.
- Can set certificate with qweborf
- Various bugfixes
0.14
- Use one less thread
- Use smaller thread pool
- Detaches when connections can be accepted (can now use Type=forking in systemd)
- Log some cases of bad request
- Bug: fixes issue with authentication request causing further requests on the same connection to fail
- Reduced memory footprint for webdav requests
- Bug: memory corruption error, only triggered with some gcc flags
0.13.5
- Added --gid option to change gid
- Improved handling of reserved characters in URI
- ContentType in directory listing
- Improved code to create the socket
0.13.4
- Workaround API breaking in PyQt
- Improvements in directory listing
- Convert things to string before showing them in qweborf
0.13.3
- Better desktop integration for qweborf
0.13.2
- Fix base64 decoding bug
0.13.1
- Port qweborf to Python3 and Qt5
0.13
- Shows last modified column in directory listing (Rev 419)
- Webdav module can send mimetype
- Bug: fixes denial of service in case of malformed header range (Rev 429)
- Bug: ported fix from 0.12.2
- Faster listing of directories with several hidden files
- PROPFIND now gives %-escaped URIs (Rev 444)
- Improved handling of Connection header in responses
- Sends reason phrase in HTTP response
- Directory listing can be cached on disk
- Can support large files
- Added GiB measure in directory listing
- Ported fix from 0.12.3 (Rev. 465)
- Reduced number of params for functions
- Uses pthread calls for TLS instead of relying on __thread that doesn't work on OsX
- Dav's PROPFIND with different required properties can be cached on disk
- Can send Content-Type
- Can be used with inetd/xinetd
- Fixes crash on invalid request (Rev 492)
- Will no longer terminate on failed accept
- Heavy code refactory
- Webdav method MOVE is now faster on directories
- Support for embedded authentication policy
- Support for If-Range header (Rev 516)
- Migrated to GNU autotools
- Now logs HTTP status code for each request
- Ships qweborf: QT GUI for simple file sharing
- Truncates files on PUT
- Can send directories as tar.gz files
0.12.5
- Fixes DoS occurring with malformed fields in HTTP request
0.12.4
- Fixes DoS occurring on malformed HTTP request, backported from trunk
0.12.3
- Fixes directory traversal vulnerability
0.12.2
- Fixes DoS occurring when wide chars are used in some headers
0.12.1
- Fixes DoS occurring on malformed Range header, backported from trunk
0.12
- Fixed bug: now threads are closed again (Rev 305)
- Using keep-alive with CGI only in case of small pages (Rev 306)
- Reduced maximum size of generated pages (Rev 307)
- Adjusted size of the buffers (Rev 307)
- ETag headers are now sent only if the resource is static (Rev 308)
- "Moved permanently" code is returned instead of "see other" when client requests directory without ending / (Rev 209)
- Added wrapper for CGI python, which replaces the previous one (Rev 312)
- Support for custom CGI formats
- LSB tags added to the init script (Rev 323)
- Support to PUT,DELETE,OPTIONS methods
- Fixed bug: some file descriptors caused thread's termination (Rev 341)
- Added wrapper for executables CGIs
- Stub for webdav
- Implemented MKCOL, COPY, MOVE methods
- Bug: socket were closed randomly on non GET/POST methods
- Bug: tamed buffers do not affect subsequent connections on the same thread
- Daemon is able to start authentication server too, reading about it from weborf.conf (Rev 359)
- Better and more resistant xml parsing of PROPFIND requests (Rev 363)
- Bug: addresses are properly converted into strings (Rev 373)
- CGI does chdir into script's directory (Rev 374)
- Enables logging
- Uses reentrant version of readdir (Rev 381)
- Added more controls on memory allocation
- Bug: buffer size corrected in queue.c
- Logs insufficient memory
- Can compile on OpenSolaris (manual edit of Makefile is needed)
- Edited instance.h to workarond OpenSolaris bug #6775831
- Can use SIGUSR1 to print internal status on stdout
- Edited daemon script to pass the new lintian's test
- Attempt to resolve race-condition by refactoring
- Changed astyle parameters to use the new version
- Sorts content of directories when generating html index
- Bug: replaced unsafe sprintf with snprintf (Rev 415)
0.11
- Support for ETag header
- Support for If-None-Match header. Weborf will not re-send files that are cached into the browser
- Cleaned up some send_header functions
- Fixed bug: malformed range header was able to cause segfault (Rev 251)
- Support for Last-Modified header (Rev 252)
- Introduced optimizations in parsing request and sending an header
- Code refactory to reduce amount of passed parameters
- Will now send connection header if an old client is using keep-alive
- Corrected sending post data to cgi-bin
- Fixed REQUEST_URI header which was broken some revisions ago
- Doesn't send CGI errors and warning to the client anymore
- Shows CGI errors on standard error, but an option in options.h can hide them
- Optimizations in CGI
- Reduced system calls number
- Reduced number of strlen and strstr
- Fixed warnings in manpages
0.10
- Pipe with scripts are now closed
- Support for cgi-php
- Fixed some possibilities of buffer overflow
- Enlarged default head's buffer, necessary for script generated headers
- When the script is terminated for timeout, error 500 is sent to the client
- Fixed error in cgi wrapper that didn't allow to use \r\n\r\n sequence in output
- Compile on MacOsX without needing to edit the code
- Embedded support for cgi
- Support for list of index files
- List of index files changable in weborf.conf
- Refactory of code to send/execute pages and generate dir listing
- Changed default optimizations
- Support for virtualhost
- Support for virtualhost in weborf.conf
- Support for gzip encoding, when supported by client
- Support for enabling/disabling cgi from weborf.conf
- Heavy optimization in finding the end of the header
- Added a buffered reader to reduce the overall amount of read syscalls
- Replaced deprecated inet_ntoa with its replacement inet_ntop
- POST can read binary data, with 0 bytes in the stream
- Correct passing POST data to script. It brokes php since it has a bug, reported as #47825
- Added support to timeout
- Addresses are converted in strings in threads instead of main thread.
- Added manpage for weborf.conf
- Queue does less operations on memory (rev 231)
- Changed authentication from child process to unix socket (rev 232)
- Partial (but enough) support for range headers (rev 235)
- Solved problem which caused 100% cpu usage (Salvo Rinaldi)
- Solved problem which caused partial resending of files
- Removed redoundant conditions to free memory (Angelo Puglisi)
0.9
- Bug: fixed size hadling of NBUFFER
- Reduced standard size of NBUFFER
- Make install installs weborf as a daemon executable by init
- Switch to compile using ipv4 or ipv6
- Memory leak fixed
- Bug: can now handle firefox's post requests
- Bug: no more segmentation fault on post requests issued by squid
- Handles pipelined and not-pipelined requests
- Timeout for scripts (not auth scripts)
- Bug: buffer for requests is now reset after every request
- Increased speed for identify request
- Bug: unsigned value used when signed was needed
- Bug: parameters within HTTP requests are now read correctly
- Changed buffer allocation for string IP addresses in IPv4 mode
- Possibility to use scripts as normal files
- Exit codes now have a meaning (documented in manpage)
0.8
- Improved file listing
- Added support for large files
- Bug: Now authentication works even with spaces within file or directory's names
- Prepared handling for content-length
- Bug: POST works again
- Maximum size for POST requests
0.7
- Escape sequences in POST requests are now correctly handled
- Daemon mode added
- Memory leak removed
- Support for Basic authentication
- Parsing program arguments with getopt
- IPv6 support
- Improved file listing
- Changed thread policy: Now the MAXTHREAD number can be reached, because the last group of threads can be smaller
- Some small changes to make it faster
- Improved handling several requests on the same connection. It SHOULD work better now.
0.6
- Added comments
- Improved speed on string operations
- Memory leak corrected in script execution and page sending
- Added control on non http messages
- Reduced the use of mutex during thread creation
- Improved signal handling
- Reduced malloc's total number, this will increase speed
- Uses printf's return value instead of strlen()
- Corrected directory listing. Now doesn't show link to parent if already in parent directory.
- Directory listing doesn't show link to self anymore.
- Cleaned up logging. It will hide many informations by default
- Now threads are aware of client's IP address
0.5
- Bug: active thread's counter was not reduced on thread's termination
- Logs dropped connections due to not enough threads
- Handles escape's sequences in url
- Fixed a warning occurred in amd64 architecture
- Improved list's generation for directories without index
- Bug: directories without the ending / are now listed correctly
- Added stub (not working) for authentication request
- HTTP's request parameters are passed as enviromentals vars to the scripts
- Added experimental support to POST method, and use of enviromental vars
0.4
- Bug: Relative paths can't be used, so the client can't go outside the basedir
- Support for files with spaces in the name
- Bug: Added checks on memory allocation failures, and in this case send an error to the client
- Changed error's sending system
- Threads are detached
- Added a thread to monitor how many free threads there are, to stop some if there are too much
- manpage added
- Added make install, to copy the binary in /usr/local/bin and install manpage
- It is possible to start weborf as root to use a low port number and then change the user
0.3
- Only a few threads are created when started. More are started when there are too few free ones
- Index page is loaded automatically, even when not specified in the URL
- When index file is missing, a list of file is dinamically generated, showing all regular files and directories (FIFO, devices and sockets aren't shown)
- Handles command line parameters
|