projects
/
paraslash.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
server: Include git version in output of com_si().
[paraslash.git]
/
command.c
diff --git
a/command.c
b/command.c
index bbe0441bfef43c339c499cb197cffd64b0fec5eb..5217f9b487cd260aebe5d5a986f4fd8e957b0270 100644
(file)
--- a/
command.c
+++ b/
command.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 1997-20
09
Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-20
11
Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
@@
-13,6
+13,7
@@
#include <dirent.h>
#include <openssl/rc4.h>
#include <osl.h>
#include <dirent.h>
#include <openssl/rc4.h>
#include <osl.h>
+#include <stdbool.h>
#include "para.h"
#include "error.h"
#include "para.h"
#include "error.h"
@@
-23,9
+24,9
@@
#include "afh.h"
#include "afs.h"
#include "server.h"
#include "afh.h"
#include "afs.h"
#include "server.h"
-#include "vss.h"
#include "list.h"
#include "send.h"
#include "list.h"
#include "send.h"
+#include "vss.h"
#include "rc4.h"
#include "net.h"
#include "daemon.h"
#include "rc4.h"
#include "net.h"
#include "daemon.h"
@@
-191,10
+192,10
@@
static int check_sender_args(int argc, char * const * argv, struct sender_comman
int com_sender(struct rc4_context *rc4c, int argc, char * const * argv)
{
int i, ret;
int com_sender(struct rc4_context *rc4c, int argc, char * const * argv)
{
int i, ret;
+ char *msg = NULL;
struct sender_command_data scd;
if (argc < 2) {
struct sender_command_data scd;
if (argc < 2) {
- char *msg = NULL;
for (i = 0; senders[i].name; i++) {
char *tmp = make_message("%s%s\n",
msg? msg : "", senders[i].name);
for (i = 0; senders[i].name; i++) {
char *tmp = make_message("%s%s\n",
msg? msg : "", senders[i].name);
@@
-207,7
+208,6
@@
int com_sender(struct rc4_context *rc4c, int argc, char * const * argv)
}
ret = check_sender_args(argc, argv, &scd);
if (ret < 0) {
}
ret = check_sender_args(argc, argv, &scd);
if (ret < 0) {
- char *msg;
if (scd.sender_num < 0)
return ret;
msg = senders[scd.sender_num].help();
if (scd.sender_num < 0)
return ret;
msg = senders[scd.sender_num].help();
@@
-215,6
+215,16
@@
int com_sender(struct rc4_context *rc4c, int argc, char * const * argv)
free(msg);
return ret;
}
free(msg);
return ret;
}
+
+ switch (scd.cmd_num) {
+ case SENDER_ADD:
+ case SENDER_DELETE:
+ assert(senders[scd.sender_num].resolve_target);
+ ret = senders[scd.sender_num].resolve_target(argv[3], &scd);
+ if (ret < 0)
+ return ret;
+ }
+
for (i = 0; i < 10; i++) {
mutex_lock(mmd_mutex);
if (mmd->sender_cmd_data.cmd_num >= 0) {
for (i = 0; i < 10; i++) {
mutex_lock(mmd_mutex);
if (mmd->sender_cmd_data.cmd_num >= 0) {
@@
-245,7
+255,8
@@
int com_si(struct rc4_context *rc4c, int argc, __a_unused char * const * argv)
free(info);
}
ut = uptime_str();
free(info);
}
ut = uptime_str();
- ret = rc4_send_va_buffer(rc4c, "up: %s\nplayed: %u\n"
+ ret = rc4_send_va_buffer(rc4c, "version: " GIT_VERSION "\n"
+ "up: %s\nplayed: %u\n"
"server_pid: %d\n"
"afs_pid: %d\n"
"connections (active/accepted/total): %u/%u/%u\n"
"server_pid: %d\n"
"afs_pid: %d\n"
"connections (active/accepted/total): %u/%u/%u\n"
@@
-259,7
+270,7
@@
int com_si(struct rc4_context *rc4c, int argc, __a_unused char * const * argv)
mmd->num_commands,
mmd->num_connects,
conf.loglevel_arg,
mmd->num_commands,
mmd->num_connects,
conf.loglevel_arg,
-
supported_audio_formats()
,
+
SERVER_AUDIO_FORMATS
,
sender_info
);
mutex_unlock(mmd_mutex);
sender_info
);
mutex_unlock(mmd_mutex);
@@
-448,10
+459,8
@@
int com_help(struct rc4_context *rc4c, int argc, char * const * argv)
}
/* argument given for help */
cmd = get_cmd_ptr(argv[1], &handler);
}
/* argument given for help */
cmd = get_cmd_ptr(argv[1], &handler);
- if (!cmd) {
- free(handler);
+ if (!cmd)
return -E_BAD_CMD;
return -E_BAD_CMD;
- }
perms = cmd_perms_itohuman(cmd->perms);
ret = rc4_send_va_buffer(rc4c,
"%s - %s\n\n"
perms = cmd_perms_itohuman(cmd->perms);
ret = rc4_send_va_buffer(rc4c,
"%s - %s\n\n"
@@
-735,24
+744,24
@@
__noreturn void handle_connect(int fd, const char *peername)
/* we need a blocking fd here as recv() might return EAGAIN otherwise. */
ret = mark_fd_blocking(fd);
if (ret < 0)
/* we need a blocking fd here as recv() might return EAGAIN otherwise. */
ret = mark_fd_blocking(fd);
if (ret < 0)
- goto
err_out
;
+ goto
net_err
;
/* send Welcome message */
ret = send_va_buffer(fd, "This is para_server, version "
PACKAGE_VERSION ".\n" );
if (ret < 0)
/* send Welcome message */
ret = send_va_buffer(fd, "This is para_server, version "
PACKAGE_VERSION ".\n" );
if (ret < 0)
- goto
err_out
;
+ goto
net_err
;
/* recv auth request line */
ret = recv_buffer(fd, buf, sizeof(buf));
if (ret < 0)
/* recv auth request line */
ret = recv_buffer(fd, buf, sizeof(buf));
if (ret < 0)
- goto
err_out
;
+ goto
net_err
;
if (ret < 10) {
ret = -E_AUTH_REQUEST;
if (ret < 10) {
ret = -E_AUTH_REQUEST;
- goto
err_out
;
+ goto
net_err
;
}
numbytes = ret;
ret = -E_AUTH_REQUEST;
if (strncmp(buf, AUTH_REQUEST_MSG, strlen(AUTH_REQUEST_MSG)))
}
numbytes = ret;
ret = -E_AUTH_REQUEST;
if (strncmp(buf, AUTH_REQUEST_MSG, strlen(AUTH_REQUEST_MSG)))
- goto
err_out
;
+ goto
net_err
;
p = buf + strlen(AUTH_REQUEST_MSG);
PARA_DEBUG_LOG("received auth request for user %s\n", p);
ret = -E_BAD_USER;
p = buf + strlen(AUTH_REQUEST_MSG);
PARA_DEBUG_LOG("received auth request for user %s\n", p);
ret = -E_BAD_USER;
@@
-762,7
+771,7
@@
__noreturn void handle_connect(int fd, const char *peername)
ret = para_encrypt_buffer(u->rsa, rand_buf, sizeof(rand_buf),
(unsigned char *)buf);
if (ret < 0)
ret = para_encrypt_buffer(u->rsa, rand_buf, sizeof(rand_buf),
(unsigned char *)buf);
if (ret < 0)
- goto
err_out
;
+ goto
net_err
;
numbytes = ret;
} else {
/*
numbytes = ret;
} else {
/*