This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH COMMITTED] resolv: Introduce is_sort_mask and call it from res_vinit


2017-06-19  Florian Weimer  <fweimer@redhat.com>

	* resolv/res_init.c (sort_mask_chars, ISSORTMASK): Remove.
	(is_sort_mask): New function.
	(__res_vinit): Use it.

diff --git a/resolv/res_init.c b/resolv/res_init.c
index eb24fca..eb8e308 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -85,9 +85,6 @@
 
 static void res_setoptions (res_state, const char *, const char *)
      internal_function;
-
-static const char sort_mask_chars[] = "/&";
-#define ISSORTMASK(ch) (strchr(sort_mask_chars, ch) != NULL)
 static u_int32_t net_mask (struct in_addr) __THROW;
 
 unsigned long long int __res_initstamp attribute_hidden;
@@ -109,6 +106,14 @@ res_ninit(res_state statp) {
 }
 libc_hidden_def (__res_ninit)
 
+/* Return true if CH separates the netmask in the "sortlist"
+   directive.  */
+static inline bool
+is_sort_mask (char ch)
+{
+  return ch == '/' || ch == '&';
+}
+
 /* This function has to be reachable by res_data.c but not publically. */
 int
 __res_vinit(res_state statp, int preinit) {
@@ -305,14 +310,14 @@ __res_vinit(res_state statp, int preinit) {
 			if (*cp == '\0' || *cp == '\n' || *cp == ';')
 			    break;
 			net = cp;
-			while (*cp && !ISSORTMASK(*cp) && *cp != ';' &&
+			while (*cp && !is_sort_mask (*cp) && *cp != ';' &&
 			       isascii(*cp) && !isspace(*cp))
 				cp++;
 			n = *cp;
 			*cp = 0;
 			if (__inet_aton(net, &a)) {
 			    statp->sort_list[nsort].addr = a;
-			    if (ISSORTMASK(n)) {
+			    if (is_sort_mask (n)) {
 				*cp++ = n;
 				net = cp;
 				while (*cp && *cp != ';' &&


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]