tool_errors.h
1 /* 2 * Copyright (c) 2013-2014 Apple Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24 25 // 26 // These functions should be deprectaed! 27 // Try to find a better way instead of using them. 28 // 29 30 #ifndef _TOOL_ERRORS_H_ 31 #define _TOOL_ERRORS_H_ 32 33 #include <stdarg.h> 34 #include <stdio.h> 35 #include "SecurityTool/sharedTool/SecurityTool.h" 36 37 static const char * 38 sec_errstr(int err) 39 { 40 const char *errString; 41 static char buffer[12]; 42 43 sprintf(buffer, "%d", err); 44 errString = buffer; 45 #if 0 46 if (IS_SEC_ERROR(err)) 47 errString = SECErrorString(err); 48 else 49 errString = cssmErrorString(err); 50 #endif 51 return errString; 52 } 53 54 static void 55 sec_error(const char *msg, ...) __attribute__((format(printf, 1, 2))); 56 57 static void 58 sec_error(const char *msg, ...) 59 { 60 va_list args; 61 62 fprintf(stderr, "%s: ", getprogname()); 63 64 va_start(args, msg); 65 vfprintf(stderr, msg, args); 66 va_end(args); 67 68 fprintf(stderr, "\n"); 69 } 70 71 static inline void 72 sec_perror(const char *msg, int err) 73 { 74 sec_error("%s: %s", msg, sec_errstr(err)); 75 } 76 77 78 79 #endif