atd

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/atd
Log | Files | Refs

commit f91ba69db75fe9247939878002af97bd974a6c05
parent 3103e6f39f27efab0e4dea190c49fcc61ed0abfd
Author: Nihal Jere <nihal@nihaljere.xyz>
Date:   Tue, 18 May 2021 23:31:25 -0500

use union for extra command data

Diffstat:
Matd.c | 12++++++------
Matd.h | 6+++++-
2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/atd.c b/atd.c @@ -75,12 +75,12 @@ ssize_t cmdadd(struct fdbuf fdbuf) { count++; } - cmd.data = malloc(count + 1); - if (cmd.data == NULL) + cmd.data.dial.num = malloc(count + 1); + if (cmd.data.dial.num == NULL) goto bad; - memcpy(cmd.data, num, count); - ((char*)cmd.data)[count] = '\0'; + memcpy(cmd.data.dial.num, num, count); + ((char*)cmd.data.dial.num)[count] = '\0'; fprintf(stderr, "received dial with number %s\n", cmd.data); break; @@ -287,8 +287,8 @@ int main(int argc, char *argv[]) if (!cmd.op) continue; - if (cmd.data) { - len = snprintf(fdbufs[BACKEND].in, BUFSIZE, cmd_to_at[cmd.op], cmd.data); + if (cmd.op == CMD_DIAL) { + len = snprintf(fdbufs[BACKEND].in, BUFSIZE, cmd_to_at[cmd.op], cmd.data.dial.num); } else { len = snprintf(fdbufs[BACKEND].in, BUFSIZE, cmd_to_at[cmd.op]); } diff --git a/atd.h b/atd.h @@ -11,7 +11,11 @@ enum ops { struct command { int index; enum ops op; - void *data; + union { + struct { + char *num; + } dial; + } data; }; char *cmd_to_at[] = {