From: Art Cancro Date: Fri, 16 Sep 2022 14:36:49 +0000 (-0400) Subject: Style update to server/modules/ctdlproto/serv_file.c X-Git-Tag: v958~8 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=825c7f252d4444c13e93bd44a95540e17481145a;p=citadel.git Style update to server/modules/ctdlproto/serv_file.c --- diff --git a/citadel/citadel.lock b/citadel/citadel.lock deleted file mode 100644 index e69de29bb..000000000 diff --git a/citadel/server/modules/ctdlproto/serv_file.c b/citadel/server/modules/ctdlproto/serv_file.c index 177a957d6..230b65476 100644 --- a/citadel/server/modules/ctdlproto/serv_file.c +++ b/citadel/server/modules/ctdlproto/serv_file.c @@ -1,16 +1,9 @@ -/* - * Server functions which handle file transfers and room directories. - * - * Copyright (c) 1987-2022 by the citadel.org team - * - * This program is open source software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ +// Server functions which handle file transfers and room directories. +// +// Copyright (c) 1987-2022 by the citadel.org team +// +// This program is open source software. Use, duplication, or disclosure +// is subject to the terms of the GNU General Public License, version 3. #include #include @@ -27,11 +20,8 @@ #include "../../user_ops.h" -/* - * Server command to delete a file from a room's directory - */ -void cmd_delf(char *filename) -{ +// Server command to delete a file from a room's directory +void cmd_delf(char *filename) { char pathname[64]; int a; @@ -48,15 +38,11 @@ void cmd_delf(char *filename) return; } for (a = 0; !IsEmptyStr(&filename[a]); ++a) { - if ( (filename[a] == '/') || (filename[a] == '\\') ) { + if ((filename[a] == '/') || (filename[a] == '\\')) { filename[a] = '_'; } } - snprintf(pathname, sizeof pathname, - "%s/%s/%s", - ctdl_file_dir, - CC->room.QRdirname, filename - ); + snprintf(pathname, sizeof pathname, "%s/%s/%s", ctdl_file_dir, CC->room.QRdirname, filename); a = unlink(pathname); if (a == 0) { cprintf("%d File '%s' deleted.\n", CIT_OK, pathname); @@ -67,11 +53,8 @@ void cmd_delf(char *filename) } -/* - * move a file from one room directory to another - */ -void cmd_movf(char *cmdbuf) -{ +// move a file from one room directory to another +void cmd_movf(char *cmdbuf) { char filename[PATH_MAX]; char pathname[PATH_MAX]; char newpath[PATH_MAX]; @@ -83,7 +66,8 @@ void cmd_movf(char *cmdbuf) extract_token(filename, cmdbuf, 0, '|', sizeof filename); extract_token(newroom, cmdbuf, 1, '|', sizeof newroom); - if (CtdlAccessCheck(ac_room_aide)) return; + if (CtdlAccessCheck(ac_room_aide)) + return; if ((CC->room.QRflags & QR_DIRECTORY) == 0) { cprintf("%d No directory in this room.\n", ERROR + NOT_HERE); @@ -96,7 +80,7 @@ void cmd_movf(char *cmdbuf) } for (a = 0; !IsEmptyStr(&filename[a]); ++a) { - if ( (filename[a] == '/') || (filename[a] == '\\') ) { + if ((filename[a] == '/') || (filename[a] == '\\')) { filename[a] = '_'; } } @@ -121,22 +105,20 @@ void cmd_movf(char *cmdbuf) } unlink(pathname); - /* this is a crude method of copying the file description */ - snprintf(buf, sizeof buf, "cat ./files/%s/filedir |grep \"%s\" >>./files/%s/filedir", CC->room.QRdirname, filename, qrbuf.QRdirname); + // this is a crude method of copying the file description + snprintf(buf, sizeof buf, "cat ./files/%s/filedir |grep \"%s\" >>./files/%s/filedir", CC->room.QRdirname, filename, + qrbuf.QRdirname); system(buf); cprintf("%d File '%s' has been moved.\n", CIT_OK, filename); } -/* - * This code is common to all commands which open a file for downloading, - * regardless of whether it's a file from the directory, an image, a network - * spool file, a MIME attachment, etc. - * It examines the file and displays the OK result code and some information - * about the file. NOTE: this stuff is Unix dependent. - */ -void OpenCmdResult(char *filename, const char *mime_type) -{ +// This code is common to all commands which open a file for downloading, +// regardless of whether it's a file from the directory, an image, a network +// spool file, a MIME attachment, etc. +// It examines the file and displays the OK result code and some information +// about the file. NOTE: this stuff is Unix dependent. +void OpenCmdResult(char *filename, const char *mime_type) { struct stat statbuf; time_t modtime; long filesize; @@ -146,22 +128,20 @@ void OpenCmdResult(char *filename, const char *mime_type) filesize = (long) statbuf.st_size; modtime = (time_t) statbuf.st_mtime; - cprintf("%d %ld|%ld|%s|%s\n", CIT_OK, filesize, (long)modtime, filename, mime_type); + cprintf("%d %ld|%ld|%s|%s\n", CIT_OK, filesize, (long) modtime, filename, mime_type); } -/* - * open a file for downloading - */ -void cmd_open(char *cmdbuf) -{ +// open a file for downloading +void cmd_open(char *cmdbuf) { char filename[256]; char pathname[PATH_MAX]; int a; extract_token(filename, cmdbuf, 0, '|', sizeof filename); - if (CtdlAccessCheck(ac_logged_in)) return; + if (CtdlAccessCheck(ac_logged_in)) + return; if ((CC->room.QRflags & QR_DIRECTORY) == 0) { cprintf("%d No directory in this room.\n", ERROR + NOT_HERE); @@ -172,8 +152,7 @@ void cmd_open(char *cmdbuf) cprintf("%d You must specify a file name.\n", ERROR + FILE_NOT_FOUND); return; } - if (strstr(filename, "../") != NULL) - { + if (strstr(filename, "../") != NULL) { cprintf("%d syntax error.\n", ERROR + ILLEGAL_VALUE); return; } @@ -184,7 +163,7 @@ void cmd_open(char *cmdbuf) } for (a = 0; !IsEmptyStr(&filename[a]); ++a) { - if ( (filename[a] == '/') || (filename[a] == '\\') ) { + if ((filename[a] == '/') || (filename[a] == '\\')) { filename[a] = '_'; } } @@ -201,11 +180,8 @@ void cmd_open(char *cmdbuf) } -/* - * open an image file - */ -void cmd_oimg(char *cmdbuf) -{ +// open an image file +void cmd_oimg(char *cmdbuf) { char filename[PATH_MAX]; char pathname[PATH_MAX]; char MimeTestBuf[32]; @@ -238,23 +214,21 @@ void cmd_oimg(char *cmdbuf) return; } - rewind (CC->download_fp); + rewind(CC->download_fp); OpenCmdResult(pathname, GuessMimeType(&MimeTestBuf[0], 32)); } -/* - * open a file for uploading - */ -void cmd_uopn(char *cmdbuf) -{ +// open a file for uploading +void cmd_uopn(char *cmdbuf) { int a; extract_token(CC->upl_file, cmdbuf, 0, '|', sizeof CC->upl_file); extract_token(CC->upl_mimetype, cmdbuf, 1, '|', sizeof CC->upl_mimetype); extract_token(CC->upl_comment, cmdbuf, 2, '|', sizeof CC->upl_comment); - if (CtdlAccessCheck(ac_logged_in)) return; + if (CtdlAccessCheck(ac_logged_in)) + return; if ((CC->room.QRflags & QR_DIRECTORY) == 0) { cprintf("%d No directory in this room.\n", ERROR + NOT_HERE); @@ -272,7 +246,7 @@ void cmd_uopn(char *cmdbuf) } for (a = 0; !IsEmptyStr(&CC->upl_file[a]); ++a) { - if ( (CC->upl_file[a] == '/') || (CC->upl_file[a] == '\\') ) { + if ((CC->upl_file[a] == '/') || (CC->upl_file[a] == '\\')) { CC->upl_file[a] = '_'; } } @@ -296,11 +270,8 @@ void cmd_uopn(char *cmdbuf) } -/* - * open an image file for uploading - */ -void cmd_uimg(char *cmdbuf) -{ +// open an image file for uploading +void cmd_uimg(char *cmdbuf) { int is_this_for_real; char basenm[256]; int a; @@ -322,7 +293,7 @@ void cmd_uimg(char *cmdbuf) for (a = 0; !IsEmptyStr(&basenm[a]); ++a) { basenm[a] = tolower(basenm[a]); - if ( (basenm[a] == '/') || (basenm[a] == '\\') ) { + if ((basenm[a] == '/') || (basenm[a] == '\\')) { basenm[a] = '_'; } } @@ -350,11 +321,8 @@ void cmd_uimg(char *cmdbuf) } -/* - * close the download file - */ -void cmd_clos(char *cmdbuf) -{ +// close the download file +void cmd_clos(char *cmdbuf) { if (CC->download_fp == NULL) { cprintf("%d You don't have a download file open.\n", ERROR + RESOURCE_NOT_OPEN); return; @@ -366,11 +334,8 @@ void cmd_clos(char *cmdbuf) } -/* - * abort an upload - */ -void abort_upl(CitContext *who) -{ +// abort an upload +void abort_upl(CitContext * who) { if (who->upload_fp != NULL) { fclose(who->upload_fp); who->upload_fp = NULL; @@ -379,11 +344,8 @@ void abort_upl(CitContext *who) } -/* - * close the upload file - */ -void cmd_ucls(char *cmd) -{ +// close the upload file +void cmd_ucls(char *cmd) { FILE *fp; char upload_notice[SIZ]; @@ -409,31 +371,25 @@ void cmd_ucls(char *cmd) if ((CC->room.QRflags2 & QR2_NOUPLMSG) == 0) { /* put together an upload notice */ snprintf(upload_notice, sizeof upload_notice, - "NEW UPLOAD: '%s'\n %s\n%s\n", - CC->upl_file, - CC->upl_comment, - CC->upl_mimetype - ); + "NEW UPLOAD: '%s'\n %s\n%s\n", CC->upl_file, CC->upl_comment, CC->upl_mimetype); quickie_message(CC->curr_user, NULL, NULL, CC->room.QRname, upload_notice, 0, NULL); } - } else { + } + else { abort_upl(CC); cprintf("%d File '%s' aborted.\n", CIT_OK, CC->upl_path); } } -/* - * read from the download file - */ -void cmd_read(char *cmdbuf) -{ +// read from the download file +void cmd_read(char *cmdbuf) { long start_pos; size_t bytes; char buf[SIZ]; int rc; - /* The client will transmit its requested offset and byte count */ + // The client will transmit its requested offset and byte count start_pos = extract_long(cmdbuf, 0); bytes = extract_int(cmdbuf, 1); if ((start_pos < 0) || (bytes <= 0)) { @@ -446,7 +402,7 @@ void cmd_read(char *cmdbuf) return; } - /* If necessary, reduce the byte count to the size of our buffer */ + // If necessary, reduce the byte count to the size of our buffer if (bytes > sizeof(buf)) { bytes = sizeof(buf); } @@ -454,18 +410,15 @@ void cmd_read(char *cmdbuf) rc = fseek(CC->download_fp, start_pos, 0); if (rc < 0) { cprintf("%d your file is smaller than %ld.\n", ERROR + ILLEGAL_VALUE, start_pos); - syslog(LOG_ERR, "serv_file: your file %s is smaller than %ld [%s]", - CC->upl_path, - start_pos, - strerror(errno) - ); + syslog(LOG_ERR, "serv_file: your file %s is smaller than %ld [%s]", CC->upl_path, start_pos, strerror(errno) + ); return; } bytes = fread(buf, 1, bytes, CC->download_fp); if (bytes > 0) { - /* Tell the client the actual byte count and transmit it */ - cprintf("%d %d\n", BINARY_FOLLOWS, (int)bytes); + // Tell the client the actual byte count and transmit it + cprintf("%d %d\n", BINARY_FOLLOWS, (int) bytes); client_write(buf, bytes); } else { @@ -474,12 +427,8 @@ void cmd_read(char *cmdbuf) } -/* - * write to the upload file - */ -void cmd_writ(char *cmdbuf) -{ - struct CitContext *CCC = CC; +// write to the upload file +void cmd_writ(char *cmdbuf) { int bytes; char *buf; int rv; @@ -488,7 +437,7 @@ void cmd_writ(char *cmdbuf) bytes = extract_int(cmdbuf, 0); - if (CCC->upload_fp == NULL) { + if (CC->upload_fp == NULL) { cprintf("%d You don't have an upload file open.\n", ERROR + RESOURCE_NOT_OPEN); return; } @@ -504,7 +453,7 @@ void cmd_writ(char *cmdbuf) cprintf("%d %d\n", SEND_BINARY, bytes); buf = malloc(bytes + 1); client_read(buf, bytes); - rv = fwrite(buf, bytes, 1, CCC->upload_fp); + rv = fwrite(buf, bytes, 1, CC->upload_fp); if (rv == -1) { syslog(LOG_ERR, "serv_file: %s", strerror(errno)); } @@ -512,21 +461,16 @@ void cmd_writ(char *cmdbuf) } -void files_logout_hook(void) -{ - CitContext *CCC = MyContext(); +void files_logout_hook(void) { + CitContext *CCC = MyContext(); - /* - * If there is a download in progress, abort it. - */ + // If there is a download in progress, abort it. if (CCC->download_fp != NULL) { fclose(CCC->download_fp); CCC->download_fp = NULL; } - /* - * If there is an upload in progress, abort it. - */ + // If there is an upload in progress, abort it. if (CCC->upload_fp != NULL) { abort_upl(CCC); } @@ -534,11 +478,8 @@ void files_logout_hook(void) } -/* - * help_subst() - support routine for help file viewer - */ -void help_subst(char *strbuf, char *source, char *dest) -{ +// help_subst() - support routine for help file viewer +void help_subst(char *strbuf, char *source, char *dest) { char workbuf[SIZ]; int p; @@ -550,8 +491,7 @@ void help_subst(char *strbuf, char *source, char *dest) } -void do_help_subst(char *buffer) -{ +void do_help_subst(char *buffer) { char buf2[16]; help_subst(buffer, "^nodename", CtdlGetConfigStr("c_nodename")); @@ -562,17 +502,15 @@ void do_help_subst(char *buffer) help_subst(buffer, "^usernum", buf2); help_subst(buffer, "^sysadm", CtdlGetConfigStr("c_sysadm")); help_subst(buffer, "^variantname", CITADEL); - help_subst(buffer, "^maxsessions", CtdlGetConfigStr("c_maxsessions")); // yes it's numeric but str is ok here + help_subst(buffer, "^maxsessions", CtdlGetConfigStr("c_maxsessions")); // yes it's numeric but str is ok here help_subst(buffer, "^bbsdir", ctdl_message_dir); } typedef const char *ccharp; -/* - * display system messages or help - */ -void cmd_mesg(char *mname) -{ + +// display system messages or help +void cmd_mesg(char *mname) { FILE *mfp; char targ[256]; char buf[256]; @@ -584,7 +522,7 @@ void cmd_mesg(char *mname) snprintf(buf2, sizeof buf2, "%s.%d.%d", buf, CC->cs_clientdev, CC->cs_clienttyp); - /* If the client requested "?" then produce a listing */ + // If the client requested "?" then produce a listing if (!strcmp(buf, "?")) { cprintf("%d %s\n", LISTING_FOLLOWS, buf); dp = opendir(ctdl_message_dir); @@ -600,20 +538,19 @@ void cmd_mesg(char *mname) return; } - /* Otherwise, look for the requested file by name. */ + // Otherwise, look for the requested file by name. snprintf(targ, sizeof targ, "%s/%s", ctdl_message_dir, buf); mfp = fopen(targ, "r"); - if (mfp==NULL) { - cprintf("%d Cannot open '%s': %s\n", - ERROR + FILE_NOT_FOUND, targ, strerror(errno)); + if (mfp == NULL) { + cprintf("%d Cannot open '%s': %s\n", ERROR + FILE_NOT_FOUND, targ, strerror(errno)); return; } cprintf("%d %s\n", LISTING_FOLLOWS, buf); while (fgets(buf, (sizeof buf - 1), mfp) != NULL) { - buf[strlen(buf)-1] = 0; + buf[strlen(buf) - 1] = 0; do_help_subst(buf); - cprintf("%s\n",buf); + cprintf("%s\n", buf); } fclose(mfp); @@ -621,11 +558,8 @@ void cmd_mesg(char *mname) } -/* - * enter system messages or help - */ -void cmd_emsg(char *mname) -{ +// enter system messages or help +void cmd_emsg(char *mname) { FILE *mfp; char targ[256]; char buf[256]; @@ -633,11 +567,13 @@ void cmd_emsg(char *mname) unbuffer_output(); - if (CtdlAccessCheck(ac_aide)) return; + if (CtdlAccessCheck(ac_aide)) + return; extract_token(buf, mname, 0, '|', sizeof buf); - for (a=0; !IsEmptyStr(&buf[a]); ++a) { /* security measure */ - if (buf[a] == '/') buf[a] = '.'; + for (a = 0; !IsEmptyStr(&buf[a]); ++a) { // security measure + if (buf[a] == '/') + buf[a] = '.'; } if (IsEmptyStr(targ)) { @@ -645,14 +581,13 @@ void cmd_emsg(char *mname) } mfp = fopen(targ, "w"); - if (mfp==NULL) { - cprintf("%d Cannot open '%s': %s\n", - ERROR + INTERNAL_ERROR, targ, strerror(errno)); + if (mfp == NULL) { + cprintf("%d Cannot open '%s': %s\n", ERROR + INTERNAL_ERROR, targ, strerror(errno)); return; } cprintf("%d %s\n", SEND_LISTING, targ); - while (client_getln(buf, sizeof buf) >=0 && strcmp(buf, "000")) { + while (client_getln(buf, sizeof buf) >= 0 && strcmp(buf, "000")) { fprintf(mfp, "%s\n", buf); } @@ -677,6 +612,6 @@ char *ctdl_module_init_file_ops(void) { CtdlRegisterProtoHook(cmd_mesg, "MESG", "fetch system banners"); CtdlRegisterProtoHook(cmd_emsg, "EMSG", "submit system banners"); } - // return a module name for the log + // return a module name for the log return "file_ops"; }