<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dss/daemon.c, branch next</title>
<subtitle>DSS - dyadic snapshot scheduler</subtitle>
<id>https://git.tue.mpg.de/cgit/dss/atom?h=next</id>
<link rel='self' href='https://git.tue.mpg.de/cgit/dss/atom?h=next'/>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/'/>
<updated>2019-10-25T11:34:49Z</updated>
<entry>
<title>daemon_init(): Do not set umask to zero.</title>
<updated>2019-10-25T11:34:49Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2019-10-25T11:34:49Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=0f8170444cf9e2bcc42b64bdcae3a38b7ac55e66'/>
<id>urn:sha1:0f8170444cf9e2bcc42b64bdcae3a38b7ac55e66</id>
<content type='text'>
We don't need this because we actively want rsync to respect the file
creation mask. This does not matter in the common case of a single
source directory because the permission bits will be copied from the
source directory anyway. However, for multiple source directories it
does matter because with umask(0) the top level snapshot directory
is created with mode 777.
</content>
</entry>
<entry>
<title>Replace license boilerplate with single line SPDX comments.</title>
<updated>2017-11-19T01:53:25Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2017-11-06T00:12:41Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=1f5ecfacc341f893d73caa0a613d553af33a6cc9'/>
<id>urn:sha1:1f5ecfacc341f893d73caa0a613d553af33a6cc9</id>
<content type='text'>
This gets rid of existing copyright templates in favor of just the
one-liner SPDX (Software Package Data Exchange) notice. All files are
licensed under the GPL-2.0, so the same tag is added to each file. No
copyright is changed by this commit.

Several files (mostly the very short ones) did not contain a license
text so far. By default all files without license information are
under the default license of this package, which is GPL version 2.
This commit adds the missing SPDX line so that now all files except
dss.css, index.html.in, INSTALL, NEWS and README have it.

We also remove author and copyright year, since the author is the same
everywhere, and the year hasn't been updated any more since at least
six years. Accurate information is available from the git log.

The COPYING file can also be removed because the license text at
https://spdx.org/licenses/GPL-2.0.html is immutable.
</content>
</entry>
<entry>
<title>run: Fix exit status in case another dss process is running.</title>
<updated>2017-07-13T20:54:03Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2016-06-16T21:21:08Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=6c63f45a9068107cfd80aa181134574dd9373c0b'/>
<id>urn:sha1:6c63f45a9068107cfd80aa181134574dd9373c0b</id>
<content type='text'>
In daemon mode, we must acquire the semaphore lock in the child process
because the child does not inherit semaphore adjustments. Currently
the parent exits successfully after the fork, so the command appears
to succeed even if the child dies immediately because it was unable
to acquire the lock because another dss process is holding the lock.

This commit introduces a mechanism which enables the parent to tell
whether the child completed its setup successfully. We create a
pipe prior to calling fork(2), and let the child write to one end
of the pipe after setup is complete and just before it enters the
main select loop. The parent reads from the other end of the pipe
and exits once the read(2) call returns. If the child dies early,
read(2) returns zero, indicating failure.
</content>
</entry>
<entry>
<title>daemon: Do not change to /.</title>
<updated>2016-08-21T19:13:25Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2016-06-14T08:40:22Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=7da9a331fbbfb10a35fd9d014c47edbad13ffed7'/>
<id>urn:sha1:7da9a331fbbfb10a35fd9d014c47edbad13ffed7</id>
<content type='text'>
This is pointless because we immediately cd back into the destination
dir anyway.
</content>
</entry>
<entry>
<title>daemon.c: Open /dev/null read-write.</title>
<updated>2015-04-14T09:11:22Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2015-03-30T16:20:16Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=5b5d7b59a34579ba86ce620ee527ffad087c9b60'/>
<id>urn:sha1:5b5d7b59a34579ba86ce620ee527ffad087c9b60</id>
<content type='text'>
While daemonizing we redirect stdin, stdout and stderr to /dev/null,
which is considered good practice. We should, however, open these
two devices in read-write mode rather than read-only, since not being
able to write to stdout/stderr might confuse rsync and the hooks.
</content>
</entry>
<entry>
<title>Change email address and URLs.</title>
<updated>2014-08-19T12:18:38Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2014-08-16T10:00:18Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=8daf8f3836e745ba07f1aa01252279588574c95a'/>
<id>urn:sha1:8daf8f3836e745ba07f1aa01252279588574c95a</id>
<content type='text'>
The web and email service of systemlinux.org was down for two
weeks. Meanwhile the dss web pages found a new home at the MPI campus
of Tübingen.

