Mercurial
>
hg
>
webserver
/ graph
Search:
summary
shortlog
changelog
graph
tags
bookmarks
branches
files
help
graph
The revision graph only works with JavaScript-enabled browsers.
rename ldap-query to ldap-search, rename query parameter to filter
Sun, 12 Mar 2023 11:29:02 +0100
, by Olaf Wintermann
add ldap-query saf
Sat, 11 Mar 2023 17:14:51 +0100
, by Olaf Wintermann
add option to automatically bind new ldap sessions
Sat, 11 Mar 2023 13:57:30 +0100
, by Olaf Wintermann
add bind parameters to ldap resource pool
Sat, 11 Mar 2023 12:37:48 +0100
, by Olaf Wintermann
add ldap resource pool type implementation
Sat, 11 Mar 2023 11:56:55 +0100
, by Olaf Wintermann
resourcepool_free should remove the resource from the request resource cache
Fri, 10 Mar 2023 23:00:02 +0100
, by Olaf Wintermann
log error in get_next_token()
Fri, 10 Mar 2023 22:45:58 +0100
, by Olaf Wintermann
fix openssl dependency resolution on bsd
Sat, 25 Feb 2023 21:12:51 +0100
, by Olaf Wintermann
update ldflags
Sat, 25 Feb 2023 11:38:33 +0100
, by Olaf Wintermann
update obj.conf install template to new syntax
Fri, 24 Feb 2023 09:19:19 +0100
, by Olaf Wintermann
fix double free in case parsing a config file fails
Fri, 24 Feb 2023 09:18:47 +0100
, by Olaf Wintermann
fix build on linux
Thu, 23 Feb 2023 21:15:16 +0100
, by Olaf Wintermann
fix build on macos
Thu, 23 Feb 2023 21:09:33 +0100
, by Olaf Wintermann
implement most nsapi expression operators
Sun, 04 Dec 2022 13:01:00 +0100
, by Olaf Wintermann
fix cgi stderr logger + reuse stderr tmp buffer
Sun, 04 Dec 2022 10:20:21 +0100
, by Olaf Wintermann
fix cgi pipes not closed in some error case + minor improvements
Sun, 04 Dec 2022 09:09:55 +0100
, by Olaf Wintermann
improve http listener migration / shutdown of old listener
Sat, 03 Dec 2022 18:00:35 +0100
, by Olaf Wintermann
use separate buffer for chunked transfer encoding, not inbuf
Sat, 03 Dec 2022 16:31:08 +0100
, by Olaf Wintermann
add missing init_logging declaration
Sat, 03 Dec 2022 13:54:53 +0100
, by Olaf Wintermann
implement acceptor thread shutdown
Sat, 03 Dec 2022 13:26:56 +0100
, by Olaf Wintermann
improve acceptor error handling
Sat, 03 Dec 2022 12:27:00 +0100
, by Olaf Wintermann
fix configuration referencing
Sun, 27 Nov 2022 15:58:37 +0100
, by Olaf Wintermann
improve daemon startup
Sun, 27 Nov 2022 13:33:30 +0100
, by Olaf Wintermann
fix stdout log message duplicates
Sun, 27 Nov 2022 10:20:10 +0100
, by Olaf Wintermann
fix listener ssl initialization
Sun, 27 Nov 2022 10:07:37 +0100
, by Olaf Wintermann
implement successor listener, fix webserver_reconfig
Sat, 26 Nov 2022 19:15:33 +0100
, by Olaf Wintermann
fix srvctrl thread stacksize
Sat, 26 Nov 2022 19:14:29 +0100
, by Olaf Wintermann
refactore http listener creation
Sat, 26 Nov 2022 17:07:08 +0100
, by Olaf Wintermann
replace linkedlist with arraylist in the expression parser
Sun, 20 Nov 2022 12:43:44 +0100
, by Olaf Wintermann
update ucx
Sun, 20 Nov 2022 12:19:09 +0100
, by Olaf Wintermann
expression parser: add support for functions
Sun, 20 Nov 2022 11:39:46 +0100
, by Olaf Wintermann
redirect stdout/stderr to log file
Wed, 16 Nov 2022 12:14:45 +0100
, by Olaf Wintermann
use non-blocking IO for pipes and socket in send_cgi
Sun, 13 Nov 2022 12:58:25 +0100
, by Olaf Wintermann
add http_send_response function that is usable for non-blocking IO
Sun, 13 Nov 2022 10:57:38 +0100
, by Olaf Wintermann
parse cgi stderr output for logging and use non-blocking pipes
Sun, 13 Nov 2022 09:41:07 +0100
, by Olaf Wintermann
refactor send_cgi into non-blocking SAF (wip)
Sat, 12 Nov 2022 20:50:45 +0100
, by Olaf Wintermann
fix prepare_service_file error handling
Sat, 12 Nov 2022 17:34:58 +0100
, by Olaf Wintermann
improve error handling in send_file if the file is a directory
Sat, 12 Nov 2022 17:28:32 +0100
, by Olaf Wintermann
add check if pidfile can be opened
Sat, 12 Nov 2022 17:00:16 +0100
, by Olaf Wintermann
run Init directives after setuid
Sat, 12 Nov 2022 16:52:32 +0100
, by Olaf Wintermann
make config parser delimiters configurable
Sat, 12 Nov 2022 12:09:37 +0100
, by Olaf Wintermann
allow '-' in tokens, add support for negative integers
Sat, 12 Nov 2022 11:52:47 +0100
, by Olaf Wintermann
add obj.conf expression parser
Sat, 12 Nov 2022 11:01:11 +0100
, by Olaf Wintermann
extend serverconfig tokenizer to create separate tokens for brackets
Wed, 09 Nov 2022 11:51:19 +0100
, by Olaf Wintermann
use realloc instead of malloc in object_add_directive
Wed, 09 Nov 2022 10:37:52 +0100
, by Olaf Wintermann
new recursive function to convert objconf (preparation for nsapi conditions)
Tue, 08 Nov 2022 22:35:18 +0100
, by Olaf Wintermann
new obj.conf parser based on serverconfig parser
Mon, 07 Nov 2022 22:30:12 +0100
, by Olaf Wintermann
use server.conf parser for init.conf as well
Mon, 07 Nov 2022 17:59:44 +0100
, by Olaf Wintermann
prepare serverconfig parser to be also used for obj.conf and init.conf
Sun, 06 Nov 2022 17:41:39 +0100
, by Olaf Wintermann
update ucx hash functions
Sun, 06 Nov 2022 16:59:39 +0100
, by Olaf Wintermann
switch from ucx 2 to 3
Sun, 06 Nov 2022 15:53:32 +0100
, by Olaf Wintermann
improve propfind error handling
Wed, 02 Nov 2022 19:19:01 +0100
, by Olaf Wintermann
implement ACL check for proppatch requests
Wed, 02 Nov 2022 19:10:10 +0100
, by Olaf Wintermann
improve error handling in webdav_proppatch
Wed, 02 Nov 2022 18:38:40 +0100
, by Olaf Wintermann
improve sessionhandler error handling
Wed, 02 Nov 2022 18:21:58 +0100
, by Olaf Wintermann
improve error handling in basic_run_session
Wed, 02 Nov 2022 18:08:06 +0100
, by Olaf Wintermann
abort config loading if an unknown webdav backend is specified
Wed, 02 Nov 2022 17:53:15 +0100
, by Olaf Wintermann
replace perror() messages with log_ereport in thrpool.c
Wed, 02 Nov 2022 17:47:39 +0100
, by Olaf Wintermann
close connection if content-length != number of bytes written
Tue, 01 Nov 2022 20:46:15 +0100
, by Olaf Wintermann
store number of written bytes in the HttpStream
Tue, 01 Nov 2022 20:39:41 +0100
, by Olaf Wintermann
add vfs support to dir_redirect
Tue, 01 Nov 2022 16:54:24 +0100
, by Olaf Wintermann
add vfs support to find_index
Tue, 01 Nov 2022 16:53:11 +0100
, by Olaf Wintermann
fix multistatus response creating namespace definitions twice in some cases
Tue, 01 Nov 2022 16:40:03 +0100
, by Olaf Wintermann
pg: fix proppatch not working for normal dead properties if extensions are enabled
Tue, 01 Nov 2022 15:59:28 +0100
, by Olaf Wintermann
fix invalid propfind pg queries created for allprop requests on collections
Tue, 01 Nov 2022 15:39:21 +0100
, by Olaf Wintermann
fix warning caused by an ucx update that changed UcxKey data to const
Tue, 01 Nov 2022 15:27:48 +0100
, by Olaf Wintermann
fix ucx include path in postgresql plugin
Sun, 23 Oct 2022 11:41:05 +0200
, by Olaf Wintermann
use IPV6_V6ONLY socket option on linux
Thu, 13 Oct 2022 19:26:15 +0200
, by Olaf Wintermann
convert ipv6 addr to string
Thu, 13 Oct 2022 18:46:00 +0200
, by Olaf Wintermann
add initial ipv6 support
Wed, 12 Oct 2022 23:34:20 +0200
, by Olaf Wintermann
fix mkcol not responding with correct status code in some cases
Sun, 25 Sep 2022 15:40:27 +0200
, by Olaf Wintermann
"write" permission includes "add_file" now
Sun, 25 Sep 2022 15:23:08 +0200
, by Olaf Wintermann
fix listener not initialiazed before changeuid
Sun, 25 Sep 2022 12:12:53 +0200
, by Olaf Wintermann
print error in case the log file config doesn't work
Sun, 25 Sep 2022 11:56:47 +0200
, by Olaf Wintermann
add verbose logging for setuid/setgid and abort startup if setuid fails
Sun, 25 Sep 2022 11:00:38 +0200
, by Olaf Wintermann
reduce log warnings in case pg_check_connection fails
Sun, 25 Sep 2022 10:51:47 +0200
, by Olaf Wintermann
fix double free in postgresql resourcepool if pg_check_connection fails
Sun, 25 Sep 2022 10:47:49 +0200
, by Olaf Wintermann
change uid before most of the config is loaded
Sun, 25 Sep 2022 10:36:28 +0200
, by Olaf Wintermann
fix build on non-freebsd systems
Sun, 25 Sep 2022 09:33:39 +0200
, by Olaf Wintermann
merge cpp-ports
Sat, 24 Sep 2022 17:11:57 +0200
, by Olaf Wintermann
merge branch webdav into default
Sat, 24 Sep 2022 16:26:10 +0200
, by Olaf Wintermann
remove debug code
webdav
Sat, 24 Sep 2022 16:19:24 +0200
, by Olaf Wintermann
fix net_printf not working with empty strings
webdav
Fri, 09 Sep 2022 20:17:23 +0200
, by Olaf Wintermann
disable pg large object IO functions for collections
webdav
Thu, 08 Sep 2022 17:34:16 +0200
, by Olaf Wintermann
fix resourcetype initialization
webdav
Sat, 27 Aug 2022 11:57:27 +0200
, by Olaf Wintermann
pg propfind stores resource_id in rq->vars
webdav
Thu, 18 Aug 2022 18:18:06 +0200
, by Olaf Wintermann
pg_vfs_open stores the resource_id in rq->vars
webdav
Thu, 18 Aug 2022 16:54:57 +0200
, by Olaf Wintermann
make original proppatch property list available to all backends
webdav
Thu, 18 Aug 2022 16:48:23 +0200
, by Olaf Wintermann
Add support for extended properties in pg proppatch
webdav
Mon, 15 Aug 2022 15:45:55 +0200
, by Olaf Wintermann
Add support for extended properties in pg propfind
webdav
Sun, 14 Aug 2022 16:46:52 +0200
, by Olaf Wintermann
build pg propfind query from components
webdav
Sun, 14 Aug 2022 12:43:14 +0200
, by Olaf Wintermann
use configured root node from PgRepository in pg vfs/webdav
webdav
Sun, 14 Aug 2022 11:40:54 +0200
, by Olaf Wintermann
add parser for extended postgresql webdav config
webdav
Sat, 13 Aug 2022 15:56:51 +0200
, by Olaf Wintermann
add config option for pg root node lookup
webdav
Thu, 11 Aug 2022 20:51:39 +0200
, by Olaf Wintermann
add global resource lookup function
webdav
Thu, 11 Aug 2022 20:21:13 +0200
, by Olaf Wintermann
adjust pg plugin to new dav initialization
webdav
Wed, 10 Aug 2022 21:01:54 +0200
, by Olaf Wintermann
add support for named dav repositories in nametrans safs
webdav
Wed, 10 Aug 2022 20:56:24 +0200
, by Olaf Wintermann
implement named dav repositories
webdav
Wed, 10 Aug 2022 20:32:49 +0200
, by Olaf Wintermann
add support for name/value config args
webdav
Tue, 09 Aug 2022 19:01:54 +0200
, by Olaf Wintermann
add new dav config element
webdav
Sun, 07 Aug 2022 13:46:43 +0200
, by Olaf Wintermann
revert optimization that does not harmonize with realloc()
cpp-ports
Wed, 08 Jun 2022 19:26:43 +0200
, by Mike Becker
fix code that is not standard C
cpp-ports
Wed, 08 Jun 2022 19:14:57 +0200
, by Mike Becker
port pblock.cpp to pblock.c
cpp-ports
Wed, 08 Jun 2022 18:55:59 +0200
, by Mike Becker
port uri.cpp to uri.c
cpp-ports
Sat, 04 Jun 2022 19:27:25 +0200
, by Mike Becker
make sure the http stream is finished if headers are sent
webdav
Sun, 15 May 2022 08:56:00 +0200
, by Olaf Wintermann
check if service SAFs sent a response, terminate connection in case no response was sent
webdav
Sat, 14 May 2022 15:22:37 +0200
, by Olaf Wintermann
check cgi exit code
webdav
Sat, 14 May 2022 15:21:59 +0200
, by Olaf Wintermann
start threadpool in threadpool_run() if no threads are created yet
webdav
Sat, 14 May 2022 12:51:05 +0200
, by Olaf Wintermann
add separate threadpool_start function for creating initial threadpool threads
webdav
Sat, 14 May 2022 12:45:59 +0200
, by Olaf Wintermann
escape child href in pg propfind
webdav
Sat, 14 May 2022 11:18:14 +0200
, by Olaf Wintermann
enable util_uri_escape and util_url_escape and add some tests
webdav
Sat, 14 May 2022 10:49:04 +0200
, by Olaf Wintermann
add missing HttpStream initializations
webdav
Fri, 13 May 2022 21:24:45 +0200
, by Olaf Wintermann
fix pg_vfs_dirio_readdir not initializing some VFS_ENTRY fields
webdav
Wed, 11 May 2022 20:41:39 +0200
, by Olaf Wintermann
fix webdav_delete response in case of errors
webdav
Wed, 11 May 2022 20:41:10 +0200
, by Olaf Wintermann
fix parse_request_line not detecting the uri correctly in some cases
webdav
Wed, 11 May 2022 20:31:26 +0200
, by Olaf Wintermann
fix that pg mkdir can create directories with trailing path separators in the nodename
webdav
Tue, 10 May 2022 19:13:01 +0200
, by Olaf Wintermann
xml escape href value in propfind response
webdav
Mon, 09 May 2022 20:56:44 +0200
, by Olaf Wintermann
implement etag in pg propfind
webdav
Mon, 09 May 2022 20:06:27 +0200
, by Olaf Wintermann
update etag when a postgresql file is updated
webdav
Sun, 08 May 2022 19:31:38 +0200
, by Olaf Wintermann
extend postgresql vfs to store an etag in the file
webdav
Sun, 08 May 2022 19:29:27 +0200
, by Olaf Wintermann
add optional getetag function to VFS API
webdav
Sun, 08 May 2022 18:55:36 +0200
, by Olaf Wintermann
fix webdav_mkcol response and add error handling
webdav
Sun, 08 May 2022 12:27:43 +0200
, by Olaf Wintermann
fix resource pool memory management
webdav
Sun, 08 May 2022 12:07:58 +0200
, by Olaf Wintermann
fix invalid memory access in event_bsd.c
webdav
Sun, 08 May 2022 11:52:52 +0200
, by Olaf Wintermann
add support for O_TRUNC in pg_vfs_open
webdav
Sun, 08 May 2022 10:46:56 +0200
, by Olaf Wintermann
add O_TRUNC to oflags in webdav_put
webdav
Sun, 08 May 2022 10:41:27 +0200
, by Olaf Wintermann
replace atoi with util_strtoint
webdav
Sun, 08 May 2022 10:33:41 +0200
, by Olaf Wintermann
add util_asprintf and util_vasprintf
webdav
Sat, 07 May 2022 15:07:01 +0200
, by Olaf Wintermann
remove redundant comments
webdav
Sat, 07 May 2022 14:14:20 +0200
, by Olaf Wintermann
store HttpStream buflen as pointer (referencing NSAPISession cursize)
webdav
Sat, 07 May 2022 14:13:08 +0200
, by Olaf Wintermann
code cleanup
webdav
Sat, 07 May 2022 14:08:46 +0200
, by Olaf Wintermann
fix and simplify chunked transfer encoding
webdav
Sat, 07 May 2022 12:54:19 +0200
, by Olaf Wintermann
first semi-functional implementation of chunked transfer encoding for request bodies
webdav
Fri, 06 May 2022 22:45:53 +0200
, by Olaf Wintermann
simplify request input buffer
webdav
Thu, 05 May 2022 21:46:10 +0200
, by Olaf Wintermann
implement allprop in default and postgresql webdav backends
webdav
Tue, 03 May 2022 21:41:00 +0200
, by Olaf Wintermann
fix netbuf_getbytes not detecting EOF in some cases
webdav
Mon, 02 May 2022 20:37:13 +0200
, by Olaf Wintermann
add content-length header to webdav_delete and webdav_put
webdav
Mon, 02 May 2022 20:26:54 +0200
, by Olaf Wintermann
send response in webdav_put
webdav
Mon, 02 May 2022 20:25:40 +0200
, by Olaf Wintermann
move http response code from webdav_vfs_op_do to webdav_delete
webdav
Mon, 02 May 2022 20:22:16 +0200
, by Olaf Wintermann
send response in webdav_delete
webdav
Mon, 02 May 2022 20:20:37 +0200
, by Olaf Wintermann
add davclass parameter to pfx2dir for setting the webdav backend
webdav
Mon, 02 May 2022 11:29:15 +0200
, by Olaf Wintermann
add support for xml properties in propfind/proppatch requests (pg)
webdav
Sun, 01 May 2022 12:33:48 +0200
, by Olaf Wintermann
fix TestVFSFile ctx initialization
webdav
Sun, 01 May 2022 11:14:47 +0200
, by Olaf Wintermann
fix uninitialized memory access in directory check
webdav
Sun, 01 May 2022 11:07:31 +0200
, by Olaf Wintermann
fix test request memory initialization
webdav
Sun, 01 May 2022 11:03:29 +0200
, by Olaf Wintermann
fix memory initialization for WebdavProperty in webdav tests
webdav
Sun, 01 May 2022 10:56:36 +0200
, by Olaf Wintermann
add WebdavNSList <-> string converting functions
webdav
Sun, 01 May 2022 10:48:20 +0200
, by Olaf Wintermann
add basic pg proppatch implementation
webdav
Sat, 30 Apr 2022 20:44:38 +0200
, by Olaf Wintermann
store property prefix in the database
webdav
Tue, 26 Apr 2022 18:21:25 +0200
, by Olaf Wintermann
add tests for propfind allprop
webdav
Tue, 26 Apr 2022 15:19:12 +0200
, by Olaf Wintermann
fix sql query for selecting specific properties
webdav
Tue, 26 Apr 2022 14:33:58 +0200
, by Olaf Wintermann
fix pg propfind for getlastmodified property
webdav
Mon, 25 Apr 2022 22:38:05 +0200
, by Olaf Wintermann
test pg propfind response
webdav
Mon, 25 Apr 2022 22:35:30 +0200
, by Olaf Wintermann
add pg propfind cleanup
webdav
Mon, 25 Apr 2022 21:40:26 +0200
, by Olaf Wintermann
implement pg getlastmodified propfind (and prepare creationdate)
webdav
Mon, 25 Apr 2022 19:28:52 +0200
, by Olaf Wintermann
remove createtestdb from build
webdav
Mon, 25 Apr 2022 18:33:03 +0200
, by Olaf Wintermann
implement pg getcontentlength property
webdav
Mon, 25 Apr 2022 18:30:33 +0200
, by Olaf Wintermann
close last resource in multistatus_send
webdav
Mon, 25 Apr 2022 13:54:27 +0200
, by Olaf Wintermann
fix href in pg propfind response
webdav
Mon, 25 Apr 2022 13:48:05 +0200
, by Olaf Wintermann
add semi functional pg propfind handler
webdav
Sun, 24 Apr 2022 18:35:44 +0200
, by Olaf Wintermann
change pg_resolve_path signature to be useable without VFS
webdav
Thu, 21 Apr 2022 17:16:49 +0200
, by Olaf Wintermann
add basic parser for pg timestamps
webdav
Wed, 20 Apr 2022 17:48:33 +0200
, by Olaf Wintermann
add pg webdav backend initialization
webdav
Tue, 19 Apr 2022 20:32:45 +0200
, by Olaf Wintermann
fix some snprintf warnings
webdav
Tue, 19 Apr 2022 19:15:23 +0200
, by Olaf Wintermann
add function for registering webdav backends
webdav
Tue, 19 Apr 2022 19:14:49 +0200
, by Olaf Wintermann
add instance field to webdav backend struct
webdav
Tue, 19 Apr 2022 18:34:40 +0200
, by Olaf Wintermann
add empty pg webdav funcs
webdav
Tue, 19 Apr 2022 18:23:54 +0200
, by Olaf Wintermann
fix error handling in pg_remove_res
webdav
Tue, 19 Apr 2022 12:32:22 +0200
, by Olaf Wintermann
handle sql error in pg_remove_res
webdav
Mon, 18 Apr 2022 17:31:45 +0200
, by Olaf Wintermann
implement pg rmdir
webdav
Mon, 18 Apr 2022 13:17:50 +0200
, by Olaf Wintermann
add pg mkdir tests
webdav
Mon, 18 Apr 2022 11:49:37 +0200
, by Olaf Wintermann
implement pg unlink
webdav
Mon, 18 Apr 2022 10:53:13 +0200
, by Olaf Wintermann
add pg stat tests
webdav
Sun, 17 Apr 2022 12:04:41 +0200
, by Olaf Wintermann
update pg resource metadata on close
webdav
Sun, 17 Apr 2022 11:51:37 +0200
, by Olaf Wintermann
add pg_vfs_io_tell
webdav
Sun, 17 Apr 2022 11:22:34 +0200
, by Olaf Wintermann
implement pg vfs mkdir
webdav
Sun, 17 Apr 2022 11:19:13 +0200
, by Olaf Wintermann
add first pg vfs tests
webdav
Sat, 16 Apr 2022 21:05:29 +0200
, by Olaf Wintermann
create pg test data
webdav
Sat, 16 Apr 2022 14:36:08 +0200
, by Olaf Wintermann
prepare build system for postgresql plugin tests
webdav
Sat, 19 Feb 2022 16:34:29 +0100
, by Olaf Wintermann
set error status code directly in vfs_* calls
webdav
Fri, 04 Feb 2022 18:41:40 +0100
, by Olaf Wintermann
add support for O_CREAT flag in postgresql vfs
webdav
Fri, 04 Feb 2022 18:12:23 +0100
, by Olaf Wintermann
add missing postgresql vfs io functions
webdav
Thu, 03 Feb 2022 18:03:27 +0100
, by Olaf Wintermann
minimal working send_file with postgresql vfs
webdav
Thu, 03 Feb 2022 17:26:08 +0100
, by Olaf Wintermann
add support for getstat parameter in pg readdir
webdav
Tue, 01 Feb 2022 20:07:42 +0100
, by Olaf Wintermann
add pg vfs stat/fstat implementation
webdav
Tue, 01 Feb 2022 17:47:50 +0100
, by Olaf Wintermann
implement pg_vfs_dirio_close
webdav
Mon, 31 Jan 2022 21:33:46 +0100
, by Olaf Wintermann
add basic postgresql vfs directory functions
webdav
Mon, 31 Jan 2022 17:18:12 +0100
, by Olaf Wintermann
implement pg_vfs_open
webdav
Sun, 30 Jan 2022 15:25:29 +0100
, by Olaf Wintermann
add support for vfsclass parameter in nametrans safs
webdav
Fri, 28 Jan 2022 16:01:05 +0100
, by Olaf Wintermann
add function to create a postgresql-based VFS
webdav
Fri, 28 Jan 2022 15:44:30 +0100
, by Olaf Wintermann
add empty postgresql VFS functions
webdav
Thu, 27 Jan 2022 21:24:27 +0100
, by Olaf Wintermann
escape html output in pg_query
webdav
Thu, 27 Jan 2022 18:46:38 +0100
, by Olaf Wintermann
less
more
|
(0)
-192
tip