tuxmaild semaphore files

Games, Plugins, Utils, Tools, 3rdParty, etc...
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

tuxmaild semaphore files

Beitrag von kerlimann »

hi,

koennte man den pfad der "tuxmaild.[0-9]" nicht konfigurierbar machen, um flashzugriffe zu vermeiden? oder besser gesagt es so konfigurieren, das lediglich ins /tmp geschreben wird?

das dann bei jedem kaltstart der box alle nachrichten als neu angezeigt werden, ist mir bewusst.
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

Hm, 'ne Option "SaveDB=Y" oder so wäre sicher denkbar.
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

LazyT hat geschrieben:Hm, 'ne Option "SaveDB=Y" oder so wäre sicher denkbar.
ja, so meinte ich. also praktisch diese cp routine zwischen tmp / tuxmail optional.

hmm, ich hab tuxmail lange nicht genutzt, wegen dem spamfilter jetzt mal wieder reingesehen.. manche posts haben kein from/subject, wird auf der box dann als ?/? angezeigt. ist das so gewollt? hab jetzt nicht genau nachgesehen wie die mail aussah, kann ich aber mal machen. war auf alle faelle sowieso spam. manchmal sind die header von diesen mails schon merkwuerdig, da fehlt dann das "To:" ganz, und steht nur ein "X-reply-To:" drin, etc.. wohl irgendwie bulkmail.
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

manche posts haben kein from/subject, wird auf der box dann als ?/? angezeigt. ist das so gewollt?
Jo, irgendwas musste ja rein ;)

Das mit der DB mach ich dann mal bei Gelegenheit, bin erstmal die Woche weg. Fall nächste Woche nix eingecheckt wurde nochmal hier dran erinnern...
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

hier mal so en header (gekuerzt):

From pmailrobot@rocketmail.net Mon Oct 6 18:20:13 2003
Return-Path: <pmailrobot@rocketmail.net>
FROM: "Administrator" <pmailrobot@rocketmail.net>
TO: "Internet Client" <receiver@mailserver.com>
SUBJECT:
Message-Id: <E1A6XuQ-0004MG-00@conure.mail.pas.earthlink.net>
Date: Mon, 06 Oct 2003 09:08:30 -0700
X-RCPT-TO: <myuser@mydomain.de>

//nachtrag: jau, eilt ja nix, thanks.
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

bastelstunde :-)

Beitrag von kerlimann »

hi,

hier mal ne kleine bastelaufgabe, vielleicht macht ja jemand mit, den dieses thema noch interessiert. wetter laedt ja praktisch dazu ein :lol:

also ich hab mich einfach mal selbst dem thema backup ja/nein der database angenommen. folgende aenderungen:

tuxmail.conf:

Code: Alles auswählen

STARTDELAY=30
INTERVALL=15

POP3LOG=N
LOGMODE=S
BACKUP=N

AUDIO=N
VIDEO=4

NAME0=
HOST0=
USER0=
PASS0=
parameter BACKUP ist hinzugekommen.

tuxmaild.h:

Code: Alles auswählen

--- tuxmaild.h.org	2003-10-07 17:06:05.000000000 +0200
+++ tuxmaild.h	2003-10-07 11:38:27.000000000 +0200
@@ -74,7 +74,7 @@
 FILE *fd_pid;
 int pid;
 int startdelay, intervall;
-char pop3log, logmode, audio;
+char pop3log, logmode, backup, audio;
 int video;
 char online = 1;
 int accounts;
tuxmaild.c:

Code: Alles auswählen

--- tuxmaild.c.org	2003-10-07 17:03:38.000000000 +0200
+++ tuxmaild.c	2003-10-07 12:15:53.000000000 +0200
@@ -51,6 +51,7 @@
 			fprintf(fd_conf, "INTERVALL=15\n\n");
 			fprintf(fd_conf, "POP3LOG=Y\n");
 			fprintf(fd_conf, "LOGMODE=S\n\n");
+			fprintf(fd_conf, "BACKUP=N\n\n");
 			fprintf(fd_conf, "AUDIO=Y\n");
 			fprintf(fd_conf, "VIDEO=1\n\n");
 			fprintf(fd_conf, "NAME0=\n");
