Code:
- #include <eim.h>
- #include <stddef.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <xxdtaa.h>
- #include <QSYSINC/MIH/CPYBLA>
-
- #define START 1
- #define LENGTH 60
-
- void printListData(void * entry, int offset);
-
- int main(int argc, char *argv[])
- {
- int rc;
- int i;
- char eimerr[200];
- EimRC * err;
- EimHandle handle;
- EimIdentifierInfo x;
- EimConnectInfo con;
- char unique[30];
- char listData[1000];
- char rtnstr[20];
- char * message;
- char newdata[60];
- char result[30];
- EimList * list = (EimList * ) listData;
-
-
- memset(eimerr,0x00,200);
- err = (EimRC *)eimerr;
- err->memoryProvidedByCaller = 200;
-
-
- if (0 != (rc = eimCreateHandle(&handle,
- NULL,
- err)))
- {
- message = eimErr2String(err);
- sprintf(argv[5], "EIM API Error Message: %s",message);
- free(message);
-
-
- argv[5][strlen(argv[5])] = ' ';
- return -1;
- }
-
-
- con.type = EIM_SIMPLE;
- con.creds.simpleCreds.protect = EIM_PROTECT_NO;
- con.creds.simpleCreds.bindDn = argv[2];
- con.creds.simpleCreds.bindPw = argv[3];
- con.ssl = NULL;
-
- if (0!= (rc = eimConnect(&handle,
- con,
- err)))
- {
- message = eimErr2String(err);
- sprintf(argv[5], "EIM API Error Message: %s",message);
- free(message);
-
-
- argv[5][strlen(argv[5])] = ' ';
- return -1;
- }
-
-
- if (0 != (rc = eimGetAssociatedIdentifiers(&handle,
- EIM_TARGET,
- argv[4],
- argv[1],
- 1000,
- list,
- err)))
- {
- message = eimErr2String(err);
- sprintf(argv[5], "Get Associated Identifiers error: %s",
- message);
- free(message);
- eimDestroyHandle(&handle, err);
- return -1;
- }
-
-
- EimIdentifier * entry;
-
- entry = (EimIdentifier *)((char *)list + list->firstEntry);
-
- if (list->entriesReturned < 1)
- return 0;
-
-
- printListData(entry, offsetof(EimIdentifier, uniquename));
-
-
- rc = eimDestroyHandle(&handle, err);
-
- return 0;
- }
-
- void printListData(void * entry, int offset)
- {
- EimListData * listData;
- char * data;
- int dataLength;
- unsigned int sizeofUnique = 30;
- _DTAA_NAME_T dtaname;
-
- memset( &dtaname, ' ', sizeof(dtaname));
- cpybla(dtaname.dtaa_name, "EIMUNIQ", 7);
- cpybla(dtaname.dtaa_lib, "QTEMP", 5);
-
- listData = (EimListData *)((char *)entry + offset);
- data = (char *)entry + listData->disp;
- dataLength = listData->length;
-
- if (dataLength > 0)
- QXXCHGDA(dtaname, START, dataLength, data);
- }
|
|