This commit is contained in:
elvis
2022-04-17 23:50:38 +02:00
parent 5642ad4906
commit 3bf2a13e89
3 changed files with 41 additions and 26 deletions

View File

@ -17,6 +17,11 @@
char * char *
strsep_gnu (char **stringp, const char *delim) strsep_gnu (char **stringp, const char *delim)
{ {
#if defined(__APPLE__) || defined(__FreeBSD__)
return strsep(stringp, delim);
#endif /* __APPLE__ or __FreeBSD__ */
#if defined(__linux__)
char *begin, *end; char *begin, *end;
begin = *stringp; begin = *stringp;
if (begin == NULL) if (begin == NULL)
@ -33,4 +38,5 @@ strsep_gnu (char **stringp, const char *delim)
/* No more delimiters; this is the last token. */ /* No more delimiters; this is the last token. */
*stringp = NULL; *stringp = NULL;
return begin; return begin;
#endif /* __linux__ */
} }

View File

@ -5,6 +5,9 @@
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <time.h> #include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fts.h>
#include <api.h> #include <api.h>
@ -51,7 +54,20 @@ void cleanup() {
// -h // -h
static void usage(const char *argv0) { static void usage(const char *argv0) {
// TODO change this // TODO change this
fprintf(stdout, "use: %s <config file location>\n", argv0); printf("Uso: %s\n", argv0);
printf("-h: stampa il presente messaggio d'aiuto.\n");
printf("-f filename: connettiti al socket AF_UNIX 'filename'.\n");
printf("-w dirname[,n=0]: invia al server 'n' file nella cartella 'dirname'. Se n=0 o non e' specificato, tenta di inviare tutti i file al server.\n");
printf("-W file1[,file2]: scrivi sul server una lista di file, separati da virgole.\n");
printf("-D dirname: specifica la cartella dove scrivere i file espulsi dal server in seguito a capacity misses.\n");
printf("-r file1[,file2]: leggi dal server una lista di nomi di file, separati da virgole.\n");
printf("-R [n=0]: leggi dal server 'n' file qualsiasi. Se n=0 o non e' specificato, leggi tutti i file presenti nel server per i quali si hanno i permessi necessari.\n");
printf("-d dirname: cartella dove scrivere i file letti dal server con i comandi '-r' o '-R'.\n");
printf("-t time: se specificato, fra le richieste successive al server vi sara' un'attesa di 'time' millisecondi.\n");
printf("-l file1[,file2]: acquisisci la mutua esclusione su una lista di file, separati da virgole.\n");
printf("-u file1[,file2]: rilascia la mutua esclusione su una lista di file, separati da virgole.\n");
printf("-c file1[,file2]: rimuovi dal server una lista di file (se presenti), separati da virgole.\n");
printf("-p: stampa sullo standard output le informazioni riguardo ogni operazione effettuata.\n");
} }
// -f // -f
@ -466,6 +482,10 @@ int cmd_f(char *socket) {
} }
int cmd_w(char *dirname, char *Dir, int print) { int cmd_w(char *dirname, char *Dir, int print) {
if(!dirname) {
errno = EINVAL;
return -1;
}
return 0; return 0;
} }

View File

@ -14,10 +14,7 @@
#include <taglialegna.h> #include <taglialegna.h>
#include <serverWorker.h> #include <serverWorker.h>
#include <threadpool.h> #include <threadpool.h>
#if defined(__linux__)
#include <strsep_gnu.h> #include <strsep_gnu.h>
#endif /* __linux__ */
int parser(int len, char *command, queueT *queue, long fd_c, taglia_t* taglia, pthread_mutex_t *lock, waiting_t **waiting); int parser(int len, char *command, queueT *queue, long fd_c, taglia_t* taglia, pthread_mutex_t *lock, waiting_t **waiting);
@ -155,17 +152,9 @@ int parser(int len, char *command, queueT *queue, long fd_c, taglia_t* taglia, p
char *token2 = NULL; char *token2 = NULL;
char *token3 = NULL; char *token3 = NULL;
#if defined(__APPLE__) || defined(__FreeBSD__)
token = strsep(&string, "|");
token2 = strsep(&string, "|");
token3 = strsep(&string, "|");
#endif /* __APPLE__ or __FreeBSD__ */
#if defined(__linux__)
token = strsep_gnu(&string, "|"); token = strsep_gnu(&string, "|");
token2 = strsep_gnu(&string, "|"); token2 = strsep_gnu(&string, "|");
token3 = strsep_gnu(&string, "|"); token3 = strsep_gnu(&string, "|");
#endif
if(!token) if(!token)
goto _parser_cleanup; goto _parser_cleanup;