]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/error.cc
apt-pkg/acquire-item.cc: fix breaking on unreachable networks
[apt.git] / apt-pkg / contrib / error.cc
index bbd081d50650b5e7fc3e41aa93d103557c3afe45..db8c53c36042342bf515405d9e0a668906b064ba 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: error.cc,v 1.5 1998/09/18 02:42:40 jgg Exp $
+// $Id: error.cc,v 1.11 2002/03/26 07:38:58 jgg Exp $
 /* ######################################################################
    
    Global Erorr Class - Global error mechanism
    ##################################################################### */
                                                                        /*}}}*/
 // Include Files                                                       /*{{{*/
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/error.h"
-#endif 
-
 #include <apt-pkg/error.h>
 
+#include <iostream>
 #include <errno.h>
 #include <stdio.h>
-#include <string.h>
 #include <stdarg.h>
 #include <unistd.h>
 
+#include <string>
+#include <cstring>
+
+#include "config.h"
                                                                        /*}}}*/
 
+using namespace std;
+
 // Global Error Object                                                 /*{{{*/
 /* If the implementation supports posix threads then the accessor function
    is compiled to be thread safe otherwise a non-safe version is used. A
    Per-Thread error object is maintained in much the same manner as libc
    manages errno */
-#if _POSIX_THREADS == 1
+#if defined(_POSIX_THREADS) && defined(HAVE_PTHREAD)
  #include <pthread.h>
 
  static pthread_key_t ErrorKey;
@@ -80,8 +82,9 @@ bool GlobalError::Errno(const char *Function,const char *Description,...)
 
    // sprintf the description
    char S[400];
-   vsprintf(S,Description,args);
-   sprintf(S + strlen(S)," - %s (%i %s)",Function,errno,strerror(errno));
+   vsnprintf(S,sizeof(S),Description,args);
+   snprintf(S + strlen(S),sizeof(S) - strlen(S),
+           " - %s (%i %s)",Function,errno,strerror(errno));
 
    // Put it on the list
    Item *Itm = new Item;
@@ -108,8 +111,8 @@ bool GlobalError::WarningE(const char *Function,const char *Description,...)
 
    // sprintf the description
    char S[400];
-   vsprintf(S,Description,args);
-   sprintf(S + strlen(S)," - %s (%i %s)",Function,errno,strerror(errno));
+   vsnprintf(S,sizeof(S),Description,args);
+   snprintf(S + strlen(S),sizeof(S) - strlen(S)," - %s (%i %s)",Function,errno,strerror(errno));
 
    // Put it on the list
    Item *Itm = new Item;
@@ -130,7 +133,7 @@ bool GlobalError::Error(const char *Description,...)
 
    // sprintf the description
    char S[400];
-   vsprintf(S,Description,args);
+   vsnprintf(S,sizeof(S),Description,args);
 
    // Put it on the list
    Item *Itm = new Item;
@@ -153,7 +156,7 @@ bool GlobalError::Warning(const char *Description,...)
 
    // sprintf the description
    char S[400];
-   vsprintf(S,Description,args);
+   vsnprintf(S,sizeof(S),Description,args);
 
    // Put it on the list
    Item *Itm = new Item;