History log of /openbsd-current/usr.bin/cvs/remote.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.34 28-Nov-2021 deraadt

Stop using MAXBSIZE to eliminate sys/param.h including (which injects a
ton of namespace intrusion). Create local sizes, and refactor some code
along the way.
ok millert


Revision tags: OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.33 28-Jun-2019 deraadt

When system calls indicate an error they return -1, not some arbitrary
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.32 28-Aug-2017 otto

fix const related warnings; ok millert@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.31 05-Nov-2015 nicm

Remove xfree(), like already done for RCS. From Michael W Bombardieri,
ok mmcc


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.30 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.29 23-Jul-2010 ray

Reduce variable/function name and whitespace differences between
cvs/rcs.

OK xsa zinovik


Revision tags: OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.28 07-Apr-2009 joris

do not try to send a added file that is no longer on disk
towards the server.

problem spotted and diff tested by sthen@


# 1.27 02-Apr-2009 joris

if ce_conflict != NULL, the file should be sent
to the server for verification.

commited with opencvs,
permission by deraadt@


# 1.26 01-Apr-2009 joris

in client mode, be sure to consider the file modified if a conflict
exists in the CVS/Entries file, otherwise the server has no way
of determining if the user has resolved it or not.

also in client mode, send a conflict as �"+=" not "+" alone, so other
cvs implementations get it.

commited entirely with opencvs,
with permission by deraadt@


Revision tags: OPENBSD_4_5_BASE
# 1.25 21-Feb-2009 joris

use FILE_ON_DISK flags when we need to verify if a file
exists in the working copy or not instead of checking fd being -1
since this can differ in server or local mode.


Revision tags: OPENBSD_4_4_BASE
# 1.24 14-Jun-2008 joris

don't always re-open the same CVS/Entries file, instead keep the
last opened CVS/Entries around to operate on and close it whenever
we switch directory. gives us a small performance boost, obviously.

while doing this, switch the way we write revisions to disk by
using fwrite(3) so stuff can get written to disk in chunks
instead of writing everything line by line, another win.

with help from otto@
ok tobias@


# 1.23 12-Jun-2008 joris

completely kill the need for TMP_DIR when running checkout,
which gives us better performance among other things.

this is however disabled in a few cases:
1) whenever you run checkout over an existing tree (which acts as update)
2) whenever you specify -d or a module alias

we're planning on enabling this behaviour for case 2 in the future.

anoncvs sysadmins now love us even more.

ok tobias@


# 1.22 08-Mar-2008 joris

correct usage of lseek(2);


Revision tags: OPENBSD_4_3_BASE
# 1.21 27-Feb-2008 joris

prevent file races

ok tobias@


# 1.20 10-Feb-2008 joris

cvs_validate_directory() was too paranoia


# 1.19 10-Feb-2008 joris

use cvs_validate_directory() in cvs_get_repository_path() as well,
since we want to make sure we have valid CVS/Repository content

ok tobias@


# 1.18 10-Feb-2008 joris

introduce cvs_validate_directory(), which is used to check
directory path to make sure they do not fall outside the CVSROOT
or the working copy directory in a remote setup


# 1.17 17-Sep-2007 tobias

Imported atomicio interface.

Requested by ray@, OK joris@


# 1.16 02-Sep-2007 tobias

Log all commands sent with cvs_remote_output(), not just
cvs_client_send_request(). Simplified logging code while at it.

OK joris@


Revision tags: OPENBSD_4_2_BASE
# 1.15 16-May-2007 xsa

In remote setup, write sent files to inlog (if specified) instead of outlog.
Matches GNU CVS' behaviour. From Tobias Stoeckmann.


Revision tags: OPENBSD_4_1_BASE
# 1.14 22-Feb-2007 otto

general includes cleanup sweep. ok joris@ niallo@


# 1.13 31-Jan-2007 xsa

snprintf() -> xsnprintf()


# 1.12 26-Jan-2007 joris

Handle CVS/Entries and file timestamp correctly so we do
not mistakenly see a file as Modified while it is not.

As a result, we can remove the very hackish cvs_hack_time() and
GNU cvs and opencvs should almost get along now.

lotsa help and okay The otto@


# 1.11 26-Jan-2007 otto

modestring can be 18 long


# 1.10 25-Jan-2007 otto

