aboutsummaryrefslogtreecommitdiff
path: root/daemon.c
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2016-07-07 12:27:37 -0400
committerRob Austein <sra@hactrn.net>2016-07-07 12:27:37 -0400
commitc5bbdc94037efa5050ad32454509bc1c366c288f (patch)
tree3fa6878d0574a6176dfead6651cdcfdaea23d002 /daemon.c
parent90835dcbe717824146e68cc686387546f0e45cfc (diff)
Use environment variables rather than wired-in defaults in cryptech_rpcd.
This change allows the RPC MUX daemon to use the same environment variable scheme to configure the RPC device and line speed as the stand-alone RPC client code does, the only difference being that the daemon, being an independent program, still allows one to override these settings from the command line.
Diffstat (limited to 'daemon.c')
-rw-r--r--daemon.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/daemon.c b/daemon.c
index f22ad45..b30d730 100644
--- a/daemon.c
+++ b/daemon.c
@@ -34,6 +34,7 @@
*/
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/un.h>
@@ -143,8 +144,15 @@ int main(int argc, char *argv[])
int lsock;
int dsock;
int opt;
- const char *device = HAL_CLIENT_SERIAL_DEFAULT_DEVICE;
- uint32_t speed = HAL_CLIENT_SERIAL_DEFAULT_SPEED;
+ const char *device = getenv(HAL_CLIENT_SERIAL_DEVICE_ENVVAR);
+ const char *speed_ = getenv(HAL_CLIENT_SERIAL_SPEED_ENVVAR);
+ uint32_t speed = HAL_CLIENT_SERIAL_DEFAULT_SPEED;
+
+ if (device == NULL)
+ device = HAL_CLIENT_SERIAL_DEFAULT_DEVICE;
+
+ if (speed_ != NULL)
+ speed = (uint32_t) strtoul(speed_, NULL, 10);
while ((opt = getopt(argc, argv, "hn:d:s:")) != -1) {
switch (opt) {
@@ -158,7 +166,8 @@ int main(int argc, char *argv[])
device = optarg;
break;
case 's':
- switch (atoi(optarg)) {
+ speed = (uint32_t) strtoul(optarg, NULL, 10);
+ switch (speed) {
case 115200:
case 921600:
break;