LINUX.ORG.RU

ошибка при make пакета Purge


0

1

Здравствуйте. Возникла необходимость вынимать из кеша Сквида кешированные файлы. И возникла проблема при сборке пакета Purge, которые рекомендован сообществом Squid-cache, как раз для этих целей. В общем, make выдает следующий текст:

make g++ -ffor-scope -DHAS_BOOL -DHAS_PSIGNAL -DHAS_PSIGNAL -DLIBCVERSION=6 -pipe -DLINUX -DMAJOR=2 -DMINOR=6 -DSOCKLEN=size_t -march=pentium -O2 -c copyout.cc -o copyout.o copyout.cc: In function ‘bool copy_out(size_t, size_t, unsigned int, const char*, const char*, const char*, bool)’: copyout.cc:135: error: invalid conversion from ‘const char*’ to ‘char*’ make: *** [copyout.o] Ошибка 1

К сожалению, в программировании не силён и понять в чём собственно загвоздка конвертирования одного типа переменных в другой, сам не смог. Гугление ни к чему, хоть более или менее ясному, не привело.

Прошу вашего совета, что делать?

Или подскажите пожалуйста какую-нибудь другую утилиту или метод для извлечения и сохранения объектов из кэша сквида.

Спасибо.


Покажи со 130й по 140вую строки copyout.cc.

KblCb ★★★★★ ()
Ответ на: комментарий от KblCb

bool
copy_out( size_t filesize, size_t metasize, unsigned debug,
    const char* fn, const char* url, const char* copydir,
    bool copyHdr )
// purpose: copy content from squid disk file into separate file
// paramtr: metasize (IN): size of metadata to skip
// fn (IN): current filename of squid disk file
// url (IN): currently looked at URL to generate separate file
// copydir (IN): base directory where to generate the file
// copyHdr (IN): copy HTTP header, too, if set to true.
// returns: true, if successful, false otherwise.
{
static const char* index = «index.html»;

// find hostname part after the scheme (okok, not counting port, etc.)
char* ptr = strstr( url, "://" );
if ( ptr == 0 || strlen(ptr) < 4 ) return false;

// create filename to store contents into
char *filename = new char[ strlen(url) + strlen(copydir) + strlen(index) ];
assert( filename != 0 );
strcpy( filename, copydir );
strcat( filename, «/» );
char* here = filename + strlen(filename);
strcat( filename, ptr+3 );

Malef ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.