So mädels...

In der mon_mysql.c müsst ihr hinter der mon_mysql_store_dme funktion folgende einbauen(hab leider keine Zeilen zahlen, da ich zu viel schon in den Dateien rumgewurschtelt habe):

int mon_mysql_update_dme(unsigned int ric, unsigned int subadresse, char * funktion, char* bezeichnung, char* text)
{
char sql_command[1000] ;
char intbuffer[10] ;
char escape_string[1000] ;
char kurz[10];
char short2[10];

//Die ersten 3 zeichen des Textes zwischenspeichern
unsigned int i = 0;
for(i = 0; i < 3; i++)
kurz[i] = text[i];

memset(sql_command,0,1000) ;
strcat(sql_command,"update ") ;
strcat(sql_command,sql_poc_zvei_table) ;
strcat(sql_command," SET text = ");


// Text
strcat(sql_command,"\"") ;
mysql_real_escape_string(&mon_mysql, escape_string ,text,strlen(text)) ;
strcat(sql_command,escape_string) ;
strcat(sql_command,"\"") ;

/* Suchen des alten Eintrags */
strcat(sql_command," WHERE zeit BETWEEN (now()-interval 30 second) and now()");
strcat(sql_command," AND adresse like \'\%");

/* Adresse /RIC) */
sprintf(intbuffer, "%d",ric) ;
strcat(sql_command,intbuffer) ;

strcat(sql_command,"\%\' AND text like \'\%");
/*Textvergleich */
sprintf(short2, "%s", kurz);
strcat(sql_command,short2);
strcat(sql_command,"\%\'");

if (mysql_query(&mon_mysql, sql_command) != 0)
{
fprintf(stderr, "Failed to execute query: Error: %s\n",
mysql_error(&mon_mysql));

exit(0) ;
return 0 ;
}

return 1 ;
}

Als nächstes müsst ihr in der pocsag.c im unteren Bereich der pocsag_printmassage funktion folgende fettgedruckte Zeile hinzufügen...

if ((checklast = check_last())) {

if (checklast == 2 && common.line != NULL) {
/* reAusgabe: Suchen der zu ersetzenden Zeile */
mon_mysql_update_dme((unsigned int) sql_ric, (unsigned int) sql_sub, sql_funktion, sql_bezeichnung, sql_text) ;

mem = common.line;
len = (MAXROW < len) ? MAXROW : len;

if (mem->next == NULL) {
/* sollte eigentlich nie vorkommen... */
verbprintf(6, "Pocsag-Text nicht wiedergefunden: %s", out->string);
return;
}
while (strncmp(out->string, mem->next->string, len) /* Text */
|| strstr(mem->string, alias) == NULL) { /* Header */
mem = mem->next;
if (mem->next == NULL) {
/* sollte eigentlich nie vorkommen... */
verbprintf(6, "Pocsag-Text nicht wiedergefunden: %s", out->string);
return;
}
shift++;
}
while (sublines--) {
Line *del;
del = mem->next;
mem->next = mem->next->next;
len_list--;
free(del);
}
update_file(outprint, LOG);
}
else {
mon_mysql_store_dme((unsigned int) sql_ric, (unsigned int) sql_sub, sql_funktion, sql_bezeichnung, sql_text) ;
/* 1: Text anders oder nach Timeout -> Ausgabe */
if (txtmode == 1)
strncat(outprint, out->string, MAXROW - strlen(outprint));

if (!al->color && get_ric(s->l2.pocsag.color, set, rx->func, &ric) > 0){
al->color = ric->val;
};
/* Header */
update_view(outprint, al->color, FIRSTLINE, LOG);
}


Danach einfach neu kompilieren und gut... :-)

Falls einer Denkfehler in meinen Funktionen findet einfach melden...
Ich sage ja.. c basics :-) und einfach mal nebenbei mitten in der nacht gemacht