Moderatore: Staff

Dani ha scritto:Aggiungendo direttamente la funzione tra i sorgenti la compilazione va a buon fine. Allego la patch

char *
strnstr(s, find, slen)
const char *s;
const char *find;
size_t slen;
{
char c, sc;
size_t len;
if ((c = *find++) != '\0') {
len = strlen(find);
do {
do {
if (slen-- < 1 || (sc = *s++) == '\0')
return (NULL);
} while (sc != c);
if (len > slen)
return (NULL);
} while (strncmp(s, find, len) != 0);
s--;
}
return ((char *)s);
}
conraid ha scritto:Alla fine sono la stessa cosa?


Dani ha scritto:conraid ha scritto:Alla fine sono la stessa cosa?
Usando la macro __DECONST effettui tre cast, in questo caso la funzione strnstr ritornernà ((char *)(uintptr_t)(const void *)(s)). Presumo che questo sia necessario in quanto s è const char* mentre la funzione è di tipo char*, ma effettivamente anche usando un semplice cast char* la compilazione termina con successo

dani[dnsscan-1.0]$ egrep "str.str" *.{c,h}
dnsreader.c: if (strnstr((char *)body, search_string, bodylen) == 0) {
dani[dnsscan-1.0]$

Dani ha scritto:Non ti conviene sostituire strnstr con strncasecmp, non sono la stessa cosa e se il programmatore ha usato una piuttosto che l'altra un motivo ci sarà.
Comunque non c'è nessuna strnstr nei sorgenti, l'autore del programma si deve essere sbagliato:
- Codice: Seleziona tutto
dani[dnsscan-1.0]$ egrep "str.str" *.{c,h}
dnsreader.c: if (strnstr((char *)body, search_string, bodylen) == 0) {
dani[dnsscan-1.0]$



conraid ha scritto:Ci sono anche qui su slacky questi pacchetti Mario, quel che dici si trova in libdnet che come sorgenti è qui http://libdnet.sourceforge.net/
Per current ci sono su slackers.it

Mario Vanoni ha scritto:conraid ha scritto:Ci sono anche qui su slacky questi pacchetti Mario, quel che dici si trova in libdnet che come sorgenti è qui http://libdnet.sourceforge.net/
Per current ci sono su slackers.it
Grazie Corrado,
installato libevent e sscanssh
make stesso errore tuo, strnstr che manca
PS Non amo molto i *.tgz
>> preferisco ./configure --help | less
>> per vedere le alternative, se esistono, poi
>> e.g. --prefix=/usr --disable-nls CFLAGS='-O2 -s -static''
>> gusti diversi ...


Visitano il forum: Nessuno e 1 ospite