resolv: Turn _res_opcodes into a compatibility symbol

This commit is contained in:
Florian Weimer 2017-06-30 11:31:41 +02:00
parent d85f99679d
commit 6781d8e693
4 changed files with 21 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2017-06-30 Florian Weimer <fweimer@redhat.com>
* resolv/res_debug.c (_res_opcodes): Rename ...
(res_opcodes): ... as compatibility symbol.
(fp_nquery): Use res_opcodes.
* include/resolv.h (_res_opcodes): Remove declaration.
2017-06-30 Florian Weimer <fweimer@redhat.com> 2017-06-30 Florian Weimer <fweimer@redhat.com>
* include/resolv.h (res_pquery): Remove declaration. * include/resolv.h (res_pquery): Remove declaration.

3
NEWS
View File

@ -234,6 +234,9 @@ Version 2.26
will now randomly pick a name server from the configuration as a starting will now randomly pick a name server from the configuration as a starting
point. (Previously, the second name server was always used.) point. (Previously, the second name server was always used.)
* The _res_opcodes variable has been removed from libresolv. It had been
exported by accident.
Security related changes: Security related changes:
* The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,

View File

@ -90,8 +90,5 @@ libresolv_hidden_proto (__b64_ntop)
libresolv_hidden_proto (__dn_count_labels) libresolv_hidden_proto (__dn_count_labels)
libresolv_hidden_proto (__p_secstodate) libresolv_hidden_proto (__p_secstodate)
extern const char *_res_opcodes[];
libresolv_hidden_proto (_res_opcodes)
# endif /* _RESOLV_H_ && !_ISOMAC */ # endif /* _RESOLV_H_ && !_ISOMAC */
#endif #endif

View File

@ -106,6 +106,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include <shlib-compat.h>
#ifdef SPRINTF_CHAR #ifdef SPRINTF_CHAR
# define SPRINTF(x) strlen(sprintf/**/x) # define SPRINTF(x) strlen(sprintf/**/x)
@ -115,7 +116,12 @@
extern const char *_res_sectioncodes[] attribute_hidden; extern const char *_res_sectioncodes[] attribute_hidden;
const char *_res_opcodes[] = /* _res_opcodes was exported by accident as a variable. */
#if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_26)
static const char *res_opcodes[] =
#else
static const char res_opcodes[][9] =
#endif
{ {
"QUERY", "QUERY",
"IQUERY", "IQUERY",
@ -134,7 +140,9 @@ const char *_res_opcodes[] =
"ZONEINIT", "ZONEINIT",
"ZONEREF", "ZONEREF",
}; };
libresolv_hidden_data_def (_res_opcodes) #if SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_26)
strong_alias (res_opcodes, _res_opcodes)
#endif
static const char *p_section(int section, int opcode); static const char *p_section(int section, int opcode);
@ -259,7 +267,7 @@ fp_nquery (const unsigned char *msg, int len, FILE *file)
if ((!pfcode) || (pfcode & RES_PRF_HEADX) || rcode) if ((!pfcode) || (pfcode & RES_PRF_HEADX) || rcode)
fprintf(file, fprintf(file,
";; ->>HEADER<<- opcode: %s, status: %s, id: %d\n", ";; ->>HEADER<<- opcode: %s, status: %s, id: %d\n",
_res_opcodes[opcode], p_rcode(rcode), id); res_opcodes[opcode], p_rcode(rcode), id);
if ((!pfcode) || (pfcode & RES_PRF_HEADX)) if ((!pfcode) || (pfcode & RES_PRF_HEADX))
putc(';', file); putc(';', file);
if ((!pfcode) || (pfcode & RES_PRF_HEAD2)) { if ((!pfcode) || (pfcode & RES_PRF_HEAD2)) {