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) +448 tip

mercurial