use more stack allocations for fixed size buffers. ok xsa@ joris@


# 1.9 25-Jan-2007 otto

plug a mem leak and wrong usage of strlcpy after fgetln. since fgetln
does not NUL-terminate, it is not ok to use strlcpy on the buffer.
ok opencvsgang@


# 1.8 24-Jan-2007 otto

user proper format string for size_t; file size is off_t; ok joris@


# 1.7 18-Jan-2007 joris

import improvements:
- add support for remote import in opencvs client and server.
- do not free already free'd buffers in import_update()
- do not append a '\0' to the loaded file buffer, this was bad behaviour

makes import work fine both locally and remotely.


# 1.6 13-Jan-2007 joris

- remote update now works again, with new rcs api
- we no longer hold the entire file in memory when sending or receiving it


# 1.5 03-Jan-2007 joris

fix CVS_CLIENT_LOG logging, we were missing parts
which was making it very hard to correctly debug remote connections.


Revision tags: OPENBSD_4_0_BASE
# 1.4 10-Jul-2006 joris

handle 0 sized files correctly, tested by brad@ thanks


# 1.3 09-Jul-2006 joris

more straightforward trace (-t) output, too much is just too noisy.


# 1.2 08-Jul-2006 joris

allow update in remote mode to work a bit better and
create any missing directories or new directories with -d


# 1.1 07-Jul-2006 joris

first part of opencvs remote, fairly useable on existing trees
although i advise against using it on real development trees for now.

only a few commands work right so far:
- commit
- diff
- status
- log
- update (partially working)

if you feel like testing remote and run into bugs feel free to
contact me, and please include a full trace (-t).


# 1.33 28-Jun-2019 deraadt

When system calls indicate an error they return -1, not some arbitrary
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.32 28-Aug-2017 otto

fix const related warnings; ok millert@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.31 05-Nov-2015 nicm

Remove xfree(), like already done for RCS. From Michael W Bombardieri,
ok mmcc


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.30 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.29 23-Jul-2010 ray

Reduce variable/function name and whitespace differences between
cvs/rcs.

OK xsa zinovik


Revision tags: OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.28 07-Apr-2009 joris

do not try to send a added file that is no longer on disk
towards the server.

problem spotted and diff tested by sthen@


# 1.27 02-Apr-2009 joris

if ce_conflict != NULL, the file should be sent
to the server for verification.

commited with opencvs,
permission by deraadt@


# 1.26 01-Apr-2009 joris

in client mode, be sure to consider the file modified if a conflict
exists in the CVS/Entries file, otherwise the server has no way
of determining if the user has resolved it or not.

also in client mode, send a conflict as �"+=" not "+" alone, so other
cvs implementations get it.

commited entirely with opencvs,
with permission by deraadt@


Revision tags: OPENBSD_4_5_BASE
# 1.25 21-Feb-2009 joris

use FILE_ON_DISK flags when we need to verify if a file
exists in the working copy or not instead of checking fd being -1
since this can differ in server or local mode.


Revision tags: OPENBSD_4_4_BASE
# 1.24 14-Jun-2008 joris

don't always re-open the same CVS/Entries file, instead keep the
last opened CVS/Entries around to operate on and close it whenever
we switch directory. gives us a small performance boost, obviously.

while doing this, switch the way we write revisions to disk by
using fwrite(3) so stuff can get written to disk in chunks
instead of writing everything line by line, another win.

with help from otto@
ok tobias@


# 1.23 12-Jun-2008 joris

completely kill the need for TMP_DIR when running checkout,
which gives us better performance among other things.

this is however disabled in a few cases:
1) whenever you run checkout over an existing tree (which acts as update)
2) whenever you specify -d or a module alias

we're planning on enabling this behaviour for case 2 in the future.

anoncvs sysadmins now love us even more.

ok tobias@


# 1.22 08-Mar-2008 joris

correct usage of lseek(2);


Revision tags: OPENBSD_4_3_BASE
# 1.21 27-Feb-2008 joris

prevent file races

ok tobias@


# 1.20 10-Feb-2008 joris

cvs_validate_directory() was too paranoia


# 1.19 10-Feb-2008 joris

use cvs_validate_directory() in cvs_get_repository_path() as well,
since we want to make sure we have valid CVS/Repository content

ok tobias@


