/* * cns.h * * Public Domain -- written by Cygnus Support. */ /* Only one time, please */ #ifndef KWIN_DEFS #define KWIN_DEFS #if !defined(KRB4) && !defined(KRB5) #define KRB5 #endif #ifndef RC_INVOKED #ifdef KRB4 #include "mit-copyright.h" #include "krb.h" #include "kadm.h" #include "org.h" #endif #ifdef KRB5 #include "winsock.h" #include "krb5.h" #include "krbini.h" #include "com_err.h" #define DEFAULT_TKT_LIFE 120 /* In 5 minute units */ #define ANAME_SZ 40 #define REALM_SZ 40 #define SNAME_SZ 40 #define INST_SZ 40 #define MAX_KPW_LEN 128 /* include space for '.' and '@' */ #define MAX_K_NAME_SZ (ANAME_SZ + INST_SZ + REALM_SZ + 2) #ifdef CYGNUS #define ORGANIZATION "Cygnus Solutions\n(800)CYGNUS-1\nhttp://www.cygnus.com\ninfo@cygnus.com" #endif #define CREDENTIALS char #endif /* * Constants */ #define BLOCK_MAX_SEC 30 /* Blocking timeout duration */ #define KWIN_UPDATE_PERIOD 30000 /* Every 30 seconds update the screen */ #define TIME_BUFFER 300 /* Pop-up time buffer in seconds */ #define WM_KWIN_SETNAME (WM_USER+100) /* Sets the name fields in the dialog */ #endif /* RC_INVOKED */ /* * Menu items */ #define FILE_MENU_ITEMS 3 #define FILE_MENU_MAX_LOGINS 5 #define IDM_KWIN 1000 #define IDM_OPTIONS 1001 #define IDM_EXIT 1002 #define IDM_FIRST_LOGIN 1003 #define IDM_HELP_INDEX 1020 #define IDM_ABOUT 1021 /* * Accelerator */ #define IDA_KWIN 2000 /* * Dialog and dialog item ids */ #define KWIN_DIALOG_CLASS "KERBEROS" /* class for kerberos dialog */ #define KWIN_DIALOG_NAME "Krb5" /* name for kerberos dialog */ #define ID_KWIN 100 /* the main kerberos dialog */ #define IDD_KWIN_FIRST 101 #define IDD_TICKET_LIST_TITLE 101 #define IDD_TICKET_LIST 102 #ifdef KRB4 #define IDD_MIN_TITLE 103 #define IDD_LOGIN_NAME_TITLE 103 #define IDD_LOGIN_INSTANCE_TITLE 104 #define IDD_LOGIN_REALM_TITLE 105 #define IDD_LOGIN_PASSWORD_TITLE 106 #define IDD_MAX_TITLE 106 #define IDD_MIN_EDIT 107 #define IDD_LOGIN_NAME 107 #define IDD_LOGIN_INSTANCE 108 #define IDD_LOGIN_REALM 109 #define IDD_LOGIN_PASSWORD 110 #define IDD_MAX_EDIT 110 #endif #ifdef KRB5 #define IDD_MIN_TITLE 103 #define IDD_LOGIN_NAME_TITLE 103 #define IDD_LOGIN_PASSWORD_TITLE 104 #define IDD_LOGIN_REALM_TITLE 105 #define IDD_MAX_TITLE 105 #define IDD_MIN_EDIT 107 #define IDD_LOGIN_NAME 107 #define IDD_LOGIN_PASSWORD 108 #define IDD_LOGIN_REALM 109 #define IDD_MAX_EDIT 109 #endif #define IDD_MIN_BUTTON 111 #define IDD_CHANGE_PASSWORD 111 #define IDD_TICKET_DELETE 112 #define IDD_LOGIN 113 #define IDD_MAX_BUTTON 113 #define IDD_PASSWORD_CR2 114 /* For better cr handling */ #define IDD_KWIN_LAST 114 #define ID_PASSWORD 200 #define IDD_PASSWORD_NAME 204 #define IDD_PASSWORD_INSTANCE 205 #define IDD_PASSWORD_REALM 206 #define IDD_OLD_PASSWORD 207 #define IDD_NEW_PASSWORD1 208 #define IDD_NEW_PASSWORD2 209 #define IDD_PASSWORD_CR 210 #define ID_OPTS 300 #define IDD_CONF 301 #define IDD_REALMS 302 #define IDD_LIFETIME 303 #define IDD_CCACHE 304 #define IDD_ACTIONS 310 #define IDD_BEEP 311 #define IDD_ALERT 312 #define IDD_TKOPT 320 #define IDD_FORWARDABLE 321 /* * the entire range (400 through 499) is reserved for the blasted variable * dialog box thingie. */ #define ID_VARDLG 400 /* * Dialog dimensions */ #define KWIN_MIN_WIDTH 180 #define KWIN_MIN_HEIGHT 110 /* * Icons */ #define IDI_KWIN 1 /* The program icon */ #define ICON_WIDTH 30 /* Width used with icons */ #define ICON_HEIGHT 20 /* Height used with icons */ #define IDI_FIRST_CLOCK 2 #define IDI_0_MIN 2 /* < 5 minutes left */ #define IDI_5_MIN 3 #define IDI_10_MIN 4 #define IDI_15_MIN 5 #define IDI_20_MIN 6 #define IDI_25_MIN 7 #define IDI_30_MIN 8 #define IDI_35_MIN 9 #define IDI_40_MIN 10 #define IDI_45_MIN 11 #define IDI_50_MIN 12 #define IDI_55_MIN 13 #define IDI_60_MIN 14 #define IDI_EXPIRED 15 #define IDI_TICKET 16 #define IDI_LAST_CLOCK 16 #define MAX_ICONS (IDI_LAST_CLOCK - IDI_FIRST_CLOCK + 1) #ifndef RC_INVOKED extern BOOL isblocking; extern HFONT hfontdialog; extern HINSTANCE hinstance; extern BOOL alert; extern BOOL beep; extern char confname[FILENAME_MAX]; #ifdef KRB5 extern krb5_context k5_context; extern krb5_ccache k5_ccache; extern char ccname[FILENAME_MAX]; extern BOOL forwardable; #endif /* * Prototypes */ /* in cns.c */ void kwin_init_name(HWND, char *); void kwin_set_default_focus(HWND); time_t kwin_get_epoch(void); /* in options.c */ BOOL opts_initdialog(HWND, HWND, LPARAM); void opts_command(HWND, int, HWND, UINT); BOOL CALLBACK opts_dlg_proc(HWND, UINT, WPARAM, LPARAM); BOOL opts_dialog(HWND); /* in password.c */ BOOL change_password(HWND, char *, char *, char *, char *, char *); void password_command(HWND, int, HWND, UINT); BOOL password_initdialog(HWND, HWND, LPARAM); BOOL CALLBACK password_dlg_proc(HWND, UINT, WPARAM, LPARAM); BOOL password_dialog(HWND); #ifdef KRB5 krb5_error_code k5_dest_tkt(void); int k5_get_num_cred(int); int k5_kname_parse(char *, char *, char *); krb5_error_code k5_init_ccache(krb5_ccache *); int k5_name_from_ccache(krb5_ccache); krb5_error_code k5_change_password(HWND, krb5_context, char *, char *, char *, char *, char **); #endif /* KRB5 */ HICON kwin_get_icon(time_t); void trim(char *); void start_blocking_hook(int); void end_blocking_hook(void); void center_dialog(HWND); void set_dialog_font(HWND, HFONT); #endif /* RC_INVOKED */ #endif