]> git.saurik.com Git - apt.git/blobdiff - methods/https.h
prevent C++ locale number formatting in text APIs (try 2)
[apt.git] / methods / https.h
index 29b20b9215dd9b7de5c9894bb27624a460281fcb..2fa714c7b6a86b143a9b069e91bef0d345dcc68b 100644 (file)
 #ifndef APT_HTTPS_H
 #define APT_HTTPS_H
 
-#include <apt-pkg/acquire-method.h>
-
 #include <curl/curl.h>
 #include <iostream>
 #include <stddef.h>
 #include <string>
+#include <memory>
 
 #include "server.h"
 
@@ -46,7 +45,7 @@ class HttpsServerState : public ServerState
    virtual bool Close() APT_OVERRIDE { return false; }
    virtual bool InitHashes(HashStringList const &ExpectedHashes) APT_OVERRIDE;
    virtual Hashes * GetHashes() APT_OVERRIDE;
-   virtual bool Die(FileFd &/*File*/) APT_OVERRIDE { return false; }
+   virtual bool Die(FileFd * const /*File*/) APT_OVERRIDE { return false; }
    virtual bool Flush(FileFd * const /*File*/) APT_OVERRIDE { return false; }
    virtual bool Go(bool /*ToFile*/, FileFd * const /*File*/) APT_OVERRIDE { return false; }
 
@@ -67,22 +66,21 @@ class HttpsMethod : public ServerMethod
                                 double ultotal, double ulnow);
    void SetupProxy();
    CURL *curl;
-   ServerState *Server;
 
    // Used by ServerMethods unused by https
    virtual void SendReq(FetchItem *) APT_OVERRIDE { exit(42); }
    virtual void RotateDNS() APT_OVERRIDE { exit(42); }
 
    public:
-   FileFd *File;
 
    virtual bool Configuration(std::string Message) APT_OVERRIDE;
-   virtual ServerState * CreateServerState(URI uri) APT_OVERRIDE;
+   virtual std::unique_ptr<ServerState> CreateServerState(URI const &uri) APT_OVERRIDE;
    using pkgAcqMethod::FetchResult;
    using pkgAcqMethod::FetchItem;
 
-   HttpsMethod() : ServerMethod("1.2",Pipeline | SendConfig), File(NULL)
+   HttpsMethod() : ServerMethod("https","1.2",Pipeline | SendConfig)
    {
+      curl_global_init(CURL_GLOBAL_SSL);
       curl = curl_easy_init();
    };