#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
#include <stdio.h>
#include <sys/select.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
#define OPEN_BUFF_EX_SIZE (256+1)
char *exampleName;
{
static char *tmp;
switch (transferMode)
{
default: tmp = "<INVALID>"; break;
}
return tmp;
}
{
static char *tmp;
switch (fileType)
{
default: tmp = "<INVALID>"; break;
}
return tmp;
}
{
static char *tmp;
switch (dsvConfigOption)
{
default: tmp = "<INVALID>";break;
}
return tmp;
}
{
static char *tmp;
switch (resultCode)
{
case OPEN_TRANSFER_CODE_NONE: tmp = "None"; break;
case OPEN_TRANSFER_CODE_STARTING: tmp = "Starting"; break;
case OPEN_TRANSFER_CODE_WRITING_FLASH: tmp = "Write Flash"; break;
case OPEN_TRANSFER_CODE_FAILURE: tmp = "Failure"; break;
case OPEN_TRANSFER_CODE_SUCCESS: tmp = "Success"; break;
default: tmp = "Other"; break;
}
return tmp;
}
{
char buffer[OPEN_BUFF_EX_SIZE];
char buffer2[OPEN_BUFF_EX_SIZE];
printf(" CONFIG -- Transfer Mode:\t\t%s\n",transferModePrintable(xfrMode));
printf(" CONFIG -- FileType:\t\t\t%s\n", transferFiletypePrintable(fileType));
{
{
inet_ntop(AF_INET, (
void*)&(inetAddr.
addr.
ipv4), buffer, OPEN_BUFF_EX_SIZE);
}
{
inet_ntop(AF_INET6, (
void*)&(inetAddr.addr.
ipv6), buffer, OPEN_BUFF_EX_SIZE);
}
}
printf(" CONFIG -- Transfer Server Address:\t%s\n", buffer);
buffDesc.
pstart = buffer;
buffDesc.
size =
sizeof(buffer);
buffDesc2.pstart = buffer2;
buffDesc2.size = sizeof(buffer2);
printf(" CONFIG -- Remote File Path:\t\t'%s'\n", (char *)buffDesc2.pstart);
printf(" CONFIG -- Remote File Name:\t\t'%s'\n", (char *)buffDesc.pstart);
buffDesc.size = sizeof(buffer);
printf(" CONFIG -- Local File Name (label):\t'%s'\n", (char *)buffDesc.pstart);
buffDesc.size = sizeof(buffer);
buffDesc2.size = sizeof(buffer2);
printf(" CONFIG -- User Credentials Username:\t'%s'\n", (char *)buffDesc.pstart);
printf(" CONFIG -- User Credentials Password:\t'%s'\n", (char *)buffDesc2.pstart);
printf(" CONFIG -- Digital Signature Verify:\t%s\n", verificationOptionPrintable(dsvConfigOption));
return;
}
{
printf("Testing openapiInetAddrFromIPAddrHostNameStr(): Sanity test N/A. Test explicitly with '%s 1 <string>'\n", exampleName);
return;
}
{
uint32_t value;
printf("Testing openapiImageHeaderSizeGet():\n");
printf(" %s -- Get Image Header Size: %d.\n",
return;
}
{
printf("Testing openapiImageHeaderCheck(): Sanity test N/A. Test explicitly with '%s 3 <filename>'\n", exampleName);
return;
}
{
printf("Testing openapiTransferModeSet(): ");
printf("Current Transfer Mode: %s (%d).\n",
transferModePrintable(xfrModeCurrent), xfrModeCurrent);
{
printf(" %s -- Transfer Mode Set: %s (%d).\n",
transferModePrintable(xfrModeSet), xfrModeSet);
printf(" %s -- Transfer Mode Get: %s (%d).\n",
((
OPEN_E_NONE==result)&&(xfrModeTest==xfrModeSet))?
"PASSED":
"FAILED",
transferModePrintable(xfrModeTest), xfrModeTest);
}
printf(" Restoring Transfer Mode: %s (%d).\n",
transferModePrintable(xfrModeSet), xfrModeSet);
return;
}
{
printf("Testing openapiTransferModeGet():\n");
printf(" %s -- Transfer Mode Get: %s (%d).\n",
transferModePrintable(xfrMode), xfrMode);
return;
}
{
printf("Testing openapiTransferFileTypeSet(): ");
printf("Current FileType: %s (%d).\n",
transferFiletypePrintable(fileTypeCurrent), fileTypeCurrent);
{
printf(" %s -- Transfer FileType Set: %s (%d).\n",
transferFiletypePrintable(fileTypeSet), fileTypeSet);
printf(" %s -- Transfer FileType Get: %s (%d).\n",
((
OPEN_E_NONE==result)&&(fileTypeTest==fileTypeSet))?
"PASSED":
"FAILED",
transferFiletypePrintable(fileTypeTest), fileTypeTest);
}
printf(" Restoring FileType: %s (%d).\n",
transferFiletypePrintable(fileTypeCurrent), fileTypeCurrent);
return;
}
{
printf("Testing openapiTransferFileTypeGet():\n");
printf(" %s -- Transfer File Type Get: %s (%d). (result = %d)\n",
fileType, result);
return;
}
{
char buffer[OPEN_BUFF_EX_SIZE];
printf("Testing openapiTransferServerAddressGet():\n");
snprintf(buffer, sizeof(buffer), "Fail");
{
{
inet_ntop(AF_INET, (void*)&(inetAddr.addr.ipv4), buffer, OPEN_BUFF_EX_SIZE);
}
{
inet_ntop(AF_INET6, (void*)&(inetAddr.addr.ipv6), buffer, OPEN_BUFF_EX_SIZE);
}
}
printf(" %s -- Transfer Server Address Get: %s.\n",
return;
}
{
printf("Testing openapiTransferServerAddressSet(): Sanity test N/A. Test explicitly with '%s 9 <Address/Hostname>'\n", exampleName);
return;
}
{
char buffer[OPEN_BUFF_EX_SIZE];
char buffer2[OPEN_BUFF_EX_SIZE];
printf("Testing openapiTransferFileRemoteGet():\n");
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
buffDesc2.pstart = buffer2;
buffDesc2.size = sizeof(buffer2);
printf(" %s -- Transfer Remote File Name Get path:'%s' file:'%s'.\n",
(char *)buffDesc2.pstart, (char *)buffDesc.pstart);
return;
}
{
printf("Testing openapiTransferFileRemoteSet(): Sanity test N/A. Test explicitly with '%s 11 <name> <path>'\n", exampleName);
return;
}
{
char buffer[OPEN_BUFF_EX_SIZE];
printf("Testing openapiTransferFileLocalGet():\n");
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
printf(" %s -- Transfer Local File Name Get: %s.\n",
(char *)buffDesc.pstart);
return;
}
{
printf("Testing openapiTransferFileLocalSet(): Sanity test N/A. Test explicitly with '%s 13 <label>'\n", exampleName);
return;
}
{
char buffer[OPEN_BUFF_EX_SIZE];
char buffer2[OPEN_BUFF_EX_SIZE];
printf("Testing openapiTransferRemoteUserCredentialsGet():\n");
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
buffDesc2.pstart = buffer2;
buffDesc2.size = sizeof(buffer2);
printf(" %s -- Remote User Credentials Get Username: '%s' Password:'%s'.\n",
(char *)buffDesc.pstart, (char *)buffDesc2.pstart);
return;
}
{
printf("Testing openapiTransferRemoteUserCredentialsSet(): Sanity test N/A. Test explicitly with '%s 15 <username> <password>'\n", exampleName);
return;
}
{
fd_set s_rd, s_wr, s_ex;
char buffer[OPEN_BUFF_EX_SIZE];
struct timeval timeout;
int32_t retval, c = '\0';
printf("Testing openapiTransferDownStartSet(): \n");
transferOpENAPIConfigDump(clientHandle);
printf(" INPUT -- Continue File Transfer Operation (Y/N+<enter>)?\n");
FD_ZERO(&s_rd);
FD_ZERO(&s_wr);
FD_ZERO(&s_ex);
FD_SET(fileno(stdin), &s_rd);
timeout.tv_sec = 15;
timeout.tv_usec = 0;
retval = select(fileno(stdin)+1, &s_rd, &s_wr, &s_ex, &timeout);
if (retval == -1)
{
perror("select()");
}
else if (retval)
{
fgets(buffer, sizeof(buffer), stdin);
c = toupper(buffer[0]);
}
if ('Y' != c)
{
printf(" FAILED -- Transfer Aborted!\n");
return;
}
printf(
" %s -- Start Download:\n", (
OPEN_E_NONE==result)?
"PASSED":
"FAILED");
return;
}
{
printf("Testing openapiTransferInProgressGet():\n");
printf(" %s -- Transfer In Progress: %s\n",
return;
}
{
char buffer[OPEN_BUFF_EX_SIZE];
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
printf("Testing openapiTransferResultGet():\n");
printf(" %s -- Transfer Result Get Status: %d - '%s'\n",
(char *)buffDesc.pstart);
return;
}
{
printf("Testing openapiTransferDownloadResultCodeGet():\n");
printf(" %s -- Transfer Result Get Code: %d (%s)\n",
resultCodePrintable(resultCode));
return;
}
{
printf("Testing openapiDigitalSignatureVerifyConfigGet():\n");
printf(" %s -- Digital Sig Verify Config Get: %s(%d).\n",
verificationOptionPrintable(dsvConfigOption), dsvConfigOption);
return;
}
{
printf("Testing openapiDigitalSignatureVerifyConfigSet():\n");
printf(" %s -- Digital Sig Verify Config Get: %s(%d).\n",
verificationOptionPrintable(dsvConfigCurrent), dsvConfigCurrent);
{
printf(" %s -- Digital Sig Verify Config Set: %s(%d).\n",
verificationOptionPrintable(dsvConfigSet), dsvConfigSet);
printf(" %s -- Digital Sig Verify Config Get: %s(%d).\n",
verificationOptionPrintable(dsvConfigTest), dsvConfigTest);
}
printf(" Restoring Digital Sig Verify Config: %s (%d).\n",
verificationOptionPrintable(dsvConfigTest), dsvConfigTest);
return;
}
{
printf("Testing openapiCopyConfigFile():\n");
printf(
" %s -- Copy Config File: \n", (
OPEN_E_NONE==result)?
"PASSED":
"FAILED");
return;
}
void printTransferAppMenu()
{
printf("\nUsage: transfer_example <test#> <arg1> <arg2> ... \n\n");
printf("Test 0: Transfer OpEN APIs Sanity: %s 0 \n", exampleName);
printf("Test 1: Convert Host/IP String to IP Address: %s 1 <string>\n", exampleName);
printf("Test 2: Get Image Header Size: %s 2 \n", exampleName);
printf("Test 3: Image Header Check: %s 3 <filename>\n", exampleName);
printf("Test 4: Get Transfer Mode: %s 4 \n", exampleName);
printf("Test 5: Set Transfer Mode: %s 5 <tftp|sftp|scp|#mode>\n", exampleName);
printf("Test 6: Get Transfer File Type: %s 6 \n", exampleName);
printf("Test 7: Set Transfer File Type: %s 7 <code|config|#type>\n", exampleName);
printf("Test 8: Get Transfer Server Address: %s 8 \n", exampleName);
printf("Test 9: Set Transfer Server Address: %s 9 <Address/Hostname>\n", exampleName);
printf("Test 10: Get Transfer Remote File Name: %s 10 \n", exampleName);
printf("Test 11: Set Transfer Remote File Name: %s 11 <name> <path>\n", exampleName);
printf("Test 12: Get Transfer Local File Name: %s 12 \n", exampleName);
printf("Test 13: Set Transfer Local File Name: %s 13 <label>\n", exampleName);
printf("Test 14: Get User Credentials: %s 14 \n", exampleName);
printf("Test 15: Set User Credentials: %s 15 <username> <password>\n", exampleName);
printf("Test 16: Get Digital Signature Verification: %s 16 \n", exampleName);
printf("Test 17: Set Digital Signature Verification: %s 17 <none|image|script|all|#mode>\n", exampleName);
printf("Test 18: Start Download: %s 18 \n", exampleName);
printf("Test 19: Transfer In Progress: %s 19 \n", exampleName);
printf("Test 20: Transfer Result Get Status: %s 20\n", exampleName);
printf("Test 21: Transfer Result Get Code: %s 21\n", exampleName);
printf("Test 22: Dump Current Config: %s 22\n", exampleName);
printf("Test 23: Copy Running Config File to Backup: %s 23\n", exampleName);
printf("\n");
return;
}
{
transferOpENAPISanityConvertHost(clientHandle);
transferOpENAPISanityHeaderSize(clientHandle);
transferOpENAPISanityHeaderCheck(clientHandle);
transferOpENAPISanityModeSet(clientHandle);
transferOpENAPISanityModeGet(clientHandle);
transferOpENAPISanityFileTypeSet(clientHandle);
transferOpENAPISanityFileTypeGet(clientHandle);
transferOpENAPISanityServerAddressGet(clientHandle);
transferOpENAPISanityServerAddressSet(clientHandle);
transferOpENAPISanityFileRemoteGet(clientHandle);
transferOpENAPISanityFileRemoteSet(clientHandle);
transferOpENAPISanityFileLocalGet(clientHandle);
transferOpENAPISanityFileLocalSet(clientHandle);
transferOpENAPISanityRemoteUserCredentialsGet(clientHandle);
transferOpENAPISanityRemoteUserCredentialsSet(clientHandle);
transferOpENAPISanityDigitalSignatureVerifyConfigGet(clientHandle);
transferOpENAPISanityDigitalSignatureVerifyConfigSet(clientHandle);
transferOpENAPISanityDownStartSet(clientHandle);
transferOpENAPISanityInProgressGet(clientHandle);
transferOpENAPISanityResultGet(clientHandle);
transferOpENAPISanityDownloadResultCodeGet(clientHandle);
transferOpENAPISanityCopyConfigFile(clientHandle);
return;
}
int main(int argc, char **argv)
{
uint32_t testNum;
char buffer[OPEN_BUFF_EX_SIZE*2];
char buffer2[OPEN_BUFF_EX_SIZE];
char switch_os_revision_string[100];
uint32_t value;
char *ipOrHost;
char *fName;
FILE *fp = NULL;
exampleName = argv[0];
if (argc < 2)
{
printTransferAppMenu();
exit(1);
}
testNum = atoi(argv[1]);
l7proc_crashlog_register();
{
printf("\nFailed to initialize RPC to OpEN. Exiting (result = %d)\n", result);
exit(2);
}
{
sleep(1);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Starting Transfer API example application");
printf(" \n");
buffDesc.pstart = switch_os_revision_string;
buffDesc.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("Open API Version = %d.%d.%d.%d\n",
openApiVersion.
maint_level,
openApiVersion.
build_num);
else
printf("Open API Version retrieve error\n");
printf("\n");
switch (testNum)
{
case 0:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
transferOpENAPISanity(&clientHandle);
break;
case 1:
if (argc != 3)
{
printTransferAppMenu();
exit(1);
}
ipOrHost = argv[2];
buffDesc.pstart = argv[2];
buffDesc.size = strlen(buffDesc.pstart)+1;
printf("Test 1: Convert Host/IP String to IP Address: transfer_example 1 <string>\n");
printf("\topenapiInetAddrFromIPAddrHostNameStr() %s\n", ipOrHost);
snprintf(buffer, sizeof(buffer), "Fail");
{
{
inet_ntop(AF_INET, (void*)&(inetAddr.addr.ipv4), buffer, OPEN_BUFF_EX_SIZE);
}
{
inet_ntop(AF_INET6, (void*)&(inetAddr.addr.ipv6), buffer, OPEN_BUFF_EX_SIZE);
}
}
printf(" %s -- Get Inet Address From String: %s => %s. (result = %d)\n",
argv[2], buffer, result);
break;
case 2:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
printf(" %s -- Get Image Header Size: %d. (result = %d)\n\n",
(
OPEN_E_NONE==result)?
"PASSED":
"FAILED", value, result);
break;
case 3:
if (argc != 3)
{
printf("Please specify a file to sample for this test\n\n");
printf("The file may be created from an downloadable image by extracting the top %d bytes\n", value);
printf("using the linux command 'dd count=%d bs=1 if=image.stk of=header.bin'\n\n", value);
printTransferAppMenu();
exit(1);
}
fName = argv[2];
{
fp = fopen(fName, "r");
if (NULL != fp)
{
buffDesc.pstart = buffer;
buffDesc.size = fread(buffDesc.pstart, 1, value, fp);
{
printf(" FAILED-- Image Header Check, is NOT available on this platform!\n\n");
}
else
{
printf(" %s -- Image Header Check - file [%s] is%sa valid image for this system (%d). (result = %d)\n\n",
isValid==
OPEN_TRUE?
" ":
" NOT ", isValid, result);
}
fclose(fp);
}
else
{
printf(" FAILED-- Image Header Check, file: '%s' cannot be opened.\n\n", fName);
printf("\nPlease specify a file to sample for this test\n\n");
printf("The file may be created from an downloadable image by extracting the top %d bytes\n", value);
printf("using the linux command 'dd count=%d bs=1 if=image.stk of=header.bin'\n\n", value);
}
}
else
{
printf(" FAILED-- Image Header Check, buffer is too small: %u needs to be %d.\n\n", sizeof(buffer), value);
}
break;
case 4:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
printf(" %s -- Transfer Mode Get: %s. (result = %d)\n\n",
transferModePrintable(xfrMode), result);
break;
case 5:
if (argc != 3)
{
printTransferAppMenu();
exit(1);
}
if (0 == strcmp(argv[2], "tftp"))
{
}
else if (0 == strcmp(argv[2], "sftp"))
{
}
else if (0 == strcmp(argv[2], "scp"))
{
}
else
{
xfrMode = atoi(argv[2]);
}
printf(" %s -- Transfer Mode Set: %s. (result = %d)\n\n",
transferModePrintable(xfrMode), result);
break;
case 6:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
printf(" %s -- Transfer Type Get: %s. (result = %d)\n\n",
break;
case 7:
if (argc != 3)
{
printTransferAppMenu();
exit(1);
}
if (0 == strcmp(argv[2], "code"))
{
}
else if (0 == strcmp(argv[2], "config"))
{
}
else
{
fileType = atoi(argv[2]);
}
printf(" %s -- Transfer Type Set: %s. (result = %d)\n\n",
break;
case 8:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
snprintf(buffer, sizeof(buffer), "Fail");
{
{
inet_ntop(AF_INET, (void*)&(inetAddr.addr.ipv4), buffer, OPEN_BUFF_EX_SIZE);
}
{
inet_ntop(AF_INET6, (void*)&(inetAddr.addr.ipv6), buffer, OPEN_BUFF_EX_SIZE);
}
}
printf(" %s -- Transfer Server Address Get: %s. (result = %d)\n\n",
(
OPEN_E_NONE==result)?
"PASSED":
"FAILED", buffer, result);
break;
case 9:
if (argc != 3)
{
printTransferAppMenu();
exit(1);
}
buffDesc.pstart = argv[2];
buffDesc.size = strlen(buffDesc.pstart) + 1;
{
}
snprintf(buffer, sizeof(buffer), "Fail");
{
{
inet_ntop(AF_INET, (void*)&(inetAddr.addr.ipv4), buffer, OPEN_BUFF_EX_SIZE);
}
{
inet_ntop(AF_INET6, (void*)&(inetAddr.addr.ipv6), buffer, OPEN_BUFF_EX_SIZE);
}
}
printf(" %s -- Set Server Address: %s (result = %d)\n\n",
buffer, result);
break;
case 10:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
buffDesc2.pstart = buffer2;
buffDesc2.size = sizeof(buffer2);
printf(" %s -- Transfer Remote File Name Get: [%s]%s. (result = %d)\n\n",
(char *)buffDesc2.pstart, (char *)buffDesc.pstart, result);
break;
case 11:
if ((argc != 3) && (argc != 4))
{
printTransferAppMenu();
exit(1);
}
if (argc == 4)
{
buffDesc2.pstart = argv[3];
}
else
{
strcpy(buffer2, "");
buffDesc2.pstart = buffer2;
}
buffDesc2.size = strlen(buffDesc2.pstart) + 1;
buffDesc.pstart = argv[2];
buffDesc.size = strlen(buffDesc.pstart) + 1;
printf(" %s -- Transfer Remote File Name Set Path:'%s' Name:'%s'. (result = %d)\n\n",
(char *)buffDesc2.pstart, (char *)buffDesc.pstart, result);
break;
case 12:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
printf(" %s -- Transfer Local File Name Get: %s. (result = %d)\n\n",
(char *)buffDesc.pstart, result);
break;
case 13:
if (argc != 3)
{
printTransferAppMenu();
exit(1);
}
buffDesc.pstart = argv[2];
buffDesc.size = strlen(buffDesc.pstart) + 1;
printf(" %s -- Transfer Local File Name Set: %s. (result = %d)\n\n",
(char *)buffDesc.pstart, result);
break;
case 14:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
buffDesc2.pstart = buffer2;
buffDesc2.size = sizeof(buffer2);
printf(" %s -- Remote User Credentials Get Username: '%s' Password:'%s'. (result = %d)\n\n",
(char *)buffDesc.pstart, (char *)buffDesc2.pstart, result);
break;
case 15:
if ((argc != 2) && (argc != 3) && (argc != 4))
{
printTransferAppMenu();
exit(1);
}
strcpy(buffer, "");
buffDesc.pstart = buffer;
strcpy(buffer2, "");
buffDesc2.pstart = buffer2;
if (argc == 4)
{
buffDesc2.pstart = argv[3];
}
if (argc > 2)
{
buffDesc.pstart = argv[2];
}
buffDesc.size = strlen(buffDesc.pstart) + 1;
buffDesc2.size = strlen(buffDesc2.pstart) + 1;
printf(" %s -- Remote User Credentials Get Username: '%s' Password:'%s'. (result = %d)\n\n",
(char *)buffDesc.pstart, (char *)buffDesc2.pstart, result);
break;
case 16:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
printf(" %s -- Digital Sig Verify Config Get: %s(%d). (result = %d)\n\n",
verificationOptionPrintable(dsvConfigOption), dsvConfigOption,
result);
break;
case 17:
if (argc != 3)
{
printTransferAppMenu();
exit(1);
}
if (0 == strcmp(argv[2], "none"))
{
}
else if (0 == strcmp(argv[2], "image"))
{
}
else if (0 == strcmp(argv[2], "script"))
{
}
else if (0 == strcmp(argv[2], "all"))
{
}
else
{
dsvConfigOption = atoi(argv[2]);
}
printf(" %s -- Digital Sig Verify Config Get: %s(%d). (result = %d)\n\n",
verificationOptionPrintable(dsvConfigOption), dsvConfigOption,
result);
break;
case 18:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
transferOpENAPIConfigDump(&clientHandle);
printf(" %s -- Start Download: (result = %d)\n\n",
break;
case 19:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
printf(" %s -- Transfer In Progress: %s (result = %d)\n\n",
result);
break;
case 20:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
buffDesc.pstart = buffer;
buffDesc.size = sizeof(buffer);
printf(" %s -- Transfer Result Get Status: %d - '%s'. (result = %d)\n\n",
(char *)buffDesc.pstart, result);
break;
case 21:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
printf(" %s -- Transfer Result Get Code: %d (%s). (result = %d)\n\n",
resultCodePrintable(resultCode), result);
break;
case 22:
transferOpENAPIConfigDump(&clientHandle);
break;
case 23:
if (argc != 2)
{
printTransferAppMenu();
exit(1);
}
printf(" %s -- Copy Config File directive: %d. (result = %d)\n\n",
(
OPEN_E_NONE==result)?
"PASSED":
"FAILED", directive, result);
break;
default:
printTransferAppMenu();
break;
}
printf("\n");
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping Transfer API example application");
return 0;
}