Portable build framework for OpenNTPD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.6 KiB

  1. --- config.orig Sun Dec 28 20:17:46 2014
  2. +++ config.c Sun Dec 28 20:19:48 2014
  3. @@ -75,7 +75,9 @@
  4. if ((h = calloc(1, sizeof(struct ntp_addr))) == NULL)
  5. fatal(NULL);
  6. sa_in = (struct sockaddr_in *)&h->ss;
  7. +#ifdef SIN_LEN
  8. sa_in->sin_len = sizeof(struct sockaddr_in);
  9. +#endif
  10. sa_in->sin_family = AF_INET;
  11. sa_in->sin_addr.s_addr = ina.s_addr;
  12. @@ -97,7 +99,9 @@
  13. if ((h = calloc(1, sizeof(struct ntp_addr))) == NULL)
  14. fatal(NULL);
  15. sa_in6 = (struct sockaddr_in6 *)&h->ss;
  16. +#ifdef SIN6_LEN
  17. sa_in6->sin6_len = sizeof(struct sockaddr_in6);
  18. +#endif
  19. sa_in6->sin6_family = AF_INET6;
  20. memcpy(&sa_in6->sin6_addr,
  21. &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr,
  22. @@ -124,8 +128,14 @@
  23. hints.ai_family = PF_UNSPEC;
  24. hints.ai_socktype = SOCK_DGRAM; /* DUMMY */
  25. error = getaddrinfo(s, NULL, &hints, &res0);
  26. - if (error == EAI_AGAIN || error == EAI_NODATA || error == EAI_NONAME)
  27. - return (0);
  28. + switch (error) {
  29. + case EAI_AGAIN:
  30. +#ifdef EAI_NODATA
  31. + case EAI_NODATA:
  32. +#endif
  33. + case EAI_NONAME:
  34. + return (0);
  35. + }
  36. if (error) {
  37. log_warnx("could not parse \"%s\": %s", s,
  38. gai_strerror(error));
  39. @@ -141,12 +151,16 @@
  40. h->ss.ss_family = res->ai_family;
  41. if (res->ai_family == AF_INET) {
  42. sa_in = (struct sockaddr_in *)&h->ss;
  43. +#ifdef SIN_LEN
  44. sa_in->sin_len = sizeof(struct sockaddr_in);
  45. +#endif
  46. sa_in->sin_addr.s_addr = ((struct sockaddr_in *)
  47. res->ai_addr)->sin_addr.s_addr;
  48. } else {
  49. sa_in6 = (struct sockaddr_in6 *)&h->ss;
  50. +#ifdef SIN6_LEN
  51. sa_in6->sin6_len = sizeof(struct sockaddr_in6);
  52. +#endif
  53. memcpy(&sa_in6->sin6_addr, &((struct sockaddr_in6 *)
  54. res->ai_addr)->sin6_addr, sizeof(struct in6_addr));
  55. }