Skip to content
Extraits de code Groupes Projets
Vérifiée Valider b9fbcd0b rédigé par Kubat's avatar Kubat
Parcourir les fichiers

Add stop function and remove magic values from lkt

parent 58874c48
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!56Search
Ce commit fait partie de la requête de fusion !56. Les commentaires créés ici seront créés dans le contexte de cette requête de fusion.
#define _POSIX_C_SOURCE 200809L
#include <lektor/defines.h>
#include <lektor/net.h>
#include <lektor/cmd.h>
#include <arpa/inet.h>
......@@ -221,11 +222,11 @@ create_socket(const char *host, const char *port)
static FILE *
lkt_connect(void)
{
char buff[1024];
size_t buff_len = 1024, recv_len;
char buff[LKT_MESSAGE_MAX];
size_t recv_len;
FILE *sock = create_socket(host, port);
recv_len = read_socket(sock, buff, buff_len);
recv_len = read_socket(sock, buff, LKT_MESSAGE_MAX);
assert(recv_len > 0);
......@@ -254,8 +255,8 @@ clear__(struct lkt_cmd_args *args)
{
if (args->argc != 0)
fail("Invalid argument, the clear command takes no arguments");
static const char *const cmd__ = "clear\nclose\n";
lkt_send_and_exit(cmd__, strlen(cmd__));
static const char cmd__[] = "clear\nclose\n";
lkt_send_and_exit(cmd__, sizeof(cmd__));
}
......@@ -264,8 +265,8 @@ next__(struct lkt_cmd_args *args)
{
if (args->argc != 0)
fail("Invalid argument, the next command takes no arguments");
static const char *const cmd__ = "next\nclose\n";
lkt_send_and_exit(cmd__, strlen(cmd__));
static const char cmd__[] = "next\nclose\n";
lkt_send_and_exit(cmd__, sizeof(cmd__)); /* In bytes. */
}
noreturn void
......@@ -273,8 +274,17 @@ prev__(struct lkt_cmd_args *args)
{
if (args->argc != 0)
fail("Invalid argument, the previous command takes no arguments");
static const char *const cmd__ = "previous\nclose\n";
lkt_send_and_exit(cmd__, strlen(cmd__));
static const char cmd__[] = "previous\nclose\n";
lkt_send_and_exit(cmd__, sizeof(cmd__)); /* In bytes. */
}
noreturn void
stop__(struct lkt_cmd_args *args)
{
if (args->argc != 0)
fail("Invalid argument, the stop command takes no arguments");
static const char cmd__[] = "stop\nclose\n";
lkt_send_and_exit(cmd__, sizeof(cmd__)); /* In bytes. */
}
noreturn void
......@@ -287,22 +297,21 @@ play__(struct lkt_cmd_args *args)
if (args->argc != 0)
pos = atoi(args->argv[0]);
static const char *const status__ = "status\n";
static const char *const cmd_play__ = "play\nclose\n";
static const char *const cmd_play_from__ = "play %d\nclose\n";
static const char *const cmd_pause__ = "pause\nclose\n";
static const char status__[] = "status\n";
static const char cmd_play__[] = "play\nclose\n";
static const char cmd_play_from__[] = "play %d\nclose\n";
static const char cmd_pause__[] = "pause\nclose\n";
const size_t buff_len = 1024;
char buff[buff_len];
char buff[LKT_MESSAGE_MAX];
FILE *sock = lkt_connect();
if (write_socket(sock, status__, strlen(status__)))
if (write_socket(sock, status__, sizeof(status__))) /* In bytes. */
goto error;
for (;;) {
memset(buff, 0, buff_len * sizeof(char));
if (read_socket(sock, buff, buff_len - 1) <= 0)
memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
if (read_socket(sock, buff, LKT_MESSAGE_MAX - 1) <= 0)
exit(EXIT_FAILURE);
size_t len = strcspn(buff, LKT_KEY_VALUE_SEP);
......@@ -312,13 +321,13 @@ play__(struct lkt_cmd_args *args)
if (STR_NMATCH(lkt_skip_key(buff), "stop", 4)) {
if (!pos)
lkt_send_and_exit(cmd_play__, strlen(cmd_play__));
lkt_send_and_exit(cmd_play__, sizeof(cmd_play__)); /* In bytes. */
else
exit(write_socket_format(lkt_connect(), cmd_play_from__, pos));
}
else
lkt_send_and_exit(cmd_pause__, strlen(cmd_pause__));
lkt_send_and_exit(cmd_pause__, sizeof(cmd_pause__)); /* In bytes. */
goto error;
}
......@@ -334,30 +343,28 @@ current__(struct lkt_cmd_args *args)
if (args->argc != 0)
fail("Invalid argument, the current command takes no arguments");
static const char *const current_song__ = "currentsong\n";
const size_t buff_len = 1024;
char buff[buff_len];
static const char current_song__[] = "currentsong\n";
char buff[LKT_MESSAGE_MAX];
char *mem = NULL;
FILE *sock = lkt_connect();
if (write_socket(sock, current_song__, strlen(current_song__)))
if (write_socket(sock, current_song__, sizeof(current_song__))) /* In bytes. */
goto error;
assert(mem = calloc(6 * buff_len, sizeof(char)));
assert(memset(mem, 0, 6 * buff_len * sizeof(char)));
assert(mem = calloc(6 * LKT_MESSAGE_MAX, sizeof(char)));
assert(memset(mem, 0, 6 * LKT_MESSAGE_MAX * sizeof(char)));
char *const title = &mem[0];
char *const author = &mem[buff_len];
char *const source = &mem[2 * buff_len];
char *const type = &mem[3 * buff_len];
char *const category = &mem[4 * buff_len];
char *const language = &mem[5 * buff_len];
char *const author = &mem[LKT_MESSAGE_MAX];
char *const source = &mem[2 * LKT_MESSAGE_MAX];
char *const type = &mem[3 * LKT_MESSAGE_MAX];
char *const category = &mem[4 * LKT_MESSAGE_MAX];
char *const language = &mem[5 * LKT_MESSAGE_MAX];
for (;;) {
memset(buff, 0, buff_len * sizeof(char));
if (read_socket(sock, buff, buff_len - 1) <= 0)
memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
if (read_socket(sock, buff, LKT_MESSAGE_MAX - 1) <= 0)
goto error;
const size_t len = strcspn(buff, LKT_KEY_VALUE_SEP);
......@@ -411,8 +418,7 @@ status__(struct lkt_cmd_args *args)
static const char *const status_str__ = "status\n";
int ret = EXIT_FAILURE, it = 0;
const size_t buff_len = 1024;
char buff[buff_len];
char buff[LKT_MESSAGE_MAX];
char flags[24];
bool play = false, stopped = true;
......@@ -430,8 +436,8 @@ status__(struct lkt_cmd_args *args)
#define assign_int(str, var) if (! strncmp(buff, str, len)) { var = (atoi(lkt_skip_key(buff))); continue; }
for (;;) {
memset(buff, 0, buff_len * sizeof(char));
if (read_socket(sock, buff, buff_len - 1) <= 0)
memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
if (read_socket(sock, buff, LKT_MESSAGE_MAX - 1) <= 0)
goto error;
size_t len = strcspn(buff, LKT_KEY_VALUE_SEP);
......@@ -519,8 +525,7 @@ check:
noreturn void
add__(struct lkt_cmd_args *args)
{
const size_t buff_len = 1025;
char buff[buff_len];
char buff[LKT_MESSAGE_MAX];
int i;
if (args->argc < 1)
......@@ -545,8 +550,8 @@ add__(struct lkt_cmd_args *args)
write_socket(sock, "\n", sizeof(char));
for (;;) {
memset(buff, 0, buff_len * sizeof(char));
assert(read_socket(sock, buff, buff_len - 1) > 0);
memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
assert(read_socket(sock, buff, LKT_MESSAGE_MAX - 1) > 0);
if (! strncmp(buff, "OK", 2))
exit(EXIT_SUCCESS);
......@@ -559,8 +564,7 @@ add__(struct lkt_cmd_args *args)
noreturn void
list__(struct lkt_cmd_args *args)
{
const size_t buff_len = 1025;
char buff[buff_len];
char buff[LKT_MESSAGE_MAX];
if (args->argc == 0)
args->argv = LKT_QUEUE_DEFAULT;
......@@ -575,8 +579,8 @@ list__(struct lkt_cmd_args *args)
write_socket(sock, "\n", sizeof(char));
for (;;) {
memset(buff, 0, buff_len * sizeof(char));
assert(read_socket(sock, buff, buff_len - 1) > 0);
memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
assert(read_socket(sock, buff, LKT_MESSAGE_MAX - 1) > 0);
if (! strncmp(buff, "OK", 2))
exit(EXIT_SUCCESS);
......@@ -708,8 +712,7 @@ search_with_cmd__(struct lkt_cmd_args *args, const char *cmd)
fail("Invalid type for the query");
FILE *sock = lkt_connect();
const size_t buff_len = 1025;
char buff[buff_len];
char buff[LKT_MESSAGE_MAX];
int i;
write_socket(sock, cmd, strlen(cmd));
......@@ -719,8 +722,8 @@ search_with_cmd__(struct lkt_cmd_args *args, const char *cmd)
write_socket(sock, "\n", sizeof("\n") / sizeof(char));
for (;;) {
memset(buff, 0, buff_len * sizeof(char));
assert(read_socket(sock, buff, buff_len - 1) > 0);
memset(buff, 0, LKT_MESSAGE_MAX * sizeof(char));
assert(read_socket(sock, buff, LKT_MESSAGE_MAX - 1) > 0);
if (! strncmp(buff, "OK", 2))
exit(EXIT_SUCCESS);
......@@ -807,6 +810,7 @@ static struct lkt_cmd_opt options_[] = {
{ .name = "add", .call = add__ },
{ .name = "shuffle", .call = shuffle__ },
{ .name = "status", .call = status__ },
{ .name = "stop", .call = stop__ },
{ .name = "plt", .call = plt__ },
{ .name = "search", .call = search__ },
LKT_OPT_NULL,
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter