actually make sure some random things don't explode default tip

fix incorrect memory management when loading file parts from the sync db

close branch ucx-3.1 ucx-3.1

merge branch ucx-3.1

fix incorrect stat flags on linux in metadata test scripts

compatibility with UCX 3.1 plus several minor code fixes ucx-3.1

add more xattr malloc checks

remove disabled realloc debug code from libxattr

improve xattr code

make sure a LocalResource path has never a trailing path separator, fixes multiple dav-sync tests

fix dav repo-url command containing the password base64 encoded

don't store directories with a trailing path separator in the sync db

update uwproj

add util_size_str2() func, a variation of util_size_str with more parameters

add support for progress callbacks in dav_store()

fix session dup

make DavContext mt-safe

fix indentation

use memset for newly created DavCfgRepository

update build files to latest uwproj

add .idea directory to .hgignore

fix faulty string to int conversion utilities

fix missing cmd_add_directory() implementation after ucx upgrade

remove list_repositories() config.c function in favor of a cmd_list_repositories() function in main.c

[Makefile] fix missing rules preventing dry-runs

remove old config loader

add new config parser

remove tm_isdst = -1 because this was just a test

use _mkgmtime instead of mktime in parse_iso8601() on windows

add tests for util_parse_creationdate

fix aes_write on windows could write non-decrypted bytes to output buffer

fix dav_context_destroy

add new build system for windows

add request/response body to verbose output / add DavSession logfunc

update uwproj

return NULL when a davql query fails

fix build on macOS

log command line arguments

add error logging

open logfile in relevant dav-sync commands

replace printf with log_printf in sync.c

remove loglevel parameter from log_printf

add log_printf function

add logfile sync config

fix dav_add_collection_lock() setting the lock path

update ucx

update ucx

fix split test script

fix non-standard shell script use in versioning test script

fix non-standard use of stat in metadata3 test script

replace direct xattrtool path with $XATTR in metadata3 test script

fix xattrtool path in metadata test scripts

fix crash in merge_tags() when one list was NULL

fix matches_tags_and

fix tag filter crash

port cmd_tagop() to ucx 3

change libxattr xattr_get() to return null-terminated strings

fix xattr_set on FreeBSD

fix dav-sync pull not storing finfo metadata correctly in the database

fix iterator misuse in dav-sync delete-conflict

fix bin-tests not using the correct binary directory

fix dav-sync push not deleting collections in the right order

fix dav-sync push crash

fix configure script again, this time correctly

fix uninitialized buffer access

fix UAF in dav xml converter

fix UAF in davql select exec

Added tag v1.2.4 for changeset dcf751b270dd v1.2

fix crash when the seekfunction is used

fix make install

fix libcurl not detected by configure script when pkg-config is not available

update ucx

fix dav-sync crash

update ucx

ucx 3 update, basic dav commands work, most stuff is still broken

fix build system

merge

force mkcol for every directory in the dav put command

fix crash if the server sends a response with elements without namespaces

new build system

fix return value in util_exec_command on windows

disable posix code on windows in util_exec_command

use sys_* io functions in dav put

fix crash in davql exec, if the server response can't be parsed

use tcsetattr only if stdin is a tty

fix dav-sync push creating finfo elements without using the mempool, which could lead to crashes

reactivate error in case of unknown config elements

add support for the secret store to dav-sync

add set-master-password command

fix error in dav add-user, if .dav dir doesn't exists

implement secretstore unlock command

implement secretstore config

disable error in case of unknown config elements

add stream API

update .hgignore

adds more characters to escape for shell completion

fix outgoing list sort

sort files in outgoing cmd

add dav-sync outgoing command

merges feature/dav-edit

adds support for option terminator '--' feature/dav-edit

adds support for -L option in dav edit feature/dav-edit

cmd_edit: fixes wrong return code if the user did not change the file feature/dav-edit

cmd_edit. fixes wrong variable in second strlen() call feature/dav-edit

look up temp location + coherent return codes feature/dav-edit

cmd_edit: replaces unlink() with sys_unlink() + keep tmp file on resource error feature/dav-edit

removes win32 support for dav edit feature/dav-edit

adds documentation for the edit command feature/dav-edit

reimplement dav_exists by using dav_load_prop feature/dav-edit

adds documentation of crypto flags to edit command feature/dav-edit

adds check for encryption key (otherwise segfault when trying to create a fresh encrypted file without a key) feature/dav-edit