@@ -66,7 +67,7 @@
 	//clear database
 
 		memset(account_db, 0, sizeof(account_db));
-		startdelay = intervall = pop3log = logmode = audio = video = 0;
+		startdelay = intervall = pop3log = logmode = backup = audio = video = 0;

 	//fill database
 
@@ -80,6 +81,8 @@

 			else if((ptr = strstr(line_buffer, "LOGMODE="))) sscanf(ptr + 8, "%c", &logmode);

+			else if((ptr = strstr(line_buffer, "BACKUP="))) sscanf(ptr + 8, "%c", &backup);
+
 			else if((ptr = strstr(line_buffer, "AUDIO="))) sscanf(ptr + 6, "%c", &audio);

 			else if((ptr = strstr(line_buffer, "VIDEO="))) sscanf(ptr + 6, "%d", &video);
@@ -137,7 +140,7 @@

 	//check for update

-		if(!startdelay || !intervall || !pop3log || !logmode || !audio || !video)
+		if(!startdelay || !intervall || !pop3log || !logmode || !backup || !audio || !video)
 		{
 			printf("TuxMailD <missing Param(s), update Config>\n");

@@ -147,13 +150,15 @@
 			if(!intervall) intervall = 15;
 			if(!pop3log) pop3log = 'Y';
 			if(!logmode) logmode = 'S';
+			if(!backup) backup = 'N';
 			if(!audio) audio = 'Y';
 			if(!video) video = 1;

 			fprintf(fd_conf, "STARTDELAY=%d\n", startdelay);
 			fprintf(fd_conf, "INTERVALL=%d\n\n", intervall);
 			fprintf(fd_conf, "POP3LOG=%c\n", pop3log);
-			fprintf(fd_conf, "LOGMODE=%c\n\n", logmode);
+			fprintf(fd_conf, "LOGMODE=%c\n", logmode);
+			fprintf(fd_conf, "BACKUP=%c\n\n", backup);
 			fprintf(fd_conf, "AUDIO=%c\n", audio);
 			fprintf(fd_conf, "VIDEO=%d\n", video);

@@ -197,6 +202,12 @@
 			logmode = 'S';
 		}

