#include <stdlib.h>
#include <unistd.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
#define OPEN_API_BUFFER_SIZE 512
#define OPENAPI_USER_MGR_LOGIN_SIZE 65
#define OPENAPI_USER_MGR_MAX_MAIL_ADDRESS_SIZE 255
static void printAppMenu(char *name)
{
printf("Usage: %s <test#> <arg1> <arg2> ... \n", name);
printf("Test 1: Get user's multifactor authentication state: %s 1 <userName>\n", name);
printf("Test 2: Set user's multifactor authentication state: %s 2 <userName><mfaPwdEnable>\n", name);
printf("Test 3: Get user's Configured emailId information: %s 3 <userName>\n", name);
printf("Test 4: Set user's emailId information: %s 4 <userName><emailInfo>\n", name);
printf("Test 5: Get global multifactor authentication state: %s 5 \n", name);
printf("Test 6: Set global multifactor authentication state: %s 6 <mfaCnfgEnable>\n", name);
printf("Test 7: Run API sanity checks: %s 7 \n", name);
return;
}
{
char buffer[512];
char uname[OPEN_API_BUFFER_SIZE] = {0};
char emailId[OPEN_API_BUFFER_SIZE] = {0};
badBufdescPointer.
pstart = (
void *) NULL;
badBufdescPointer.
size =
sizeof(buffer);
zeroLenBuf.pstart = buffer;
zeroLenBuf.size = 0;
badUserNameLen.pstart = buffer;
badUserNameLen.size = sizeof(uname);
badEmailIdLen.pstart = buffer;
badEmailIdLen.size = sizeof(emailId);
userName.pstart = uname;
userName.size = OPENAPI_USER_MGR_LOGIN_SIZE;
emailInfo.pstart = emailId;
emailInfo.size = OPENAPI_USER_MGR_MAX_MAIL_ADDRESS_SIZE+1;
printf("Testing OpEN APIs sanity:\n");
printf("Testing openapiUserMultiFactorAuthStateGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL username:(result = %d)\n", result);
printf("NULL username buffdesc pstart :(result = %d)\n", result);
printf("username buffdesc size with 0 length:(result = %d)\n", result);
printf("username buffdesc size greater than acceptable length:(result = %d)\n", result);
printf("NULL Mfa enable state arg :(result = %d)\n", result);
printf("Testing openapiUserMultiFactorAuthStateSet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL username:(result = %d)\n", result);
printf("NULL username buffdesc pstart :(result = %d)\n", result);
printf("username buffdesc size with 0 length:(result = %d)\n", result);
printf("username buffdesc size greater than acceptable length:(result = %d)\n", result);
printf("Testing openapiUserEmailIdGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL username:(result = %d)\n", result);
printf("NULL username's buffdesc pstart:(result = %d)\n", result);
printf("username's buffdesc 0 length size:(result = %d)\n", result);
printf("username's buffdesc size greater than acceptable length:(result = %d)\n", result);
printf("NULL emailid info:(result = %d)\n", result);
printf("NULL emailId buffdesc pstart:(result = %d)\n", result);
printf("emailId buffdesc 0 length size:(result = %d)\n", result);
printf("emailId buffdesc size greater than acceptable length:(result = %d)\n", result);
printf("Testing openapiUserEmailIdSet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL username:(result = %d)\n", result);
printf("NULL username's buffdesc pstart:(result = %d)\n", result);
printf("username's buffdesc 0 length size:(result = %d)\n", result);
printf("username's buffdesc size greater than acceptable length:(result = %d)\n", result);
printf("NULL emailid info:(result = %d)\n", result);
printf("NULL emailId buffdesc pstart:(result = %d)\n", result);
printf("emailId buffdesc 0 length size:(result = %d)\n", result);
printf("emailId buffdesc size greater than acceptable length:(result = %d)\n", result);
printf("Testing openapiGlobalMultiFactorAuthGet():\n");
printf("NULL client handle:(result = %d)\n", result);
printf("NULL argument 2:(result = %d)\n", result);
printf("Testing openapiGlobalMultiFactorAuthSet():\n");
printf("NULL client handle:(result = %d)\n", result);
return;
}
{
.size = strlen(pUname)};
{
printf("Bad return code trying to get user's multifactor authentication state. (result = %d)\n", result);
}
else
{
{
printf("Multifactor authentication is enabled for user:%s\n", (char*)userName.pstart);
}
else
{
printf("Multifactor authentication is disabled for user:%s\n", (char*)userName.pstart);
}
}
return;
}
{
.size = strlen(pUname)} ;
{
printf("Bad return code trying to set user's multifactor authentication state (result = %d)\n", result);
}
else
{
printf("Multifactor authentication for user:%s is set to %s state\n",
(
char*)userName.pstart, ((mfaPwdEnable ==
OPEN_TRUE)?
"enable":
"disable"));
}
return;
}
{
.size = strlen(pUname)} ;
.size = OPENAPI_USER_MGR_MAX_MAIL_ADDRESS_SIZE+1} ;
{
printf("Bad return code trying to get user's Configured emailId information. (result = %d)\n", result);
}
else
{
printf("user '%s' is configured with emailId:%s\n", (char*)userName.pstart, (char*)emailInfo.pstart);
}
return;
}
{
.size = strlen(pUname)} ;
.size = strlen(pEmail)} ;
{
printf("Bad return code trying to set user's emailId information. (result = %d)\n", result);
}
else
{
printf("user '%s' is successfully configured with emailId:%s\n", (char*)userName.pstart, (char*)emailInfo.pstart);
}
return;
}
{
{
printf("Bad return code trying to get global multifactor authentication state (result = %d)\n", result);
}
else
{
{
printf("Multifactor authentication feature is enabled \n");
}
else
{
printf("Multifactor authentication feature is disabled \n");
}
}
return;
}
{
{
printf("Bad return code trying to set global multifactor authentication state. (result = %d)\n", result);
}
else
{
printf(
"Multifactor authentication feature is %s \n", (( mfaCnfgEnable ==
OPEN_TRUE)?
"enable":
"disable"));
}
return;
}
int main(int argc, char **argv)
{
uint32_t testNum;
char switch_os_revision_string[100];
int show_help = 1;
char userName[OPEN_API_BUFFER_SIZE] = {0};
char emailInfo[OPEN_API_BUFFER_SIZE] = {0};
if (argc < 2)
{
printAppMenu(argv[0]);
return -1;
}
testNum = atoi(argv[1]);
l7proc_crashlog_register();
{
printf("\nFailed to initialize RPC to OpEN. Exiting (result = %d)\n", result);
return -1;
}
{
sleep(1);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Starting Mfa API example application");
printf("\n");
switch_os_revision.pstart = switch_os_revision_string;
switch_os_revision.size = sizeof(switch_os_revision_string);
printf("Network OS version = %s\n", switch_os_revision_string);
else
printf("Network OS version retrieve error\n");
printf("\n");
switch (testNum)
{
case 1:
if (argc == 3)
{
strncpy(userName, argv[2], OPEN_API_BUFFER_SIZE-1);
userMultiFactorAuthStateGet(&clientHandle, userName, &mfaPwdEnable);
show_help = 0;
}
break;
case 2:
if (argc == 4)
{
strncpy(userName, argv[2], OPEN_API_BUFFER_SIZE-1);
if (1 == atoi(argv[3]))
{
userMultiFactorAuthStateSet(&clientHandle, userName, mfaPwdEnable);
}
else if (0 == atoi(argv[3]))
{
userMultiFactorAuthStateSet(&clientHandle, userName, mfaPwdEnable);
}
else
{
printf ("Incorrect arguments passed\n");
}
show_help = 0;
}
break;
case 3:
if (argc == 3)
{
strncpy(userName, argv[2], OPEN_API_BUFFER_SIZE-1);
userEmailIdGet(&clientHandle, userName, emailInfo);
show_help = 0;
}
break;
case 4:
if (argc == 4)
{
strncpy(userName, argv[2], OPEN_API_BUFFER_SIZE-1);
strncpy(emailInfo, argv[3], OPEN_API_BUFFER_SIZE-1);
userEmailIdSet(&clientHandle, userName, emailInfo);
show_help = 0;
}
break;
case 5:
if (argc == 2)
{
globalMultiFactorAuthGet(&clientHandle, &mfaCnfgEnable);
show_help = 0;
}
break;
case 6:
if (argc == 3)
{
if (1 == atoi(argv[2]))
{
globalMultiFactorAuthSet(&clientHandle, mfaCnfgEnable);
}
else if (0 == atoi(argv[2]))
{
globalMultiFactorAuthSet(&clientHandle, mfaCnfgEnable);
}
else
{
printf ("Incorrect arguments passed\n");
}
show_help = 0;
}
break;
case 7:
if (argc == 2)
{
runSanity(&clientHandle);
show_help = 0;
}
break;
default:
break;
}
if (show_help == 1)
{
printAppMenu(argv[0]);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping API example application");
return 0;
}