cmd_edit - we do not need fstat() for detecting changes on the temporary file feature/dav-edit

first draft for dav edit command feature/dav-edit

Added tag v1.3.0 for changeset 33c9b0f17cb2

change version to 1.3.0 v1.3.0

fix documentation index page

update changelog

update html doc

update man pages

finish documentation of new dav-sync commands and options

add documentation for dav versioning commands

add documentation for all new config elements

add new elements to sync.xsd

add new element to config.xsd

add documentation for secret store commands

fix util_readline

add documentation for rename command

add empty documentation pages for all new commands

add -s option to dav-sync usage output

fix dav-sync deltav versioning

fix encryption of files with specific length

fix aes encrypter stream (cng)

fix aes decrypter stream

replace openssl on windows with cng/bcrypt

add support for unicode args on windows

add more symlink tests

add symlink tests

improve shell completion

fix -c option for dav rm command

add more split tests

fix some split bugs and add tests

ignore sigpipe in dav-sync

fix some versioning related bugs and add tests

add tests for tag conflict resolution

add more metatests: move with metadata and directory metadata

bash completion now handles spaces correctly in both quoted and unquoted strings

fix sync_store_metadata

increase security in case of broken secret stores

adds support for quotes in dav bash completion

fix dav-sync copy with enabled metadata sync

fix test system on solaris

add tests for dav-sync -t option

fix dav-sync add-tag in case a file is not in the db

fix detection of changed tags

finish basic metadata sync tests

fix xml generation

add first tag test

fix tagconfig parser

fix some xattr sync bugs

fix mtime sync bug

add first metadata sync test

add tool for accessing extended attributes

fix: leaking buffer in upload_parts(), when we error out due to too many parts

adds missing return in parse_filter()

add test for testing transition from config without hashing to config with enabled hashing

beta1

add edit-user command

add remove-user and list-users commands

update secret store format description

add add-user command to help text

remove command aliases from dav help text

fix some hash based conflict resolution bugs and add tests for it

implement hash based conflict resolution in dav-sync pull

change split config

change versioning config

change metadata config

fix missing namespaceinfo map initializataion

refactore symlink config

implement hash push strategy and add some tests

add config element for push strategy

finish hashing tests

add some copy/move tests

fix that file uploads are tried, when the content on the server is equal to the local file content (with enabled hashing)

fix hash based conflict detection

add first dav-sync hashing test

add more push conflict tests

add push conflict tests

add more pull conflict tests

don't print error in case rmdir fails because of ENOTEMPTY

rename conflict test script

add pull conflict detection tests

use hash to check if a file content was really modified

handle symlinks according to config

fix url2repo not creating a string dup in case a repo doesn't exist

finish basic pull tests

fix order of dir deletions in dav-sync pull

add more dav-sync pull tests

fix build on Solaris 10

add element for configuring symlinks

add some dav-sync pull tests

don't store weak etag in LocalResource

add additional dav-sync push test to check if deleting all files will result in an empty collection

fix free in sync_get_file_tags

exclude tag xattr from xattribute sync

change error handling in case of file/folder conflict

add missing isdirectory tag in db on pull

add missing isdirectory tag in db on push

fix xattr not synced for new files

fix directories not stored in db

fix build on linux

implement links on Windows (shelllink)

fix bug in davqlexec introduced by refactoring

implement encrypted properties

fix build on windows

move some properties to new namespace

add new session flags for properties encryption

add new api for encrypted properties

Added tag v1.2.4 for changeset dcf751b270dd

fix that db entries are updated on errors

add ucx.c to sourcefiles to fix build on some platforms

fix incompatibility with libcurl 7.62

fixes incorrect URL encoding of the trailing slash for collection names

fix res_link initialization

close old head

update version v1.2 v1.2.4

update changelog for v1.2.4 release v1.2

fix incompatibility with libcurl 7.62 v1.2

fixes wrong memset v1.2

fix null pointer dereferenciation v1.2

fixes 'Unkown repository' error message in dav-sync v1.2

fixes missing url encoding in dav_session_get_href() with enabled name decryption

reduces code complexity of util_resource_name()

add function for decrypting and parsing crypto-prop elements

fix dav_print_node

add func for creating the content of crypto-prop properties

add more simple dav-sync push tests

create collections before doing other stuff on dav-sync push

fix that knowledge about resource existence was fucked up by versioning_begin

