summaryrefslogtreecommitdiffstats
path: root/fastbootd/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'fastbootd/config.c')
-rw-r--r--fastbootd/config.c145
1 files changed, 0 insertions, 145 deletions
diff --git a/fastbootd/config.c b/fastbootd/config.c
deleted file mode 100644
index fe6da69..0000000
--- a/fastbootd/config.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 2013, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google, Inc. nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <fcntl.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-#include "protocol.h"
-#include "utils.h"
-
-#include "debug.h"
-
-// TODO: change config path
-#define CONFIG_PATH "/data/fastboot.cfg"
-
-static int config_parse_line(char *line)
-{
- char *c;
- char *key;
- char *value;
-
- c = strchr(line, '#');
- if (c)
- *c = '\0';
-
- if (strspn(line, " \t") == strlen(line))
- return 0;
-
- c = strchr(line, '=');
- if (c == NULL)
- return -1;
-
- key = line;
- *c = '\0';
- value = c + 1;
-
- key = strip(key);
- value = strip(value);
-
- key = strdup(key);
- value = strdup(value);
-
- fastboot_publish(key, value);
-
- return 0;
-}
-
-static void config_parse(char *buffer)
-{
- char *saveptr;
- char *str = buffer;
- char *line = buffer;
- int c;
- int ret;
-
- for (c = 1; line != NULL; c++) {
- line = strtok_r(str, "\r\n", &saveptr);
- if (line != NULL) {
- D(VERBOSE, "'%s'", line);
- ret = config_parse_line(line);
- if (ret < 0) {
- D(WARN, "error parsing " CONFIG_PATH " line %d", c);
- }
- }
- str = NULL;
- }
-}
-
-void config_init()
-{
- int fd;
- off_t len;
- ssize_t ret;
- size_t count = 0;
- char *buffer;
-
- fd = open(CONFIG_PATH, O_RDONLY);
- if (fd < 0) {
- D(ERR, "failed to open " CONFIG_PATH);
- return;
- }
-
- len = lseek(fd, 0, SEEK_END);
- if (len < 0) {
- D(ERR, "failed to seek to end of " CONFIG_PATH);
- return;
- }
-
- lseek(fd, 0, SEEK_SET);
-
- buffer = malloc(len + 1);
- if (buffer == NULL) {
- D(ERR, "failed to allocate %ld bytes", len);
- return;
- }
-
- while (count < (size_t)len) {
- ret = read(fd, buffer + count, len - count);
- if (ret < 0 && errno != EINTR) {
- D(ERR, "failed to read " CONFIG_PATH ": %d %s", errno, strerror(errno));
- return;
- }
- if (ret == 0) {
- D(ERR, "early EOF reading " CONFIG_PATH);
- return;
- }
-
- count += ret;
- }
-
- buffer[len] = '\0';
-
- config_parse(buffer);
-
- free(buffer);
-}