version 1.101, 2014/12/01 21:58:46 |
version 1.102, 2015/01/16 06:40:07 |
|
|
cvs_server_static_directory(char *data) |
cvs_server_static_directory(char *data) |
{ |
{ |
FILE *fp; |
FILE *fp; |
char fpath[MAXPATHLEN]; |
char fpath[PATH_MAX]; |
|
|
(void)xsnprintf(fpath, MAXPATHLEN, "%s/%s", |
(void)xsnprintf(fpath, PATH_MAX, "%s/%s", |
server_currentdir, CVS_PATH_STATICENTRIES); |
server_currentdir, CVS_PATH_STATICENTRIES); |
|
|
if ((fp = fopen(fpath, "w+")) == NULL) { |
if ((fp = fopen(fpath, "w+")) == NULL) { |
|
|
cvs_server_sticky(char *data) |
cvs_server_sticky(char *data) |
{ |
{ |
FILE *fp; |
FILE *fp; |
char tagpath[MAXPATHLEN]; |
char tagpath[PATH_MAX]; |
|
|
if (data == NULL) |
if (data == NULL) |
fatal("Missing argument for Sticky"); |
fatal("Missing argument for Sticky"); |
|
|
(void)xsnprintf(tagpath, MAXPATHLEN, "%s/%s", |
(void)xsnprintf(tagpath, PATH_MAX, "%s/%s", |
server_currentdir, CVS_PATH_TAG); |
server_currentdir, CVS_PATH_TAG); |
|
|
if ((fp = fopen(tagpath, "w+")) == NULL) { |
if ((fp = fopen(tagpath, "w+")) == NULL) { |
|
|
size_t flen; |
size_t flen; |
mode_t fmode; |
mode_t fmode; |
const char *errstr; |
const char *errstr; |
char *mode, *len, fpath[MAXPATHLEN]; |
char *mode, *len, fpath[PATH_MAX]; |
|
|
if (data == NULL) |
if (data == NULL) |
fatal("Missing argument for Modified"); |
fatal("Missing argument for Modified"); |
|
|
fatal("cvs_server_modified: %s", errstr); |
fatal("cvs_server_modified: %s", errstr); |
xfree(len); |
xfree(len); |
|
|
(void)xsnprintf(fpath, MAXPATHLEN, "%s/%s", server_currentdir, data); |
(void)xsnprintf(fpath, PATH_MAX, "%s/%s", server_currentdir, data); |
|
|
if ((fd = open(fpath, O_WRONLY | O_CREAT | O_TRUNC)) == -1) |
if ((fd = open(fpath, O_WRONLY | O_CREAT | O_TRUNC)) == -1) |
fatal("cvs_server_modified: %s: %s", fpath, strerror(errno)); |
fatal("cvs_server_modified: %s: %s", fpath, strerror(errno)); |
|
|
void |
void |
cvs_server_unchanged(char *data) |
cvs_server_unchanged(char *data) |
{ |
{ |
char fpath[MAXPATHLEN]; |
char fpath[PATH_MAX]; |
CVSENTRIES *entlist; |
CVSENTRIES *entlist; |
struct cvs_ent *ent; |
struct cvs_ent *ent; |
char sticky[CVS_ENT_MAXLINELEN]; |
char sticky[CVS_ENT_MAXLINELEN]; |
|
|
/* sorry, we have to use TMP_DIR */ |
/* sorry, we have to use TMP_DIR */ |
disable_fast_checkout = 1; |
disable_fast_checkout = 1; |
|
|
(void)xsnprintf(fpath, MAXPATHLEN, "%s/%s", server_currentdir, data); |
(void)xsnprintf(fpath, PATH_MAX, "%s/%s", server_currentdir, data); |
|
|
entlist = cvs_ent_open(server_currentdir); |
entlist = cvs_ent_open(server_currentdir); |
ent = cvs_ent_get(entlist, data); |
ent = cvs_ent_get(entlist, data); |
|
|
cvs_server_update_entry(const char *resp, struct cvs_file *cf) |
cvs_server_update_entry(const char *resp, struct cvs_file *cf) |
{ |
{ |
char *p; |
char *p; |
char repo[MAXPATHLEN], fpath[MAXPATHLEN]; |
char repo[PATH_MAX], fpath[PATH_MAX]; |
|
|
if ((p = strrchr(cf->file_rpath, ',')) != NULL) |
if ((p = strrchr(cf->file_rpath, ',')) != NULL) |
*p = '\0'; |
*p = '\0'; |
|
|
cvs_get_repository_path(cf->file_wd, repo, MAXPATHLEN); |
cvs_get_repository_path(cf->file_wd, repo, PATH_MAX); |
(void)xsnprintf(fpath, MAXPATHLEN, "%s/%s", repo, cf->file_name); |
(void)xsnprintf(fpath, PATH_MAX, "%s/%s", repo, cf->file_name); |
|
|
cvs_server_send_response("%s %s/", resp, cf->file_wd); |
cvs_server_send_response("%s %s/", resp, cf->file_wd); |
cvs_remote_output(fpath); |
cvs_remote_output(fpath); |
|
|
void |
void |
cvs_server_set_sticky(const char *dir, const char *tag) |
cvs_server_set_sticky(const char *dir, const char *tag) |
{ |
{ |
char fpath[MAXPATHLEN]; |
char fpath[PATH_MAX]; |
char repo[MAXPATHLEN]; |
char repo[PATH_MAX]; |
|
|
cvs_get_repository_path(dir, repo, MAXPATHLEN); |
cvs_get_repository_path(dir, repo, PATH_MAX); |
(void)xsnprintf(fpath, MAXPATHLEN, "%s/", repo); |
(void)xsnprintf(fpath, PATH_MAX, "%s/", repo); |
|
|
cvs_server_send_response("Set-sticky %s/", dir); |
cvs_server_send_response("Set-sticky %s/", dir); |
cvs_remote_output(fpath); |
cvs_remote_output(fpath); |
|
|
void |
void |
cvs_server_clear_sticky(char *dir) |
cvs_server_clear_sticky(char *dir) |
{ |
{ |
char fpath[MAXPATHLEN]; |
char fpath[PATH_MAX]; |
char repo[MAXPATHLEN]; |
char repo[PATH_MAX]; |
|
|
cvs_get_repository_path(dir, repo, MAXPATHLEN); |
cvs_get_repository_path(dir, repo, PATH_MAX); |
(void)xsnprintf(fpath, MAXPATHLEN, "%s/", repo); |
(void)xsnprintf(fpath, PATH_MAX, "%s/", repo); |
|
|
cvs_server_send_response("Clear-sticky %s//", dir); |
cvs_server_send_response("Clear-sticky %s//", dir); |
cvs_remote_output(fpath); |
cvs_remote_output(fpath); |