securityanddataprivacytools/securitytools/certapp/api/certapp-api.c
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/securityanddataprivacytools/securitytools/certapp/api/certapp-api.c	Tue Jul 21 01:04:32 2009 +0100
+++ b/securityanddataprivacytools/securitytools/certapp/api/certapp-api.c	Thu Sep 10 14:01:51 2009 +0300
@@ -1,155 +1,155 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include "certapp-api.h"
-
-#define CERTAPP "certapp"
-typedef const char *ArgPtr;
-
-#ifdef __LINUX__
-#include <unistd.h>
-#include <sys/wait.h>
-#else
-#include <process.h>
-#endif
-
-#ifndef BULLSEYE_OFF
-#ifdef _BullseyeCoverage
-#define BULLSEYE_OFF "BullseyeCoverage save off";
-#define BULLSEYE_RESTORE "BullseyeCoverage restore";
-#else
-#define BULLSEYE_OFF 
-#define BULLSEYE_RESTORE 
-#endif
-#endif
-
-static const char * const OPT_PROGRESS = "--progress=";
-static const char * const OPT_ERRORS = "--errors=";
-
-int RunCertApp(const char *aProgress, const char *aErrors,
-			   int argc, char **argv)
-{
-	int ret = -1;
-BULLSEYE_OFF
-	if(argc<0) abort(); // Bad argument
-BULLSEYE_RESTORE
-
-	int newArgc = argc+4;
-	const char **newArgv = (const char **)malloc(sizeof(ArgPtr)*newArgc);
-
-	const char *progFile = (aProgress) ? (aProgress) : ("-");
-	const char *errorsFile = (aErrors) ? (aErrors) : ("-");
-
-	char *progress=(char *)malloc(strlen(OPT_PROGRESS)+strlen(progFile)+1);
-	strcpy(progress, OPT_PROGRESS);
-	strcat(progress, progFile);
-
-	char *errors=(char *)malloc(strlen(OPT_ERRORS)+strlen(errorsFile)+1);
-	strcpy(errors, OPT_ERRORS);
-	strcat(errors, errorsFile);
-	
-	newArgv[0] = CERTAPP;
-	newArgv[1] = progress;
-	newArgv[2] = errors;
-	int i=0;
-	for(i=0; i<argc; ++i)
-		{
-		newArgv[i+3] = argv[i];
-		}
-	newArgv[newArgc-1] = 0; // Terminate newArgv array
-
-#ifdef __LINUX__
-	//
-	// Linux version to run certapp
-	//
-	pid_t pid = vfork();
-	if(pid == -1)
-		{
-		// vfork call failed
-		printf("Failed to run %s\n", CERTAPP);
-		return errno;
-		}
-	if(pid == 0)
-		{
-		// Child side of vfork
-		// Exec certapp
-		
-		execvp(CERTAPP, (char * const *)newArgv);
-		// Only get here if the exec call failed...
-		switch(errno)
-			{
-			case ENOENT:
-				fprintf(stderr, "*** Could not find certapp executable to launch!\n");
-				break;
-
-			default:
-				fprintf(stderr, "*** Failed to launch certapp, execvp called failed with error code%d !\n", errno);
-				break;
-			}
-		exit(errno); 
-		}
-
-	// Parent side of vfork
-	
-	// Wait for certapp to finish
-	for(;;)
-		{
-		// Block until our child to exits
-		int waitStatus = waitpid(pid, &ret, 0);
-		if(waitStatus == pid)
-			{
-			// Our child process exited and ret contains its status
-			break; // Done
-			}
-		if(waitStatus != -1)
-			{
-			// Should never happen
-			break;
-			}
-		// Decode errno
-		if(errno == EINTR)
-			{
-			// Signal handler interrupted us - re-issue waitpid call
-			continue;
-			}
-		// Error
-		ret = errno;
-		break;
-		};
-#else
-	//
-	// Windows version to run certapp
-	//
-	ret = _spawnvp(_P_WAIT, CERTAPP, newArgv);
-	
-#endif
-
-	free(progress);
-	free(errors);
-	free(newArgv);
-
-	return ret;
-}
-
-// End of file
-
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#include <tools/certapp-api.h>
+
+#define CERTAPP "certapp"
+typedef const char *ArgPtr;
+
+#ifdef __LINUX__
+#include <unistd.h>
+#include <sys/wait.h>
+#else
+#include <process.h>
+#endif
+
+#ifndef BULLSEYE_OFF
+#ifdef _BullseyeCoverage
+#define BULLSEYE_OFF "BullseyeCoverage save off";
+#define BULLSEYE_RESTORE "BullseyeCoverage restore";
+#else
+#define BULLSEYE_OFF 
+#define BULLSEYE_RESTORE 
+#endif
+#endif
+
+static const char * const OPT_PROGRESS = "--progress=";
+static const char * const OPT_ERRORS = "--errors=";
+
+int RunCertApp(const char *aProgress, const char *aErrors,
+			   int argc, char **argv)
+{
+	int ret = -1;
+BULLSEYE_OFF
+	if(argc<0) abort(); // Bad argument
+BULLSEYE_RESTORE
+
+	int newArgc = argc+4;
+	const char **newArgv = (const char **)malloc(sizeof(ArgPtr)*newArgc);
+
+	const char *progFile = (aProgress) ? (aProgress) : ("-");
+	const char *errorsFile = (aErrors) ? (aErrors) : ("-");
+
+	char *progress=(char *)malloc(strlen(OPT_PROGRESS)+strlen(progFile)+1);
+	strcpy(progress, OPT_PROGRESS);
+	strcat(progress, progFile);
+
+	char *errors=(char *)malloc(strlen(OPT_ERRORS)+strlen(errorsFile)+1);
+	strcpy(errors, OPT_ERRORS);
+	strcat(errors, errorsFile);
+	
+	newArgv[0] = CERTAPP;
+	newArgv[1] = progress;
+	newArgv[2] = errors;
+	int i=0;
+	for(i=0; i<argc; ++i)
+		{
+		newArgv[i+3] = argv[i];
+		}
+	newArgv[newArgc-1] = 0; // Terminate newArgv array
+
+#ifdef __LINUX__
+	//
+	// Linux version to run certapp
+	//
+	pid_t pid = vfork();
+	if(pid == -1)
+		{
+		// vfork call failed
+		printf("Failed to run %s\n", CERTAPP);
+		return errno;
+		}
+	if(pid == 0)
+		{
+		// Child side of vfork
+		// Exec certapp
+		
+		execvp(CERTAPP, (char * const *)newArgv);
+		// Only get here if the exec call failed...
+		switch(errno)
+			{
+			case ENOENT:
+				fprintf(stderr, "*** Could not find certapp executable to launch!\n");
+				break;
+
+			default:
+				fprintf(stderr, "*** Failed to launch certapp, execvp called failed with error code%d !\n", errno);
+				break;
+			}
+		exit(errno); 
+		}
+
+	// Parent side of vfork
+	
+	// Wait for certapp to finish
+	for(;;)
+		{
+		// Block until our child to exits
+		int waitStatus = waitpid(pid, &ret, 0);
+		if(waitStatus == pid)
+			{
+			// Our child process exited and ret contains its status
+			break; // Done
+			}
+		if(waitStatus != -1)
+			{
+			// Should never happen
+			break;
+			}
+		// Decode errno
+		if(errno == EINTR)
+			{
+			// Signal handler interrupted us - re-issue waitpid call
+			continue;
+			}
+		// Error
+		ret = errno;
+		break;
+		};
+#else
+	//
+	// Windows version to run certapp
+	//
+	ret = _spawnvp(_P_WAIT, CERTAPP, newArgv);
+	
+#endif
+
+	free(progress);
+	free(errors);
+	free(newArgv);
+
+	return ret;
+}
+
+// End of file
+