pam-needs-afsdb-libs-20010712
[openafs.git] / src / pam / afs_util.c
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #include <stdio.h>
11 #include <assert.h>
12 #include <security/pam_appl.h>
13 #include <afs/param.h>
14 #include <afsconfig.h>
15
16 RCSID("$Header$");
17
18 #include "afs_util.h"
19
20
21 char    *pam_afs_ident          = "pam_afs";
22 char    *pam_afs_lh             = "TRANSARC_PAM_AFS_AUTH_login_handle";
23
24
25 void lc_cleanup(
26         pam_handle_t    *pamh,
27         void            *data,
28         int             pam_end_status)
29 {
30     if ( data )
31     {
32         memset(data, 0, strlen(data));
33         free(data);
34     }
35 }
36
37
38 void nil_cleanup(
39         pam_handle_t    *pamh,
40         void            *data,
41         int             pam_end_status)
42 {
43     return;
44 }
45
46 /* The PAM module needs to be free from libucb dependency. Otherwise, 
47 dynamic linking is a problem, the AFS PAM library refuses to coexist
48 with the DCE library. The sigvec() and sigsetmask() are the only two
49 calls that neccesiate the inclusion of libucb.a.  There are used by
50 the lwp library to support premeptive threads and signalling between 
51 threads. Since the lwp support used by the PAM module uses none of 
52 these facilities, we can safely define these to be null functions */
53
54 #if !defined(AFS_HPUX110_ENV)
55 /* For HP 11.0, this function is in util/hputil.c */
56 sigvec()
57 {
58         assert(0);
59 }
60 #endif  /* AFS_HPUX110_ENV */
61 sigsetmask()
62 {
63         assert(0);
64 }
65
66 /* converts string to integer */
67
68 char *cv2string(ttp, aval)
69     register char *ttp;
70     register unsigned long aval;
71 {
72     register char *tp = ttp;
73     register int  i;
74     int any = 0;
75
76     *(--tp) = 0;
77     while (aval != 0) {
78         i = aval % 10;
79         *(--tp) = '0' + i;
80         aval /= 10;
81         any = 1;
82     }
83     if (!any)
84         *(--tp) = '0';
85     return tp;
86 }
87