Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liblongpath-rsync
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liblongpath
liblongpath-rsync
Commits
651443a7
Commit
651443a7
authored
Mar 12, 1999
by
David Dykstra
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow + and - in the "include" and "exclude" directives in rsyncd.conf.
Patch submitted by Damian A Ivereigh <damian@cisco.com>
parent
79fc6bdb
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
62 additions
and
10 deletions
+62
-10
exclude.c
exclude.c
+50
-2
rsyncd.conf.yo
rsyncd.conf.yo
+12
-8
No files found.
exclude.c
View file @
651443a7
...
...
@@ -303,14 +303,62 @@ void recv_exclude_list(int f)
}
}
/* Get the next include/exclude arg from the string. It works in a similar way
** to strtok - initially an arg is sent over, from then on NULL. This
** routine takes into account any +/- in the strings and does not
** consider the space following it as a delimeter.
*/
char
*
get_exclude_tok
(
char
*
p
)
{
static
char
*
s
;
static
int
more
;
char
*
t
;
if
(
p
)
{
s
=
p
;
if
(
*
p
)
more
=
1
;
}
if
(
!
more
)
return
(
NULL
);
/* Skip over any initial spaces */
while
(
isspace
(
*
s
))
s
++
;
/* Are we at the end of the string? */
if
(
*
s
)
{
/* remember the beginning of the token */
t
=
s
;
/* Is this a '+' or '-' followed by a space (not whitespace)? */
if
((
*
s
==
'+'
||
*
s
==
'-'
)
&&
*
(
s
+
1
)
==
' '
)
s
+=
2
;
/* Skip to the next space or the end of the string */
while
(
!
isspace
(
*
s
)
&&
*
s
!=
'\0'
)
s
++
;
}
else
{
t
=
NULL
;
}
/* Have we reached the end of the string? */
if
(
*
s
)
*
s
++=
'\0'
;
else
more
=
0
;
return
(
t
);
}
void
add_exclude_line
(
char
*
p
)
{
char
*
tok
;
if
(
!
p
||
!*
p
)
return
;
p
=
strdup
(
p
);
if
(
!
p
)
out_of_memory
(
"add_exclude_line"
);
for
(
tok
=
strtok
(
p
,
" "
);
tok
;
tok
=
strtok
(
NULL
,
" "
))
for
(
tok
=
get_exclude_tok
(
p
);
tok
;
tok
=
get_exclude_tok
(
NULL
))
add_exclude
(
tok
,
0
);
free
(
p
);
}
...
...
@@ -321,7 +369,7 @@ void add_include_line(char *p)
if
(
!
p
||
!*
p
)
return
;
p
=
strdup
(
p
);
if
(
!
p
)
out_of_memory
(
"add_include_line"
);
for
(
tok
=
strtok
(
p
,
" "
);
tok
;
tok
=
strtok
(
NULL
,
" "
))
for
(
tok
=
get_exclude_tok
(
p
);
tok
;
tok
=
get_exclude_tok
(
NULL
))
add_exclude
(
tok
,
1
);
free
(
p
);
}
...
...
rsyncd.conf.yo
View file @
651443a7
mailto(rsync-bugs@samba.org)
manpage(rsyncd.conf)(5)(
9
Feb 1999)()()
manpage(rsyncd.conf)(5)(
12
Feb 1999)()()
manpagename(rsyncd.conf)(configuration file for rsync server)
manpagesynopsis()
...
...
@@ -163,9 +163,12 @@ was run as root. This complements the "uid" option. The default is the
group "nobody".
dit(bf(exclude)) The "exclude" option allows you to specify a space
separated list of patterns to add to the exclude list. This is
equivalent to the client specifying these patterns with the --exclude
option. Note that this option is not designed with strong security in
separated list of patterns to add to the exclude list. This is equivalent
to the client specifying these patterns with the --exclude option. Only
one "exclude" option may be specified, but you can use "-" and "+" before
patterns to specify exclude/include.
Note that this option is not designed with strong security in
mind, it is quite possible that a client may find a way to bypass this
exclude list. If you want to absolutely ensure that certain files
cannot be accessed then use the uid/gid options in combination with
...
...
@@ -180,11 +183,12 @@ option above.
dit(bf(include)) The "include" option allows you to specify a space
separated list of patterns which rsync should not exclude. This is
equivalent to the client specifying these patterns with the --include
option. This is useful as it allows you to build up quite complex
exclude/include rules.
option. This is useful as it allows you to build up quite complex
exclude/include rules. Only one "include" option may be specified, but you
can use "+" and "-" before patterns to switch include/exclude.
See the section of exclude patterns
for information on the syntax of
this option.
See the section of exclude patterns
in the rsync man page for information
on the syntax of
this option.
dit(bf(include from)) The "include from" option specifies a filename
on the server that contains include patterns, one per line. This is
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment