Article View: es.comp.os.linux.programacion
Article #16026Problema con regcomp y regexec...
From: Santiago Romero
Date: Sun, 14 May 2000 00:00
Date: Sun, 14 May 2000 00:00
84 lines
3021 bytes
3021 bytes
Enas...
no consigo tirar para adelante los filtros de mi checkmail,
el caso es que no me tiran las regexp con regcomp y regexec.
Si alguien quiere echar una mano, le puedo pasar el codigo
(son 17Kb), aunque lo principal es esto:
fichero de filtros:
deny ^From:.*Majordomo@valux.org.*
deny ^From:.*@spammerserver.com.*
deny ^From:.*spammer_changing_servers@.*
lectura de ese fichero:
while(!done)
{
(...aqui mas cosas...)
if( (where=strstr(line, "deny")) == line )
{
if(GetFirstWord( where+strlen("deny"), 255, word ))
{
// add the filter
regcomp( &filters->rules[filters->num_rules].rule, word, 0 );
strcpy( filters->rules[filters->num_rules].rule_text, word );
printf("Regla %d; %s\n", filters->num_rules,
filters->rules[filters->num_rules].rule_text);
filters->num_rules++;
}
}
}
variables donde estoy leyendo:
struct Rule
{
regex_t rule;
char rule_text[128];
};
struct Filters
{
int num_rules;
struct Rule rules[99];
};
codigo de comprobacion de si debo borrar o no:
(ni siquiera borro, solo lo digo por pantalla:).
/*----> Now comes the filter stuff <----------------------------*/
for( i=0; i<servidor->num_msgs; i++ )
{
if( servidor->msgs[i]->nbytes > maxsize && maxsize != -1 )
{
DeleteMessage(servidor, i, mode );
if( mode != SILENT )
printf(" Message %3d deleted: Size > MAXSIZE .\n", i+1);
}
else
{
for( j=0; j<filters->num_rules; j++ )
{
if( regexec( &filters->rules[j].rule,
servidor->msgs[i]->header,
0, NULL, 0 ) == 0 )
printf("Coincide!\n");
}
}
}
y na de na :(
--
ULTIMAS NOTICIAS: Programador encontrado muerto en la ducha con
una botella de champ� donde pon�a: "Lavar, aclarar, repetir".
_-----------------------------------------------------_
| NoP / Compiler -- nop @ todolinux.org |
|-------------------------------------------------------|
| POWERED BY - Linux RedHat 6.0 - Reg. User #74.821 |
| http://www.ctv.es/USERS/sromero |
~-----------------------------------------------------~
Technical Details
Message-ID:
<slrn8hstkh.sq.nop@compiler.linux.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII X-Google-Thread: f86c8,2dfb3ec83ff2a1bc,start X-Google-Attributes: gidf86c8,public From: nop@todolinux.org (Santiago Romero) Subject: Problema con regcomp y regexec... Date: 2000/05/14 Message-ID: <slrn8hstkh.sq.nop@compiler.linux.es> X-Deja-AN: 623197977 Content-Transfer-Encoding: 8bit Organization: Telefonica Transmision de Datos Content-Type: text/plain; charset=iso-8859-1 User-Agent: slrn/0.9.6.2 (Linux) Mime-Version: 1.0 Reply-To: nop@todolinux.org Newsgroups: es.comp.os.linux.programacion