1#*************************************************************************** 2# 3# Copyright (C) 2008 - 2012 by Daniel Stenberg et al 4# 5# Permission to use, copy, modify, and distribute this software and its 6# documentation for any purpose and without fee is hereby granted, provided 7# that the above copyright notice appear in all copies and that both that 8# copyright notice and this permission notice appear in supporting 9# documentation, and that the name of M.I.T. not be used in advertising or 10# publicity pertaining to distribution of the software without specific, 11# written prior permission. M.I.T. makes no representations about the 12# suitability of this software for any purpose. It is provided "as is" 13# without express or implied warranty. 14# 15#*************************************************************************** 16 17# File version for 'aclocal' use. Keep it a single number. 18# serial 46 19 20 21dnl CARES_INCLUDES_ARPA_INET 22dnl ------------------------------------------------- 23dnl Set up variable with list of headers that must be 24dnl included when arpa/inet.h is to be included. 25 26AC_DEFUN([CARES_INCLUDES_ARPA_INET], [ 27cares_includes_arpa_inet="\ 28/* includes start */ 29#ifdef HAVE_SYS_TYPES_H 30# include <sys/types.h> 31#endif 32#ifdef HAVE_SYS_SOCKET_H 33# include <sys/socket.h> 34#endif 35#ifdef HAVE_NETINET_IN_H 36# include <netinet/in.h> 37#endif 38#ifdef HAVE_ARPA_INET_H 39# include <arpa/inet.h> 40#endif 41/* includes end */" 42 AC_CHECK_HEADERS( 43 sys/types.h sys/socket.h netinet/in.h arpa/inet.h, 44 [], [], [$cares_includes_arpa_inet]) 45]) 46 47 48dnl CARES_INCLUDES_FCNTL 49dnl ------------------------------------------------- 50dnl Set up variable with list of headers that must be 51dnl included when fcntl.h is to be included. 52 53AC_DEFUN([CARES_INCLUDES_FCNTL], [ 54cares_includes_fcntl="\ 55/* includes start */ 56#ifdef HAVE_SYS_TYPES_H 57# include <sys/types.h> 58#endif 59#ifdef HAVE_UNISTD_H 60# include <unistd.h> 61#endif 62#ifdef HAVE_FCNTL_H 63# include <fcntl.h> 64#endif 65/* includes end */" 66 AC_CHECK_HEADERS( 67 sys/types.h unistd.h fcntl.h, 68 [], [], [$cares_includes_fcntl]) 69]) 70 71 72dnl CARES_INCLUDES_NETDB 73dnl ------------------------------------------------- 74dnl Set up variable with list of headers that must be 75dnl included when netdb.h is to be included. 76 77AC_DEFUN([CARES_INCLUDES_NETDB], [ 78cares_includes_netdb="\ 79/* includes start */ 80#ifdef HAVE_SYS_TYPES_H 81# include <sys/types.h> 82#endif 83#ifdef HAVE_NETDB_H 84# include <netdb.h> 85#endif 86/* includes end */" 87 AC_CHECK_HEADERS( 88 sys/types.h netdb.h, 89 [], [], [$cares_includes_netdb]) 90]) 91 92 93dnl CARES_INCLUDES_SOCKET 94dnl ------------------------------------------------- 95dnl Set up variable with list of headers that must be 96dnl included when socket.h is to be included. 97 98AC_DEFUN([CARES_INCLUDES_SOCKET], [ 99cares_includes_socket="\ 100/* includes start */ 101#ifdef HAVE_SYS_TYPES_H 102# include <sys/types.h> 103#endif 104#ifdef HAVE_SOCKET_H 105# include <socket.h> 106#endif 107/* includes end */" 108 AC_CHECK_HEADERS( 109 sys/types.h socket.h, 110 [], [], [$cares_includes_socket]) 111]) 112 113 114dnl CARES_INCLUDES_STDLIB 115dnl ------------------------------------------------- 116dnl Set up variable with list of headers that must be 117dnl included when stdlib.h is to be included. 118 119AC_DEFUN([CARES_INCLUDES_STDLIB], [ 120cares_includes_stdlib="\ 121/* includes start */ 122#ifdef HAVE_SYS_TYPES_H 123# include <sys/types.h> 124#endif 125#ifdef HAVE_STDLIB_H 126# include <stdlib.h> 127#endif 128/* includes end */" 129 AC_CHECK_HEADERS( 130 sys/types.h stdlib.h, 131 [], [], [$cares_includes_stdlib]) 132]) 133 134 135dnl CARES_INCLUDES_STRING 136dnl ------------------------------------------------- 137dnl Set up variable with list of headers that must be 138dnl included when string(s).h is to be included. 139 140AC_DEFUN([CARES_INCLUDES_STRING], [ 141cares_includes_string="\ 142/* includes start */ 143#ifdef HAVE_SYS_TYPES_H 144# include <sys/types.h> 145#endif 146#ifdef HAVE_STRING_H 147# include <string.h> 148#endif 149#ifdef HAVE_STRINGS_H 150# include <strings.h> 151#endif 152/* includes end */" 153 AC_CHECK_HEADERS( 154 sys/types.h string.h strings.h, 155 [], [], [$cares_includes_string]) 156]) 157 158 159dnl CARES_INCLUDES_STROPTS 160dnl ------------------------------------------------- 161dnl Set up variable with list of headers that must be 162dnl included when stropts.h is to be included. 163 164AC_DEFUN([CARES_INCLUDES_STROPTS], [ 165cares_includes_stropts="\ 166/* includes start */ 167#ifdef HAVE_SYS_TYPES_H 168# include <sys/types.h> 169#endif 170#ifdef HAVE_UNISTD_H 171# include <unistd.h> 172#endif 173#ifdef HAVE_SYS_SOCKET_H 174# include <sys/socket.h> 175#endif 176#ifdef HAVE_SYS_IOCTL_H 177# include <sys/ioctl.h> 178#endif 179#ifdef HAVE_STROPTS_H 180# include <stropts.h> 181#endif 182/* includes end */" 183 AC_CHECK_HEADERS( 184 sys/types.h unistd.h sys/socket.h sys/ioctl.h stropts.h, 185 [], [], [$cares_includes_stropts]) 186]) 187 188 189dnl CARES_INCLUDES_SYS_SOCKET 190dnl ------------------------------------------------- 191dnl Set up variable with list of headers that must be 192dnl included when sys/socket.h is to be included. 193 194AC_DEFUN([CARES_INCLUDES_SYS_SOCKET], [ 195cares_includes_sys_socket="\ 196/* includes start */ 197#ifdef HAVE_SYS_TYPES_H 198# include <sys/types.h> 199#endif 200#ifdef HAVE_SYS_SOCKET_H 201# include <sys/socket.h> 202#endif 203/* includes end */" 204 AC_CHECK_HEADERS( 205 sys/types.h sys/socket.h, 206 [], [], [$cares_includes_sys_socket]) 207]) 208 209 210dnl CARES_INCLUDES_SYS_TYPES 211dnl ------------------------------------------------- 212dnl Set up variable with list of headers that must be 213dnl included when sys/types.h is to be included. 214 215AC_DEFUN([CARES_INCLUDES_SYS_TYPES], [ 216cares_includes_sys_types="\ 217/* includes start */ 218#ifdef HAVE_SYS_TYPES_H 219# include <sys/types.h> 220#endif 221/* includes end */" 222 AC_CHECK_HEADERS( 223 sys/types.h, 224 [], [], [$cares_includes_sys_types]) 225]) 226 227 228dnl CARES_INCLUDES_SYS_UIO 229dnl ------------------------------------------------- 230dnl Set up variable with list of headers that must be 231dnl included when sys/uio.h is to be included. 232 233AC_DEFUN([CARES_INCLUDES_SYS_UIO], [ 234cares_includes_sys_uio="\ 235/* includes start */ 236#ifdef HAVE_SYS_TYPES_H 237# include <sys/types.h> 238#endif 239#ifdef HAVE_SYS_UIO_H 240# include <sys/uio.h> 241#endif 242/* includes end */" 243 AC_CHECK_HEADERS( 244 sys/types.h sys/uio.h, 245 [], [], [$cares_includes_sys_uio]) 246]) 247 248 249dnl CARES_INCLUDES_UNISTD 250dnl ------------------------------------------------- 251dnl Set up variable with list of headers that must be 252dnl included when unistd.h is to be included. 253 254AC_DEFUN([CARES_INCLUDES_UNISTD], [ 255cares_includes_unistd="\ 256/* includes start */ 257#ifdef HAVE_SYS_TYPES_H 258# include <sys/types.h> 259#endif 260#ifdef HAVE_UNISTD_H 261# include <unistd.h> 262#endif 263/* includes end */" 264 AC_CHECK_HEADERS( 265 sys/types.h unistd.h, 266 [], [], [$cares_includes_unistd]) 267]) 268 269 270dnl CARES_INCLUDES_WINSOCK2 271dnl ------------------------------------------------- 272dnl Set up variable with list of headers that must be 273dnl included when winsock(2).h is to be included. 274 275AC_DEFUN([CARES_INCLUDES_WINSOCK2], [ 276cares_includes_winsock2="\ 277/* includes start */ 278#ifdef HAVE_WINDOWS_H 279# ifndef WIN32_LEAN_AND_MEAN 280# define WIN32_LEAN_AND_MEAN 281# endif 282# include <windows.h> 283# ifdef HAVE_WINSOCK2_H 284# include <winsock2.h> 285# else 286# ifdef HAVE_WINSOCK_H 287# include <winsock.h> 288# endif 289# endif 290#endif 291/* includes end */" 292 CURL_CHECK_HEADER_WINDOWS 293 CURL_CHECK_HEADER_WINSOCK 294 CURL_CHECK_HEADER_WINSOCK2 295]) 296 297 298dnl CARES_INCLUDES_WS2TCPIP 299dnl ------------------------------------------------- 300dnl Set up variable with list of headers that must be 301dnl included when ws2tcpip.h is to be included. 302 303AC_DEFUN([CARES_INCLUDES_WS2TCPIP], [ 304cares_includes_ws2tcpip="\ 305/* includes start */ 306#ifdef HAVE_WINDOWS_H 307# ifndef WIN32_LEAN_AND_MEAN 308# define WIN32_LEAN_AND_MEAN 309# endif 310# include <windows.h> 311# ifdef HAVE_WINSOCK2_H 312# include <winsock2.h> 313# ifdef HAVE_WS2TCPIP_H 314# include <ws2tcpip.h> 315# endif 316# endif 317#endif 318/* includes end */" 319 CURL_CHECK_HEADER_WINDOWS 320 CURL_CHECK_HEADER_WINSOCK2 321 CURL_CHECK_HEADER_WS2TCPIP 322]) 323 324 325dnl CARES_PREPROCESS_CALLCONV 326dnl ------------------------------------------------- 327dnl Set up variable with a preprocessor block which 328dnl defines function calling convention. 329 330AC_DEFUN([CARES_PREPROCESS_CALLCONV], [ 331cares_preprocess_callconv="\ 332/* preprocess start */ 333#ifdef HAVE_WINDOWS_H 334# define FUNCALLCONV __stdcall 335#else 336# define FUNCALLCONV 337#endif 338/* preprocess end */" 339]) 340 341 342dnl CARES_CHECK_FUNC_CLOSESOCKET 343dnl ------------------------------------------------- 344dnl Verify if closesocket is available, prototyped, and 345dnl can be compiled. If all of these are true, and 346dnl usage has not been previously disallowed with 347dnl shell variable cares_disallow_closesocket, then 348dnl HAVE_CLOSESOCKET will be defined. 349 350AC_DEFUN([CARES_CHECK_FUNC_CLOSESOCKET], [ 351 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 352 AC_REQUIRE([CARES_INCLUDES_SOCKET])dnl 353 # 354 tst_links_closesocket="unknown" 355 tst_proto_closesocket="unknown" 356 tst_compi_closesocket="unknown" 357 tst_allow_closesocket="unknown" 358 # 359 AC_MSG_CHECKING([if closesocket can be linked]) 360 AC_LINK_IFELSE([ 361 AC_LANG_PROGRAM([[ 362 $cares_includes_winsock2 363 $cares_includes_socket 364 ]],[[ 365 if(0 != closesocket(0)) 366 return 1; 367 ]]) 368 ],[ 369 AC_MSG_RESULT([yes]) 370 tst_links_closesocket="yes" 371 ],[ 372 AC_MSG_RESULT([no]) 373 tst_links_closesocket="no" 374 ]) 375 # 376 if test "$tst_links_closesocket" = "yes"; then 377 AC_MSG_CHECKING([if closesocket is prototyped]) 378 AC_EGREP_CPP([closesocket],[ 379 $cares_includes_winsock2 380 $cares_includes_socket 381 ],[ 382 AC_MSG_RESULT([yes]) 383 tst_proto_closesocket="yes" 384 ],[ 385 AC_MSG_RESULT([no]) 386 tst_proto_closesocket="no" 387 ]) 388 fi 389 # 390 if test "$tst_proto_closesocket" = "yes"; then 391 AC_MSG_CHECKING([if closesocket is compilable]) 392 AC_COMPILE_IFELSE([ 393 AC_LANG_PROGRAM([[ 394 $cares_includes_winsock2 395 $cares_includes_socket 396 ]],[[ 397 if(0 != closesocket(0)) 398 return 1; 399 ]]) 400 ],[ 401 AC_MSG_RESULT([yes]) 402 tst_compi_closesocket="yes" 403 ],[ 404 AC_MSG_RESULT([no]) 405 tst_compi_closesocket="no" 406 ]) 407 fi 408 # 409 if test "$tst_compi_closesocket" = "yes"; then 410 AC_MSG_CHECKING([if closesocket usage allowed]) 411 if test "x$cares_disallow_closesocket" != "xyes"; then 412 AC_MSG_RESULT([yes]) 413 tst_allow_closesocket="yes" 414 else 415 AC_MSG_RESULT([no]) 416 tst_allow_closesocket="no" 417 fi 418 fi 419 # 420 AC_MSG_CHECKING([if closesocket might be used]) 421 if test "$tst_links_closesocket" = "yes" && 422 test "$tst_proto_closesocket" = "yes" && 423 test "$tst_compi_closesocket" = "yes" && 424 test "$tst_allow_closesocket" = "yes"; then 425 AC_MSG_RESULT([yes]) 426 AC_DEFINE_UNQUOTED(HAVE_CLOSESOCKET, 1, 427 [Define to 1 if you have the closesocket function.]) 428 ac_cv_func_closesocket="yes" 429 else 430 AC_MSG_RESULT([no]) 431 ac_cv_func_closesocket="no" 432 fi 433]) 434 435 436dnl CARES_CHECK_FUNC_CLOSESOCKET_CAMEL 437dnl ------------------------------------------------- 438dnl Verify if CloseSocket is available, prototyped, and 439dnl can be compiled. If all of these are true, and 440dnl usage has not been previously disallowed with 441dnl shell variable cares_disallow_closesocket_camel, 442dnl then HAVE_CLOSESOCKET_CAMEL will be defined. 443 444AC_DEFUN([CARES_CHECK_FUNC_CLOSESOCKET_CAMEL], [ 445 AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl 446 # 447 tst_links_closesocket_camel="unknown" 448 tst_proto_closesocket_camel="unknown" 449 tst_compi_closesocket_camel="unknown" 450 tst_allow_closesocket_camel="unknown" 451 # 452 AC_MSG_CHECKING([if CloseSocket can be linked]) 453 AC_LINK_IFELSE([ 454 AC_LANG_PROGRAM([[ 455 $cares_includes_sys_socket 456 ]],[[ 457 if(0 != CloseSocket(0)) 458 return 1; 459 ]]) 460 ],[ 461 AC_MSG_RESULT([yes]) 462 tst_links_closesocket_camel="yes" 463 ],[ 464 AC_MSG_RESULT([no]) 465 tst_links_closesocket_camel="no" 466 ]) 467 # 468 if test "$tst_links_closesocket_camel" = "yes"; then 469 AC_MSG_CHECKING([if CloseSocket is prototyped]) 470 AC_EGREP_CPP([CloseSocket],[ 471 $cares_includes_sys_socket 472 ],[ 473 AC_MSG_RESULT([yes]) 474 tst_proto_closesocket_camel="yes" 475 ],[ 476 AC_MSG_RESULT([no]) 477 tst_proto_closesocket_camel="no" 478 ]) 479 fi 480 # 481 if test "$tst_proto_closesocket_camel" = "yes"; then 482 AC_MSG_CHECKING([if CloseSocket is compilable]) 483 AC_COMPILE_IFELSE([ 484 AC_LANG_PROGRAM([[ 485 $cares_includes_sys_socket 486 ]],[[ 487 if(0 != CloseSocket(0)) 488 return 1; 489 ]]) 490 ],[ 491 AC_MSG_RESULT([yes]) 492 tst_compi_closesocket_camel="yes" 493 ],[ 494 AC_MSG_RESULT([no]) 495 tst_compi_closesocket_camel="no" 496 ]) 497 fi 498 # 499 if test "$tst_compi_closesocket_camel" = "yes"; then 500 AC_MSG_CHECKING([if CloseSocket usage allowed]) 501 if test "x$cares_disallow_closesocket_camel" != "xyes"; then 502 AC_MSG_RESULT([yes]) 503 tst_allow_closesocket_camel="yes" 504 else 505 AC_MSG_RESULT([no]) 506 tst_allow_closesocket_camel="no" 507 fi 508 fi 509 # 510 AC_MSG_CHECKING([if CloseSocket might be used]) 511 if test "$tst_links_closesocket_camel" = "yes" && 512 test "$tst_proto_closesocket_camel" = "yes" && 513 test "$tst_compi_closesocket_camel" = "yes" && 514 test "$tst_allow_closesocket_camel" = "yes"; then 515 AC_MSG_RESULT([yes]) 516 AC_DEFINE_UNQUOTED(HAVE_CLOSESOCKET_CAMEL, 1, 517 [Define to 1 if you have the CloseSocket camel case function.]) 518 ac_cv_func_closesocket_camel="yes" 519 else 520 AC_MSG_RESULT([no]) 521 ac_cv_func_closesocket_camel="no" 522 fi 523]) 524 525 526dnl CARES_CHECK_FUNC_CONNECT 527dnl ------------------------------------------------- 528dnl Verify if connect is available, prototyped, and 529dnl can be compiled. If all of these are true, and 530dnl usage has not been previously disallowed with 531dnl shell variable cares_disallow_connect, then 532dnl HAVE_CONNECT will be defined. 533 534AC_DEFUN([CARES_CHECK_FUNC_CONNECT], [ 535 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 536 AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl 537 AC_REQUIRE([CARES_INCLUDES_SOCKET])dnl 538 # 539 tst_links_connect="unknown" 540 tst_proto_connect="unknown" 541 tst_compi_connect="unknown" 542 tst_allow_connect="unknown" 543 # 544 AC_MSG_CHECKING([if connect can be linked]) 545 AC_LINK_IFELSE([ 546 AC_LANG_PROGRAM([[ 547 $cares_includes_winsock2 548 $cares_includes_sys_socket 549 $cares_includes_socket 550 ]],[[ 551 if(0 != connect(0, 0, 0)) 552 return 1; 553 ]]) 554 ],[ 555 AC_MSG_RESULT([yes]) 556 tst_links_connect="yes" 557 ],[ 558 AC_MSG_RESULT([no]) 559 tst_links_connect="no" 560 ]) 561 # 562 if test "$tst_links_connect" = "yes"; then 563 AC_MSG_CHECKING([if connect is prototyped]) 564 AC_EGREP_CPP([connect],[ 565 $cares_includes_winsock2 566 $cares_includes_sys_socket 567 $cares_includes_socket 568 ],[ 569 AC_MSG_RESULT([yes]) 570 tst_proto_connect="yes" 571 ],[ 572 AC_MSG_RESULT([no]) 573 tst_proto_connect="no" 574 ]) 575 fi 576 # 577 if test "$tst_proto_connect" = "yes"; then 578 AC_MSG_CHECKING([if connect is compilable]) 579 AC_COMPILE_IFELSE([ 580 AC_LANG_PROGRAM([[ 581 $cares_includes_winsock2 582 $cares_includes_sys_socket 583 $cares_includes_socket 584 ]],[[ 585 if(0 != connect(0, 0, 0)) 586 return 1; 587 ]]) 588 ],[ 589 AC_MSG_RESULT([yes]) 590 tst_compi_connect="yes" 591 ],[ 592 AC_MSG_RESULT([no]) 593 tst_compi_connect="no" 594 ]) 595 fi 596 # 597 if test "$tst_compi_connect" = "yes"; then 598 AC_MSG_CHECKING([if connect usage allowed]) 599 if test "x$cares_disallow_connect" != "xyes"; then 600 AC_MSG_RESULT([yes]) 601 tst_allow_connect="yes" 602 else 603 AC_MSG_RESULT([no]) 604 tst_allow_connect="no" 605 fi 606 fi 607 # 608 AC_MSG_CHECKING([if connect might be used]) 609 if test "$tst_links_connect" = "yes" && 610 test "$tst_proto_connect" = "yes" && 611 test "$tst_compi_connect" = "yes" && 612 test "$tst_allow_connect" = "yes"; then 613 AC_MSG_RESULT([yes]) 614 AC_DEFINE_UNQUOTED(HAVE_CONNECT, 1, 615 [Define to 1 if you have the connect function.]) 616 ac_cv_func_connect="yes" 617 else 618 AC_MSG_RESULT([no]) 619 ac_cv_func_connect="no" 620 fi 621]) 622 623 624dnl CARES_CHECK_FUNC_FCNTL 625dnl ------------------------------------------------- 626dnl Verify if fcntl is available, prototyped, and 627dnl can be compiled. If all of these are true, and 628dnl usage has not been previously disallowed with 629dnl shell variable cares_disallow_fcntl, then 630dnl HAVE_FCNTL will be defined. 631 632AC_DEFUN([CARES_CHECK_FUNC_FCNTL], [ 633 AC_REQUIRE([CARES_INCLUDES_FCNTL])dnl 634 # 635 tst_links_fcntl="unknown" 636 tst_proto_fcntl="unknown" 637 tst_compi_fcntl="unknown" 638 tst_allow_fcntl="unknown" 639 # 640 AC_MSG_CHECKING([if fcntl can be linked]) 641 AC_LINK_IFELSE([ 642 AC_LANG_FUNC_LINK_TRY([fcntl]) 643 ],[ 644 AC_MSG_RESULT([yes]) 645 tst_links_fcntl="yes" 646 ],[ 647 AC_MSG_RESULT([no]) 648 tst_links_fcntl="no" 649 ]) 650 # 651 if test "$tst_links_fcntl" = "yes"; then 652 AC_MSG_CHECKING([if fcntl is prototyped]) 653 AC_EGREP_CPP([fcntl],[ 654 $cares_includes_fcntl 655 ],[ 656 AC_MSG_RESULT([yes]) 657 tst_proto_fcntl="yes" 658 ],[ 659 AC_MSG_RESULT([no]) 660 tst_proto_fcntl="no" 661 ]) 662 fi 663 # 664 if test "$tst_proto_fcntl" = "yes"; then 665 AC_MSG_CHECKING([if fcntl is compilable]) 666 AC_COMPILE_IFELSE([ 667 AC_LANG_PROGRAM([[ 668 $cares_includes_fcntl 669 ]],[[ 670 if(0 != fcntl(0, 0, 0)) 671 return 1; 672 ]]) 673 ],[ 674 AC_MSG_RESULT([yes]) 675 tst_compi_fcntl="yes" 676 ],[ 677 AC_MSG_RESULT([no]) 678 tst_compi_fcntl="no" 679 ]) 680 fi 681 # 682 if test "$tst_compi_fcntl" = "yes"; then 683 AC_MSG_CHECKING([if fcntl usage allowed]) 684 if test "x$cares_disallow_fcntl" != "xyes"; then 685 AC_MSG_RESULT([yes]) 686 tst_allow_fcntl="yes" 687 else 688 AC_MSG_RESULT([no]) 689 tst_allow_fcntl="no" 690 fi 691 fi 692 # 693 AC_MSG_CHECKING([if fcntl might be used]) 694 if test "$tst_links_fcntl" = "yes" && 695 test "$tst_proto_fcntl" = "yes" && 696 test "$tst_compi_fcntl" = "yes" && 697 test "$tst_allow_fcntl" = "yes"; then 698 AC_MSG_RESULT([yes]) 699 AC_DEFINE_UNQUOTED(HAVE_FCNTL, 1, 700 [Define to 1 if you have the fcntl function.]) 701 ac_cv_func_fcntl="yes" 702 CARES_CHECK_FUNC_FCNTL_O_NONBLOCK 703 else 704 AC_MSG_RESULT([no]) 705 ac_cv_func_fcntl="no" 706 fi 707]) 708 709 710dnl CARES_CHECK_FUNC_FCNTL_O_NONBLOCK 711dnl ------------------------------------------------- 712dnl Verify if fcntl with status flag O_NONBLOCK is 713dnl available, can be compiled, and seems to work. If 714dnl all of these are true, then HAVE_FCNTL_O_NONBLOCK 715dnl will be defined. 716 717AC_DEFUN([CARES_CHECK_FUNC_FCNTL_O_NONBLOCK], [ 718 # 719 tst_compi_fcntl_o_nonblock="unknown" 720 tst_allow_fcntl_o_nonblock="unknown" 721 # 722 case $host_os in 723 sunos4* | aix3* | beos*) 724 dnl O_NONBLOCK does not work on these platforms 725 cares_disallow_fcntl_o_nonblock="yes" 726 ;; 727 esac 728 # 729 if test "$ac_cv_func_fcntl" = "yes"; then 730 AC_MSG_CHECKING([if fcntl O_NONBLOCK is compilable]) 731 AC_COMPILE_IFELSE([ 732 AC_LANG_PROGRAM([[ 733 $cares_includes_fcntl 734 ]],[[ 735 int flags = 0; 736 if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) 737 return 1; 738 ]]) 739 ],[ 740 AC_MSG_RESULT([yes]) 741 tst_compi_fcntl_o_nonblock="yes" 742 ],[ 743 AC_MSG_RESULT([no]) 744 tst_compi_fcntl_o_nonblock="no" 745 ]) 746 fi 747 # 748 if test "$tst_compi_fcntl_o_nonblock" = "yes"; then 749 AC_MSG_CHECKING([if fcntl O_NONBLOCK usage allowed]) 750 if test "x$cares_disallow_fcntl_o_nonblock" != "xyes"; then 751 AC_MSG_RESULT([yes]) 752 tst_allow_fcntl_o_nonblock="yes" 753 else 754 AC_MSG_RESULT([no]) 755 tst_allow_fcntl_o_nonblock="no" 756 fi 757 fi 758 # 759 AC_MSG_CHECKING([if fcntl O_NONBLOCK might be used]) 760 if test "$tst_compi_fcntl_o_nonblock" = "yes" && 761 test "$tst_allow_fcntl_o_nonblock" = "yes"; then 762 AC_MSG_RESULT([yes]) 763 AC_DEFINE_UNQUOTED(HAVE_FCNTL_O_NONBLOCK, 1, 764 [Define to 1 if you have a working fcntl O_NONBLOCK function.]) 765 ac_cv_func_fcntl_o_nonblock="yes" 766 else 767 AC_MSG_RESULT([no]) 768 ac_cv_func_fcntl_o_nonblock="no" 769 fi 770]) 771 772 773dnl CARES_CHECK_FUNC_FREEADDRINFO 774dnl ------------------------------------------------- 775dnl Verify if freeaddrinfo is available, prototyped, 776dnl and can be compiled. If all of these are true, 777dnl and usage has not been previously disallowed with 778dnl shell variable cares_disallow_freeaddrinfo, then 779dnl HAVE_FREEADDRINFO will be defined. 780 781AC_DEFUN([CARES_CHECK_FUNC_FREEADDRINFO], [ 782 AC_REQUIRE([CARES_INCLUDES_WS2TCPIP])dnl 783 AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl 784 AC_REQUIRE([CARES_INCLUDES_NETDB])dnl 785 # 786 tst_links_freeaddrinfo="unknown" 787 tst_proto_freeaddrinfo="unknown" 788 tst_compi_freeaddrinfo="unknown" 789 tst_allow_freeaddrinfo="unknown" 790 # 791 AC_MSG_CHECKING([if freeaddrinfo can be linked]) 792 AC_LINK_IFELSE([ 793 AC_LANG_PROGRAM([[ 794 $cares_includes_ws2tcpip 795 $cares_includes_sys_socket 796 $cares_includes_netdb 797 ]],[[ 798 freeaddrinfo(0); 799 ]]) 800 ],[ 801 AC_MSG_RESULT([yes]) 802 tst_links_freeaddrinfo="yes" 803 ],[ 804 AC_MSG_RESULT([no]) 805 tst_links_freeaddrinfo="no" 806 ]) 807 # 808 if test "$tst_links_freeaddrinfo" = "yes"; then 809 AC_MSG_CHECKING([if freeaddrinfo is prototyped]) 810 AC_EGREP_CPP([freeaddrinfo],[ 811 $cares_includes_ws2tcpip 812 $cares_includes_sys_socket 813 $cares_includes_netdb 814 ],[ 815 AC_MSG_RESULT([yes]) 816 tst_proto_freeaddrinfo="yes" 817 ],[ 818 AC_MSG_RESULT([no]) 819 tst_proto_freeaddrinfo="no" 820 ]) 821 fi 822 # 823 if test "$tst_proto_freeaddrinfo" = "yes"; then 824 AC_MSG_CHECKING([if freeaddrinfo is compilable]) 825 AC_COMPILE_IFELSE([ 826 AC_LANG_PROGRAM([[ 827 $cares_includes_ws2tcpip 828 $cares_includes_sys_socket 829 $cares_includes_netdb 830 ]],[[ 831 freeaddrinfo(0); 832 ]]) 833 ],[ 834 AC_MSG_RESULT([yes]) 835 tst_compi_freeaddrinfo="yes" 836 ],[ 837 AC_MSG_RESULT([no]) 838 tst_compi_freeaddrinfo="no" 839 ]) 840 fi 841 # 842 if test "$tst_compi_freeaddrinfo" = "yes"; then 843 AC_MSG_CHECKING([if freeaddrinfo usage allowed]) 844 if test "x$cares_disallow_freeaddrinfo" != "xyes"; then 845 AC_MSG_RESULT([yes]) 846 tst_allow_freeaddrinfo="yes" 847 else 848 AC_MSG_RESULT([no]) 849 tst_allow_freeaddrinfo="no" 850 fi 851 fi 852 # 853 AC_MSG_CHECKING([if freeaddrinfo might be used]) 854 if test "$tst_links_freeaddrinfo" = "yes" && 855 test "$tst_proto_freeaddrinfo" = "yes" && 856 test "$tst_compi_freeaddrinfo" = "yes" && 857 test "$tst_allow_freeaddrinfo" = "yes"; then 858 AC_MSG_RESULT([yes]) 859 AC_DEFINE_UNQUOTED(HAVE_FREEADDRINFO, 1, 860 [Define to 1 if you have the freeaddrinfo function.]) 861 ac_cv_func_freeaddrinfo="yes" 862 else 863 AC_MSG_RESULT([no]) 864 ac_cv_func_freeaddrinfo="no" 865 fi 866]) 867 868 869dnl CARES_CHECK_FUNC_GETADDRINFO 870dnl ------------------------------------------------- 871dnl Verify if getaddrinfo is available, prototyped, can 872dnl be compiled and seems to work. If all of these are 873dnl true, and usage has not been previously disallowed 874dnl with shell variable cares_disallow_getaddrinfo, then 875dnl HAVE_GETADDRINFO will be defined. Additionally when 876dnl HAVE_GETADDRINFO gets defined this will also attempt 877dnl to find out if getaddrinfo happens to be threadsafe, 878dnl defining HAVE_GETADDRINFO_THREADSAFE when true. 879 880AC_DEFUN([CARES_CHECK_FUNC_GETADDRINFO], [ 881 AC_REQUIRE([CARES_INCLUDES_WS2TCPIP])dnl 882 AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl 883 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 884 AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl 885 AC_REQUIRE([CARES_INCLUDES_NETDB])dnl 886 AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl 887 # 888 tst_links_getaddrinfo="unknown" 889 tst_proto_getaddrinfo="unknown" 890 tst_compi_getaddrinfo="unknown" 891 tst_works_getaddrinfo="unknown" 892 tst_allow_getaddrinfo="unknown" 893 tst_tsafe_getaddrinfo="unknown" 894 # 895 AC_MSG_CHECKING([if getaddrinfo can be linked]) 896 AC_LINK_IFELSE([ 897 AC_LANG_PROGRAM([[ 898 $cares_includes_ws2tcpip 899 $cares_includes_sys_socket 900 $cares_includes_netdb 901 ]],[[ 902 if(0 != getaddrinfo(0, 0, 0, 0)) 903 return 1; 904 ]]) 905 ],[ 906 AC_MSG_RESULT([yes]) 907 tst_links_getaddrinfo="yes" 908 ],[ 909 AC_MSG_RESULT([no]) 910 tst_links_getaddrinfo="no" 911 ]) 912 # 913 if test "$tst_links_getaddrinfo" = "yes"; then 914 AC_MSG_CHECKING([if getaddrinfo is prototyped]) 915 AC_EGREP_CPP([getaddrinfo],[ 916 $cares_includes_ws2tcpip 917 $cares_includes_sys_socket 918 $cares_includes_netdb 919 ],[ 920 AC_MSG_RESULT([yes]) 921 tst_proto_getaddrinfo="yes" 922 ],[ 923 AC_MSG_RESULT([no]) 924 tst_proto_getaddrinfo="no" 925 ]) 926 fi 927 # 928 if test "$tst_proto_getaddrinfo" = "yes"; then 929 AC_MSG_CHECKING([if getaddrinfo is compilable]) 930 AC_COMPILE_IFELSE([ 931 AC_LANG_PROGRAM([[ 932 $cares_includes_ws2tcpip 933 $cares_includes_sys_socket 934 $cares_includes_netdb 935 ]],[[ 936 if(0 != getaddrinfo(0, 0, 0, 0)) 937 return 1; 938 ]]) 939 ],[ 940 AC_MSG_RESULT([yes]) 941 tst_compi_getaddrinfo="yes" 942 ],[ 943 AC_MSG_RESULT([no]) 944 tst_compi_getaddrinfo="no" 945 ]) 946 fi 947 # 948 dnl only do runtime verification when not cross-compiling 949 if test "x$cross_compiling" != "xyes" && 950 test "$tst_compi_getaddrinfo" = "yes"; then 951 AC_MSG_CHECKING([if getaddrinfo seems to work]) 952 AC_RUN_IFELSE([ 953 AC_LANG_PROGRAM([[ 954 $cares_includes_ws2tcpip 955 $cares_includes_stdlib 956 $cares_includes_string 957 $cares_includes_sys_socket 958 $cares_includes_netdb 959 ]],[[ 960 struct addrinfo hints; 961 struct addrinfo *ai = 0; 962 int error; 963 964 memset(&hints, 0, sizeof(hints)); 965 hints.ai_flags = AI_NUMERICHOST; 966 hints.ai_family = AF_UNSPEC; 967 hints.ai_socktype = SOCK_STREAM; 968 error = getaddrinfo("127.0.0.1", 0, &hints, &ai); 969 if(error || !ai) 970 exit(1); /* fail */ 971 else 972 exit(0); 973 ]]) 974 ],[ 975 AC_MSG_RESULT([yes]) 976 tst_works_getaddrinfo="yes" 977 ],[ 978 AC_MSG_RESULT([no]) 979 tst_works_getaddrinfo="no" 980 ]) 981 fi 982 # 983 if test "$tst_compi_getaddrinfo" = "yes" && 984 test "$tst_works_getaddrinfo" != "no"; then 985 AC_MSG_CHECKING([if getaddrinfo usage allowed]) 986 if test "x$cares_disallow_getaddrinfo" != "xyes"; then 987 AC_MSG_RESULT([yes]) 988 tst_allow_getaddrinfo="yes" 989 else 990 AC_MSG_RESULT([no]) 991 tst_allow_getaddrinfo="no" 992 fi 993 fi 994 # 995 AC_MSG_CHECKING([if getaddrinfo might be used]) 996 if test "$tst_links_getaddrinfo" = "yes" && 997 test "$tst_proto_getaddrinfo" = "yes" && 998 test "$tst_compi_getaddrinfo" = "yes" && 999 test "$tst_allow_getaddrinfo" = "yes" && 1000 test "$tst_works_getaddrinfo" != "no"; then 1001 AC_MSG_RESULT([yes]) 1002 AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO, 1, 1003 [Define to 1 if you have a working getaddrinfo function.]) 1004 ac_cv_func_getaddrinfo="yes" 1005 else 1006 AC_MSG_RESULT([no]) 1007 ac_cv_func_getaddrinfo="no" 1008 ac_cv_func_getaddrinfo_threadsafe="no" 1009 fi 1010 # 1011 if test "$ac_cv_func_getaddrinfo" = "yes"; then 1012 AC_MSG_CHECKING([if getaddrinfo is threadsafe]) 1013 case $host_os in 1014 aix[[1234]].* | aix5.[[01]].*) 1015 dnl aix 5.1 and older 1016 tst_tsafe_getaddrinfo="no" 1017 ;; 1018 aix*) 1019 dnl aix 5.2 and newer 1020 tst_tsafe_getaddrinfo="yes" 1021 ;; 1022 darwin[[12345]].*) 1023 dnl darwin 5.0 and mac os x 10.1.X and older 1024 tst_tsafe_getaddrinfo="no" 1025 ;; 1026 darwin*) 1027 dnl darwin 6.0 and mac os x 10.2.X and newer 1028 tst_tsafe_getaddrinfo="yes" 1029 ;; 1030 freebsd[[1234]].* | freebsd5.[[1234]]*) 1031 dnl freebsd 5.4 and older 1032 tst_tsafe_getaddrinfo="no" 1033 ;; 1034 freebsd*) 1035 dnl freebsd 5.5 and newer 1036 tst_tsafe_getaddrinfo="yes" 1037 ;; 1038 hpux[[123456789]].* | hpux10.* | hpux11.0* | hpux11.10*) 1039 dnl hpux 11.10 and older 1040 tst_tsafe_getaddrinfo="no" 1041 ;; 1042 hpux*) 1043 dnl hpux 11.11 and newer 1044 tst_tsafe_getaddrinfo="yes" 1045 ;; 1046 netbsd[[123]].*) 1047 dnl netbsd 3.X and older 1048 tst_tsafe_getaddrinfo="no" 1049 ;; 1050 netbsd*) 1051 dnl netbsd 4.X and newer 1052 tst_tsafe_getaddrinfo="yes" 1053 ;; 1054 *bsd*) 1055 dnl All other bsd's 1056 tst_tsafe_getaddrinfo="no" 1057 ;; 1058 solaris2*) 1059 dnl solaris which have it 1060 tst_tsafe_getaddrinfo="yes" 1061 ;; 1062 esac 1063 if test "$tst_tsafe_getaddrinfo" = "unknown" && 1064 test "$ac_cv_native_windows" = "yes"; then 1065 tst_tsafe_getaddrinfo="yes" 1066 fi 1067 if test "$tst_tsafe_getaddrinfo" = "unknown"; then 1068 CURL_CHECK_DEF_CC([h_errno], [ 1069 $cares_includes_sys_socket 1070 $cares_includes_netdb 1071 ], [silent]) 1072 if test "$curl_cv_have_def_h_errno" = "yes"; then 1073 tst_h_errno_macro="yes" 1074 else 1075 tst_h_errno_macro="no" 1076 fi 1077 AC_COMPILE_IFELSE([ 1078 AC_LANG_PROGRAM([[ 1079 $cares_includes_sys_socket 1080 $cares_includes_netdb 1081 ]],[[ 1082 h_errno = 2; 1083 if(0 != h_errno) 1084 return 1; 1085 ]]) 1086 ],[ 1087 tst_h_errno_modifiable_lvalue="yes" 1088 ],[ 1089 tst_h_errno_modifiable_lvalue="no" 1090 ]) 1091 AC_COMPILE_IFELSE([ 1092 AC_LANG_PROGRAM([[ 1093 ]],[[ 1094#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200809L) 1095 return 0; 1096#elif defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 700) 1097 return 0; 1098#else 1099 force compilation error 1100#endif 1101 ]]) 1102 ],[ 1103 tst_h_errno_sbs_issue_7="yes" 1104 ],[ 1105 tst_h_errno_sbs_issue_7="no" 1106 ]) 1107 if test "$tst_h_errno_macro" = "no" && 1108 test "$tst_h_errno_modifiable_lvalue" = "no" && 1109 test "$tst_h_errno_sbs_issue_7" = "no"; then 1110 tst_tsafe_getaddrinfo="no" 1111 else 1112 tst_tsafe_getaddrinfo="yes" 1113 fi 1114 fi 1115 AC_MSG_RESULT([$tst_tsafe_getaddrinfo]) 1116 if test "$tst_tsafe_getaddrinfo" = "yes"; then 1117 AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO_THREADSAFE, 1, 1118 [Define to 1 if the getaddrinfo function is threadsafe.]) 1119 ac_cv_func_getaddrinfo_threadsafe="yes" 1120 else 1121 ac_cv_func_getaddrinfo_threadsafe="no" 1122 fi 1123 fi 1124]) 1125 1126 1127dnl CARES_CHECK_FUNC_GETENV 1128dnl ------------------------------------------------- 1129dnl Verify if getenv is available, prototyped, and 1130dnl can be compiled. If all of these are true, and 1131dnl usage has not been previously disallowed with 1132dnl shell variable cares_disallow_getenv, then 1133dnl HAVE_GETENV will be defined. 1134 1135AC_DEFUN([CARES_CHECK_FUNC_GETENV], [ 1136 AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl 1137 # 1138 tst_links_getenv="unknown" 1139 tst_proto_getenv="unknown" 1140 tst_compi_getenv="unknown" 1141 tst_allow_getenv="unknown" 1142 # 1143 AC_MSG_CHECKING([if getenv can be linked]) 1144 AC_LINK_IFELSE([ 1145 AC_LANG_FUNC_LINK_TRY([getenv]) 1146 ],[ 1147 AC_MSG_RESULT([yes]) 1148 tst_links_getenv="yes" 1149 ],[ 1150 AC_MSG_RESULT([no]) 1151 tst_links_getenv="no" 1152 ]) 1153 # 1154 if test "$tst_links_getenv" = "yes"; then 1155 AC_MSG_CHECKING([if getenv is prototyped]) 1156 AC_EGREP_CPP([getenv],[ 1157 $cares_includes_stdlib 1158 ],[ 1159 AC_MSG_RESULT([yes]) 1160 tst_proto_getenv="yes" 1161 ],[ 1162 AC_MSG_RESULT([no]) 1163 tst_proto_getenv="no" 1164 ]) 1165 fi 1166 # 1167 if test "$tst_proto_getenv" = "yes"; then 1168 AC_MSG_CHECKING([if getenv is compilable]) 1169 AC_COMPILE_IFELSE([ 1170 AC_LANG_PROGRAM([[ 1171 $cares_includes_stdlib 1172 ]],[[ 1173 if(0 != getenv(0)) 1174 return 1; 1175 ]]) 1176 ],[ 1177 AC_MSG_RESULT([yes]) 1178 tst_compi_getenv="yes" 1179 ],[ 1180 AC_MSG_RESULT([no]) 1181 tst_compi_getenv="no" 1182 ]) 1183 fi 1184 # 1185 if test "$tst_compi_getenv" = "yes"; then 1186 AC_MSG_CHECKING([if getenv usage allowed]) 1187 if test "x$cares_disallow_getenv" != "xyes"; then 1188 AC_MSG_RESULT([yes]) 1189 tst_allow_getenv="yes" 1190 else 1191 AC_MSG_RESULT([no]) 1192 tst_allow_getenv="no" 1193 fi 1194 fi 1195 # 1196 AC_MSG_CHECKING([if getenv might be used]) 1197 if test "$tst_links_getenv" = "yes" && 1198 test "$tst_proto_getenv" = "yes" && 1199 test "$tst_compi_getenv" = "yes" && 1200 test "$tst_allow_getenv" = "yes"; then 1201 AC_MSG_RESULT([yes]) 1202 AC_DEFINE_UNQUOTED(HAVE_GETENV, 1, 1203 [Define to 1 if you have the getenv function.]) 1204 ac_cv_func_getenv="yes" 1205 else 1206 AC_MSG_RESULT([no]) 1207 ac_cv_func_getenv="no" 1208 fi 1209]) 1210 1211 1212dnl CARES_CHECK_FUNC_GETHOSTBYADDR 1213dnl ------------------------------------------------- 1214dnl Verify if gethostbyaddr is available, prototyped, 1215dnl and can be compiled. If all of these are true, 1216dnl and usage has not been previously disallowed with 1217dnl shell variable cares_disallow_gethostbyaddr, then 1218dnl HAVE_GETHOSTBYADDR will be defined. 1219 1220AC_DEFUN([CARES_CHECK_FUNC_GETHOSTBYADDR], [ 1221 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 1222 AC_REQUIRE([CARES_INCLUDES_NETDB])dnl 1223 # 1224 tst_links_gethostbyaddr="unknown" 1225 tst_proto_gethostbyaddr="unknown" 1226 tst_compi_gethostbyaddr="unknown" 1227 tst_allow_gethostbyaddr="unknown" 1228 # 1229 AC_MSG_CHECKING([if gethostbyaddr can be linked]) 1230 AC_LINK_IFELSE([ 1231 AC_LANG_PROGRAM([[ 1232 $cares_includes_winsock2 1233 $cares_includes_netdb 1234 ]],[[ 1235 if(0 != gethostbyaddr(0, 0, 0)) 1236 return 1; 1237 ]]) 1238 ],[ 1239 AC_MSG_RESULT([yes]) 1240 tst_links_gethostbyaddr="yes" 1241 ],[ 1242 AC_MSG_RESULT([no]) 1243 tst_links_gethostbyaddr="no" 1244 ]) 1245 # 1246 if test "$tst_links_gethostbyaddr" = "yes"; then 1247 AC_MSG_CHECKING([if gethostbyaddr is prototyped]) 1248 AC_EGREP_CPP([gethostbyaddr],[ 1249 $cares_includes_winsock2 1250 $cares_includes_netdb 1251 ],[ 1252 AC_MSG_RESULT([yes]) 1253 tst_proto_gethostbyaddr="yes" 1254 ],[ 1255 AC_MSG_RESULT([no]) 1256 tst_proto_gethostbyaddr="no" 1257 ]) 1258 fi 1259 # 1260 if test "$tst_proto_gethostbyaddr" = "yes"; then 1261 AC_MSG_CHECKING([if gethostbyaddr is compilable]) 1262 AC_COMPILE_IFELSE([ 1263 AC_LANG_PROGRAM([[ 1264 $cares_includes_winsock2 1265 $cares_includes_netdb 1266 ]],[[ 1267 if(0 != gethostbyaddr(0, 0, 0)) 1268 return 1; 1269 ]]) 1270 ],[ 1271 AC_MSG_RESULT([yes]) 1272 tst_compi_gethostbyaddr="yes" 1273 ],[ 1274 AC_MSG_RESULT([no]) 1275 tst_compi_gethostbyaddr="no" 1276 ]) 1277 fi 1278 # 1279 if test "$tst_compi_gethostbyaddr" = "yes"; then 1280 AC_MSG_CHECKING([if gethostbyaddr usage allowed]) 1281 if test "x$cares_disallow_gethostbyaddr" != "xyes"; then 1282 AC_MSG_RESULT([yes]) 1283 tst_allow_gethostbyaddr="yes" 1284 else 1285 AC_MSG_RESULT([no]) 1286 tst_allow_gethostbyaddr="no" 1287 fi 1288 fi 1289 # 1290 AC_MSG_CHECKING([if gethostbyaddr might be used]) 1291 if test "$tst_links_gethostbyaddr" = "yes" && 1292 test "$tst_proto_gethostbyaddr" = "yes" && 1293 test "$tst_compi_gethostbyaddr" = "yes" && 1294 test "$tst_allow_gethostbyaddr" = "yes"; then 1295 AC_MSG_RESULT([yes]) 1296 AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYADDR, 1, 1297 [Define to 1 if you have the gethostbyaddr function.]) 1298 ac_cv_func_gethostbyaddr="yes" 1299 else 1300 AC_MSG_RESULT([no]) 1301 ac_cv_func_gethostbyaddr="no" 1302 fi 1303]) 1304 1305 1306dnl CARES_CHECK_FUNC_GETHOSTBYNAME 1307dnl ------------------------------------------------- 1308dnl Verify if gethostbyname is available, prototyped, 1309dnl and can be compiled. If all of these are true, 1310dnl and usage has not been previously disallowed with 1311dnl shell variable cares_disallow_gethostbyname, then 1312dnl HAVE_GETHOSTBYNAME will be defined. 1313 1314AC_DEFUN([CARES_CHECK_FUNC_GETHOSTBYNAME], [ 1315 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 1316 AC_REQUIRE([CARES_INCLUDES_NETDB])dnl 1317 # 1318 tst_links_gethostbyname="unknown" 1319 tst_proto_gethostbyname="unknown" 1320 tst_compi_gethostbyname="unknown" 1321 tst_allow_gethostbyname="unknown" 1322 # 1323 AC_MSG_CHECKING([if gethostbyname can be linked]) 1324 AC_LINK_IFELSE([ 1325 AC_LANG_PROGRAM([[ 1326 $cares_includes_winsock2 1327 $cares_includes_netdb 1328 ]],[[ 1329 if(0 != gethostbyname(0)) 1330 return 1; 1331 ]]) 1332 ],[ 1333 AC_MSG_RESULT([yes]) 1334 tst_links_gethostbyname="yes" 1335 ],[ 1336 AC_MSG_RESULT([no]) 1337 tst_links_gethostbyname="no" 1338 ]) 1339 # 1340 if test "$tst_links_gethostbyname" = "yes"; then 1341 AC_MSG_CHECKING([if gethostbyname is prototyped]) 1342 AC_EGREP_CPP([gethostbyname],[ 1343 $cares_includes_winsock2 1344 $cares_includes_netdb 1345 ],[ 1346 AC_MSG_RESULT([yes]) 1347 tst_proto_gethostbyname="yes" 1348 ],[ 1349 AC_MSG_RESULT([no]) 1350 tst_proto_gethostbyname="no" 1351 ]) 1352 fi 1353 # 1354 if test "$tst_proto_gethostbyname" = "yes"; then 1355 AC_MSG_CHECKING([if gethostbyname is compilable]) 1356 AC_COMPILE_IFELSE([ 1357 AC_LANG_PROGRAM([[ 1358 $cares_includes_winsock2 1359 $cares_includes_netdb 1360 ]],[[ 1361 if(0 != gethostbyname(0)) 1362 return 1; 1363 ]]) 1364 ],[ 1365 AC_MSG_RESULT([yes]) 1366 tst_compi_gethostbyname="yes" 1367 ],[ 1368 AC_MSG_RESULT([no]) 1369 tst_compi_gethostbyname="no" 1370 ]) 1371 fi 1372 # 1373 if test "$tst_compi_gethostbyname" = "yes"; then 1374 AC_MSG_CHECKING([if gethostbyname usage allowed]) 1375 if test "x$cares_disallow_gethostbyname" != "xyes"; then 1376 AC_MSG_RESULT([yes]) 1377 tst_allow_gethostbyname="yes" 1378 else 1379 AC_MSG_RESULT([no]) 1380 tst_allow_gethostbyname="no" 1381 fi 1382 fi 1383 # 1384 AC_MSG_CHECKING([if gethostbyname might be used]) 1385 if test "$tst_links_gethostbyname" = "yes" && 1386 test "$tst_proto_gethostbyname" = "yes" && 1387 test "$tst_compi_gethostbyname" = "yes" && 1388 test "$tst_allow_gethostbyname" = "yes"; then 1389 AC_MSG_RESULT([yes]) 1390 AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYNAME, 1, 1391 [Define to 1 if you have the gethostbyname function.]) 1392 ac_cv_func_gethostbyname="yes" 1393 else 1394 AC_MSG_RESULT([no]) 1395 ac_cv_func_gethostbyname="no" 1396 fi 1397]) 1398 1399 1400dnl CARES_CHECK_FUNC_GETHOSTNAME 1401dnl ------------------------------------------------- 1402dnl Verify if gethostname is available, prototyped, and 1403dnl can be compiled. If all of these are true, and 1404dnl usage has not been previously disallowed with 1405dnl shell variable cares_disallow_gethostname, then 1406dnl HAVE_GETHOSTNAME will be defined. 1407 1408AC_DEFUN([CARES_CHECK_FUNC_GETHOSTNAME], [ 1409 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 1410 AC_REQUIRE([CARES_INCLUDES_UNISTD])dnl 1411 AC_REQUIRE([CARES_PREPROCESS_CALLCONV])dnl 1412 # 1413 tst_links_gethostname="unknown" 1414 tst_proto_gethostname="unknown" 1415 tst_compi_gethostname="unknown" 1416 tst_allow_gethostname="unknown" 1417 # 1418 AC_MSG_CHECKING([if gethostname can be linked]) 1419 AC_LINK_IFELSE([ 1420 AC_LANG_PROGRAM([[ 1421 $cares_includes_winsock2 1422 $cares_includes_unistd 1423 ]],[[ 1424 if(0 != gethostname(0, 0)) 1425 return 1; 1426 ]]) 1427 ],[ 1428 AC_MSG_RESULT([yes]) 1429 tst_links_gethostname="yes" 1430 ],[ 1431 AC_MSG_RESULT([no]) 1432 tst_links_gethostname="no" 1433 ]) 1434 # 1435 if test "$tst_links_gethostname" = "yes"; then 1436 AC_MSG_CHECKING([if gethostname is prototyped]) 1437 AC_EGREP_CPP([gethostname],[ 1438 $cares_includes_winsock2 1439 $cares_includes_unistd 1440 ],[ 1441 AC_MSG_RESULT([yes]) 1442 tst_proto_gethostname="yes" 1443 ],[ 1444 AC_MSG_RESULT([no]) 1445 tst_proto_gethostname="no" 1446 ]) 1447 fi 1448 # 1449 if test "$tst_proto_gethostname" = "yes"; then 1450 AC_MSG_CHECKING([if gethostname is compilable]) 1451 AC_COMPILE_IFELSE([ 1452 AC_LANG_PROGRAM([[ 1453 $cares_includes_winsock2 1454 $cares_includes_unistd 1455 ]],[[ 1456 if(0 != gethostname(0, 0)) 1457 return 1; 1458 ]]) 1459 ],[ 1460 AC_MSG_RESULT([yes]) 1461 tst_compi_gethostname="yes" 1462 ],[ 1463 AC_MSG_RESULT([no]) 1464 tst_compi_gethostname="no" 1465 ]) 1466 fi 1467 # 1468 if test "$tst_compi_gethostname" = "yes"; then 1469 AC_MSG_CHECKING([for gethostname arg 2 data type]) 1470 tst_gethostname_type_arg2="unknown" 1471 for tst_arg1 in 'char *' 'unsigned char *' 'void *'; do 1472 for tst_arg2 in 'int' 'unsigned int' 'size_t'; do 1473 if test "$tst_gethostname_type_arg2" = "unknown"; then 1474 AC_COMPILE_IFELSE([ 1475 AC_LANG_PROGRAM([[ 1476 $cares_includes_winsock2 1477 $cares_includes_unistd 1478 $cares_preprocess_callconv 1479 extern int FUNCALLCONV gethostname($tst_arg1, $tst_arg2); 1480 ]],[[ 1481 if(0 != gethostname(0, 0)) 1482 return 1; 1483 ]]) 1484 ],[ 1485 tst_gethostname_type_arg2="$tst_arg2" 1486 ]) 1487 fi 1488 done 1489 done 1490 AC_MSG_RESULT([$tst_gethostname_type_arg2]) 1491 if test "$tst_gethostname_type_arg2" != "unknown"; then 1492 AC_DEFINE_UNQUOTED(GETHOSTNAME_TYPE_ARG2, $tst_gethostname_type_arg2, 1493 [Define to the type of arg 2 for gethostname.]) 1494 fi 1495 fi 1496 # 1497 if test "$tst_compi_gethostname" = "yes"; then 1498 AC_MSG_CHECKING([if gethostname usage allowed]) 1499 if test "x$cares_disallow_gethostname" != "xyes"; then 1500 AC_MSG_RESULT([yes]) 1501 tst_allow_gethostname="yes" 1502 else 1503 AC_MSG_RESULT([no]) 1504 tst_allow_gethostname="no" 1505 fi 1506 fi 1507 # 1508 AC_MSG_CHECKING([if gethostname might be used]) 1509 if test "$tst_links_gethostname" = "yes" && 1510 test "$tst_proto_gethostname" = "yes" && 1511 test "$tst_compi_gethostname" = "yes" && 1512 test "$tst_allow_gethostname" = "yes"; then 1513 AC_MSG_RESULT([yes]) 1514 AC_DEFINE_UNQUOTED(HAVE_GETHOSTNAME, 1, 1515 [Define to 1 if you have the gethostname function.]) 1516 ac_cv_func_gethostname="yes" 1517 else 1518 AC_MSG_RESULT([no]) 1519 ac_cv_func_gethostname="no" 1520 fi 1521]) 1522 1523 1524dnl CARES_CHECK_FUNC_GETSERVBYPORT_R 1525dnl ------------------------------------------------- 1526dnl Verify if getservbyport_r is available, prototyped, 1527dnl and can be compiled. If all of these are true, and 1528dnl usage has not been previously disallowed with 1529dnl shell variable cares_disallow_getservbyport_r, then 1530dnl HAVE_GETSERVBYPORT_R will be defined. 1531 1532AC_DEFUN([CARES_CHECK_FUNC_GETSERVBYPORT_R], [ 1533 AC_REQUIRE([CARES_INCLUDES_NETDB])dnl 1534 # 1535 tst_links_getservbyport_r="unknown" 1536 tst_proto_getservbyport_r="unknown" 1537 tst_compi_getservbyport_r="unknown" 1538 tst_allow_getservbyport_r="unknown" 1539 tst_nargs_getservbyport_r="unknown" 1540 # 1541 AC_MSG_CHECKING([if getservbyport_r can be linked]) 1542 AC_LINK_IFELSE([ 1543 AC_LANG_FUNC_LINK_TRY([getservbyport_r]) 1544 ],[ 1545 AC_MSG_RESULT([yes]) 1546 tst_links_getservbyport_r="yes" 1547 ],[ 1548 AC_MSG_RESULT([no]) 1549 tst_links_getservbyport_r="no" 1550 ]) 1551 # 1552 if test "$tst_links_getservbyport_r" = "yes"; then 1553 AC_MSG_CHECKING([if getservbyport_r is prototyped]) 1554 AC_EGREP_CPP([getservbyport_r],[ 1555 $cares_includes_netdb 1556 ],[ 1557 AC_MSG_RESULT([yes]) 1558 tst_proto_getservbyport_r="yes" 1559 ],[ 1560 AC_MSG_RESULT([no]) 1561 tst_proto_getservbyport_r="no" 1562 ]) 1563 fi 1564 # 1565 if test "$tst_proto_getservbyport_r" = "yes"; then 1566 if test "$tst_nargs_getservbyport_r" = "unknown"; then 1567 AC_MSG_CHECKING([if getservbyport_r takes 4 args.]) 1568 AC_COMPILE_IFELSE([ 1569 AC_LANG_PROGRAM([[ 1570 $cares_includes_netdb 1571 ]],[[ 1572 if(0 != getservbyport_r(0, 0, 0, 0)) 1573 return 1; 1574 ]]) 1575 ],[ 1576 AC_MSG_RESULT([yes]) 1577 tst_compi_getservbyport_r="yes" 1578 tst_nargs_getservbyport_r="4" 1579 ],[ 1580 AC_MSG_RESULT([no]) 1581 tst_compi_getservbyport_r="no" 1582 ]) 1583 fi 1584 if test "$tst_nargs_getservbyport_r" = "unknown"; then 1585 AC_MSG_CHECKING([if getservbyport_r takes 5 args.]) 1586 AC_COMPILE_IFELSE([ 1587 AC_LANG_PROGRAM([[ 1588 $cares_includes_netdb 1589 ]],[[ 1590 if(0 != getservbyport_r(0, 0, 0, 0, 0)) 1591 return 1; 1592 ]]) 1593 ],[ 1594 AC_MSG_RESULT([yes]) 1595 tst_compi_getservbyport_r="yes" 1596 tst_nargs_getservbyport_r="5" 1597 ],[ 1598 AC_MSG_RESULT([no]) 1599 tst_compi_getservbyport_r="no" 1600 ]) 1601 fi 1602 if test "$tst_nargs_getservbyport_r" = "unknown"; then 1603 AC_MSG_CHECKING([if getservbyport_r takes 6 args.]) 1604 AC_COMPILE_IFELSE([ 1605 AC_LANG_PROGRAM([[ 1606 $cares_includes_netdb 1607 ]],[[ 1608 if(0 != getservbyport_r(0, 0, 0, 0, 0, 0)) 1609 return 1; 1610 ]]) 1611 ],[ 1612 AC_MSG_RESULT([yes]) 1613 tst_compi_getservbyport_r="yes" 1614 tst_nargs_getservbyport_r="6" 1615 ],[ 1616 AC_MSG_RESULT([no]) 1617 tst_compi_getservbyport_r="no" 1618 ]) 1619 fi 1620 AC_MSG_CHECKING([if getservbyport_r is compilable]) 1621 if test "$tst_compi_getservbyport_r" = "yes"; then 1622 AC_MSG_RESULT([yes]) 1623 else 1624 AC_MSG_RESULT([no]) 1625 fi 1626 fi 1627 # 1628 if test "$tst_compi_getservbyport_r" = "yes"; then 1629 AC_MSG_CHECKING([if getservbyport_r usage allowed]) 1630 if test "x$cares_disallow_getservbyport_r" != "xyes"; then 1631 AC_MSG_RESULT([yes]) 1632 tst_allow_getservbyport_r="yes" 1633 else 1634 AC_MSG_RESULT([no]) 1635 tst_allow_getservbyport_r="no" 1636 fi 1637 fi 1638 # 1639 AC_MSG_CHECKING([if getservbyport_r might be used]) 1640 if test "$tst_links_getservbyport_r" = "yes" && 1641 test "$tst_proto_getservbyport_r" = "yes" && 1642 test "$tst_compi_getservbyport_r" = "yes" && 1643 test "$tst_allow_getservbyport_r" = "yes"; then 1644 AC_MSG_RESULT([yes]) 1645 AC_DEFINE_UNQUOTED(HAVE_GETSERVBYPORT_R, 1, 1646 [Define to 1 if you have the getservbyport_r function.]) 1647 AC_DEFINE_UNQUOTED(GETSERVBYPORT_R_ARGS, $tst_nargs_getservbyport_r, 1648 [Specifies the number of arguments to getservbyport_r]) 1649 if test "$tst_nargs_getservbyport_r" -eq "4"; then 1650 AC_DEFINE(GETSERVBYPORT_R_BUFSIZE, sizeof(struct servent_data), 1651 [Specifies the size of the buffer to pass to getservbyport_r]) 1652 else 1653 AC_DEFINE(GETSERVBYPORT_R_BUFSIZE, 4096, 1654 [Specifies the size of the buffer to pass to getservbyport_r]) 1655 fi 1656 ac_cv_func_getservbyport_r="yes" 1657 else 1658 AC_MSG_RESULT([no]) 1659 ac_cv_func_getservbyport_r="no" 1660 fi 1661]) 1662 1663 1664dnl CARES_CHECK_FUNC_INET_NET_PTON 1665dnl ------------------------------------------------- 1666dnl Verify if inet_net_pton is available, prototyped, can 1667dnl be compiled and seems to work. If all of these are 1668dnl true, and usage has not been previously disallowed 1669dnl with shell variable cares_disallow_inet_net_pton, then 1670dnl HAVE_INET_NET_PTON will be defined. 1671 1672AC_DEFUN([CARES_CHECK_FUNC_INET_NET_PTON], [ 1673 AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl 1674 AC_REQUIRE([CARES_INCLUDES_ARPA_INET])dnl 1675 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 1676 # 1677 tst_links_inet_net_pton="unknown" 1678 tst_proto_inet_net_pton="unknown" 1679 tst_compi_inet_net_pton="unknown" 1680 tst_works_inet_net_pton="unknown" 1681 tst_allow_inet_net_pton="unknown" 1682 # 1683 AC_MSG_CHECKING([if inet_net_pton can be linked]) 1684 AC_LINK_IFELSE([ 1685 AC_LANG_FUNC_LINK_TRY([inet_net_pton]) 1686 ],[ 1687 AC_MSG_RESULT([yes]) 1688 tst_links_inet_net_pton="yes" 1689 ],[ 1690 AC_MSG_RESULT([no]) 1691 tst_links_inet_net_pton="no" 1692 ]) 1693 # 1694 if test "$tst_links_inet_net_pton" = "yes"; then 1695 AC_MSG_CHECKING([if inet_net_pton is prototyped]) 1696 AC_EGREP_CPP([inet_net_pton],[ 1697 $cares_includes_arpa_inet 1698 ],[ 1699 AC_MSG_RESULT([yes]) 1700 tst_proto_inet_net_pton="yes" 1701 ],[ 1702 AC_MSG_RESULT([no]) 1703 tst_proto_inet_net_pton="no" 1704 ]) 1705 fi 1706 # 1707 if test "$tst_proto_inet_net_pton" = "yes"; then 1708 AC_MSG_CHECKING([if inet_net_pton is compilable]) 1709 AC_COMPILE_IFELSE([ 1710 AC_LANG_PROGRAM([[ 1711 $cares_includes_arpa_inet 1712 ]],[[ 1713 if(0 != inet_net_pton(0, 0, 0, 0)) 1714 return 1; 1715 ]]) 1716 ],[ 1717 AC_MSG_RESULT([yes]) 1718 tst_compi_inet_net_pton="yes" 1719 ],[ 1720 AC_MSG_RESULT([no]) 1721 tst_compi_inet_net_pton="no" 1722 ]) 1723 fi 1724 # 1725 dnl only do runtime verification when not cross-compiling 1726 if test "x$cross_compiling" != "xyes" && 1727 test "$tst_compi_inet_net_pton" = "yes"; then 1728 AC_MSG_CHECKING([if inet_net_pton seems to work]) 1729 AC_RUN_IFELSE([ 1730 AC_LANG_PROGRAM([[ 1731 $cares_includes_stdlib 1732 $cares_includes_arpa_inet 1733 $cares_includes_string 1734 ]],[[ 1735 unsigned char ipv6a[16+1]; 1736 unsigned char ipv4a[4+1]; 1737 const char *ipv6net1 = "fe80::214:4fff:fe0b:76c8"; 1738 const char *ipv6net2 = "::fffe:7f00:1"; 1739 const char *ipv6net3 = "7f20:1::/64"; 1740 const char *ipv6net4 = "7f20:1::/2147483649"; 1741 const char *ipv4net1 = "192.168.100.1"; 1742 const char *ipv4net2 = "192.168.100/32"; 1743 const char *ipv4net3 = "192.168.100.1/2147483649"; 1744 /* - */ 1745 memset(ipv4a, 1, sizeof(ipv4a)); 1746 if(32 != inet_net_pton(AF_INET, ipv4net1, ipv4a, 4)) 1747 exit(1); /* fail */ 1748 /* - */ 1749 if( (ipv4a[0x00] != 0xc0) || 1750 (ipv4a[0x01] != 0xa8) || 1751 (ipv4a[0x02] != 0x64) || 1752 (ipv4a[0x03] != 0x01) || 1753 (ipv4a[0x04] != 0x01) ) 1754 exit(1); /* fail */ 1755 /* - */ 1756 memset(ipv4a, 1, sizeof(ipv4a)); 1757 if(32 != inet_net_pton(AF_INET, ipv4net2, ipv4a, 4)) 1758 exit(1); /* fail */ 1759 /* - */ 1760 if( (ipv4a[0x00] != 0xc0) || 1761 (ipv4a[0x01] != 0xa8) || 1762 (ipv4a[0x02] != 0x64) || 1763 (ipv4a[0x03] != 0x00) || 1764 (ipv4a[0x04] != 0x01) ) 1765 exit(1); /* fail */ 1766 /* - */ 1767 memset(ipv4a, 1, sizeof(ipv4a)); 1768 if(-1 != inet_net_pton(AF_INET, ipv4net3, ipv4a, 4)) 1769 exit(1); /* fail */ 1770 /* - */ 1771 memset(ipv6a, 1, sizeof(ipv6a)); 1772 if(128 != inet_net_pton(AF_INET6, ipv6net1, ipv6a, 16)) 1773 exit(1); /* fail */ 1774 /* - */ 1775 if( (ipv6a[0x00] != 0xfe) || 1776 (ipv6a[0x01] != 0x80) || 1777 (ipv6a[0x08] != 0x02) || 1778 (ipv6a[0x09] != 0x14) || 1779 (ipv6a[0x0a] != 0x4f) || 1780 (ipv6a[0x0b] != 0xff) || 1781 (ipv6a[0x0c] != 0xfe) || 1782 (ipv6a[0x0d] != 0x0b) || 1783 (ipv6a[0x0e] != 0x76) || 1784 (ipv6a[0x0f] != 0xc8) || 1785 (ipv6a[0x10] != 0x01) ) 1786 exit(1); /* fail */ 1787 /* - */ 1788 if( (ipv6a[0x02] != 0x0) || 1789 (ipv6a[0x03] != 0x0) || 1790 (ipv6a[0x04] != 0x0) || 1791 (ipv6a[0x05] != 0x0) || 1792 (ipv6a[0x06] != 0x0) || 1793 (ipv6a[0x07] != 0x0) ) 1794 exit(1); /* fail */ 1795 /* - */ 1796 memset(ipv6a, 0, sizeof(ipv6a)); 1797 ipv6a[0x10] = 0x01; 1798 if(128 != inet_net_pton(AF_INET6, ipv6net2, ipv6a, 16)) 1799 exit(1); /* fail */ 1800 /* - */ 1801 if( (ipv6a[0x0a] != 0xff) || 1802 (ipv6a[0x0b] != 0xfe) || 1803 (ipv6a[0x0c] != 0x7f) || 1804 (ipv6a[0x0f] != 0x01) || 1805 (ipv6a[0x10] != 0x01) ) 1806 exit(1); /* fail */ 1807 /* - */ 1808 if( (ipv6a[0x00] != 0x0) || 1809 (ipv6a[0x01] != 0x0) || 1810 (ipv6a[0x02] != 0x0) || 1811 (ipv6a[0x03] != 0x0) || 1812 (ipv6a[0x04] != 0x0) || 1813 (ipv6a[0x05] != 0x0) || 1814 (ipv6a[0x06] != 0x0) || 1815 (ipv6a[0x07] != 0x0) || 1816 (ipv6a[0x08] != 0x0) || 1817 (ipv6a[0x09] != 0x0) || 1818 (ipv6a[0x0d] != 0x0) || 1819 (ipv6a[0x0e] != 0x0) ) 1820 exit(1); /* fail */ 1821 /* - */ 1822 memset(ipv6a, 1, sizeof(ipv6a)); 1823 if(64 != inet_net_pton(AF_INET6, ipv6net3, ipv6a, 16)) 1824 exit(1); /* fail */ 1825 if( (ipv6a[0x00] != 0x7f) || 1826 (ipv6a[0x01] != 0x20) || 1827 (ipv6a[0x03] != 0x01) || 1828 (ipv6a[0x08] != 0x01) || 1829 (ipv6a[0x09] != 0x01) || 1830 (ipv6a[0x0a] != 0x01) || 1831 (ipv6a[0x0b] != 0x01) || 1832 (ipv6a[0x0c] != 0x01) || 1833 (ipv6a[0x0d] != 0x01) || 1834 (ipv6a[0x0e] != 0x01) || 1835 (ipv6a[0x0f] != 0x01) || 1836 (ipv6a[0x10] != 0x01) ) 1837 exit(1); /* fail */ 1838 if( (ipv6a[0x02] != 0x0) || 1839 (ipv6a[0x04] != 0x0) || 1840 (ipv6a[0x05] != 0x0) || 1841 (ipv6a[0x06] != 0x0) || 1842 (ipv6a[0x07] != 0x0) || 1843 (ipv6a[0x07] != 0x0) ) 1844 exit(1); /* fail */ 1845 /* - */ 1846 memset(ipv6a, 1, sizeof(ipv6a)); 1847 if(-1 != inet_net_pton(AF_INET6, ipv6net4, ipv6a, 16)) 1848 exit(1); /* fail */ 1849 /* - */ 1850 exit(0); 1851 ]]) 1852 ],[ 1853 AC_MSG_RESULT([yes]) 1854 tst_works_inet_net_pton="yes" 1855 ],[ 1856 AC_MSG_RESULT([no]) 1857 tst_works_inet_net_pton="no" 1858 ]) 1859 fi 1860 # 1861 if test "$tst_compi_inet_net_pton" = "yes" && 1862 test "$tst_works_inet_net_pton" != "no"; then 1863 AC_MSG_CHECKING([if inet_net_pton usage allowed]) 1864 if test "x$cares_disallow_inet_net_pton" != "xyes"; then 1865 AC_MSG_RESULT([yes]) 1866 tst_allow_inet_net_pton="yes" 1867 else 1868 AC_MSG_RESULT([no]) 1869 tst_allow_inet_net_pton="no" 1870 fi 1871 fi 1872 # 1873 AC_MSG_CHECKING([if inet_net_pton might be used]) 1874 if test "$tst_links_inet_net_pton" = "yes" && 1875 test "$tst_proto_inet_net_pton" = "yes" && 1876 test "$tst_compi_inet_net_pton" = "yes" && 1877 test "$tst_allow_inet_net_pton" = "yes" && 1878 test "$tst_works_inet_net_pton" != "no"; then 1879 AC_MSG_RESULT([yes]) 1880 AC_DEFINE_UNQUOTED(HAVE_INET_NET_PTON, 1, 1881 [Define to 1 if you have a IPv6 capable working inet_net_pton function.]) 1882 ac_cv_func_inet_net_pton="yes" 1883 else 1884 AC_MSG_RESULT([no]) 1885 ac_cv_func_inet_net_pton="no" 1886 fi 1887]) 1888 1889 1890dnl CARES_CHECK_FUNC_INET_NTOP 1891dnl ------------------------------------------------- 1892dnl Verify if inet_ntop is available, prototyped, can 1893dnl be compiled and seems to work. If all of these are 1894dnl true, and usage has not been previously disallowed 1895dnl with shell variable cares_disallow_inet_ntop, then 1896dnl HAVE_INET_NTOP will be defined. 1897 1898AC_DEFUN([CARES_CHECK_FUNC_INET_NTOP], [ 1899 AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl 1900 AC_REQUIRE([CARES_INCLUDES_ARPA_INET])dnl 1901 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 1902 # 1903 tst_links_inet_ntop="unknown" 1904 tst_proto_inet_ntop="unknown" 1905 tst_compi_inet_ntop="unknown" 1906 tst_works_inet_ntop="unknown" 1907 tst_allow_inet_ntop="unknown" 1908 # 1909 AC_MSG_CHECKING([if inet_ntop can be linked]) 1910 AC_LINK_IFELSE([ 1911 AC_LANG_FUNC_LINK_TRY([inet_ntop]) 1912 ],[ 1913 AC_MSG_RESULT([yes]) 1914 tst_links_inet_ntop="yes" 1915 ],[ 1916 AC_MSG_RESULT([no]) 1917 tst_links_inet_ntop="no" 1918 ]) 1919 # 1920 if test "$tst_links_inet_ntop" = "yes"; then 1921 AC_MSG_CHECKING([if inet_ntop is prototyped]) 1922 AC_EGREP_CPP([inet_ntop],[ 1923 $cares_includes_arpa_inet 1924 ],[ 1925 AC_MSG_RESULT([yes]) 1926 tst_proto_inet_ntop="yes" 1927 ],[ 1928 AC_MSG_RESULT([no]) 1929 tst_proto_inet_ntop="no" 1930 ]) 1931 fi 1932 # 1933 if test "$tst_proto_inet_ntop" = "yes"; then 1934 AC_MSG_CHECKING([if inet_ntop is compilable]) 1935 AC_COMPILE_IFELSE([ 1936 AC_LANG_PROGRAM([[ 1937 $cares_includes_arpa_inet 1938 ]],[[ 1939 if(0 != inet_ntop(0, 0, 0, 0)) 1940 return 1; 1941 ]]) 1942 ],[ 1943 AC_MSG_RESULT([yes]) 1944 tst_compi_inet_ntop="yes" 1945 ],[ 1946 AC_MSG_RESULT([no]) 1947 tst_compi_inet_ntop="no" 1948 ]) 1949 fi 1950 # 1951 dnl only do runtime verification when not cross-compiling 1952 if test "x$cross_compiling" != "xyes" && 1953 test "$tst_compi_inet_ntop" = "yes"; then 1954 AC_MSG_CHECKING([if inet_ntop seems to work]) 1955 AC_RUN_IFELSE([ 1956 AC_LANG_PROGRAM([[ 1957 $cares_includes_stdlib 1958 $cares_includes_arpa_inet 1959 $cares_includes_string 1960 ]],[[ 1961 char ipv6res[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; 1962 char ipv4res[sizeof "255.255.255.255"]; 1963 unsigned char ipv6a[26]; 1964 unsigned char ipv4a[5]; 1965 char *ipv6ptr = 0; 1966 char *ipv4ptr = 0; 1967 /* - */ 1968 ipv4res[0] = '\0'; 1969 ipv4a[0] = 0xc0; 1970 ipv4a[1] = 0xa8; 1971 ipv4a[2] = 0x64; 1972 ipv4a[3] = 0x01; 1973 ipv4a[4] = 0x01; 1974 /* - */ 1975 ipv4ptr = inet_ntop(AF_INET, ipv4a, ipv4res, sizeof(ipv4res)); 1976 if(!ipv4ptr) 1977 exit(1); /* fail */ 1978 if(ipv4ptr != ipv4res) 1979 exit(1); /* fail */ 1980 if(!ipv4ptr[0]) 1981 exit(1); /* fail */ 1982 if(memcmp(ipv4res, "192.168.100.1", 13) != 0) 1983 exit(1); /* fail */ 1984 /* - */ 1985 ipv6res[0] = '\0'; 1986 memset(ipv6a, 0, sizeof(ipv6a)); 1987 ipv6a[0] = 0xfe; 1988 ipv6a[1] = 0x80; 1989 ipv6a[8] = 0x02; 1990 ipv6a[9] = 0x14; 1991 ipv6a[10] = 0x4f; 1992 ipv6a[11] = 0xff; 1993 ipv6a[12] = 0xfe; 1994 ipv6a[13] = 0x0b; 1995 ipv6a[14] = 0x76; 1996 ipv6a[15] = 0xc8; 1997 ipv6a[25] = 0x01; 1998 /* - */ 1999 ipv6ptr = inet_ntop(AF_INET6, ipv6a, ipv6res, sizeof(ipv6res)); 2000 if(!ipv6ptr) 2001 exit(1); /* fail */ 2002 if(ipv6ptr != ipv6res) 2003 exit(1); /* fail */ 2004 if(!ipv6ptr[0]) 2005 exit(1); /* fail */ 2006 if(memcmp(ipv6res, "fe80::214:4fff:fe0b:76c8", 24) != 0) 2007 exit(1); /* fail */ 2008 /* - */ 2009 exit(0); 2010 ]]) 2011 ],[ 2012 AC_MSG_RESULT([yes]) 2013 tst_works_inet_ntop="yes" 2014 ],[ 2015 AC_MSG_RESULT([no]) 2016 tst_works_inet_ntop="no" 2017 ]) 2018 fi 2019 # 2020 if test "$tst_compi_inet_ntop" = "yes" && 2021 test "$tst_works_inet_ntop" != "no"; then 2022 AC_MSG_CHECKING([if inet_ntop usage allowed]) 2023 if test "x$cares_disallow_inet_ntop" != "xyes"; then 2024 AC_MSG_RESULT([yes]) 2025 tst_allow_inet_ntop="yes" 2026 else 2027 AC_MSG_RESULT([no]) 2028 tst_allow_inet_ntop="no" 2029 fi 2030 fi 2031 # 2032 AC_MSG_CHECKING([if inet_ntop might be used]) 2033 if test "$tst_links_inet_ntop" = "yes" && 2034 test "$tst_proto_inet_ntop" = "yes" && 2035 test "$tst_compi_inet_ntop" = "yes" && 2036 test "$tst_allow_inet_ntop" = "yes" && 2037 test "$tst_works_inet_ntop" != "no"; then 2038 AC_MSG_RESULT([yes]) 2039 AC_DEFINE_UNQUOTED(HAVE_INET_NTOP, 1, 2040 [Define to 1 if you have a IPv6 capable working inet_ntop function.]) 2041 ac_cv_func_inet_ntop="yes" 2042 else 2043 AC_MSG_RESULT([no]) 2044 ac_cv_func_inet_ntop="no" 2045 fi 2046]) 2047 2048 2049dnl CARES_CHECK_FUNC_INET_PTON 2050dnl ------------------------------------------------- 2051dnl Verify if inet_pton is available, prototyped, can 2052dnl be compiled and seems to work. If all of these are 2053dnl true, and usage has not been previously disallowed 2054dnl with shell variable cares_disallow_inet_pton, then 2055dnl HAVE_INET_PTON will be defined. 2056 2057AC_DEFUN([CARES_CHECK_FUNC_INET_PTON], [ 2058 AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl 2059 AC_REQUIRE([CARES_INCLUDES_ARPA_INET])dnl 2060 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 2061 # 2062 tst_links_inet_pton="unknown" 2063 tst_proto_inet_pton="unknown" 2064 tst_compi_inet_pton="unknown" 2065 tst_works_inet_pton="unknown" 2066 tst_allow_inet_pton="unknown" 2067 # 2068 AC_MSG_CHECKING([if inet_pton can be linked]) 2069 AC_LINK_IFELSE([ 2070 AC_LANG_FUNC_LINK_TRY([inet_pton]) 2071 ],[ 2072 AC_MSG_RESULT([yes]) 2073 tst_links_inet_pton="yes" 2074 ],[ 2075 AC_MSG_RESULT([no]) 2076 tst_links_inet_pton="no" 2077 ]) 2078 # 2079 if test "$tst_links_inet_pton" = "yes"; then 2080 AC_MSG_CHECKING([if inet_pton is prototyped]) 2081 AC_EGREP_CPP([inet_pton],[ 2082 $cares_includes_arpa_inet 2083 ],[ 2084 AC_MSG_RESULT([yes]) 2085 tst_proto_inet_pton="yes" 2086 ],[ 2087 AC_MSG_RESULT([no]) 2088 tst_proto_inet_pton="no" 2089 ]) 2090 fi 2091 # 2092 if test "$tst_proto_inet_pton" = "yes"; then 2093 AC_MSG_CHECKING([if inet_pton is compilable]) 2094 AC_COMPILE_IFELSE([ 2095 AC_LANG_PROGRAM([[ 2096 $cares_includes_arpa_inet 2097 ]],[[ 2098 if(0 != inet_pton(0, 0, 0)) 2099 return 1; 2100 ]]) 2101 ],[ 2102 AC_MSG_RESULT([yes]) 2103 tst_compi_inet_pton="yes" 2104 ],[ 2105 AC_MSG_RESULT([no]) 2106 tst_compi_inet_pton="no" 2107 ]) 2108 fi 2109 # 2110 dnl only do runtime verification when not cross-compiling 2111 if test "x$cross_compiling" != "xyes" && 2112 test "$tst_compi_inet_pton" = "yes"; then 2113 AC_MSG_CHECKING([if inet_pton seems to work]) 2114 AC_RUN_IFELSE([ 2115 AC_LANG_PROGRAM([[ 2116 $cares_includes_stdlib 2117 $cares_includes_arpa_inet 2118 $cares_includes_string 2119 ]],[[ 2120 unsigned char ipv6a[16+1]; 2121 unsigned char ipv4a[4+1]; 2122 const char *ipv6src = "fe80::214:4fff:fe0b:76c8"; 2123 const char *ipv4src = "192.168.100.1"; 2124 /* - */ 2125 memset(ipv4a, 1, sizeof(ipv4a)); 2126 if(1 != inet_pton(AF_INET, ipv4src, ipv4a)) 2127 exit(1); /* fail */ 2128 /* - */ 2129 if( (ipv4a[0] != 0xc0) || 2130 (ipv4a[1] != 0xa8) || 2131 (ipv4a[2] != 0x64) || 2132 (ipv4a[3] != 0x01) || 2133 (ipv4a[4] != 0x01) ) 2134 exit(1); /* fail */ 2135 /* - */ 2136 memset(ipv6a, 1, sizeof(ipv6a)); 2137 if(1 != inet_pton(AF_INET6, ipv6src, ipv6a)) 2138 exit(1); /* fail */ 2139 /* - */ 2140 if( (ipv6a[0] != 0xfe) || 2141 (ipv6a[1] != 0x80) || 2142 (ipv6a[8] != 0x02) || 2143 (ipv6a[9] != 0x14) || 2144 (ipv6a[10] != 0x4f) || 2145 (ipv6a[11] != 0xff) || 2146 (ipv6a[12] != 0xfe) || 2147 (ipv6a[13] != 0x0b) || 2148 (ipv6a[14] != 0x76) || 2149 (ipv6a[15] != 0xc8) || 2150 (ipv6a[16] != 0x01) ) 2151 exit(1); /* fail */ 2152 /* - */ 2153 if( (ipv6a[2] != 0x0) || 2154 (ipv6a[3] != 0x0) || 2155 (ipv6a[4] != 0x0) || 2156 (ipv6a[5] != 0x0) || 2157 (ipv6a[6] != 0x0) || 2158 (ipv6a[7] != 0x0) ) 2159 exit(1); /* fail */ 2160 /* - */ 2161 exit(0); 2162 ]]) 2163 ],[ 2164 AC_MSG_RESULT([yes]) 2165 tst_works_inet_pton="yes" 2166 ],[ 2167 AC_MSG_RESULT([no]) 2168 tst_works_inet_pton="no" 2169 ]) 2170 fi 2171 # 2172 if test "$tst_compi_inet_pton" = "yes" && 2173 test "$tst_works_inet_pton" != "no"; then 2174 AC_MSG_CHECKING([if inet_pton usage allowed]) 2175 if test "x$cares_disallow_inet_pton" != "xyes"; then 2176 AC_MSG_RESULT([yes]) 2177 tst_allow_inet_pton="yes" 2178 else 2179 AC_MSG_RESULT([no]) 2180 tst_allow_inet_pton="no" 2181 fi 2182 fi 2183 # 2184 AC_MSG_CHECKING([if inet_pton might be used]) 2185 if test "$tst_links_inet_pton" = "yes" && 2186 test "$tst_proto_inet_pton" = "yes" && 2187 test "$tst_compi_inet_pton" = "yes" && 2188 test "$tst_allow_inet_pton" = "yes" && 2189 test "$tst_works_inet_pton" != "no"; then 2190 AC_MSG_RESULT([yes]) 2191 AC_DEFINE_UNQUOTED(HAVE_INET_PTON, 1, 2192 [Define to 1 if you have a IPv6 capable working inet_pton function.]) 2193 ac_cv_func_inet_pton="yes" 2194 else 2195 AC_MSG_RESULT([no]) 2196 ac_cv_func_inet_pton="no" 2197 fi 2198]) 2199 2200 2201dnl CARES_CHECK_FUNC_IOCTL 2202dnl ------------------------------------------------- 2203dnl Verify if ioctl is available, prototyped, and 2204dnl can be compiled. If all of these are true, and 2205dnl usage has not been previously disallowed with 2206dnl shell variable cares_disallow_ioctl, then 2207dnl HAVE_IOCTL will be defined. 2208 2209AC_DEFUN([CARES_CHECK_FUNC_IOCTL], [ 2210 AC_REQUIRE([CARES_INCLUDES_STROPTS])dnl 2211 # 2212 tst_links_ioctl="unknown" 2213 tst_proto_ioctl="unknown" 2214 tst_compi_ioctl="unknown" 2215 tst_allow_ioctl="unknown" 2216 # 2217 AC_MSG_CHECKING([if ioctl can be linked]) 2218 AC_LINK_IFELSE([ 2219 AC_LANG_FUNC_LINK_TRY([ioctl]) 2220 ],[ 2221 AC_MSG_RESULT([yes]) 2222 tst_links_ioctl="yes" 2223 ],[ 2224 AC_MSG_RESULT([no]) 2225 tst_links_ioctl="no" 2226 ]) 2227 # 2228 if test "$tst_links_ioctl" = "yes"; then 2229 AC_MSG_CHECKING([if ioctl is prototyped]) 2230 AC_EGREP_CPP([ioctl],[ 2231 $cares_includes_stropts 2232 ],[ 2233 AC_MSG_RESULT([yes]) 2234 tst_proto_ioctl="yes" 2235 ],[ 2236 AC_MSG_RESULT([no]) 2237 tst_proto_ioctl="no" 2238 ]) 2239 fi 2240 # 2241 if test "$tst_proto_ioctl" = "yes"; then 2242 AC_MSG_CHECKING([if ioctl is compilable]) 2243 AC_COMPILE_IFELSE([ 2244 AC_LANG_PROGRAM([[ 2245 $cares_includes_stropts 2246 ]],[[ 2247 if(0 != ioctl(0, 0, 0)) 2248 return 1; 2249 ]]) 2250 ],[ 2251 AC_MSG_RESULT([yes]) 2252 tst_compi_ioctl="yes" 2253 ],[ 2254 AC_MSG_RESULT([no]) 2255 tst_compi_ioctl="no" 2256 ]) 2257 fi 2258 # 2259 if test "$tst_compi_ioctl" = "yes"; then 2260 AC_MSG_CHECKING([if ioctl usage allowed]) 2261 if test "x$cares_disallow_ioctl" != "xyes"; then 2262 AC_MSG_RESULT([yes]) 2263 tst_allow_ioctl="yes" 2264 else 2265 AC_MSG_RESULT([no]) 2266 tst_allow_ioctl="no" 2267 fi 2268 fi 2269 # 2270 AC_MSG_CHECKING([if ioctl might be used]) 2271 if test "$tst_links_ioctl" = "yes" && 2272 test "$tst_proto_ioctl" = "yes" && 2273 test "$tst_compi_ioctl" = "yes" && 2274 test "$tst_allow_ioctl" = "yes"; then 2275 AC_MSG_RESULT([yes]) 2276 AC_DEFINE_UNQUOTED(HAVE_IOCTL, 1, 2277 [Define to 1 if you have the ioctl function.]) 2278 ac_cv_func_ioctl="yes" 2279 CARES_CHECK_FUNC_IOCTL_FIONBIO 2280 CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR 2281 else 2282 AC_MSG_RESULT([no]) 2283 ac_cv_func_ioctl="no" 2284 fi 2285]) 2286 2287 2288dnl CARES_CHECK_FUNC_IOCTL_FIONBIO 2289dnl ------------------------------------------------- 2290dnl Verify if ioctl with the FIONBIO command is 2291dnl available, can be compiled, and seems to work. If 2292dnl all of these are true, then HAVE_IOCTL_FIONBIO 2293dnl will be defined. 2294 2295AC_DEFUN([CARES_CHECK_FUNC_IOCTL_FIONBIO], [ 2296 # 2297 tst_compi_ioctl_fionbio="unknown" 2298 tst_allow_ioctl_fionbio="unknown" 2299 # 2300 if test "$ac_cv_func_ioctl" = "yes"; then 2301 AC_MSG_CHECKING([if ioctl FIONBIO is compilable]) 2302 AC_COMPILE_IFELSE([ 2303 AC_LANG_PROGRAM([[ 2304 $cares_includes_stropts 2305 ]],[[ 2306 int flags = 0; 2307 if(0 != ioctl(0, FIONBIO, &flags)) 2308 return 1; 2309 ]]) 2310 ],[ 2311 AC_MSG_RESULT([yes]) 2312 tst_compi_ioctl_fionbio="yes" 2313 ],[ 2314 AC_MSG_RESULT([no]) 2315 tst_compi_ioctl_fionbio="no" 2316 ]) 2317 fi 2318 # 2319 if test "$tst_compi_ioctl_fionbio" = "yes"; then 2320 AC_MSG_CHECKING([if ioctl FIONBIO usage allowed]) 2321 if test "x$cares_disallow_ioctl_fionbio" != "xyes"; then 2322 AC_MSG_RESULT([yes]) 2323 tst_allow_ioctl_fionbio="yes" 2324 else 2325 AC_MSG_RESULT([no]) 2326 tst_allow_ioctl_fionbio="no" 2327 fi 2328 fi 2329 # 2330 AC_MSG_CHECKING([if ioctl FIONBIO might be used]) 2331 if test "$tst_compi_ioctl_fionbio" = "yes" && 2332 test "$tst_allow_ioctl_fionbio" = "yes"; then 2333 AC_MSG_RESULT([yes]) 2334 AC_DEFINE_UNQUOTED(HAVE_IOCTL_FIONBIO, 1, 2335 [Define to 1 if you have a working ioctl FIONBIO function.]) 2336 ac_cv_func_ioctl_fionbio="yes" 2337 else 2338 AC_MSG_RESULT([no]) 2339 ac_cv_func_ioctl_fionbio="no" 2340 fi 2341]) 2342 2343 2344dnl CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR 2345dnl ------------------------------------------------- 2346dnl Verify if ioctl with the SIOCGIFADDR command is available, 2347dnl struct ifreq is defined, they can be compiled, and seem to 2348dnl work. If all of these are true, then HAVE_IOCTL_SIOCGIFADDR 2349dnl will be defined. 2350 2351AC_DEFUN([CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR], [ 2352 # 2353 tst_compi_ioctl_siocgifaddr="unknown" 2354 tst_allow_ioctl_siocgifaddr="unknown" 2355 # 2356 if test "$ac_cv_func_ioctl" = "yes"; then 2357 AC_MSG_CHECKING([if ioctl SIOCGIFADDR is compilable]) 2358 AC_COMPILE_IFELSE([ 2359 AC_LANG_PROGRAM([[ 2360 $cares_includes_stropts 2361 #include <net/if.h> 2362 ]],[[ 2363 struct ifreq ifr; 2364 if(0 != ioctl(0, SIOCGIFADDR, &ifr)) 2365 return 1; 2366 ]]) 2367 ],[ 2368 AC_MSG_RESULT([yes]) 2369 tst_compi_ioctl_siocgifaddr="yes" 2370 ],[ 2371 AC_MSG_RESULT([no]) 2372 tst_compi_ioctl_siocgifaddr="no" 2373 ]) 2374 fi 2375 # 2376 if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then 2377 AC_MSG_CHECKING([if ioctl SIOCGIFADDR usage allowed]) 2378 if test "x$cares_disallow_ioctl_siocgifaddr" != "xyes"; then 2379 AC_MSG_RESULT([yes]) 2380 tst_allow_ioctl_siocgifaddr="yes" 2381 else 2382 AC_MSG_RESULT([no]) 2383 tst_allow_ioctl_siocgifaddr="no" 2384 fi 2385 fi 2386 # 2387 AC_MSG_CHECKING([if ioctl SIOCGIFADDR might be used]) 2388 if test "$tst_compi_ioctl_siocgifaddr" = "yes" && 2389 test "$tst_allow_ioctl_siocgifaddr" = "yes"; then 2390 AC_MSG_RESULT([yes]) 2391 AC_DEFINE_UNQUOTED(HAVE_IOCTL_SIOCGIFADDR, 1, 2392 [Define to 1 if you have a working ioctl SIOCGIFADDR function.]) 2393 ac_cv_func_ioctl_siocgifaddr="yes" 2394 else 2395 AC_MSG_RESULT([no]) 2396 ac_cv_func_ioctl_siocgifaddr="no" 2397 fi 2398]) 2399 2400 2401dnl CARES_CHECK_FUNC_IOCTLSOCKET 2402dnl ------------------------------------------------- 2403dnl Verify if ioctlsocket is available, prototyped, and 2404dnl can be compiled. If all of these are true, and 2405dnl usage has not been previously disallowed with 2406dnl shell variable cares_disallow_ioctlsocket, then 2407dnl HAVE_IOCTLSOCKET will be defined. 2408 2409AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET], [ 2410 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 2411 # 2412 tst_links_ioctlsocket="unknown" 2413 tst_proto_ioctlsocket="unknown" 2414 tst_compi_ioctlsocket="unknown" 2415 tst_allow_ioctlsocket="unknown" 2416 # 2417 AC_MSG_CHECKING([if ioctlsocket can be linked]) 2418 AC_LINK_IFELSE([ 2419 AC_LANG_PROGRAM([[ 2420 $cares_includes_winsock2 2421 ]],[[ 2422 if(0 != ioctlsocket(0, 0, 0)) 2423 return 1; 2424 ]]) 2425 ],[ 2426 AC_MSG_RESULT([yes]) 2427 tst_links_ioctlsocket="yes" 2428 ],[ 2429 AC_MSG_RESULT([no]) 2430 tst_links_ioctlsocket="no" 2431 ]) 2432 # 2433 if test "$tst_links_ioctlsocket" = "yes"; then 2434 AC_MSG_CHECKING([if ioctlsocket is prototyped]) 2435 AC_EGREP_CPP([ioctlsocket],[ 2436 $cares_includes_winsock2 2437 ],[ 2438 AC_MSG_RESULT([yes]) 2439 tst_proto_ioctlsocket="yes" 2440 ],[ 2441 AC_MSG_RESULT([no]) 2442 tst_proto_ioctlsocket="no" 2443 ]) 2444 fi 2445 # 2446 if test "$tst_proto_ioctlsocket" = "yes"; then 2447 AC_MSG_CHECKING([if ioctlsocket is compilable]) 2448 AC_COMPILE_IFELSE([ 2449 AC_LANG_PROGRAM([[ 2450 $cares_includes_winsock2 2451 ]],[[ 2452 if(0 != ioctlsocket(0, 0, 0)) 2453 return 1; 2454 ]]) 2455 ],[ 2456 AC_MSG_RESULT([yes]) 2457 tst_compi_ioctlsocket="yes" 2458 ],[ 2459 AC_MSG_RESULT([no]) 2460 tst_compi_ioctlsocket="no" 2461 ]) 2462 fi 2463 # 2464 if test "$tst_compi_ioctlsocket" = "yes"; then 2465 AC_MSG_CHECKING([if ioctlsocket usage allowed]) 2466 if test "x$cares_disallow_ioctlsocket" != "xyes"; then 2467 AC_MSG_RESULT([yes]) 2468 tst_allow_ioctlsocket="yes" 2469 else 2470 AC_MSG_RESULT([no]) 2471 tst_allow_ioctlsocket="no" 2472 fi 2473 fi 2474 # 2475 AC_MSG_CHECKING([if ioctlsocket might be used]) 2476 if test "$tst_links_ioctlsocket" = "yes" && 2477 test "$tst_proto_ioctlsocket" = "yes" && 2478 test "$tst_compi_ioctlsocket" = "yes" && 2479 test "$tst_allow_ioctlsocket" = "yes"; then 2480 AC_MSG_RESULT([yes]) 2481 AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET, 1, 2482 [Define to 1 if you have the ioctlsocket function.]) 2483 ac_cv_func_ioctlsocket="yes" 2484 CARES_CHECK_FUNC_IOCTLSOCKET_FIONBIO 2485 else 2486 AC_MSG_RESULT([no]) 2487 ac_cv_func_ioctlsocket="no" 2488 fi 2489]) 2490 2491 2492dnl CARES_CHECK_FUNC_IOCTLSOCKET_FIONBIO 2493dnl ------------------------------------------------- 2494dnl Verify if ioctlsocket with the FIONBIO command is 2495dnl available, can be compiled, and seems to work. If 2496dnl all of these are true, then HAVE_IOCTLSOCKET_FIONBIO 2497dnl will be defined. 2498 2499AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET_FIONBIO], [ 2500 # 2501 tst_compi_ioctlsocket_fionbio="unknown" 2502 tst_allow_ioctlsocket_fionbio="unknown" 2503 # 2504 if test "$ac_cv_func_ioctlsocket" = "yes"; then 2505 AC_MSG_CHECKING([if ioctlsocket FIONBIO is compilable]) 2506 AC_COMPILE_IFELSE([ 2507 AC_LANG_PROGRAM([[ 2508 $cares_includes_winsock2 2509 ]],[[ 2510 int flags = 0; 2511 if(0 != ioctlsocket(0, FIONBIO, &flags)) 2512 return 1; 2513 ]]) 2514 ],[ 2515 AC_MSG_RESULT([yes]) 2516 tst_compi_ioctlsocket_fionbio="yes" 2517 ],[ 2518 AC_MSG_RESULT([no]) 2519 tst_compi_ioctlsocket_fionbio="no" 2520 ]) 2521 fi 2522 # 2523 if test "$tst_compi_ioctlsocket_fionbio" = "yes"; then 2524 AC_MSG_CHECKING([if ioctlsocket FIONBIO usage allowed]) 2525 if test "x$cares_disallow_ioctlsocket_fionbio" != "xyes"; then 2526 AC_MSG_RESULT([yes]) 2527 tst_allow_ioctlsocket_fionbio="yes" 2528 else 2529 AC_MSG_RESULT([no]) 2530 tst_allow_ioctlsocket_fionbio="no" 2531 fi 2532 fi 2533 # 2534 AC_MSG_CHECKING([if ioctlsocket FIONBIO might be used]) 2535 if test "$tst_compi_ioctlsocket_fionbio" = "yes" && 2536 test "$tst_allow_ioctlsocket_fionbio" = "yes"; then 2537 AC_MSG_RESULT([yes]) 2538 AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_FIONBIO, 1, 2539 [Define to 1 if you have a working ioctlsocket FIONBIO function.]) 2540 ac_cv_func_ioctlsocket_fionbio="yes" 2541 else 2542 AC_MSG_RESULT([no]) 2543 ac_cv_func_ioctlsocket_fionbio="no" 2544 fi 2545]) 2546 2547 2548dnl CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL 2549dnl ------------------------------------------------- 2550dnl Verify if IoctlSocket is available, prototyped, and 2551dnl can be compiled. If all of these are true, and 2552dnl usage has not been previously disallowed with 2553dnl shell variable cares_disallow_ioctlsocket_camel, 2554dnl then HAVE_IOCTLSOCKET_CAMEL will be defined. 2555 2556AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL], [ 2557 AC_REQUIRE([CARES_INCLUDES_STROPTS])dnl 2558 # 2559 tst_links_ioctlsocket_camel="unknown" 2560 tst_proto_ioctlsocket_camel="unknown" 2561 tst_compi_ioctlsocket_camel="unknown" 2562 tst_allow_ioctlsocket_camel="unknown" 2563 # 2564 AC_MSG_CHECKING([if IoctlSocket can be linked]) 2565 AC_LINK_IFELSE([ 2566 AC_LANG_FUNC_LINK_TRY([IoctlSocket]) 2567 ],[ 2568 AC_MSG_RESULT([yes]) 2569 tst_links_ioctlsocket_camel="yes" 2570 ],[ 2571 AC_MSG_RESULT([no]) 2572 tst_links_ioctlsocket_camel="no" 2573 ]) 2574 # 2575 if test "$tst_links_ioctlsocket_camel" = "yes"; then 2576 AC_MSG_CHECKING([if IoctlSocket is prototyped]) 2577 AC_EGREP_CPP([IoctlSocket],[ 2578 $cares_includes_stropts 2579 ],[ 2580 AC_MSG_RESULT([yes]) 2581 tst_proto_ioctlsocket_camel="yes" 2582 ],[ 2583 AC_MSG_RESULT([no]) 2584 tst_proto_ioctlsocket_camel="no" 2585 ]) 2586 fi 2587 # 2588 if test "$tst_proto_ioctlsocket_camel" = "yes"; then 2589 AC_MSG_CHECKING([if IoctlSocket is compilable]) 2590 AC_COMPILE_IFELSE([ 2591 AC_LANG_PROGRAM([[ 2592 $cares_includes_stropts 2593 ]],[[ 2594 if(0 != IoctlSocket(0, 0, 0)) 2595 return 1; 2596 ]]) 2597 ],[ 2598 AC_MSG_RESULT([yes]) 2599 tst_compi_ioctlsocket_camel="yes" 2600 ],[ 2601 AC_MSG_RESULT([no]) 2602 tst_compi_ioctlsocket_camel="no" 2603 ]) 2604 fi 2605 # 2606 if test "$tst_compi_ioctlsocket_camel" = "yes"; then 2607 AC_MSG_CHECKING([if IoctlSocket usage allowed]) 2608 if test "x$cares_disallow_ioctlsocket_camel" != "xyes"; then 2609 AC_MSG_RESULT([yes]) 2610 tst_allow_ioctlsocket_camel="yes" 2611 else 2612 AC_MSG_RESULT([no]) 2613 tst_allow_ioctlsocket_camel="no" 2614 fi 2615 fi 2616 # 2617 AC_MSG_CHECKING([if IoctlSocket might be used]) 2618 if test "$tst_links_ioctlsocket_camel" = "yes" && 2619 test "$tst_proto_ioctlsocket_camel" = "yes" && 2620 test "$tst_compi_ioctlsocket_camel" = "yes" && 2621 test "$tst_allow_ioctlsocket_camel" = "yes"; then 2622 AC_MSG_RESULT([yes]) 2623 AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL, 1, 2624 [Define to 1 if you have the IoctlSocket camel case function.]) 2625 ac_cv_func_ioctlsocket_camel="yes" 2626 CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO 2627 else 2628 AC_MSG_RESULT([no]) 2629 ac_cv_func_ioctlsocket_camel="no" 2630 fi 2631]) 2632 2633 2634dnl CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO 2635dnl ------------------------------------------------- 2636dnl Verify if IoctlSocket with FIONBIO command is available, 2637dnl can be compiled, and seems to work. If all of these are 2638dnl true, then HAVE_IOCTLSOCKET_CAMEL_FIONBIO will be defined. 2639 2640AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO], [ 2641 # 2642 tst_compi_ioctlsocket_camel_fionbio="unknown" 2643 tst_allow_ioctlsocket_camel_fionbio="unknown" 2644 # 2645 if test "$ac_cv_func_ioctlsocket_camel" = "yes"; then 2646 AC_MSG_CHECKING([if IoctlSocket FIONBIO is compilable]) 2647 AC_COMPILE_IFELSE([ 2648 AC_LANG_PROGRAM([[ 2649 $cares_includes_stropts 2650 ]],[[ 2651 long flags = 0; 2652 if(0 != ioctlsocket(0, FIONBIO, &flags)) 2653 return 1; 2654 ]]) 2655 ],[ 2656 AC_MSG_RESULT([yes]) 2657 tst_compi_ioctlsocket_camel_fionbio="yes" 2658 ],[ 2659 AC_MSG_RESULT([no]) 2660 tst_compi_ioctlsocket_camel_fionbio="no" 2661 ]) 2662 fi 2663 # 2664 if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then 2665 AC_MSG_CHECKING([if IoctlSocket FIONBIO usage allowed]) 2666 if test "x$cares_disallow_ioctlsocket_camel_fionbio" != "xyes"; then 2667 AC_MSG_RESULT([yes]) 2668 tst_allow_ioctlsocket_camel_fionbio="yes" 2669 else 2670 AC_MSG_RESULT([no]) 2671 tst_allow_ioctlsocket_camel_fionbio="no" 2672 fi 2673 fi 2674 # 2675 AC_MSG_CHECKING([if IoctlSocket FIONBIO might be used]) 2676 if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && 2677 test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then 2678 AC_MSG_RESULT([yes]) 2679 AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL_FIONBIO, 1, 2680 [Define to 1 if you have a working IoctlSocket camel case FIONBIO function.]) 2681 ac_cv_func_ioctlsocket_camel_fionbio="yes" 2682 else 2683 AC_MSG_RESULT([no]) 2684 ac_cv_func_ioctlsocket_camel_fionbio="no" 2685 fi 2686]) 2687 2688 2689dnl CARES_CHECK_FUNC_SETSOCKOPT 2690dnl ------------------------------------------------- 2691dnl Verify if setsockopt is available, prototyped, and 2692dnl can be compiled. If all of these are true, and 2693dnl usage has not been previously disallowed with 2694dnl shell variable cares_disallow_setsockopt, then 2695dnl HAVE_SETSOCKOPT will be defined. 2696 2697AC_DEFUN([CARES_CHECK_FUNC_SETSOCKOPT], [ 2698 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 2699 AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl 2700 # 2701 tst_links_setsockopt="unknown" 2702 tst_proto_setsockopt="unknown" 2703 tst_compi_setsockopt="unknown" 2704 tst_allow_setsockopt="unknown" 2705 # 2706 AC_MSG_CHECKING([if setsockopt can be linked]) 2707 AC_LINK_IFELSE([ 2708 AC_LANG_PROGRAM([[ 2709 $cares_includes_winsock2 2710 $cares_includes_sys_socket 2711 ]],[[ 2712 if(0 != setsockopt(0, 0, 0, 0, 0)) 2713 return 1; 2714 ]]) 2715 ],[ 2716 AC_MSG_RESULT([yes]) 2717 tst_links_setsockopt="yes" 2718 ],[ 2719 AC_MSG_RESULT([no]) 2720 tst_links_setsockopt="no" 2721 ]) 2722 # 2723 if test "$tst_links_setsockopt" = "yes"; then 2724 AC_MSG_CHECKING([if setsockopt is prototyped]) 2725 AC_EGREP_CPP([setsockopt],[ 2726 $cares_includes_winsock2 2727 $cares_includes_sys_socket 2728 ],[ 2729 AC_MSG_RESULT([yes]) 2730 tst_proto_setsockopt="yes" 2731 ],[ 2732 AC_MSG_RESULT([no]) 2733 tst_proto_setsockopt="no" 2734 ]) 2735 fi 2736 # 2737 if test "$tst_proto_setsockopt" = "yes"; then 2738 AC_MSG_CHECKING([if setsockopt is compilable]) 2739 AC_COMPILE_IFELSE([ 2740 AC_LANG_PROGRAM([[ 2741 $cares_includes_winsock2 2742 $cares_includes_sys_socket 2743 ]],[[ 2744 if(0 != setsockopt(0, 0, 0, 0, 0)) 2745 return 1; 2746 ]]) 2747 ],[ 2748 AC_MSG_RESULT([yes]) 2749 tst_compi_setsockopt="yes" 2750 ],[ 2751 AC_MSG_RESULT([no]) 2752 tst_compi_setsockopt="no" 2753 ]) 2754 fi 2755 # 2756 if test "$tst_compi_setsockopt" = "yes"; then 2757 AC_MSG_CHECKING([if setsockopt usage allowed]) 2758 if test "x$cares_disallow_setsockopt" != "xyes"; then 2759 AC_MSG_RESULT([yes]) 2760 tst_allow_setsockopt="yes" 2761 else 2762 AC_MSG_RESULT([no]) 2763 tst_allow_setsockopt="no" 2764 fi 2765 fi 2766 # 2767 AC_MSG_CHECKING([if setsockopt might be used]) 2768 if test "$tst_links_setsockopt" = "yes" && 2769 test "$tst_proto_setsockopt" = "yes" && 2770 test "$tst_compi_setsockopt" = "yes" && 2771 test "$tst_allow_setsockopt" = "yes"; then 2772 AC_MSG_RESULT([yes]) 2773 AC_DEFINE_UNQUOTED(HAVE_SETSOCKOPT, 1, 2774 [Define to 1 if you have the setsockopt function.]) 2775 ac_cv_func_setsockopt="yes" 2776 CARES_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK 2777 else 2778 AC_MSG_RESULT([no]) 2779 ac_cv_func_setsockopt="no" 2780 fi 2781]) 2782 2783 2784dnl CARES_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK 2785dnl ------------------------------------------------- 2786dnl Verify if setsockopt with the SO_NONBLOCK command is 2787dnl available, can be compiled, and seems to work. If 2788dnl all of these are true, then HAVE_SETSOCKOPT_SO_NONBLOCK 2789dnl will be defined. 2790 2791AC_DEFUN([CARES_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK], [ 2792 # 2793 tst_compi_setsockopt_so_nonblock="unknown" 2794 tst_allow_setsockopt_so_nonblock="unknown" 2795 # 2796 if test "$ac_cv_func_setsockopt" = "yes"; then 2797 AC_MSG_CHECKING([if setsockopt SO_NONBLOCK is compilable]) 2798 AC_COMPILE_IFELSE([ 2799 AC_LANG_PROGRAM([[ 2800 $cares_includes_winsock2 2801 $cares_includes_sys_socket 2802 ]],[[ 2803 if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) 2804 return 1; 2805 ]]) 2806 ],[ 2807 AC_MSG_RESULT([yes]) 2808 tst_compi_setsockopt_so_nonblock="yes" 2809 ],[ 2810 AC_MSG_RESULT([no]) 2811 tst_compi_setsockopt_so_nonblock="no" 2812 ]) 2813 fi 2814 # 2815 if test "$tst_compi_setsockopt_so_nonblock" = "yes"; then 2816 AC_MSG_CHECKING([if setsockopt SO_NONBLOCK usage allowed]) 2817 if test "x$cares_disallow_setsockopt_so_nonblock" != "xyes"; then 2818 AC_MSG_RESULT([yes]) 2819 tst_allow_setsockopt_so_nonblock="yes" 2820 else 2821 AC_MSG_RESULT([no]) 2822 tst_allow_setsockopt_so_nonblock="no" 2823 fi 2824 fi 2825 # 2826 AC_MSG_CHECKING([if setsockopt SO_NONBLOCK might be used]) 2827 if test "$tst_compi_setsockopt_so_nonblock" = "yes" && 2828 test "$tst_allow_setsockopt_so_nonblock" = "yes"; then 2829 AC_MSG_RESULT([yes]) 2830 AC_DEFINE_UNQUOTED(HAVE_SETSOCKOPT_SO_NONBLOCK, 1, 2831 [Define to 1 if you have a working setsockopt SO_NONBLOCK function.]) 2832 ac_cv_func_setsockopt_so_nonblock="yes" 2833 else 2834 AC_MSG_RESULT([no]) 2835 ac_cv_func_setsockopt_so_nonblock="no" 2836 fi 2837]) 2838 2839 2840dnl CARES_CHECK_FUNC_SOCKET 2841dnl ------------------------------------------------- 2842dnl Verify if socket is available, prototyped, and 2843dnl can be compiled. If all of these are true, and 2844dnl usage has not been previously disallowed with 2845dnl shell variable cares_disallow_socket, then 2846dnl HAVE_SOCKET will be defined. 2847 2848AC_DEFUN([CARES_CHECK_FUNC_SOCKET], [ 2849 AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl 2850 AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl 2851 AC_REQUIRE([CARES_INCLUDES_SOCKET])dnl 2852 # 2853 tst_links_socket="unknown" 2854 tst_proto_socket="unknown" 2855 tst_compi_socket="unknown" 2856 tst_allow_socket="unknown" 2857 # 2858 AC_MSG_CHECKING([if socket can be linked]) 2859 AC_LINK_IFELSE([ 2860 AC_LANG_PROGRAM([[ 2861 $cares_includes_winsock2 2862 $cares_includes_sys_socket 2863 $cares_includes_socket 2864 ]],[[ 2865 if(0 != socket(0, 0, 0)) 2866 return 1; 2867 ]]) 2868 ],[ 2869 AC_MSG_RESULT([yes]) 2870 tst_links_socket="yes" 2871 ],[ 2872 AC_MSG_RESULT([no]) 2873 tst_links_socket="no" 2874 ]) 2875 # 2876 if test "$tst_links_socket" = "yes"; then 2877 AC_MSG_CHECKING([if socket is prototyped]) 2878 AC_EGREP_CPP([socket],[ 2879 $cares_includes_winsock2 2880 $cares_includes_sys_socket 2881 $cares_includes_socket 2882 ],[ 2883 AC_MSG_RESULT([yes]) 2884 tst_proto_socket="yes" 2885 ],[ 2886 AC_MSG_RESULT([no]) 2887 tst_proto_socket="no" 2888 ]) 2889 fi 2890 # 2891 if test "$tst_proto_socket" = "yes"; then 2892 AC_MSG_CHECKING([if socket is compilable]) 2893 AC_COMPILE_IFELSE([ 2894 AC_LANG_PROGRAM([[ 2895 $cares_includes_winsock2 2896 $cares_includes_sys_socket 2897 $cares_includes_socket 2898 ]],[[ 2899 if(0 != socket(0, 0, 0)) 2900 return 1; 2901 ]]) 2902 ],[ 2903 AC_MSG_RESULT([yes]) 2904 tst_compi_socket="yes" 2905 ],[ 2906 AC_MSG_RESULT([no]) 2907 tst_compi_socket="no" 2908 ]) 2909 fi 2910 # 2911 if test "$tst_compi_socket" = "yes"; then 2912 AC_MSG_CHECKING([if socket usage allowed]) 2913 if test "x$cares_disallow_socket" != "xyes"; then 2914 AC_MSG_RESULT([yes]) 2915 tst_allow_socket="yes" 2916 else 2917 AC_MSG_RESULT([no]) 2918 tst_allow_socket="no" 2919 fi 2920 fi 2921 # 2922 AC_MSG_CHECKING([if socket might be used]) 2923 if test "$tst_links_socket" = "yes" && 2924 test "$tst_proto_socket" = "yes" && 2925 test "$tst_compi_socket" = "yes" && 2926 test "$tst_allow_socket" = "yes"; then 2927 AC_MSG_RESULT([yes]) 2928 AC_DEFINE_UNQUOTED(HAVE_SOCKET, 1, 2929 [Define to 1 if you have the socket function.]) 2930 ac_cv_func_socket="yes" 2931 else 2932 AC_MSG_RESULT([no]) 2933 ac_cv_func_socket="no" 2934 fi 2935]) 2936 2937 2938dnl CARES_CHECK_FUNC_STRCASECMP 2939dnl ------------------------------------------------- 2940dnl Verify if strcasecmp is available, prototyped, and 2941dnl can be compiled. If all of these are true, and 2942dnl usage has not been previously disallowed with 2943dnl shell variable cares_disallow_strcasecmp, then 2944dnl HAVE_STRCASECMP will be defined. 2945 2946AC_DEFUN([CARES_CHECK_FUNC_STRCASECMP], [ 2947 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 2948 # 2949 tst_links_strcasecmp="unknown" 2950 tst_proto_strcasecmp="unknown" 2951 tst_compi_strcasecmp="unknown" 2952 tst_allow_strcasecmp="unknown" 2953 # 2954 AC_MSG_CHECKING([if strcasecmp can be linked]) 2955 AC_LINK_IFELSE([ 2956 AC_LANG_FUNC_LINK_TRY([strcasecmp]) 2957 ],[ 2958 AC_MSG_RESULT([yes]) 2959 tst_links_strcasecmp="yes" 2960 ],[ 2961 AC_MSG_RESULT([no]) 2962 tst_links_strcasecmp="no" 2963 ]) 2964 # 2965 if test "$tst_links_strcasecmp" = "yes"; then 2966 AC_MSG_CHECKING([if strcasecmp is prototyped]) 2967 AC_EGREP_CPP([strcasecmp],[ 2968 $cares_includes_string 2969 ],[ 2970 AC_MSG_RESULT([yes]) 2971 tst_proto_strcasecmp="yes" 2972 ],[ 2973 AC_MSG_RESULT([no]) 2974 tst_proto_strcasecmp="no" 2975 ]) 2976 fi 2977 # 2978 if test "$tst_proto_strcasecmp" = "yes"; then 2979 AC_MSG_CHECKING([if strcasecmp is compilable]) 2980 AC_COMPILE_IFELSE([ 2981 AC_LANG_PROGRAM([[ 2982 $cares_includes_string 2983 ]],[[ 2984 if(0 != strcasecmp(0, 0)) 2985 return 1; 2986 ]]) 2987 ],[ 2988 AC_MSG_RESULT([yes]) 2989 tst_compi_strcasecmp="yes" 2990 ],[ 2991 AC_MSG_RESULT([no]) 2992 tst_compi_strcasecmp="no" 2993 ]) 2994 fi 2995 # 2996 if test "$tst_compi_strcasecmp" = "yes"; then 2997 AC_MSG_CHECKING([if strcasecmp usage allowed]) 2998 if test "x$cares_disallow_strcasecmp" != "xyes"; then 2999 AC_MSG_RESULT([yes]) 3000 tst_allow_strcasecmp="yes" 3001 else 3002 AC_MSG_RESULT([no]) 3003 tst_allow_strcasecmp="no" 3004 fi 3005 fi 3006 # 3007 AC_MSG_CHECKING([if strcasecmp might be used]) 3008 if test "$tst_links_strcasecmp" = "yes" && 3009 test "$tst_proto_strcasecmp" = "yes" && 3010 test "$tst_compi_strcasecmp" = "yes" && 3011 test "$tst_allow_strcasecmp" = "yes"; then 3012 AC_MSG_RESULT([yes]) 3013 AC_DEFINE_UNQUOTED(HAVE_STRCASECMP, 1, 3014 [Define to 1 if you have the strcasecmp function.]) 3015 ac_cv_func_strcasecmp="yes" 3016 else 3017 AC_MSG_RESULT([no]) 3018 ac_cv_func_strcasecmp="no" 3019 fi 3020]) 3021 3022 3023dnl CARES_CHECK_FUNC_STRCMPI 3024dnl ------------------------------------------------- 3025dnl Verify if strcmpi is available, prototyped, and 3026dnl can be compiled. If all of these are true, and 3027dnl usage has not been previously disallowed with 3028dnl shell variable cares_disallow_strcmpi, then 3029dnl HAVE_STRCMPI will be defined. 3030 3031AC_DEFUN([CARES_CHECK_FUNC_STRCMPI], [ 3032 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 3033 # 3034 tst_links_strcmpi="unknown" 3035 tst_proto_strcmpi="unknown" 3036 tst_compi_strcmpi="unknown" 3037 tst_allow_strcmpi="unknown" 3038 # 3039 AC_MSG_CHECKING([if strcmpi can be linked]) 3040 AC_LINK_IFELSE([ 3041 AC_LANG_FUNC_LINK_TRY([strcmpi]) 3042 ],[ 3043 AC_MSG_RESULT([yes]) 3044 tst_links_strcmpi="yes" 3045 ],[ 3046 AC_MSG_RESULT([no]) 3047 tst_links_strcmpi="no" 3048 ]) 3049 # 3050 if test "$tst_links_strcmpi" = "yes"; then 3051 AC_MSG_CHECKING([if strcmpi is prototyped]) 3052 AC_EGREP_CPP([strcmpi],[ 3053 $cares_includes_string 3054 ],[ 3055 AC_MSG_RESULT([yes]) 3056 tst_proto_strcmpi="yes" 3057 ],[ 3058 AC_MSG_RESULT([no]) 3059 tst_proto_strcmpi="no" 3060 ]) 3061 fi 3062 # 3063 if test "$tst_proto_strcmpi" = "yes"; then 3064 AC_MSG_CHECKING([if strcmpi is compilable]) 3065 AC_COMPILE_IFELSE([ 3066 AC_LANG_PROGRAM([[ 3067 $cares_includes_string 3068 ]],[[ 3069 if(0 != strcmpi(0, 0)) 3070 return 1; 3071 ]]) 3072 ],[ 3073 AC_MSG_RESULT([yes]) 3074 tst_compi_strcmpi="yes" 3075 ],[ 3076 AC_MSG_RESULT([no]) 3077 tst_compi_strcmpi="no" 3078 ]) 3079 fi 3080 # 3081 if test "$tst_compi_strcmpi" = "yes"; then 3082 AC_MSG_CHECKING([if strcmpi usage allowed]) 3083 if test "x$cares_disallow_strcmpi" != "xyes"; then 3084 AC_MSG_RESULT([yes]) 3085 tst_allow_strcmpi="yes" 3086 else 3087 AC_MSG_RESULT([no]) 3088 tst_allow_strcmpi="no" 3089 fi 3090 fi 3091 # 3092 AC_MSG_CHECKING([if strcmpi might be used]) 3093 if test "$tst_links_strcmpi" = "yes" && 3094 test "$tst_proto_strcmpi" = "yes" && 3095 test "$tst_compi_strcmpi" = "yes" && 3096 test "$tst_allow_strcmpi" = "yes"; then 3097 AC_MSG_RESULT([yes]) 3098 AC_DEFINE_UNQUOTED(HAVE_STRCMPI, 1, 3099 [Define to 1 if you have the strcmpi function.]) 3100 ac_cv_func_strcmpi="yes" 3101 else 3102 AC_MSG_RESULT([no]) 3103 ac_cv_func_strcmpi="no" 3104 fi 3105]) 3106 3107 3108dnl CARES_CHECK_FUNC_STRDUP 3109dnl ------------------------------------------------- 3110dnl Verify if strdup is available, prototyped, and 3111dnl can be compiled. If all of these are true, and 3112dnl usage has not been previously disallowed with 3113dnl shell variable cares_disallow_strdup, then 3114dnl HAVE_STRDUP will be defined. 3115 3116AC_DEFUN([CARES_CHECK_FUNC_STRDUP], [ 3117 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 3118 # 3119 tst_links_strdup="unknown" 3120 tst_proto_strdup="unknown" 3121 tst_compi_strdup="unknown" 3122 tst_allow_strdup="unknown" 3123 # 3124 AC_MSG_CHECKING([if strdup can be linked]) 3125 AC_LINK_IFELSE([ 3126 AC_LANG_FUNC_LINK_TRY([strdup]) 3127 ],[ 3128 AC_MSG_RESULT([yes]) 3129 tst_links_strdup="yes" 3130 ],[ 3131 AC_MSG_RESULT([no]) 3132 tst_links_strdup="no" 3133 ]) 3134 # 3135 if test "$tst_links_strdup" = "yes"; then 3136 AC_MSG_CHECKING([if strdup is prototyped]) 3137 AC_EGREP_CPP([strdup],[ 3138 $cares_includes_string 3139 ],[ 3140 AC_MSG_RESULT([yes]) 3141 tst_proto_strdup="yes" 3142 ],[ 3143 AC_MSG_RESULT([no]) 3144 tst_proto_strdup="no" 3145 ]) 3146 fi 3147 # 3148 if test "$tst_proto_strdup" = "yes"; then 3149 AC_MSG_CHECKING([if strdup is compilable]) 3150 AC_COMPILE_IFELSE([ 3151 AC_LANG_PROGRAM([[ 3152 $cares_includes_string 3153 ]],[[ 3154 if(0 != strdup(0)) 3155 return 1; 3156 ]]) 3157 ],[ 3158 AC_MSG_RESULT([yes]) 3159 tst_compi_strdup="yes" 3160 ],[ 3161 AC_MSG_RESULT([no]) 3162 tst_compi_strdup="no" 3163 ]) 3164 fi 3165 # 3166 if test "$tst_compi_strdup" = "yes"; then 3167 AC_MSG_CHECKING([if strdup usage allowed]) 3168 if test "x$cares_disallow_strdup" != "xyes"; then 3169 AC_MSG_RESULT([yes]) 3170 tst_allow_strdup="yes" 3171 else 3172 AC_MSG_RESULT([no]) 3173 tst_allow_strdup="no" 3174 fi 3175 fi 3176 # 3177 AC_MSG_CHECKING([if strdup might be used]) 3178 if test "$tst_links_strdup" = "yes" && 3179 test "$tst_proto_strdup" = "yes" && 3180 test "$tst_compi_strdup" = "yes" && 3181 test "$tst_allow_strdup" = "yes"; then 3182 AC_MSG_RESULT([yes]) 3183 AC_DEFINE_UNQUOTED(HAVE_STRDUP, 1, 3184 [Define to 1 if you have the strdup function.]) 3185 ac_cv_func_strdup="yes" 3186 else 3187 AC_MSG_RESULT([no]) 3188 ac_cv_func_strdup="no" 3189 fi 3190]) 3191 3192 3193dnl CARES_CHECK_FUNC_STRICMP 3194dnl ------------------------------------------------- 3195dnl Verify if stricmp is available, prototyped, and 3196dnl can be compiled. If all of these are true, and 3197dnl usage has not been previously disallowed with 3198dnl shell variable cares_disallow_stricmp, then 3199dnl HAVE_STRICMP will be defined. 3200 3201AC_DEFUN([CARES_CHECK_FUNC_STRICMP], [ 3202 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 3203 # 3204 tst_links_stricmp="unknown" 3205 tst_proto_stricmp="unknown" 3206 tst_compi_stricmp="unknown" 3207 tst_allow_stricmp="unknown" 3208 # 3209 AC_MSG_CHECKING([if stricmp can be linked]) 3210 AC_LINK_IFELSE([ 3211 AC_LANG_FUNC_LINK_TRY([stricmp]) 3212 ],[ 3213 AC_MSG_RESULT([yes]) 3214 tst_links_stricmp="yes" 3215 ],[ 3216 AC_MSG_RESULT([no]) 3217 tst_links_stricmp="no" 3218 ]) 3219 # 3220 if test "$tst_links_stricmp" = "yes"; then 3221 AC_MSG_CHECKING([if stricmp is prototyped]) 3222 AC_EGREP_CPP([stricmp],[ 3223 $cares_includes_string 3224 ],[ 3225 AC_MSG_RESULT([yes]) 3226 tst_proto_stricmp="yes" 3227 ],[ 3228 AC_MSG_RESULT([no]) 3229 tst_proto_stricmp="no" 3230 ]) 3231 fi 3232 # 3233 if test "$tst_proto_stricmp" = "yes"; then 3234 AC_MSG_CHECKING([if stricmp is compilable]) 3235 AC_COMPILE_IFELSE([ 3236 AC_LANG_PROGRAM([[ 3237 $cares_includes_string 3238 ]],[[ 3239 if(0 != stricmp(0, 0)) 3240 return 1; 3241 ]]) 3242 ],[ 3243 AC_MSG_RESULT([yes]) 3244 tst_compi_stricmp="yes" 3245 ],[ 3246 AC_MSG_RESULT([no]) 3247 tst_compi_stricmp="no" 3248 ]) 3249 fi 3250 # 3251 if test "$tst_compi_stricmp" = "yes"; then 3252 AC_MSG_CHECKING([if stricmp usage allowed]) 3253 if test "x$cares_disallow_stricmp" != "xyes"; then 3254 AC_MSG_RESULT([yes]) 3255 tst_allow_stricmp="yes" 3256 else 3257 AC_MSG_RESULT([no]) 3258 tst_allow_stricmp="no" 3259 fi 3260 fi 3261 # 3262 AC_MSG_CHECKING([if stricmp might be used]) 3263 if test "$tst_links_stricmp" = "yes" && 3264 test "$tst_proto_stricmp" = "yes" && 3265 test "$tst_compi_stricmp" = "yes" && 3266 test "$tst_allow_stricmp" = "yes"; then 3267 AC_MSG_RESULT([yes]) 3268 AC_DEFINE_UNQUOTED(HAVE_STRICMP, 1, 3269 [Define to 1 if you have the stricmp function.]) 3270 ac_cv_func_stricmp="yes" 3271 else 3272 AC_MSG_RESULT([no]) 3273 ac_cv_func_stricmp="no" 3274 fi 3275]) 3276 3277 3278dnl CARES_CHECK_FUNC_STRNCASECMP 3279dnl ------------------------------------------------- 3280dnl Verify if strncasecmp is available, prototyped, and 3281dnl can be compiled. If all of these are true, and 3282dnl usage has not been previously disallowed with 3283dnl shell variable cares_disallow_strncasecmp, then 3284dnl HAVE_STRNCASECMP will be defined. 3285 3286AC_DEFUN([CARES_CHECK_FUNC_STRNCASECMP], [ 3287 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 3288 # 3289 tst_links_strncasecmp="unknown" 3290 tst_proto_strncasecmp="unknown" 3291 tst_compi_strncasecmp="unknown" 3292 tst_allow_strncasecmp="unknown" 3293 # 3294 AC_MSG_CHECKING([if strncasecmp can be linked]) 3295 AC_LINK_IFELSE([ 3296 AC_LANG_FUNC_LINK_TRY([strncasecmp]) 3297 ],[ 3298 AC_MSG_RESULT([yes]) 3299 tst_links_strncasecmp="yes" 3300 ],[ 3301 AC_MSG_RESULT([no]) 3302 tst_links_strncasecmp="no" 3303 ]) 3304 # 3305 if test "$tst_links_strncasecmp" = "yes"; then 3306 AC_MSG_CHECKING([if strncasecmp is prototyped]) 3307 AC_EGREP_CPP([strncasecmp],[ 3308 $cares_includes_string 3309 ],[ 3310 AC_MSG_RESULT([yes]) 3311 tst_proto_strncasecmp="yes" 3312 ],[ 3313 AC_MSG_RESULT([no]) 3314 tst_proto_strncasecmp="no" 3315 ]) 3316 fi 3317 # 3318 if test "$tst_proto_strncasecmp" = "yes"; then 3319 AC_MSG_CHECKING([if strncasecmp is compilable]) 3320 AC_COMPILE_IFELSE([ 3321 AC_LANG_PROGRAM([[ 3322 $cares_includes_string 3323 ]],[[ 3324 if(0 != strncasecmp(0, 0, 0)) 3325 return 1; 3326 ]]) 3327 ],[ 3328 AC_MSG_RESULT([yes]) 3329 tst_compi_strncasecmp="yes" 3330 ],[ 3331 AC_MSG_RESULT([no]) 3332 tst_compi_strncasecmp="no" 3333 ]) 3334 fi 3335 # 3336 if test "$tst_compi_strncasecmp" = "yes"; then 3337 AC_MSG_CHECKING([if strncasecmp usage allowed]) 3338 if test "x$cares_disallow_strncasecmp" != "xyes"; then 3339 AC_MSG_RESULT([yes]) 3340 tst_allow_strncasecmp="yes" 3341 else 3342 AC_MSG_RESULT([no]) 3343 tst_allow_strncasecmp="no" 3344 fi 3345 fi 3346 # 3347 AC_MSG_CHECKING([if strncasecmp might be used]) 3348 if test "$tst_links_strncasecmp" = "yes" && 3349 test "$tst_proto_strncasecmp" = "yes" && 3350 test "$tst_compi_strncasecmp" = "yes" && 3351 test "$tst_allow_strncasecmp" = "yes"; then 3352 AC_MSG_RESULT([yes]) 3353 AC_DEFINE_UNQUOTED(HAVE_STRNCASECMP, 1, 3354 [Define to 1 if you have the strncasecmp function.]) 3355 ac_cv_func_strncasecmp="yes" 3356 else 3357 AC_MSG_RESULT([no]) 3358 ac_cv_func_strncasecmp="no" 3359 fi 3360]) 3361 3362 3363dnl CARES_CHECK_FUNC_STRNCMPI 3364dnl ------------------------------------------------- 3365dnl Verify if strncmpi is available, prototyped, and 3366dnl can be compiled. If all of these are true, and 3367dnl usage has not been previously disallowed with 3368dnl shell variable cares_disallow_strncmpi, then 3369dnl HAVE_STRNCMPI will be defined. 3370 3371AC_DEFUN([CARES_CHECK_FUNC_STRNCMPI], [ 3372 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 3373 # 3374 tst_links_strncmpi="unknown" 3375 tst_proto_strncmpi="unknown" 3376 tst_compi_strncmpi="unknown" 3377 tst_allow_strncmpi="unknown" 3378 # 3379 AC_MSG_CHECKING([if strncmpi can be linked]) 3380 AC_LINK_IFELSE([ 3381 AC_LANG_FUNC_LINK_TRY([strncmpi]) 3382 ],[ 3383 AC_MSG_RESULT([yes]) 3384 tst_links_strncmpi="yes" 3385 ],[ 3386 AC_MSG_RESULT([no]) 3387 tst_links_strncmpi="no" 3388 ]) 3389 # 3390 if test "$tst_links_strncmpi" = "yes"; then 3391 AC_MSG_CHECKING([if strncmpi is prototyped]) 3392 AC_EGREP_CPP([strncmpi],[ 3393 $cares_includes_string 3394 ],[ 3395 AC_MSG_RESULT([yes]) 3396 tst_proto_strncmpi="yes" 3397 ],[ 3398 AC_MSG_RESULT([no]) 3399 tst_proto_strncmpi="no" 3400 ]) 3401 fi 3402 # 3403 if test "$tst_proto_strncmpi" = "yes"; then 3404 AC_MSG_CHECKING([if strncmpi is compilable]) 3405 AC_COMPILE_IFELSE([ 3406 AC_LANG_PROGRAM([[ 3407 $cares_includes_string 3408 ]],[[ 3409 if(0 != strncmpi(0, 0)) 3410 return 1; 3411 ]]) 3412 ],[ 3413 AC_MSG_RESULT([yes]) 3414 tst_compi_strncmpi="yes" 3415 ],[ 3416 AC_MSG_RESULT([no]) 3417 tst_compi_strncmpi="no" 3418 ]) 3419 fi 3420 # 3421 if test "$tst_compi_strncmpi" = "yes"; then 3422 AC_MSG_CHECKING([if strncmpi usage allowed]) 3423 if test "x$cares_disallow_strncmpi" != "xyes"; then 3424 AC_MSG_RESULT([yes]) 3425 tst_allow_strncmpi="yes" 3426 else 3427 AC_MSG_RESULT([no]) 3428 tst_allow_strncmpi="no" 3429 fi 3430 fi 3431 # 3432 AC_MSG_CHECKING([if strncmpi might be used]) 3433 if test "$tst_links_strncmpi" = "yes" && 3434 test "$tst_proto_strncmpi" = "yes" && 3435 test "$tst_compi_strncmpi" = "yes" && 3436 test "$tst_allow_strncmpi" = "yes"; then 3437 AC_MSG_RESULT([yes]) 3438 AC_DEFINE_UNQUOTED(HAVE_STRNCMPI, 1, 3439 [Define to 1 if you have the strncmpi function.]) 3440 ac_cv_func_strncmpi="yes" 3441 else 3442 AC_MSG_RESULT([no]) 3443 ac_cv_func_strncmpi="no" 3444 fi 3445]) 3446 3447 3448dnl CARES_CHECK_FUNC_STRNICMP 3449dnl ------------------------------------------------- 3450dnl Verify if strnicmp is available, prototyped, and 3451dnl can be compiled. If all of these are true, and 3452dnl usage has not been previously disallowed with 3453dnl shell variable cares_disallow_strnicmp, then 3454dnl HAVE_STRNICMP will be defined. 3455 3456AC_DEFUN([CARES_CHECK_FUNC_STRNICMP], [ 3457 AC_REQUIRE([CARES_INCLUDES_STRING])dnl 3458 # 3459 tst_links_strnicmp="unknown" 3460 tst_proto_strnicmp="unknown" 3461 tst_compi_strnicmp="unknown" 3462 tst_allow_strnicmp="unknown" 3463 # 3464 AC_MSG_CHECKING([if strnicmp can be linked]) 3465 AC_LINK_IFELSE([ 3466 AC_LANG_FUNC_LINK_TRY([strnicmp]) 3467 ],[ 3468 AC_MSG_RESULT([yes]) 3469 tst_links_strnicmp="yes" 3470 ],[ 3471 AC_MSG_RESULT([no]) 3472 tst_links_strnicmp="no" 3473 ]) 3474 # 3475 if test "$tst_links_strnicmp" = "yes"; then 3476 AC_MSG_CHECKING([if strnicmp is prototyped]) 3477 AC_EGREP_CPP([strnicmp],[ 3478 $cares_includes_string 3479 ],[ 3480 AC_MSG_RESULT([yes]) 3481 tst_proto_strnicmp="yes" 3482 ],[ 3483 AC_MSG_RESULT([no]) 3484 tst_proto_strnicmp="no" 3485 ]) 3486 fi 3487 # 3488 if test "$tst_proto_strnicmp" = "yes"; then 3489 AC_MSG_CHECKING([if strnicmp is compilable]) 3490 AC_COMPILE_IFELSE([ 3491 AC_LANG_PROGRAM([[ 3492 $cares_includes_string 3493 ]],[[ 3494 if(0 != strnicmp(0, 0)) 3495 return 1; 3496 ]]) 3497 ],[ 3498 AC_MSG_RESULT([yes]) 3499 tst_compi_strnicmp="yes" 3500 ],[ 3501 AC_MSG_RESULT([no]) 3502 tst_compi_strnicmp="no" 3503 ]) 3504 fi 3505 # 3506 if test "$tst_compi_strnicmp" = "yes"; then 3507 AC_MSG_CHECKING([if strnicmp usage allowed]) 3508 if test "x$cares_disallow_strnicmp" != "xyes"; then 3509 AC_MSG_RESULT([yes]) 3510 tst_allow_strnicmp="yes" 3511 else 3512 AC_MSG_RESULT([no]) 3513 tst_allow_strnicmp="no" 3514 fi 3515 fi 3516 # 3517 AC_MSG_CHECKING([if strnicmp might be used]) 3518 if test "$tst_links_strnicmp" = "yes" && 3519 test "$tst_proto_strnicmp" = "yes" && 3520 test "$tst_compi_strnicmp" = "yes" && 3521 test "$tst_allow_strnicmp" = "yes"; then 3522 AC_MSG_RESULT([yes]) 3523 AC_DEFINE_UNQUOTED(HAVE_STRNICMP, 1, 3524 [Define to 1 if you have the strnicmp function.]) 3525 ac_cv_func_strnicmp="yes" 3526 else 3527 AC_MSG_RESULT([no]) 3528 ac_cv_func_strnicmp="no" 3529 fi 3530]) 3531 3532 3533dnl CARES_CHECK_FUNC_WRITEV 3534dnl ------------------------------------------------- 3535dnl Verify if writev is available, prototyped, and 3536dnl can be compiled. If all of these are true, and 3537dnl usage has not been previously disallowed with 3538dnl shell variable cares_disallow_writev, then 3539dnl HAVE_WRITEV will be defined. 3540 3541AC_DEFUN([CARES_CHECK_FUNC_WRITEV], [ 3542 AC_REQUIRE([CARES_INCLUDES_SYS_UIO])dnl 3543 # 3544 tst_links_writev="unknown" 3545 tst_proto_writev="unknown" 3546 tst_compi_writev="unknown" 3547 tst_allow_writev="unknown" 3548 # 3549 AC_MSG_CHECKING([if writev can be linked]) 3550 AC_LINK_IFELSE([ 3551 AC_LANG_FUNC_LINK_TRY([writev]) 3552 ],[ 3553 AC_MSG_RESULT([yes]) 3554 tst_links_writev="yes" 3555 ],[ 3556 AC_MSG_RESULT([no]) 3557 tst_links_writev="no" 3558 ]) 3559 # 3560 if test "$tst_links_writev" = "yes"; then 3561 AC_MSG_CHECKING([if writev is prototyped]) 3562 AC_EGREP_CPP([writev],[ 3563 $cares_includes_sys_uio 3564 ],[ 3565 AC_MSG_RESULT([yes]) 3566 tst_proto_writev="yes" 3567 ],[ 3568 AC_MSG_RESULT([no]) 3569 tst_proto_writev="no" 3570 ]) 3571 fi 3572 # 3573 if test "$tst_proto_writev" = "yes"; then 3574 AC_MSG_CHECKING([if writev is compilable]) 3575 AC_COMPILE_IFELSE([ 3576 AC_LANG_PROGRAM([[ 3577 $cares_includes_sys_uio 3578 ]],[[ 3579 if(0 != writev(0, 0, 0)) 3580 return 1; 3581 ]]) 3582 ],[ 3583 AC_MSG_RESULT([yes]) 3584 tst_compi_writev="yes" 3585 ],[ 3586 AC_MSG_RESULT([no]) 3587 tst_compi_writev="no" 3588 ]) 3589 fi 3590 # 3591 if test "$tst_compi_writev" = "yes"; then 3592 AC_MSG_CHECKING([if writev usage allowed]) 3593 if test "x$cares_disallow_writev" != "xyes"; then 3594 AC_MSG_RESULT([yes]) 3595 tst_allow_writev="yes" 3596 else 3597 AC_MSG_RESULT([no]) 3598 tst_allow_writev="no" 3599 fi 3600 fi 3601 # 3602 AC_MSG_CHECKING([if writev might be used]) 3603 if test "$tst_links_writev" = "yes" && 3604 test "$tst_proto_writev" = "yes" && 3605 test "$tst_compi_writev" = "yes" && 3606 test "$tst_allow_writev" = "yes"; then 3607 AC_MSG_RESULT([yes]) 3608 AC_DEFINE_UNQUOTED(HAVE_WRITEV, 1, 3609 [Define to 1 if you have the writev function.]) 3610 ac_cv_func_writev="yes" 3611 else 3612 AC_MSG_RESULT([no]) 3613 ac_cv_func_writev="no" 3614 fi 3615]) 3616