diff options
author | Steve Kondik <shade@chemlab.org> | 2012-11-18 15:17:03 -0800 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2012-11-18 15:17:03 -0800 |
commit | 78088eebf9d82831cdfa960bff91ac85f0268430 (patch) | |
tree | 5c7c94fafc5e40da86b16845e2ac247d29be5a79 | |
parent | c3a70a9536fd3a288a886d4e99618e1c70e48b22 (diff) | |
parent | 758fb6cde3ee6ab53aa6b4b07a2acc2bde0b6c5d (diff) | |
download | android_external_dnsmasq-78088eebf9d82831cdfa960bff91ac85f0268430.tar.gz android_external_dnsmasq-78088eebf9d82831cdfa960bff91ac85f0268430.tar.bz2 android_external_dnsmasq-78088eebf9d82831cdfa960bff91ac85f0268430.zip |
Merge branch 'jb-mr1-release' of https://android.googlesource.com/platform/external/dnsmasq into mr1-stagingcm-10.1.3-RC2cm-10.1.3-RC1cm-10.1.3cm-10.1.2cm-10.1.1cm-10.1.0-RC5cm-10.1.0-RC4cm-10.1.0-RC3cm-10.1.0-RC2cm-10.1.0-RC1cm-10.1.0cm-10.1-M3cm-10.1-M2cm-10.1-M1mr1.1-stagingcm-10.1
-rw-r--r-- | ThirdPartyProject.prop | 9 | ||||
-rwxr-xr-x | src/dnsmasq.c | 38 |
2 files changed, 23 insertions, 24 deletions
diff --git a/ThirdPartyProject.prop b/ThirdPartyProject.prop deleted file mode 100644 index 08a49af..0000000 --- a/ThirdPartyProject.prop +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright 2010 Google Inc. All Rights Reserved. -#Fri Jul 16 10:03:08 PDT 2010 -currentVersion=2.52 -version=2.51 -isNative=true -name=dnsmasq -keywords=dnsmasq -onDevice=true -homepage=http\://www.thekelleys.org.uk/dnsmasq/doc.html diff --git a/src/dnsmasq.c b/src/dnsmasq.c index 1a9d808..f6b371a 100755 --- a/src/dnsmasq.c +++ b/src/dnsmasq.c @@ -984,32 +984,40 @@ static int set_android_listeners(fd_set *set, int *maxfdp) { } static int check_android_listeners(fd_set *set) { + int retcode = 0; if (FD_ISSET(STDIN_FILENO, set)) { char buffer[1024]; int rc; + int consumed = 0; if ((rc = read(STDIN_FILENO, buffer, sizeof(buffer) -1)) < 0) { my_syslog(LOG_ERR, _("Error reading from stdin (%s)"), strerror(errno)); return -1; } buffer[rc] = '\0'; - char *next = buffer; - char *cmd; - - if (!(cmd = strsep(&next, ":"))) { - my_syslog(LOG_ERR, _("Malformatted msg '%s'"), buffer); - return -1; - } - - if (!strcmp(buffer, "update_dns")) { - set_servers(&buffer[11]); - check_servers(); - } else { - my_syslog(LOG_ERR, _("Unknown cmd '%s'"), cmd); - return -1; + while(consumed < rc) { + char *cmd; + char *current_cmd = &buffer[consumed]; + char *params = current_cmd; + int len = strlen(current_cmd); + + cmd = strsep(¶ms, ":"); + if (!strcmp(cmd, "update_dns")) { + if (params != NULL) { + set_servers(params); + check_servers(); + } else { + my_syslog(LOG_ERR, _("Malformatted msg '%s'"), current_cmd); + retcode = -1; + } + } else { + my_syslog(LOG_ERR, _("Unknown cmd '%s'"), cmd); + retcode = -1; + } + consumed += len + 1; } } - return 0; + return retcode; } #endif |