change dav-sync push output for link resources

fix stat_func typedef

fix that symlink config was not used in sync_get_resource

separate link changes from normal changes and create links after downloads

add check to detect changed link properties in dav-sync pull

create symlinks on pull

store link property on push

store relative link in LocalResource

add util_path_normalize

read link on LocalResource creation

change local_resource_new signature

add link target to sync db

add first dav-sync binary tests

fix deletion of splitted files

remove dead db entry when files are moved

fix push operation order (move before put)

implement copy/move for dav-sync pull

increase snyc_conflict counter only after conflict renaming, to make sure the counter is correct when pull is aborted

fix dav-sync push not deleting files

replace list of removed resources with a map (cmd_pull)

adds list-conflicts command to dav-sync

adds missing make target dependencies for documentation

harmonizes output of push and pull

store origin of file conflicts

fixes missing return in copy_file()

fixes several signedness issues

fix dav-sync push conflict detection

set content-hash property after uploads when syncdir hashing is enabled

add session flag for content hash creation

update metadata on copy/move

fix move

improve copy/move stability and db update

add copy/move operation

add copy/move detection to push

add hashing config

fixes truncate path

fixes that metadata is updated after stat in sync_get_resource

truncate splitted file to correct size on pull

store content hash for splitted resources in the db

adds semi functional download of splitted files

fixes that pull downloads the history collection

adds wrapper functions for setting/getting the content hash

adds content hash for splitted files

adds multiple file support for mkdir and remove

fixes more if statements and some warnings

fixes wrong memset

some db.c fixes

adds file splitting feature to dav-sync push

adds blocksize also to the sync db

adds dav-sync splitconfig parser

adds option to restore previous file versions

fixes dav_copy_node and improves dav-sync restore

implements list-versions for deltav syncdirs

changes list-versions output

adds list-versions command

adds -R and -M option to restore command

adds possibility to restore specific files

adds metadata support to dav-sync pull

improves metadata support in dav-sync push

store hash of remote xattr and tags in sync db

adds support for pushing metadata updates

adds metadata config element for dav-sync

extends sync db

adds xml attribute support and xattr property

adds file mode to fileinfo property

fix null pointer dereferenciation

adds option to store a file info property

change format of version history resource names

fixes signedness of salt in dav_pw2key()

fixes format string containing the NUL character instead of printing the NUL character in get_random_name()

fixes signedness issue in get_random_name()

fixes signed vs unsigned inaccuracy for the -T option

adds command alias 'cat' for 'get -o -'

more sstr to scstr conversion

fixed TODO: use strtol

fixes todo: use scstr instead of sstr

nicer dav usage info

fixes crash in dav-sync archive command when trying to remove resources from the db

ucx update

fix missiong return in versioning_end()

dav-sync pull refactoring: create list of changes before sync

fixes DavSession creation in dav-sync when using root collection

dav-sync push refactoring: create list of changes before executing sync

adds support for multiple file arguments for dav put

fix: don't detect end of tar file as broken content

adds rename command

fixes DavSession creation in dav-sync with enabled encryption

fixes dav_session_get_href() generating random names when encrypt-name is disabled

fixes 'Unkown repository' error message in dav-sync

fixes cmd_mkdir() not verifying the presence of a key + specifying a key with '-k' without requesting encryption is now considered an error

fixes control flow in cmd_push()

Adds dav-sync option for enabling versioning

adds versioning support for dav-sync push

adds dav-sync restore command

credentials can have multiple locations now

adds dav_pw2key commoncrypto implementation

adds test for dav_pw2key

Added tag v1.2.3 for changeset c7bea9ad9d9c

dav 1.2.3 release v1.2 v1.2.3

fixes wrong integer type v1.2

updates version v1.2

dav-sync: upload files with fixed content-length v1.2

fixes redirects v1.2

makes libidav compatible with libcurl < 7.32 v1.2

dav-sync: upload files with fixed content-length

fixes redirects

makes libidav compatible with libcurl < 7.32

adds -V option to get, get-property and info commands

adds minimal deltav implementation

improves secret store file format

adds support for location credentials

new secrets store file format

don't ask for master pw if noinput option is active

adds encrypted password store

Added tag v1.2.2 for changeset 4996f8953c3a

dav 1.2.2 release v1.2 v1.2.2

Removed tag v1.2.2

Added tag v1.2.2 for changeset 70ed56e56122

