fix compiler warning: conversion may lose significant bits

pull/2/head
Yang Tse 14 years ago
parent e3f7230dc2
commit 41b8a1bfd0
  1. 7
      ares_init.c
  2. 18
      ares_nowarn.c
  3. 2
      ares_nowarn.h

@ -67,6 +67,7 @@
#include "ares.h"
#include "inet_net_pton.h"
#include "ares_library_init.h"
#include "ares_nowarn.h"
#include "ares_private.h"
#ifdef ANDROID
@ -1400,13 +1401,13 @@ static int set_options(ares_channel channel, const char *str)
q++;
val = try_option(p, q, "ndots:");
if (val && channel->ndots == -1)
channel->ndots = (int)strtol(val, NULL, 10);
channel->ndots = aresx_sltosi(strtol(val, NULL, 10));
val = try_option(p, q, "retrans:");
if (val && channel->timeout == -1)
channel->timeout = (int)strtol(val, NULL, 10);
channel->timeout = aresx_sltosi(strtol(val, NULL, 10));
val = try_option(p, q, "retry:");
if (val && channel->tries == -1)
channel->tries = (int)strtol(val, NULL, 10);
channel->tries = aresx_sltosi(strtol(val, NULL, 10));
val = try_option(p, q, "rotate");
if (val && channel->rotate == -1)
channel->rotate = 1;

@ -50,3 +50,21 @@ int aresx_uztosi(size_t uznum)
# pragma warning(pop)
#endif
}
/*
** signed long to signed int
*/
int aresx_sltosi(long slnum)
{
#ifdef __INTEL_COMPILER
# pragma warning(push)
# pragma warning(disable:810) /* conversion may lose significant bits */
#endif
return (int)(slnum & (long) CARES_MASK_SINT);
#ifdef __INTEL_COMPILER
# pragma warning(pop)
#endif
}

@ -19,4 +19,6 @@
int aresx_uztosi(size_t uznum);
int aresx_sltosi(long slnum);
#endif /* HEADER_CARES_NOWARN_H */

Loading…
Cancel
Save