forked from soutade/libgourou
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
906b8a3733 | ||
|
|
c32230f27d | ||
|
|
06297aa6f0 | ||
|
|
2d4a5c992c | ||
|
|
1abb470819 | ||
|
|
324c566756 | ||
|
|
334aa4dae5 | ||
|
|
2265b1d710 | ||
|
|
eed5be06c0 | ||
|
|
d7bd98e719 |
@@ -86,6 +86,8 @@ other variables are DESTDIR and PREFIX to handle destination install directory
|
||||
Utils
|
||||
-----
|
||||
|
||||
!!Warning!! : When activating a new device (with _adept\_activate_), Adobe ID accounts are deprecated. You need to sign in with a (dts) ByteBooks account.
|
||||
|
||||
First, add libgourou.so to your LD_LIBRARY_PATH
|
||||
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
|
||||
|
||||
+2
-2
@@ -34,10 +34,10 @@
|
||||
#endif
|
||||
|
||||
#ifndef ACS_SERVER
|
||||
#define ACS_SERVER "http://adeactivate.adobe.com/adept"
|
||||
#define ACS_SERVER "https://adeactivate.adobe.com/adept"
|
||||
#endif
|
||||
|
||||
#define LIBGOUROU_VERSION "0.8.8"
|
||||
#define LIBGOUROU_VERSION "0.8.10"
|
||||
|
||||
namespace gourou
|
||||
{
|
||||
|
||||
+10
-3
@@ -1513,7 +1513,8 @@ namespace gourou
|
||||
}
|
||||
}
|
||||
|
||||
/* Delete objects that reference EBX objects, except in trailer */
|
||||
/* Delete objects that reference EBX objects,
|
||||
except in trailer and objects that references Info */
|
||||
for(it = objects.begin(); it != objects.end(); it++)
|
||||
{
|
||||
uPDFParser::Object* object = *it;
|
||||
@@ -1522,12 +1523,18 @@ namespace gourou
|
||||
{
|
||||
uPDFParser::Reference* encrypt = (uPDFParser::Reference*)(*object)["Encrypt"];
|
||||
|
||||
if (object->hasKey("Info"))
|
||||
{
|
||||
object->deleteKey("Encrypt");
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Delete EBX objects */
|
||||
for(ebxIt = ebxObjects.begin(); ebxIt != ebxObjects.end(); ebxIt++)
|
||||
{
|
||||
if (encrypt->value() == (*ebxIt)->objectId())
|
||||
{
|
||||
GOUROU_LOG(ERROR, "Delete stream id " << object->objectId());
|
||||
GOUROU_LOG(DEBUG, "Delete stream id " << object->objectId());
|
||||
|
||||
parser.removeObject(object);
|
||||
break;
|
||||
@@ -1540,7 +1547,7 @@ namespace gourou
|
||||
for(it = ebxObjects.begin(); it != ebxObjects.end(); it++)
|
||||
parser.removeObject(*it);
|
||||
|
||||
uPDFParser::Object& trailer = parser.getTrailer();
|
||||
uPDFParser::Object& trailer = parser.getTrailer();
|
||||
trailer.deleteKey("Encrypt");
|
||||
|
||||
parser.write(filenameOut);
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ TARGETS=$(TARGET_BINARIES) launcher
|
||||
|
||||
MAN_PAGES=acsmdownloader adept_activate adept_remove adept_loan_mgt
|
||||
|
||||
CXXFLAGS=-Wall -fPIC -I$(ROOT)/include -fdata-sections -ffunction-sections
|
||||
CXXFLAGS=-Wall -fPIC -I$(ROOT)/include -fmacro-prefix-map=$(ROOT)/= -fdata-sections -ffunction-sections
|
||||
|
||||
STATIC_DEP=
|
||||
# LDFLAGS += -Wl,--gc-sections
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
|
||||
#define _XOPEN_SOURCE 700
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
@@ -355,7 +354,7 @@ static void usage(const char* cmd)
|
||||
std::cout << " " << "-l|--list" << "\t\t" << "List all loaned books" << std::endl;
|
||||
std::cout << " " << "-r|--return" << "\t\t" << "Return a loaned book" << std::endl;
|
||||
std::cout << " " << "-d|--delete" << "\t\t" << "Delete a loan entry without returning it" << std::endl;
|
||||
std::cout << " " << "-N|--no-notify" << "\t\t" << "Don't notify server, even if requested" << std::endl;
|
||||
std::cout << " " << "-N|--no-notify" << "\t" << "Don't notify server, even if requested" << std::endl;
|
||||
std::cout << " " << "-v|--verbose" << "\t\t" << "Increase verbosity, can be set multiple times" << std::endl;
|
||||
std::cout << " " << "-V|--version" << "\t\t" << "Display libgourou version" << std::endl;
|
||||
std::cout << " " << "-h|--help" << "\t\t" << "This help" << std::endl;
|
||||
@@ -396,7 +395,7 @@ int main(int argc, char** argv)
|
||||
{0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
c = getopt_long(argc, argv, "d:lr:D:vVh",
|
||||
c = getopt_long(argc, argv, "d:lr:D:NvVh",
|
||||
long_options, &option_index);
|
||||
if (c == -1)
|
||||
break;
|
||||
|
||||
@@ -88,7 +88,11 @@ public:
|
||||
filename = std::string(inputFile);
|
||||
|
||||
if (outputDir)
|
||||
filename = std::string(outputDir) + "/" + filename;
|
||||
{
|
||||
char* basepath = strdup(inputFile);
|
||||
filename = std::string(outputDir) + "/" + basename(basepath);
|
||||
free(basepath);
|
||||
}
|
||||
}
|
||||
|
||||
if (endsWith(filename, ".epub"))
|
||||
|
||||
@@ -261,6 +261,9 @@ std::string DRMProcessorClientImpl::sendHTTPRequest(const std::string& URL, cons
|
||||
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
|
||||
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, cookiejar);
|
||||
|
||||
if (getenv("SSL_CERT_FILE") != NULL)
|
||||
curl_easy_setopt(curl, CURLOPT_CAINFO, getenv("SSL_CERT_FILE"));
|
||||
|
||||
if (POSTData.size())
|
||||
{
|
||||
curl_easy_setopt(curl, CURLOPT_POST, 1L);
|
||||
|
||||
Reference in New Issue
Block a user