/*
* Command-line utility to transmit a server command.
*
- * Copyright (c) 1987-2012 by the citadel.org team
+ * Copyright (c) 1987-2021 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.
#include <sys/socket.h>
#include <sys/un.h>
#include "citadel.h"
-#include "include/citadel_dirs.h"
+#include "citadel_dirs.h"
#include <libcitadel.h>
int serv_sock = (-1);
int watchdog = 60;
char buf[SIZ];
int xfermode = 0;
- int relh=0;
- int home=0;
- char relhome[PATH_MAX]="";
char ctdldir[PATH_MAX]=CTDLDIR;
StartLibCitadel(SIZ);
while ((a = getopt(argc, argv, "h:w:")) != EOF) {
switch (a) {
case 'h':
- relh=optarg[0]!='/';
- if (!relh) {
- strncpy(ctdl_home_directory, optarg, sizeof ctdl_home_directory);
- } else {
- strncpy(relhome, optarg, sizeof relhome);
- }
- home = 1;
+ strncpy(ctdldir, optarg, sizeof ctdldir);
break;
case 'w':
watchdog = atoi(optarg);
}
}
- calc_dirs_n_files(relh, home, relhome, ctdldir, 0);
-
- fprintf(stderr, "sendcommand: started (pid=%d) connecting to Citadel server at %s\n",
+ fprintf(stderr, "sendcommand: started (pid=%d) connecting to Citadel server with data directory %s\n",
(int) getpid(),
- file_citadel_admin_socket
+ ctdldir
);
fflush(stderr);
+ if (chdir(ctdldir) != 0) {
+ fprintf(stderr, "sendcommand: %s: %s\n", ctdldir, strerror(errno));
+ exit(errno);
+ }
+
alarm(watchdog);
serv_sock = uds_connectsock(file_citadel_admin_socket);
serv_gets(buf);