applies aes stream fix to macos implementation v1.2

adds check to make sure dav-sync doesn't delete collections when children are modified v1.2

aes encrypter: fixes case where EVP_EncryptFinal_ex was not called at the stream end v1.2

applies aes stream fix to macos implementation

updates changelog v1.2

adds check to make sure dav-sync doesn't delete collections when children are modified

aes encrypter: fixes case where EVP_EncryptFinal_ex was not called at the stream end

fixes url completion segfaulting for empty strings (in case the user hasn't already started typing an URL)

fixes dav completion not working with (escaped) spaces

Added tag v1.2.1 for changeset d6dea8c17f68

dav 1.2.1 release v1.2 v1.2.1

removes unnecessary code v1.2

fixes wrong buffer allocation on windows v1.2

fixes dav-sync -s option v1.2

improves compatibility with owncloud/nextcloud when uploading files v1.2

fixes that decrypt-name can decrypt a path and not only the name v1.2

small help text adjustment

removes unnecessary code

fixes wrong buffer allocation on windows

fixes dav-sync option help text

renames dav-sync -D option to -R

adds dav-sync options for restoring deleted or modified files

fixes dav-sync -s option

merge

improves compatibility with owncloud/nextcloud when uploading files

adds brief command descriptions to the dav man page

command documentation for dav-sync man page

improves formatting of man pages

fixes that decrypt-name can decrypt a path and not only the name

adds draft man pages

adds some error detection to completion

improves dav-bash-completion.bash

fixes url completion output

adjusts completion index, if options are specified

adds semi-functional bash completion

Added tag v1.2.0 for changeset 1607450065ba

this could be the 1.2 release v1.2.0

adds documentation for tag config

adds tag config to sync.xsd

renames <tags> element to <tagconfig>

fixes dav list return value

fixes dav test script

adds support for tag colors

finishes dav put tests

adds user+pw to repo-url output

sets curl default protocol to http

adds repository-url command

adds shellscript test-suite for binaries

disables tagfilter for directories

adds attribute for tagfilter scope

check tagfilter scope after checking tagfilter existence

adds tagfilter scope

fixes build on non-windows

adds more fs abstraction

using new io abstraction in dav-sync

adds file io abstraction functions

adds documentation for new dav-sync features

more dav documentation

adds documentation for new dav features

fixes compatiblity with GNU tar's version of ustar

fixes some char type mismatch warnings

updates copyright notice

adds tag filters for push

dav-sync pull applies config tag filter now

adds syncdir config element for tag filters

moves tag filter to tags.c

fixes header include order (dav-sync)

adds remove-repository command

fixes tag filter evaluation not respecting mode for subfilter combination

adds first working parser for the complete tag filter grammar

fixes whitespace handling and error detection for basic tag filters

implements parser for basic tag filters without subfilters

parse_csv_taglist() now skips empty tags

adds error message for invalid tag filter syntax

introduces tag filter string parser (currently supporting a simple tag list)

adds tag filter evaluation functions

introduces SyncTagFilter type which for now implements the old tag list filter

fixes double-malloc() in tags.c + marks a realloc() problem

fixes dav_ql_free_arglist() not freeing the list container

fixes realloc problem and memory leak in isfileindir() in sync.c

fixes out of bounds write in tar.c

fixes definite chance of a memory leak in cmd_unlock() + marks a further possible source of memory leaks

improves variable names in cmd_move()

fixes memory leak in cmd_move()

fixes dav-sync set-tags without tag string

adds tag filter for dav-sync pull

fixes tag syncing

fixes dav-sync update-tags

adds list-tags command to dav-sync

moving tar option from get/put to new export/import commands

fixes options parser to correctly report missing arguments

fixes creation of davql arg list

dav info prints simplified xml values

adds tag management commands to dav-sync

adds support for xml properties in set-property command

pushing tags should work now

adds tag conflict detection for dav-sync push

adds more tag config options

adds dav-sync config for autodetecting tag changes

adds technical foundation to just push tag updates

fixes misuse of vaarg on all platforms

updates copyright date

adds support for macos file tags

merge

adds xattr lib and tag support

fixes bsd config

davql: allow ANYWHERE keyword in SELECT statements

davql SET statements are now fully implemented

implements parser for Assignments (previously called SetExpressions) + improves davql debugger regarding DavQLField

davql debugger now reacts on repetitive calls of 'f' and 'o' commands

adds primitive progress indicator

moves auth prompt functionality to libidav

fixes infinite loop when trying to overwrite a collection with a regular file

fixes a segfault when full encryption is requested during a put without specifying the key

fixes some warnings

fixes wrong output path in dav get

ports openssl code to commoncrypto (macos)

davqlexec handles xml properties now (not really, but it doesn't destroy everything)

adds config option to disable certain commands for specific syncdirs and fixes authmethod config parser

fixes missing string terminator when printing simplified xml (dav get-property)

Added tag v1.1.1 for changeset 7954fdacdb5c

removes openssl dependencies for base64

fixes infinite loop when trying to overwrite a collection with a regular file v1.1

fixes a segfault when full encryption is requested during a put without specifying the key v1.1

enable va_list fix only on mingw (this is the real release, as usual) v1.1 v1.1.1

dav 1.1.1 release v1.1

fixes wrong use of va_list v1.1

dav get-property supports xml property output

replaces RAND_pseudo_bytes with RAND_bytes

some small fixes in tar.c

updates ucx to version 1.0

adds tar import/export

refactores cmd_get

dav prints command usage info if argument count is wrong

adds initial support for xml properties in libidav

adds dav get option to keep existing files

adds error message to dav, when an invalid date format is specified for the -u option

fixes tags

this is the real v1.1.0 release v1.1 v1.1.0

Added tag v1.0.1 for changeset bebe0b436c84

Added tag v1.1.0 for changeset dd2df44bc58b

dav 1.1.0 release v1.1

adds changelog file

fixes makefiles

adds namespace config element to XSD + fixes error message for duplicate namespace prefixes

adds documentation for new features

disables automatic creation of .dav directory in dav

dav-sync bugfix: files that are not in the db but on the server should not be pushed

adds namespace config element

adds dav-sync lock timeout config element

adds lock timeout

updates ucx version (most importantly this adds the new sstrstr implementation)

fixes possible UAF for locktocken paths, if file could not be opened

dav 1.0.1 update v1.0 v1.0.1

fixes wrong example in configuration.md v1.0

fixes syntax error in configuration.md v1.0

adds option to dav get for downloading only the directory structure

adds test for crypto streams

fixes wrong example in configuration.md

fixes syntax error in configuration.md

adds tests for crypto util functions

adds dav remove-property command

fixes crash when dav-sync push can't delete a resource on the server v1.0

adds SIGINT handler to dav-sync

bug fix: file size > 2gb not loaded correctly from database v1.0

bug fix: file size > 2gb not loaded correctly from database

adds dav-sync archive command

dav get-property shouldn't send an allprop propfind request

adds option to sort dav list by lastmodified date

dav-sync writes the locktoken to a file now

adds TLSv1.3 config

fixes dav startup without .dav dir

Added tag v1.0.0 for changeset 02d3e4b1245f

fixes wrong int type that results in a crash on some platforms

fixes memory leak in davqlparser

adds clean handling in case the stack of dav_exec_expr() runs out of memory

fixes local hiding of result variable with uninitialized data in dav_statement_execv

fixes memory leaks detected by cppcheck (or annotates them at least)

adds cppcheck make target

fixes missing default-key in example config

adds some small fixes for 1.0 release v1.0.0

removes debug compiler option

adds dav-sync introduction and sync.xml documentation

more minor improvements to the documentation

some more minor doc improvements

fixes dav_resource_new_full

refines copy.md

refines commands.md

adds more documentation details the three check commands

adds more details to add-directory.md

adds more details to add-directory.md

dav-sync command documentation complete

more documentation

fixes unnecessary mkcol in dav-sync

fixes dav put output

fixes dav list -R output

fixes crash when using invalid namespace prefix

adds resource name validation

some mingw fixes

more documentation

adds documentation for most dav commands

fixes error detection loop in dav lock/unlock/get-property/set-property

token parser checks if token of class DAVQL_TOKEN_NUMBER consists of digits only

adds bsd config

fixes build with ancient openssl

fixes build with openssl 1.1

fixes make install

adds auth prompt to dav get-property, set-property, lock, unlock and info

fixes conflict detection in push command

implements check-repositories command for dav-sync

updates UCX to version 0.11

implements xmlErrorFunc for dav sync + adds line numbers to error reporting in both config checkers

There has never been deliberately fucked up error handling for missing sync.xml.

improves config error reporting and adds check (check-config) command + dav-sync no longer aborts on missing sync.xml

adds first libidav tests

fixes false positive error when creating a sync db

implemented string functionality for some davql operators

refactored load_db function

adds XSD for dav config XML and removes comma as authmethod delimiter

merge sync config parser changes

adds XSD for dav-sync config

changed max-retry meaning and filter configuration in sync.xml

fixed SyncDatabase initialization

fixed install target and a missing return statement in libidav

improved dav put output

added README, INSTALL and LICENSE files

added install target

added support for error codes 407,413,414 and 511

fixed crash when encrypted streams are empty

copy/move with lock tokens works now

fixed dav get with -u option

added support for compiling with gcc on Solaris

improved dav-sync error handling on startup

disabled locking in dav-sync by default

fixed lazy propfind parser

fixed memory leaks in lock and unlock commands

fixed dav_context_get_key

removed password keys

fixed locking in dav-sync push

added support for paths with environment variables in sync.xml

improved error handling in libidav

added more cleanup code

fixed some bugs in dav_create() and dav-sync push

fixed some memory leaks in dav-sync pull

using locks in dav-sync

added conflict detection to dav-sync push

added resolve-conflicts and delete-conflicts to help text and fixed crash with unknown cmd options

automatically remove deleted conflict files from the db

added resolve-conflicts and delete-conflicts commands

dav-sync push ignores conflict files

dav-sync add-directory shows list of repositories

fixed version output

added options for extended list flags and changed version output

added noinput option to dav

dav list indicates locks

added lock support to some dav commands

added lock and unlock commands to dav

added API for webdav locking

fixed hash verification and head requests

changed libidav property namespace and version number

fixed some warnings and wrong usage of curl_easy_getinfo

added trash-info and empty-trash commands

fixed add-directory command

fixed dav-sync crash when sync.xml is missing

auth input for dav get, put, mkdir and remove commands

added add-directory command to dav-sync

enabled cert verification

added list-repositories and list-directories commands

added cleanup code in cmd_add_repository

fixed fix

fixed add-repository function name

added add-repository command to dav

version++

dav-sync prints a small report after successful sync

more specific error messages in dav-sync

dav-sync can create and delete empty directories now

fixed Solaris 11 build

added version info

added missing repo authmethods initialization

improved copy/move

updated copyright notice

fixed FreeBSD build

fixed Solaris build

added override option for copy/move

implemented webdav copy and move method

fixed large file support

enable sharepoint put fix

using content-length header in dav put

better and better and better iso8601 parser

improved util_capture_header when deactivating the capturing

merge

updated ucx and used new sstrlower in util_header_callback

improved util_header_callback by using sstr_t

cleanup curl header options in do_propfind_request

simplified do_propfind_request

added depth header workaround for Microsoft IIS (tested with sharepoint)

more updates to ucx

use ucx_map_clear in dav_propfind

updated UcxMap implementation

fixed incorrect response buffer reset in manual redirection handling in do_propfind_request

fixed zero-length format string in ls_size_str

fixed href comparison in parse_response_tag

reimplemented redirects for propfind requests

using Depth: 0 for non collection resources

don't allow signs for date strings (always expect full years)

added parser for iso8601 dates

definition: lastmodified and creationdate shall be zero on parse error

added fallback for util_parse_lastmodified, because some servers incorrectly use ISO-8601 dates for lastmodified - TODO: implement the ISO-8601 parsing

changed name of a local variable to avoid a later name collision

fixed href bug

fixed some cases of incompatible types in crypto functions

added possibility to configure authentication methods via coma separated list in config.xml

implemented hidden password input for windows by using conio

fixed windows build

fixed some memory leaks, content verification and dav info

added checksums for encrypted resources

implemented password key support for Solaris 10

fixed many davql exec memory leaks

added password based keys and fixed crash when keys are missing

hidden password input

improved dav-sync data-loss prevention

dav-sync detects broken uploads

fixed get command and davql exec

startup doesn't override broken config.xml anymore

fixed href comparison bug

fixed order by

implemented davql order by

-a option wasn't working correctly in recursive mode

fixed horrible bugs, davql hopefully just works now (without order by yet)

empty field results will no longer be added

replaced old davql (still buggy)

implemented execution of field list expressions

implemented some davql integer operations

secured ucx_list_append calls against OOM

added missing keywords + fixed missing source text for boolean primaries

fixed grammar for path + added missing string quote escaping (still not perfect: escape sequence is in syntax tree)

fixed path parser not writing length for a single slash as path

implemented minimal executor features and added missing ucx files

renamed GET to SELECT in davql syntax

added expression executor prototype

fixed: comparison operator info has been incorrectly written to type field

expression compiler generates byte code

added where clause compiler prototype

secured malloc / calloc calls

fixed statement type for logical expressions without operator + prepared OOM handling

implemented order by parser

added initial code for config commands

fixed paranthsis ambiguity for logical and normal expressions

fixed null pointer access on end of token stream by adding a special END token to the stream

fixed logical expression parser

completed logical expression parser - NEED TO TEST A LOT!

added function call parser + fixed some memory management mistakes

completed field list parser + error messages do now provide more context information based on the source string

minimized ucx subset

parser for ParExpression

update ucx

added syntax tree display to debugger + expression parser saves source text in every node

fixed parsing of binary expressions did not yield the correct type

added format specifier parser

started refactoring davqlparser

fixed control flow in int_cmd + committed testcase (enable with #define DO_THE_TEST)

added davqlexec source

added clang config + fixed control flow in two parser functions

reworked expression grammar (removed left recursion) + added field names to debugger + fixed bug when WITH-clause was the last clause in a statement

merge

improved error messages

fieldlist parser can now parse fields with alias

minor grammar fix (alias name is now identifier and not string) + completed debugger (so far) + separated field list parser (currently unable to parse alias names) + new structure for fields

fixed static variable fail

special path parser + typed literals + order by parser + grammar changes

simplified with clause parsing + added order by to data structure and debugger (TODO: implement)

removed ultrabreak gotos

added special symbol list to tokenizer

added order by clause to grammar + moved with clause right after the from clause

parser verifies that path is an identifier

parser for with-clause ready to parse more attributes, but marks duplicated attributes as error

parser for with clause + unexpected token message, if something is beyond the with clause

tokenizer now correctly handles quoted tokens

removed DavQLExpression type for path (since it always is an identifier)

davql: error handling + minor grammar changes

improved grammar + changed depth default, type and added infinity

added info command

improved expression parser (can now detect literals and identifiers) - TODO: tokenizer must not split strings and "backstick-identifiers"

renamed some enums to avoid collisions with macros + minor grammar change (backsticks for identifiers) + tokenizer + parser skeleton

UCX string module update

added path examination to debugger + changed field names of expression subtrees

added parse function prototype + started writing a debugger

described DavQLStatement grammar + added more features + renamed PUT to SET (for now)

added missing stuff to davql types

structure draft for DavQL statements

copyright update

fixed many memory leaks

ssl version is now configurable

dav now opens files in binary mode

fix

ucx update

fixed incorrect use of UcxBuffer

added verbose option + encryption flag fixes

fixed makefile file extensions

some bug fixes

added optional trash for deleted files

changed sync behavior

merge

added property-set and property-get command

fixed include/exclude filter for dav-sync

fixed propfind response parser bug

added linker command for regex in mingw config

added include / exclude patterns

refactored push

added collection config for sync directories

replaced readdir_r with readdir

windows fix

added usage info and some options

added conflict detection

dav-sync deletes removed files

dav-sync detects remote removed files

dav-sync detects locally removed files

fixed etag handling

added push command for dav-sync

added new sync tool

added crypt command line option

added missing url decode

added file name encryption

added some api functions

dav follows location header

supports whitespace in paths

added some aes functions + ucx update

code cleanup + experimental login prompt

mingw makefile config

added proxy config

errors on too many arguments

removed debug code

some code cleanup and bug fixes

mingw support

fix include

added update option for list and get

added date command

added recursive put

added support for where clauses

added some dav api functions

added extra propfind request to dav_create

implemented dav_create for non-collection resources

fixed do_put_request

added more error messages

fixed put bugs

fixed makefiles

some fixes

recursive list and get

new dav_query function

added mkdir command

added remove command

added some options to list command

added some error messages

added some options to put and get

added usage info

added aes initialization vector

fixed build

creates a .dav dir if it doesn't exist

base64 encoded passwords in config.xml

creates an empty configuration file if needed

new webdav api + repository and key configuration + aes encryption

added put method

disabled ssl cert verification

fixed dav Makefile

added existing source code

initial commit

(0) tip

mercurial