1 /*
   2  *
   3  * Copyright (c) 2001 Gert Doering.  All rights reserved.
   4  *
   5  * Redistribution and use in source and binary forms, with or without
   6  * modification, are permitted provided that the following conditions
   7  * are met:
   8  * 1. Redistributions of source code must retain the above copyright
   9  *    notice, this list of conditions and the following disclaimer.
  10  * 2. Redistributions in binary form must reproduce the above copyright
  11  *    notice, this list of conditions and the following disclaimer in the
  12  *    documentation and/or other materials provided with the distribution.
  13  *
  14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  15  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  16  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  17  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  18  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  19  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  20  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  21  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  23  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24  *
  25  */
  26 #include "includes.h"
  27 
  28 #ifdef _AIX
  29 
  30 #include <uinfo.h>
  31 #include <../xmalloc.h>
  32 
  33 /*
  34  * AIX has a "usrinfo" area where logname and other stuff is stored - 
  35  * a few applications actually use this and die if it's not set
  36  *
  37  * NOTE: TTY= should be set, but since no one uses it and it's hard to
  38  * acquire due to privsep code.  We will just drop support.
  39  */
  40 void
  41 aix_usrinfo(struct passwd *pw)
  42 {
  43         u_int i;
  44         char *cp;
  45 
  46         cp = xmalloc(16 + 2 * strlen(pw->pw_name));
  47         i = sprintf(cp, "LOGNAME=%s%cNAME=%s%c", pw->pw_name, 0, 
  48             pw->pw_name, 0);
  49         if (usrinfo(SETUINFO, cp, i) == -1)
  50                 fatal("Couldn't set usrinfo: %s", strerror(errno));
  51         debug3("AIX/UsrInfo: set len %d", i);
  52         xfree(cp);
  53 }
  54 
  55 #endif /* _AIX */
  56 
  57 
  58 #pragma ident   "%Z%%M% %I%     %E% SMI"