Commit 39eb96e9 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Convert the public config struct to the same binary size/construct as in the

latest releases to remain ABI compatible.
parent 4c84f6b4
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -185,7 +185,6 @@ struct ares_options {
  int timeout; /* in seconds or milliseconds, depending on options */
  int tries;
  int ndots;
  int rotate;
  unsigned short udp_port;
  unsigned short tcp_port;
  int socket_send_buffer_size;
+8 −2
Original line number Diff line number Diff line
@@ -269,10 +269,14 @@ int ares_save_options(ares_channel channel, struct ares_options *options,
  if (!ARES_CONFIG_CHECK(channel))
    return ARES_ENODATA;

  /* Traditionally the optmask wasn't saved in the channel struct so it was
     recreated here. ROTATE is the first option that has no struct field of
     its own in the public config struct */
  (*optmask) = (ARES_OPT_FLAGS|ARES_OPT_TRIES|ARES_OPT_NDOTS|
                ARES_OPT_UDP_PORT|ARES_OPT_TCP_PORT|ARES_OPT_SOCK_STATE_CB|
                ARES_OPT_SERVERS|ARES_OPT_DOMAINS|ARES_OPT_LOOKUPS|
                ARES_OPT_SORTLIST|ARES_OPT_TIMEOUTMS);
                ARES_OPT_SORTLIST|ARES_OPT_TIMEOUTMS) |
    (channel->optmask & ARES_OPT_ROTATE);

  /* Copy easy stuff */
  options->flags   = channel->flags;
@@ -355,7 +359,7 @@ static int init_by_options(ares_channel channel,
  if ((optmask & ARES_OPT_NDOTS) && channel->ndots == -1)
    channel->ndots = options->ndots;
  if ((optmask & ARES_OPT_ROTATE) && channel->rotate == -1)
    channel->rotate = options->rotate;
    channel->rotate = 1;
  if ((optmask & ARES_OPT_UDP_PORT) && channel->udp_port == -1)
    channel->udp_port = options->udp_port;
  if ((optmask & ARES_OPT_TCP_PORT) && channel->tcp_port == -1)
@@ -431,6 +435,8 @@ static int init_by_options(ares_channel channel,
      channel->nsort = options->nsort;
    }

  channel->optmask = optmask;

  return ARES_SUCCESS;
}

+2 −0
Original line number Diff line number Diff line
@@ -263,6 +263,8 @@ struct ares_channeldata {
  int nsort;
  char *lookups;

  int optmask; /* the option bitfield passed in at init time */

  /* Server addresses and communications state */
  struct server_state *servers;
  int nservers;