# 1.18 10-Feb-2008 joris

introduce cvs_validate_directory(), which is used to check
directory path to make sure they do not fall outside the CVSROOT
or the working copy directory in a remote setup


# 1.17 17-Sep-2007 tobias

Imported atomicio interface.

Requested by ray@, OK joris@


# 1.16 02-Sep-2007 tobias

Log all commands sent with cvs_remote_output(), not just
cvs_client_send_request(). Simplified logging code while at it.

OK joris@


Revision tags: OPENBSD_4_2_BASE
# 1.15 16-May-2007 xsa

In remote setup, write sent files to inlog (if specified) instead of outlog.
Matches GNU CVS' behaviour. From Tobias Stoeckmann.


Revision tags: OPENBSD_4_1_BASE
# 1.14 22-Feb-2007 otto

general includes cleanup sweep. ok joris@ niallo@


# 1.13 31-Jan-2007 xsa

snprintf() -> xsnprintf()


# 1.12 26-Jan-2007 joris

Handle CVS/Entries and file timestamp correctly so we do
not mistakenly see a file as Modified while it is not.

As a result, we can remove the very hackish cvs_hack_time() and
GNU cvs and opencvs should almost get along now.

lotsa help and okay The otto@


# 1.11 26-Jan-2007 otto

modestring can be 18 long


# 1.10 25-Jan-2007 otto

use more stack allocations for fixed size buffers. ok xsa@ joris@


# 1.9 25-Jan-2007 otto

plug a mem leak and wrong usage of strlcpy after fgetln. since fgetln
does not NUL-terminate, it is not ok to use strlcpy on the buffer.
ok opencvsgang@


# 1.8 24-Jan-2007 otto

user proper format string for size_t; file size is off_t; ok joris@


# 1.7 18-Jan-2007 joris

import improvements:
- add support for remote import in opencvs client and server.
- do not free already free'd buffers in import_update()
- do not append a '\0' to the loaded file buffer, this was bad behaviour

makes import work fine both locally and remotely.


# 1.6 13-Jan-2007 joris

- remote update now works again, with new rcs api
- we no longer hold the entire file in memory when sending or receiving it


# 1.5 03-Jan-2007 joris

fix CVS_CLIENT_LOG logging, we were missing parts
which was making it very hard to correctly debug remote connections.


Revision tags: OPENBSD_4_0_BASE
# 1.4 10-Jul-2006 joris

handle 0 sized files correctly, tested by brad@ thanks


# 1.3 09-Jul-2006 joris

more straightforward trace (-t) output, too much is just too noisy.


# 1.2 08-Jul-2006 joris

allow update in remote mode to work a bit better and
create any missing directories or new directories with -d


# 1.1 07-Jul-2006 joris

first part of opencvs remote, fairly useable on existing trees
although i advise against using it on real development trees for now.

only a few commands work right so far:
- commit
- diff
- status
- log
- update (partially working)

if you feel like testing remote and run into bugs feel free to
contact me, and please include a full trace (-t).


Revision tags: OPENBSD_6_2_BASE
# 1.32 28-Aug-2017 otto

fix const related warnings; ok millert@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE
# 1.31 05-Nov-2015 nicm

Remove xfree(), like already done for RCS. From Michael W Bombardieri,
ok mmcc


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.30 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.29 23-Jul-2010 ray

Reduce variable/function name and whitespace differences between
cvs/rcs.

OK xsa zinovik


Revision tags: OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.28 07-Apr-2009 joris

do not try to send a added file that is no longer on disk
towards the server.

problem spotted and diff tested by sthen@


# 1.27 02-Apr-2009 joris

if ce_conflict != NULL, the file should be sent
to the server for verification.

commited with opencvs,
permission by deraadt@


# 1.26 01-Apr-2009 joris

in client mode, be sure to consider the file modified if a conflict
exists in the CVS/Entries file, otherwise the server has no way
of determining if the user has resolved it or not.

also in client mode, send a conflict as �"+=" not "+" alone, so other
cvs implementations get it.

commited entirely with opencvs,
with permission by deraadt@


Revision tags: OPENBSD_4_5_BASE
# 1.25 21-Feb-2009 joris

use FILE_ON_DISK flags when we need to verify if a file
exists in the working copy or not instead of checking fd being -1
since this can differ in server or local mode.