This commit changes the email addresses and the home page URL.
</content>
</entry>
<entry>
<title>Merge branch 't/rename_system_files'</title>
<updated>2012-09-16T11:34:07Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2012-09-16T11:34:07Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=6c76799c7334a12926dc1cf0c32670423cbc954f'/>
<id>urn:sha1:6c76799c7334a12926dc1cf0c32670423cbc954f</id>
<content type='text'>
Has been cooking for several weeks. The conflicts

	daemon.c
	exec.c
	file.c
	ipc.c
	sig.c

are trivial and can be resolved easily.
</content>
</entry>
<entry>
<title>Rename source files which also exist as system headers.</title>
<updated>2012-08-15T09:41:32Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2012-08-11T18:32:19Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=46cbddf465bd66ba1d5c4bcc780ae0d65abd7f73'/>
<id>urn:sha1:46cbddf465bd66ba1d5c4bcc780ae0d65abd7f73</id>
<content type='text'>
As pointed out by Daniel Richard G. some of the dss header files
are named the same as system header files.

This patch renames these headers as well as their corresponding .c
files. Specifically, error.h, fd.h, signal.h, string.h and time.h
become err.h, file.h, sig.h, str.h and tv.h.
</content>
</entry>
<entry>
<title>Make the dss log facility C89 conform.</title>
<updated>2012-08-15T09:39:26Z</updated>
<author>
<name>Daniel Richard G</name>
<email>skunk@iSKUNK.ORG</email>
</author>
<published>2012-08-10T12:41:22Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=66cdd5bc99a53d2b408a6cdc2d501fe27f9db13b'/>
<id>urn:sha1:66cdd5bc99a53d2b408a6cdc2d501fe27f9db13b</id>
<content type='text'>
Variadic macros were introduced in C99, so they are not supported on
ANSI C compilers. Since currently all DSS_*_LOG macros are variadic,
we need a replacement for these. Moreover, since not all compilers
support __func__ or an equivalent, we need to check for this feature
as well and provide a workaround if necessary.

This patch introduces the new public function dss_log_set_params()
which saves the given log level, filename, line number and the
function name in global variables. The DSS_*_LOG macros are changed
to receive a single argument only, which is the usual variadic list,
enclosed in additional parentheses.

The new DSS_*_LOG macros first set the log parameters by calling
dss_log_set_params(), then call dss_log() with the variadic list as
the argument. dss_log() is patched to print the function name only
if __func__ is supported and fall back to file name and the line
number otherwise.

All DSS_*_LOG() calls are changed to the new syntax.
</content>
</entry>
<entry>
<title>Have foo.c #include foo.h.</title>
<updated>2012-08-15T09:39:26Z</updated>
<author>
<name>Daniel Richard G</name>
<email>skunk@iSKUNK.ORG</email>
</author>
<published>2012-08-10T12:16:22Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=c17bfe9242f34690bd26747144f5351011e91b41'/>
<id>urn:sha1:c17bfe9242f34690bd26747144f5351011e91b41</id>
<content type='text'>
This is both to ensure function signature consistency, and to
eliminate GCC's "no previous declaration for _____" warnings.
</content>
</entry>
</feed>
