
Hallo, On Fri, 26 Jul 2002, Jörg Roßdeutscher wrote:
Frank Rasche:
Ich habe mir mal die Sourcen von 1.0.8 angeschaut. Die Funktion, die die Message-ID generiert ist recht simpel und fragt lediglich gethostname() ab. (Wen es interessiert: Message-ID: int time (NULL).getpid().int counter.camel@hostname)
Meine C-Kenntnisse beschränken sich auf "Hello World" unter Verletzung sämtlicher Standards. Wärest du oder jemand anders vielleicht in der Lage, einen Patch zu erstellen mit der Zielsetzung, keine ID zu generieren?
Dazu braeuchte ich noch ein wenig, denn ich muesste praktisch mein Gnome aktualisieren[1], aber dafuer, dass das 'camel' den FQDN verwendet (also das was auch 'hostname -f' ausspuckt), dafuer hab ich "mal eben" eine patch gestrickt (unter Ignorierung fast aller Abhaengigkeiten von Evolution, aber die eine Datei liess sich kompilieren *eg* ;) Das wuerde dir zumindest mal die CVS-Version ersparen und, sofern sich die Funktion ('header_msgid_generate' im u.g. .c-File) seit deiner Version nicht geaendert hat, muesste es also passen. Die relevante Funktion wird leider an diversen Stellen verwendet, welche sich dann wohl nicht ohne ein aktuelles bonobo, scrollkeeper und weiss der Geier noch was kompilieren liessen, was ich bisher alles noch nicht habe ;( Leider konnte ich also den patch nur "extern" testen, in dem ich ein test-binary erstellt habe[3]. Aber immerhin: nachdem ich die Tests auf zu aktuellen gnome-Kram im configure abgestellt habe (ich will das ja nicht linken ;) lief das configure durch: [..]/evolution-1.0.8 $ cat ../configure_flags.dh ./configure --with-db3-includes=/usr/include/db3 --prefix=/opt/gnome2 --enable-dot-locking --enable-file-locking=yes [..]/evolution-1.0.8 $ eval `cat configure_flags.dh` [..laeuft "sauber" durch...] So[2] kam ich also zu nem Makefile in ./camel, und dann laesst sich das Objectfile auch halbwegs sauber kompilieren: [..]/evolution-1.0.8 $ cd camel [..]/evolution-1.0.8/camel $ make CFLAGS="-O2 -Wall" camel-mime-utils.o gcc -DHAVE_CONFIG_H [..bigsnip...] -O2 -Wall -c camel-mime-utils.c Mit '-W' bekommt man einige "warning"s, allerdings in anderen Funktionen...
Mein Evolution ist selbstgedreht, könnte ich also anwenden.
*hehe* Jetzt bist du am Zug :) -dnh [1] Aber ich kompilier eh an nem Gnome2 rum, aber soweit war/bin ich noch nicht ;) [2] *snigger* hab "mal eben" wieder ein wenig Shell-O-Magic in meine Mail eingeflochten *lol* [3] den Quellcode fuer's test-binary ggfs. per PM, der ist praktisch nur ein paar #includes, die Funktion 1:1 und ein main(), das nur ein 'printf("%s\n", header_generate_msgid());' kapselt. So, und jetzt muss ich den Patch noch kommentieren, da ich "clever" war, und das sogar "konfigurierbar" gemacht habe, was das Camel ja bisher nicht hinbekommt (*veg*). Also: wie man sehen kann, verwendet der patch die Umgebungsvariable 'EVOLUTION_MSGID_FQDN'. Wenn deren Inhalt "no" ist, dann (sollte) sich Evolution wie bisher verhalten. Falls nicht (und ich halte das fuer einen sinnvolleren Default), so wird via 'gethostbyname(3)' der FQDN ausgelesen, mittels des hostnamen, der zuvor schon via 'gethostname(2)' ermittelt wurde ('hrv = gethostname(...)') und in 'host' abgelegt wurde. d.h. fuer die Anwendung (demonstriert anhand meines test-binaries): ==== $ unset EVOLUTION_MSGID_FQDN; ./test_gen_msgid 1027746246.21368.0.camel@slarty.dhaller.de $ EVOLUTION_MSGID_FQDN="yes" ./test_gen_msgid 1027746262.21369.0.camel@slarty.dhaller.de $ EVOLUTION_MSGID_FQDN="noon" ./test_gen_msgid 1027746274.21370.0.camel@slarty.dhaller.de $ EVOLUTION_MSGID_FQDN="no" ./test_gen_msgid 1027746283.21371.0.camel@slarty ==== mit einem 'export EVOLUTION_MSGID_FQDN="no"' kann also ggfs. das bisherige Verhalten eingestellt werden. Der Patch sollte sich im Evolution-source-Verzeichnis (also z.B. 'evolution-1.0.8'), da wo man './configure' aufruft, mittels einem 'patch -p1 < $PFAD/evolution-1.0.8.use_fqdn.dh.patch' einspielen lassen. Bin mal gespannt, ob's klappt ;) ==== evolution-1.0.8.use_fqdn.dh.patch ==== --- evolution-1.0.8.orig/camel/camel-mime-utils.c Thu Jun 6 22:36:29 2002 +++ evolution-1.0.8/camel/camel-mime-utils.c Sat Jul 27 06:24:50 2002 @@ -33,6 +33,7 @@ #include <stdlib.h> #include <string.h> #include <unistd.h> +#include <netdb.h> #ifndef MAXHOSTNAMELEN #define MAXHOSTNAMELEN 1024 @@ -3631,8 +3632,19 @@ static int count = 0; int hrv; char *ret; + char * use_fqdn; hrv = gethostname (host, sizeof (host)); + + if( hrv == 0 && ! ( (use_fqdn = getenv("EVOLUTION_MSGID_FQDN")) != NULL + && strncmp(use_fqdn, "no\0", 3) == 0) ) { + struct hostent * h; + if( (h = gethostbyname(host)) != NULL ) { + strncpy(host, h->h_name, MAXHOSTNAMELEN); + } else { + herror("camel-mime-utils.c: "); + } + } COUNT_LOCK (); ret = g_strdup_printf ("%d.%d.%d.camel@%s", (gint) time (NULL), getpid (), count++, ==== --
I was convinced that Douglas Adams (being the avid MacUser that he was) had always had MS in mind when he talked about the Sirius Cybernetics Corporation. Or at least the marketing division of said company. are you saying that there are other parts to that company? -- in asr