Revision tags: OPENBSD_4_4_BASE
# 1.24 14-Jun-2008 joris

don't always re-open the same CVS/Entries file, instead keep the
last opened CVS/Entries around to operate on and close it whenever
we switch directory. gives us a small performance boost, obviously.

while doing this, switch the way we write revisions to disk by
using fwrite(3) so stuff can get written to disk in chunks
instead of writing everything line by line, another win.

with help from otto@
ok tobias@


# 1.23 12-Jun-2008 joris

completely kill the need for TMP_DIR when running checkout,
which gives us better performance among other things.

this is however disabled in a few cases:
1) whenever you run checkout over an existing tree (which acts as update)
2) whenever you specify -d or a module alias

we're planning on enabling this behaviour for case 2 in the future.

anoncvs sysadmins now love us even more.

ok tobias@


# 1.22 08-Mar-2008 joris

correct usage of lseek(2);


Revision tags: OPENBSD_4_3_BASE
# 1.21 27-Feb-2008 joris

prevent file races

ok tobias@


# 1.20 10-Feb-2008 joris

cvs_validate_directory() was too paranoia


# 1.19 10-Feb-2008 joris

use cvs_validate_directory() in cvs_get_repository_path() as well,
since we want to make sure we have valid CVS/Repository content

ok tobias@


# 1.18 10-Feb-2008 joris

introduce cvs_validate_directory(), which is used to check
directory path to make sure they do not fall outside the CVSROOT
or the working copy directory in a remote setup


# 1.17 17-Sep-2007 tobias

Imported atomicio interface.

Requested by ray@, OK joris@


# 1.16 02-Sep-2007 tobias

Log all commands sent with cvs_remote_output(), not just
cvs_client_send_request(). Simplified logging code while at it.

OK joris@


Revision tags: OPENBSD_4_2_BASE
# 1.15 16-May-2007 xsa

In remote setup, write sent files to inlog (if specified) instead of outlog.
Matches GNU CVS' behaviour. From Tobias Stoeckmann.


Revision tags: OPENBSD_4_1_BASE
# 1.14 22-Feb-2007 otto

general includes cleanup sweep. ok joris@ niallo@


# 1.13 31-Jan-2007 xsa

snprintf() -> xsnprintf()


# 1.12 26-Jan-2007 joris

Handle CVS/Entries and file timestamp correctly so we do
not mistakenly see a file as Modified while it is not.

As a result, we can remove the very hackish cvs_hack_time() and
GNU cvs and opencvs should almost get along now.

lotsa help and okay The otto@


# 1.11 26-Jan-2007 otto

modestring can be 18 long


# 1.10 25-Jan-2007 otto

use more stack allocations for fixed size buffers. ok xsa@ joris@


# 1.9 25-Jan-2007 otto

plug a mem leak and wrong usage of strlcpy after fgetln. since fgetln
does not NUL-terminate, it is not ok to use strlcpy on the buffer.
ok opencvsgang@


# 1.8 24-Jan-2007 otto

user proper format string for size_t; file size is off_t; ok joris@


# 1.7 18-Jan-2007 joris

import improvements:
- add support for remote import in opencvs client and server.
- do not free already free'd buffers in import_update()
- do not append a '\0' to the loaded file buffer, this was bad behaviour

makes import work fine both locally and remotely.


# 1.6 13-Jan-2007 joris

- remote update now works again, with new rcs api
- we no longer hold the entire file in memory when sending or receiving it


# 1.5 03-Jan-2007 joris

fix CVS_CLIENT_LOG logging, we were missing parts
which was making it very hard to correctly debug remote connections.


Revision tags: OPENBSD_4_0_BASE
# 1.4 10-Jul-2006 joris

handle 0 sized files correctly, tested by brad@ thanks


# 1.3 09-Jul-2006 joris

more straightforward trace (-t) output, too much is just too noisy.


# 1.2 08-Jul-2006 joris

allow update in remote mode to work a bit better and
create any missing directories or new directories with -d


# 1.1 07-Jul-2006 joris

first part of opencvs remote, fairly useable on existing trees
although i advise against using it on real development trees for now.

only a few commands work right so far:
- commit
- diff
- status
- log
- update (partially working)

if you feel like testing remote and run into bugs feel free to
contact me, and please include a full trace (-t).