1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>
Autoconf Macro: ac_raf_func_which_getservbyname_r
</title>
<link rel="stylesheet" type="text/css" href="ac-archive.css">
</head>
<body>
<table summary="web navigation" style="width:100%;">
<tbody>
<tr>
<td style="width:50%;" align="center">
<a href=
"http://autoconf-archive.cryp.to/ac_raf_func_which_getservbyname_r.m4">Download
M4 Source</a>
</td>
<td style="width:50%;" align="center">
<a href="macros-by-category.html">Macro Index Page</a>
</td>
</tr>
</tbody>
</table>
<hr>
<h1>
ac_raf_func_which_getservbyname_r
</h1>
<h2>
Synopsis
</h2>
<p class="indent" style="white-space:nowrap;">
<code>AC_raf_FUNC_WHICH_GETSERVBYNAME_R</code>
</p>
<h2>
Description
</h2>
<div class="indent">
<p>
Provides a test to determine the correct way to call getservbyname_r:
</p>
<pre>
- defines HAVE_FUNC_GETSERVBYNAME_R_6 if it needs 6 arguments (e.g linux)
- defines HAVE_FUNC_GETSERVBYNAME_R_5 if it needs 5 arguments (e.g. solaris)
- defines HAVE_FUNC_GETSERVBYNAME_R_4 if it needs 4 arguments (e.g. osf/1)
</pre>
<p>
An example use can be found at http://raf.org/autoconf/net_getservbyname.c
</p>
<p>
Based on Caolan McNamara's gethostbyname_r macro. Based on David Arnold's
autoconf suggestion in the threads faq.
</p>
</div>
<h2>
Author
</h2>
<p class="indent">
raf <raf@raf.org>
</p>
<h2>
Last Modified
</h2>
<p class="indent">
2001-08-20
</p>
<h2>
M4 Source Code
</h2>
<div class="indent">
<pre class="m4source">
AC_DEFUN([AC_raf_FUNC_WHICH_GETSERVBYNAME_R],
[AC_CACHE_CHECK(for getservbyname_r, ac_cv_func_which_getservbyname_r, [
AC_CHECK_FUNC(getservbyname_r, [
AC_TRY_COMPILE([
# include <netdb.h>
], [
char *name;
char *proto;
struct servent *se;
struct servent_data data;
(void) getservbyname_r(name, proto, se, &data);
],ac_cv_func_which_getservbyname_r=four,
[
AC_TRY_COMPILE([
# include <netdb.h>
], [
char *name;
char *proto;
struct servent *se, *res;
char buffer[2048];
int buflen = 2048;
(void) getservbyname_r(name, proto, se, buffer, buflen, &res)
],ac_cv_func_which_getservbyname_r=six,
[
AC_TRY_COMPILE([
# include <netdb.h>
], [
char *name;
char *proto;
struct servent *se;
char buffer[2048];
int buflen = 2048;
(void) getservbyname_r(name, proto, se, buffer, buflen)
],ac_cv_func_which_getservbyname_r=five,ac_cv_func_which_getservbyname_r=no)
]
)
]
)]
,ac_cv_func_which_getservbyname_r=no)])
if test $ac_cv_func_which_getservbyname_r = six; then
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_6)
elif test $ac_cv_func_which_getservbyname_r = five; then
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_5)
elif test $ac_cv_func_which_getservbyname_r = four; then
AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_4)
fi
])
</pre>
</div>
</body>
</html>
|