AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
fi
-dnl Look for the IPv6 varient by preference. Many systems have both.
-AC_CACHE_CHECK([for ut_addr_v6 in utmp],samba_cv_HAVE_UT_UT_ADDR_V6,[
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <utmp.h>],
-[struct utmp ut; ut.ut_addr_v6[0] = 0;],
-samba_cv_HAVE_UT_UT_ADDR_V6=yes,samba_cv_HAVE_UT_UT_ADDR_V6=no,samba_cv_HAVE_UT_UT_ADDR_V6=cross)])
-if test x"$samba_cv_HAVE_UT_UT_ADDR_V6" = x"yes"; then
- AC_DEFINE(HAVE_UT_UT_ADDR_V6,1,[Whether the utmp struct has a property ut_addr_v6])
-fi
-
-AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
-AC_TRY_COMPILE([#include <sys/types.h>
-#include <utmp.h>],
-[struct utmp ut; ut.ut_addr = 0;],
-samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
-if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
- AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
-fi
-
if test x$ac_cv_func_pututline = xyes ; then
AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
AC_TRY_COMPILE([#include <sys/types.h>
/* The following definitions come from smbd/utmp.c */
void sys_utmp_claim(const char *username, const char *hostname,
- const char *ip_addr_str,
- const char *id_str, int id_num);
+ const char *id_str, int id_num);
void sys_utmp_yield(const char *username, const char *hostname,
- const char *ip_addr_str,
- const char *id_str, int id_num);
+ const char *id_str, int id_num);
/* The following definitions come from smbd/vfs.c */
*/
void sys_utmp_claim(const char *username, const char *hostname,
- const char *ip_addr_str,
- const char *id_str, int id_num)
+ const char *id_str, int id_num)
{}
void sys_utmp_yield(const char *username, const char *hostname,
- const char *ip_addr_str,
- const char *id_str, int id_num)
+ const char *id_str, int id_num)
{}
#else /* WITH_UTMP */
*/
static bool sys_utmp_fill(struct utmp *u,
const char *username, const char *hostname,
- const char *ip_addr_str,
const char *id_str, int id_num)
{
struct timeval timeval;
#if defined(HAVE_UT_UT_HOST)
utmp_strcpy(u->ut_host, hostname, sizeof(u->ut_host));
#endif
-#if defined(HAVE_IPV6) && defined(HAVE_UT_UT_ADDR_V6)
- memset(&u->ut_addr_v6, '\0', sizeof(u->ut_addr_v6));
- if (ip_addr_str) {
- struct in6_addr addr;
- if (inet_pton(AF_INET6, ip_addr_str, &addr) > 0) {
- memcpy(&u->ut_addr_v6, &addr, sizeof(addr));
- }
- }
-#elif defined(HAVE_UT_UT_ADDR)
- memset(&u->ut_addr, '\0', sizeof(u->ut_addr));
- if (ip_addr_str) {
- struct in_addr addr;
- if (inet_pton(AF_INET, ip_addr_str, &addr) > 0) {
- memcpy(&u->ut_addr, &addr, sizeof(addr));
- }
- }
- /*
- * "(unsigned long) ut_addr" apparently exists on at least HP-UX 10.20.
- * Volunteer to implement, please ...
- */
-#endif
#if defined(HAVE_UT_UT_ID)
if (ut_id_encode(id_num, u->ut_id) != 0) {
****************************************************************************/
void sys_utmp_yield(const char *username, const char *hostname,
- const char *ip_addr_str,
- const char *id_str, int id_num)
+ const char *id_str, int id_num)
{
struct utmp u;
u.ut_type = DEAD_PROCESS;
#endif
- if (!sys_utmp_fill(&u, username, hostname, ip_addr_str, id_str, id_num))
+ if (!sys_utmp_fill(&u, username, hostname, id_str, id_num))
return;
sys_utmp_update(&u, NULL, False);
****************************************************************************/
void sys_utmp_claim(const char *username, const char *hostname,
- const char *ip_addr_str,
- const char *id_str, int id_num)
+ const char *id_str, int id_num)
{
struct utmp u;
u.ut_type = USER_PROCESS;
#endif
- if (!sys_utmp_fill(&u, username, hostname, ip_addr_str, id_str, id_num))
+ if (!sys_utmp_fill(&u, username, hostname, id_str, id_num))
return;
sys_utmp_update(&u, hostname, True);
define='HAVE_UT_UT_PID')
conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_exit.e_exit', headers='utmp.h',
define='HAVE_UT_UT_EXIT')
- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_addr_v6', headers='utmp.h',
- define='HAVE_UT_UT_ADDR_V6')
- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_addr', headers='utmp.h',
- define='HAVE_UT_UT_ADDR')
conf.CHECK_STRUCTURE_MEMBER('struct utmpx', 'ut_syslen', headers='utmpx.h',
define='HAVE_UX_UT_SYSLEN')
conf.CHECK_CODE('struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);',