Login.h revision 629baa8c
1145b7b3cSmrg/* 2145b7b3cSmrg 3145b7b3cSmrgCopyright 1988, 1998 The Open Group 4145b7b3cSmrg 5145b7b3cSmrgPermission to use, copy, modify, distribute, and sell this software and its 6145b7b3cSmrgdocumentation for any purpose is hereby granted without fee, provided that 7145b7b3cSmrgthe above copyright notice appear in all copies and that both that 8145b7b3cSmrgcopyright notice and this permission notice appear in supporting 9145b7b3cSmrgdocumentation. 10145b7b3cSmrg 11145b7b3cSmrgThe above copyright notice and this permission notice shall be included 12145b7b3cSmrgin all copies or substantial portions of the Software. 13145b7b3cSmrg 14145b7b3cSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15145b7b3cSmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16145b7b3cSmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17145b7b3cSmrgIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR 18145b7b3cSmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19145b7b3cSmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20145b7b3cSmrgOTHER DEALINGS IN THE SOFTWARE. 21145b7b3cSmrg 22145b7b3cSmrgExcept as contained in this notice, the name of The Open Group shall 23145b7b3cSmrgnot be used in advertising or otherwise to promote the sale, use or 24145b7b3cSmrgother dealings in this Software without prior written authorization 25145b7b3cSmrgfrom The Open Group. 26145b7b3cSmrg 27145b7b3cSmrg*/ 285ffd6003Smrg/* 29629baa8cSmrg * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. 30145b7b3cSmrg * 31145b7b3cSmrg * Permission is hereby granted, free of charge, to any person obtaining a 325ffd6003Smrg * copy of this software and associated documentation files (the "Software"), 335ffd6003Smrg * to deal in the Software without restriction, including without limitation 345ffd6003Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 355ffd6003Smrg * and/or sell copies of the Software, and to permit persons to whom the 365ffd6003Smrg * Software is furnished to do so, subject to the following conditions: 37145b7b3cSmrg * 385ffd6003Smrg * The above copyright notice and this permission notice (including the next 395ffd6003Smrg * paragraph) shall be included in all copies or substantial portions of the 405ffd6003Smrg * Software. 41145b7b3cSmrg * 425ffd6003Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 435ffd6003Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 445ffd6003Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 455ffd6003Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 465ffd6003Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 475ffd6003Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 485ffd6003Smrg * DEALINGS IN THE SOFTWARE. 49145b7b3cSmrg */ 50145b7b3cSmrg 51145b7b3cSmrg/* 52145b7b3cSmrg * xdm - display manager daemon 53145b7b3cSmrg * Author: Keith Packard, MIT X Consortium 54145b7b3cSmrg */ 55145b7b3cSmrg 56145b7b3cSmrg 57145b7b3cSmrg#ifndef _XtLogin_h 58578741aaSmrg# define _XtLogin_h 59145b7b3cSmrg 60145b7b3cSmrg/*********************************************************************** 61145b7b3cSmrg * 62145b7b3cSmrg * Login Widget 63145b7b3cSmrg * 64145b7b3cSmrg ***********************************************************************/ 65145b7b3cSmrg 66145b7b3cSmrg/* Parameters: 67145b7b3cSmrg 68145b7b3cSmrg Name Class RepType Default Value 69145b7b3cSmrg ---- ----- ------- ------------- 70145b7b3cSmrg background Background pixel White 71145b7b3cSmrg border BorderColor pixel Black 72145b7b3cSmrg borderWidth BorderWidth int 1 73145b7b3cSmrg foreground Foreground Pixel Black 74145b7b3cSmrg height Height int 120 75145b7b3cSmrg mappedWhenManaged MappedWhenManaged Boolean True 76145b7b3cSmrg width Width int 120 77145b7b3cSmrg x Position int 0 78145b7b3cSmrg y Position int 0 79145b7b3cSmrg 80145b7b3cSmrg*/ 81145b7b3cSmrg 82145b7b3cSmrg# define XtNgreeting "greeting" 83145b7b3cSmrg# define XtNunsecureGreeting "unsecureGreeting" 84145b7b3cSmrg# define XtNnamePrompt "namePrompt" 85145b7b3cSmrg# define XtNpasswdPrompt "passwdPrompt" 86145b7b3cSmrg# define XtNfail "fail" 87145b7b3cSmrg# define XtNnotifyDone "notifyDone" 88145b7b3cSmrg# define XtNpromptColor "promptColor" 89145b7b3cSmrg# define XtNgreetColor "greetColor" 90145b7b3cSmrg# define XtNfailColor "failColor" 91145b7b3cSmrg# define XtNpromptFont "promptFont" 92145b7b3cSmrg# define XtNgreetFont "greetFont" 93145b7b3cSmrg# define XtNfailFont "failFont" 94145b7b3cSmrg# define XtNpromptFace "promptFace" 95145b7b3cSmrg# define XtNgreetFace "greetFace" 96145b7b3cSmrg# define XtNfailFace "failFace" 97145b7b3cSmrg# define XtNfailTimeout "failTimeout" 98145b7b3cSmrg# define XtNsessionArgument "sessionArgument" 99145b7b3cSmrg# define XtNsecureSession "secureSession" 100145b7b3cSmrg# define XtNallowAccess "allowAccess" 101145b7b3cSmrg# define XtNallowNullPasswd "allowNullPasswd" 102145b7b3cSmrg# define XtNallowRootLogin "allowRootLogin" 1035ffd6003Smrg# define XtNechoPasswd "echoPasswd" 104629baa8cSmrg# define XtNechoPasswdChar "echoPasswdChar" 105145b7b3cSmrg 106145b7b3cSmrg# define XtNface "face" 107145b7b3cSmrg# define XtCFace "Face" 108145b7b3cSmrg# define XtRXftFont "XftFont" 109145b7b3cSmrg# define XtRXftColor "XftColor" 110145b7b3cSmrg 111145b7b3cSmrg/* added by Amit Margalit Oct 1996 */ 112145b7b3cSmrg# define XtNhiColor "hiColor" 113145b7b3cSmrg# define XtNshdColor "shdColor" 114145b7b3cSmrg# define XtNframeWidth "frameWidth" 115145b7b3cSmrg# define XtCFrameWidth "FrameWidth" 116145b7b3cSmrg# define XtNinnerFramesWidth "innerFramesWidth" 117145b7b3cSmrg# define XtNsepWidth "sepWidth" 118145b7b3cSmrg 119578741aaSmrg# ifdef DANCING 120145b7b3cSmrg/* caolan begin */ 121578741aaSmrg# define XtNlastEventTime "lastEventTime" 122578741aaSmrg# define XtCLastEventTime "LastEventTime" 123145b7b3cSmrg/* caolan end */ 124578741aaSmrg# endif /* DANCING */ 125145b7b3cSmrg 126578741aaSmrg# ifdef XPM 127578741aaSmrg# define XtNuseShape "useShape" 128578741aaSmrg# define XtCUseShape "UseShape" 129578741aaSmrg# define XtNlogoFileName "logoFileName" 130578741aaSmrg# define XtCLogoFileName "LogoFileName" 131578741aaSmrg# define XtNlogoPadding "logoPadding" 132578741aaSmrg# define XtCLogoPadding "LogoPadding" 133578741aaSmrg# endif /* XPM */ 134145b7b3cSmrg 135145b7b3cSmrg# define XtCGreeting "Greeting" 136145b7b3cSmrg# define XtCNamePrompt "NamePrompt" 137145b7b3cSmrg# define XtCPasswdPrompt "PasswdPrompt" 138145b7b3cSmrg# define XtCFail "Fail" 139145b7b3cSmrg# define XtCFailTimeout "FailTimeout" 140145b7b3cSmrg# define XtCSessionArgument "SessionArgument" 141145b7b3cSmrg# define XtCSecureSession "SecureSession" 142145b7b3cSmrg# define XtCAllowAccess "AllowAccess" 143145b7b3cSmrg# define XtCAllowNullPasswd "AllowNullPasswd" 144145b7b3cSmrg# define XtCAllowRootLogin "AllowRootLogin" 1455ffd6003Smrg# define XtCEchoPasswd "EchoPasswd" 146629baa8cSmrg# define XtCEchoPasswdChar "EchoPasswdChar" 147145b7b3cSmrg 148145b7b3cSmrg# define XtNchangePasswdMessage "changePasswdMessage" 149145b7b3cSmrg# define XtCChangePasswdMessage "ChangePasswdMessage" 150145b7b3cSmrg 151145b7b3cSmrg/* notifyDone interface definition */ 152145b7b3cSmrg 153578741aaSmrg# ifdef __OpenBSD__ 154578741aaSmrg# include <sys/param.h> 155578741aaSmrg# endif 156145b7b3cSmrg 157578741aaSmrg# include <pwd.h> 158578741aaSmrg# include <limits.h> 159145b7b3cSmrg 160578741aaSmrg# ifdef USE_PAM 161578741aaSmrg# define NAME_LEN PAM_MAX_RESP_SIZE 162578741aaSmrg# define PASSWORD_LEN PAM_MAX_RESP_SIZE 163578741aaSmrg# endif 164145b7b3cSmrg 165145b7b3cSmrg/* Defined to be in <limits.h> by SUSv2 */ 166578741aaSmrg# if !defined(PASSWORD_LEN) && defined(PASS_MAX) 167578741aaSmrg# define PASSWORD_LEN PASS_MAX 168578741aaSmrg# endif 169145b7b3cSmrg 170145b7b3cSmrg/* _PW_NAME_LEN is found in <pwd.h> on OpenBSD > 2.8 (200012) */ 171578741aaSmrg# if !defined(NAME_LEN) && defined(_PW_NAME_LEN) 172578741aaSmrg# define NAME_LEN (_PW_NAME_LEN + 2) 173578741aaSmrg# endif 174145b7b3cSmrg 175145b7b3cSmrg/* _PASSWORD_LEN appears to come from 4.4BSD-Lite <pwd.h> */ 176578741aaSmrg# if !defined(PASSWORD_LEN) && defined(_PASSWORD_LEN) 177578741aaSmrg# define PASSWORD_LEN (_PASSWORD_LEN + 2) 178578741aaSmrg# endif 179145b7b3cSmrg 180145b7b3cSmrg/* Fallbacks if no other definition found */ 181578741aaSmrg# ifndef NAME_LEN 182578741aaSmrg# define NAME_LEN 32 183578741aaSmrg# endif 184145b7b3cSmrg 185578741aaSmrg# ifndef PASSWORD_LEN 186578741aaSmrg# define PASSWORD_LEN 32 187578741aaSmrg# endif 188145b7b3cSmrg 189578741aaSmrgtypedef struct _LoginData { 190145b7b3cSmrg char name[NAME_LEN], passwd[PASSWORD_LEN]; 191145b7b3cSmrg} LoginData; 192145b7b3cSmrg 193145b7b3cSmrg# define NOTIFY_OK 0 194145b7b3cSmrg# define NOTIFY_ABORT 1 195145b7b3cSmrg# define NOTIFY_RESTART 2 196145b7b3cSmrg# define NOTIFY_ABORT_DISPLAY 3 197145b7b3cSmrg 198145b7b3cSmrgtypedef struct _LoginRec *LoginWidget; /* completely defined in LoginPrivate.h */ 199145b7b3cSmrgtypedef struct _LoginClassRec *LoginWidgetClass; /* completely defined in LoginPrivate.h */ 200145b7b3cSmrg 201145b7b3cSmrgextern WidgetClass loginWidgetClass; 202145b7b3cSmrg 203145b7b3cSmrgextern void ErrorMessage(Widget ctx, const char *message, Bool timeout); 204145b7b3cSmrgextern void ShowChangePasswdMessage(Widget ctx); 205145b7b3cSmrg 206145b7b3cSmrgtypedef enum { 207145b7b3cSmrg LOGIN_PROMPT_NOT_SHOWN, /* Neither prompt nor input shown */ 208145b7b3cSmrg LOGIN_PROMPT_ECHO_ON, /* Both prompt and input shown */ 209145b7b3cSmrg LOGIN_PROMPT_ECHO_OFF, /* Prompt shown, input accepted but not 210145b7b3cSmrg shown (bullets may be shown instead) */ 211145b7b3cSmrg LOGIN_TEXT_INFO /* Prompt shown, no input area */ 212145b7b3cSmrg} loginPromptState; 213145b7b3cSmrg 214145b7b3cSmrg/* Default prompt meanings for simple username/password auth systems */ 215578741aaSmrg# define LOGIN_PROMPT_USERNAME 0 216578741aaSmrg# define LOGIN_PROMPT_PASSWORD 1 217145b7b3cSmrg 218145b7b3cSmrgextern int SetPrompt(Widget ctx, int promptId, const char *message, 219145b7b3cSmrg loginPromptState state, Boolean minimumTime); 220145b7b3cSmrgextern const char *GetPrompt(Widget ctx, int promptId); 221145b7b3cSmrg 222145b7b3cSmrgextern int SetValue(Widget ctx, int promptId, char *value); 223145b7b3cSmrgextern const char *GetValue(Widget ctx, int promptId); 224145b7b3cSmrg 225145b7b3cSmrg#endif /* _XtLogin_h */ 226145b7b3cSmrg/* DON'T ADD STUFF AFTER THIS #endif */ 227