summaryrefslogtreecommitdiffstats
path: root/fastbootd/fastbootd.c
diff options
context:
space:
mode:
Diffstat (limited to 'fastbootd/fastbootd.c')
-rw-r--r--fastbootd/fastbootd.c51
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;
}