fix compatibility with older libcurl versions default tip

revert property set/remove list changes

fix crash in printxmldoc, fixes #514

fix property set/remove list size checks

fix PUT request with chunked transfer encoding

merge

add cfg functions for modifying keys

remove szmul.c from vs project

fix windows build

fix missing strdup in pwdstore_clone

add pwdstore_clone function and fix some pwdstore bugs

fix crash when removing pwdentries without locations

safe pwdstore decryption status

move ssl version parser to new function

add utility functions for setting CfgInt/CfgUInt values

add utility functions for setting CfgString/CfgBool values

fix pwdstore entries without locations not loaded correctly

fix missing trailing path separator in href if a resource path is empty

fix build

move pwdstore to libidav

merge

fix wrong context session list compare func

fix DavContext sesssion list comparefunc

fix dav_session_clone using the wrong allocator for the pathcache

fix load_config stores wrong xml doc pointer in the config object

fix dav add-repo crash in case .dav/config.xml doesn't exist

also remove \r from user name

fix request_auth not removing the trailing newline from the user name

add configured namespaces to the dav context

fix dav_set_string_property crash if an unknown namespace prefix was specified

actually make sure some random things don't explode

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

(0) -512 tip

mercurial