diff options
Diffstat (limited to 'fastbootd/fastbootd.c')
-rw-r--r-- | fastbootd/fastbootd.c | 51 |
1 files changed, 44 insertions, 7 deletions
diff --git a/fastbootd/fastbootd.c b/fastbootd/fastbootd.c index 90b9ef9..264b6f5 100644 --- a/fastbootd/fastbootd.c +++ b/fastbootd/fastbootd.c @@ -16,32 +16,69 @@ #include <stdio.h> #include <unistd.h> - #include <cutils/klog.h> +#include <getopt.h> +#include <stdlib.h> #include "debug.h" #include "trigger.h" +#include "socket_client.h" unsigned int debug_level = DEBUG; void commands_init(); void usb_init(); void config_init(); +int transport_socket_init(); int main(int argc, char **argv) { + int socket_client = 0; + int c; + + klog_init(); + klog_set_level(6); + + const struct option longopts[] = { + {"socket", no_argument, 0, 'S'}, + {0, 0, 0, 0} + }; + + while (1) { + c = getopt_long(argc, argv, "S", longopts, NULL); + /* Alphabetical cases */ + if (c < 0) + break; + switch (c) { + case 'S': + socket_client = 1; + break; + case '?': + return 1; + default: + return 0; + } + } + (void)argc; (void)argv; klog_init(); klog_set_level(6); - config_init(); - load_trigger(); - commands_init(); - usb_init(); - while (1) { - sleep(1); + if (socket_client) { + run_socket_client(); + } + else { + config_init(); + load_trigger(); + commands_init(); + usb_init(); + if (!transport_socket_init()) + exit(1); + while (1) { + sleep(1); + } } return 0; } |