+		if(backup != 'Y' && backup != 'N')
+		{
+			printf("TuxMailD <BACKUP=%c invalid, set to \"N\">\n", backup);
+			backup = 'N';
+		}
+
 		if(audio != 'Y' && audio != 'N')
 		{
 			printf("TuxMailD <AUDIO=%c invalid, set to \"Y\">\n", audio);
@@ -938,7 +949,7 @@
 
 int main(int argc, char **argv)
 {
-	char cvs_revision[] = "$Revision: 1.4 $", versioninfo[12];
+	char cvs_revision[] = "$Revision: 1.5 $", versioninfo[12];
 	int account, mailstatus;
 	pthread_t thread_id;
 	void *thread_result = 0;
@@ -1030,7 +1041,8 @@

 	//restore database

-		system("cp /var/tuxbox/config/tuxmail/tuxmail.[0-9] /tmp 2>/dev/null");
+				if(backup == 'Y') system("cp /var/tuxbox/config/tuxmail/tuxmail.[0-9] /tmp 2>/dev/null");
+				else;

 	//check accounts

@@ -1068,7 +1080,8 @@
 		pthread_cancel(thread_id);
 		pthread_join(thread_id, thread_result);

-		system("cp /tmp/tuxmail.[0-9] /var/tuxbox/config/tuxmail 2>/dev/null");
+		if (backup =='Y') system("cp /tmp/tuxmail.[0-9] /var/tuxbox/config/tuxmail 2>/dev/null");
+		else;

 		remove(PIDFILE);
so, das klappt soweit ganz gut, NUR! ich muss eine leere tuxmail.0, tuxmail.1 (jenachdem wieviele user man halt hat) nach /var/tuxbox/config/tuxmail legen, sonst wird die beim ersten mal neu erstellt, und da stehen dann fuer immer die werte drin, die zum 1tstart verfuegbar waren.

wo die files beim 1tstart erstellt werden, hab ich leider nicht gefunden :oops:

wenn jemand bock hat mitzubasteln, you are welcome :lol:
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

hmm, hat da echt niemand von den anderen usern hier mal bock, daran mitzubasteln?
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

else if((ptr = strstr(line_buffer, "BACKUP="))) sscanf(ptr + 8, "%c", &backup);
Zähl nochmal nach :wink:
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

else if((ptr = strstr(line_buffer, "BACKUP="))) sscanf(ptr + 8, "%c", &backup);
so, jetzt hab ich wieder zeit. alle krank hier, in der family

also, ich hab das einfach so "abgeschaut", bei pop3log und logmode, was genau wird mit der +8 bezweckt? ist ptr ein pointer?
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

Naja, ein

Code: Alles auswählen

else if((ptr = strstr(line_buffer, "BACKUP="))) sscanf(ptr + sizeof("BACKUP="), "%c", &backup); 
wäre sicher verständlicher...
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

LazyT hat geschrieben:Naja, ein

Code: Alles auswählen

else if((ptr = strstr(line_buffer, "BACKUP="))) sscanf(ptr + sizeof("BACKUP="), "%c", &backup); 
wäre sicher verständlicher...
wahrscheinlich lieg ich jetzt wieder falsch.. definiert das die groesse der db? so eine art array?
getestet hatte ich den code ehrlich gesagt nur mit backup=N :D

PS: was mir gerade beim rumspielen noch so auffiel.. wenn man mit MUTE den daemon pausiert, ist OK vielleicht nicht gerade gluecklich. passiert mir schnell, das ich 2mal hintereinander OK druecke, und schwups ist eine mail rot markiert. allerdings finde ich HOME auch nicht prickelnd.. verenke mir dabei immer den daumen. macht das ueberhaupt irgendwie sinn, das rc_red alle mails selektiert? (damit will ich fragen: wer nutzt das, ALLE mails in die tonne zu hauen?).
Zuletzt geändert von kerlimann am Samstag 11. Oktober 2003, 16:25, insgesamt 1-mal geändert.
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

porca miseria :lol:

@LazyT: ich gebs erstmal auf, iss noch ein bisserl zu hoch fuer mich. werde mir dann das diff von dem alten/neuen tuxmaild.c mal zu gemuete fuehren.

wie auch immer, versuch macht kluch - oder so :oops:
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

Hm, Du machen aus 8 eine 7 und probieren dann nochmal :wink:
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

LazyT hat geschrieben:Hm, Du machen aus 8 eine 7 und probieren dann nochmal :wink:
iss nich konkret, weil ich nix wissen warum das so machen? iss krass!
muss kerli erst rufen DoenerMan, oder LazyTeutsch mir auch helfen moegen wollen allein bei sich selber?
hat kerli gelernt fahrad hier, kann nix so schwer sein mit C, iss wie selbe.
LazyT
Senior Member
Beiträge: 1260
Registriert: Samstag 6. Oktober 2001, 00:00

Beitrag von LazyT »

Na iss doch janz simpel:

strstr sucht nach der Zeichenfolge BACKUP= und liefert einen Zeiger auf den Start zurück. Nun wollen wir aber den Wert der nach dem = kommt, also erhöhen wir den Zeiger noch um die Länge des Strings, in dem Fall also um 7. Nun können wir den Wert mit sscanf in die Variable backup einlesen...

Geht sicher auch einfacher, aber ist mir damals wohl net eingefallen :roll:
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

achso! deswegen sind "audio" sowie "video" = 6. (5 chars+"=" sind 6 chars).

OK, da bin ich nicht drauf gekommen, danke.

hmm.. wenn ich das anpasse, wuerden aber dennoch die tuxmail.[0-9] angelegt werden, falls "from scratch" gestartet wird, oder? das ist eigentlich mein mainproblem, warum das so ist.

hmm.. oder doch nicht.. muss ich nochmal schauen. bin leider derweil gerade in dem tuxcal source, das verwirrt. (der source isr schlimmer als deiner) :D