1 | /* Provide routines to store/check/access user credentials
|
---|
2 | stored in a shared memory object */
|
---|
3 |
|
---|
4 | _ucInitObj: procedure expose ucMem
|
---|
5 | /* Initialize shared memory object */
|
---|
6 | /* Not implemented as we use only an existing object */
|
---|
7 | ucMem = '\SHAREMEM\INETXXX'
|
---|
8 | return ucMem
|
---|
9 |
|
---|
10 | _ucChkObj: procedure expose ucMem ucPtr
|
---|
11 | /* Check if appropriate memory object is available */
|
---|
12 | Success = 0
|
---|
13 | getrc = RxGetNamedSharedMem('ucPtr', ucMem , 'rw')
|
---|
14 | if getrc = 0 then Success = 1
|
---|
15 | return Success
|
---|
16 |
|
---|
17 | _ucChkUc: procedure expose ucMem ucPtr
|
---|
18 | /* Check whether credentials are stored in memory object */
|
---|
19 | rawMem = RxStorage( ucPtr , 4096 )
|
---|
20 | ucPos = lastpos('--user=',rawMem)
|
---|
21 | Success = (ucPos > 0)
|
---|
22 | return Success
|
---|
23 |
|
---|
24 | _ucSetUc: procedure expose ucMem ucPtr UserCred
|
---|
25 | /* Set/Store credentials in memory object */
|
---|
26 | Success = 0
|
---|
27 | rawMem = RxStorage( ucPtr , 4096 )
|
---|
28 | ucL = length(UserCred)
|
---|
29 | rawMem = overlay(UserCred, rawMem, 4096-ucL)
|
---|
30 | rawMem = RxStorage( ucPtr , 4096, rawMem )
|
---|
31 | Success = 1
|
---|
32 | return Success
|
---|
33 |
|
---|
34 | _ucDelUc: procedure expose ucMem ucPtr UserCred
|
---|
35 | /* Delete credentials from memory object */
|
---|
36 | rawMem = RxStorage( ucPtr , 4096 )
|
---|
37 | cPos = lastpos('--user=',rawMem)
|
---|
38 | rawMem = overlay(copies('00'x,4096-cPos), rawMem, cPos)
|
---|
39 | rawMem = RxStorage( ucPtr , 4096, rawMem )
|
---|
40 | return 1
|
---|
41 |
|
---|
42 | _ucGetUc: procedure expose ucMem ucPtr
|
---|
43 | /* Read credentials from memory object */
|
---|
44 | rawMem = RxStorage( ucPtr , 4096 )
|
---|
45 | ucPos = lastpos('--user=',rawMem)
|
---|
46 | UserCred = strip(substr(rawMem,ucPos),,'00'x)
|
---|
47 | return UserCred
|
---|