Thanks much!

  I should have noticed that I changed that from %llu to %d, but...
It seems to work fine with just casting virtual_messagestatus to int,
also.

Jesse

---- Original Message ----
From: Roel Rozendaal - IC&S <dbmail-dev@dbmail.org>
To: dbmail-dev@dbmail.org
Subject: Re: [Dbmail-dev] C coding problem
Sent: Mon, 23 Jun 2003 19:50:22 +0200

> Hi jesse,
> 
> the problem probably is that you use '%d' (int) type argument for 
> virtual_messagestatus whereas the virtual_messagestatus is actually 
> declared as an u64_t - you should use '%llu' (check dbmailtypes.h). I 
> admit that using a 64-bit number is totally way out of order for this 
> status attribute but that's another issue ;-)
> 
> regards roel
> 
> 
> Jesse Norell heeft op maandag, 23 jun 2003 om 17:29 (Europe/Amsterdam) 
> het volgende geschreven:
> 
> >
> > Hello,
> >
> >   Ok, I'm working on changing everything to #defines for status
> > value, and as the local college doesn't offer "Stupid C coders 101,"
> > can anyone tell me why this (from db_update_pop(), and don't think
> > correctness of the query, I'm just trying to get snprintf to work):
> >
> >   snprintf (query,DEF_QUERYSIZE,
> >     "UPDATE messages set status=%d WHERE message_idnr=%llu AND 
> > status<%d",
> >     ((struct message *)tmpelement->data)->virtual_messagestatus,
> >     ((struct message *)tmpelement->data)->realmessageid,
> >     STATUS_DELETE
> >     );
> >
> > Creates the following query:
> >
> >   [UPDATE messages set status=1 WHERE message_idnr=398383986507776 AND 
> > status<0]
> >
> >
> > Whild this, in the exact same place, for the exact same
> > user/message# in pop3:
> >
> >   snprintf (query,DEF_QUERYSIZE,
> >     "UPDATE messages set status=%d WHERE message_idnr=%llu AND 
> > status>%d",
> >     STATUS_DELETE,
> >     ((struct message *)tmpelement->data)->realmessageid,
> >     ((struct message *)tmpelement->data)->virtual_messagestatus
> >     );
> >
> > Creates this query:
> >   [UPDATE messages set status=2 WHERE message_idnr=92756 AND status>1]
> >
> >   In the second query, all format args are read correctly - in the
> > first query, virtual_messagestatus is (ie. it is 1), but realmessageid
> > is wrong and the last arg is alway read as a 0, no matter what it is
> > (hard coded number, variable, or #define).  This is in dbmysql.c, on
> > a debian stable box.
> >
> > Thanks,
> > Jesse
> >
> >
> >
> > ---- Original Message ----
> > From: Aaron Stone <dbmail-dev@dbmail.org>
> > To: dbmail-dev@dbmail.org
> > Subject: RE: [Dbmail-dev] message status 4
> > Sent: Wed, 18 Jun 2003 12:27:45 -0700 (PDT)
> >
> > Actually, if you take a look at my lmtp/sorting patch, I split off a
> > couple of these shared functions into smaller files, including
> > create_unique_id(). I hope that Roel can review and comment on that 
> > patch
> > soon (hint hint ;-) because I think it sets the code in the right
> > direction for enhancing the delivery pipeline.
> >
> > You do seem to be correct that the status field isn't being used
> > consistently, and what's worse, there are "magic numbers" scattered
> > throughout the code. These should all be changed to defined values,
> > such as...
> >
> > #define STATUS_ACTIVE  0
> > #define STATUS_INSERT  5
> > #define STATUS_DELETE  2
> > #define STATUS_EXPUNGE  3
> >
> > Aaron
> >
> >
> > On Wed, 18 Jun 2003, Jesse Norell wrote:
> >
> >>
> >> Hello,
> >>
> >>   Back to work, after a few days recovering from a
> >> little trencher incident...
> >>
> >>   As for the idea presented here, using a status id for
> >> "not yet complete" messages - the pop3 server does this
> >> already, using status 5, but imap does not - it instead
> >> uses an empty unique_id (ie. '') to handle the same thing,
> >> from what I've seen.  I don't see any problems (eg. pop3
> >> session disreguards messages with unique_id=''), but it
> >> would be a bit more efficient and less confusing to be
> >> consistent in what a partially inserted message looks like.
> >>
> >>   I plan on making a small util.c with a create_unique_id
> >> function, as it needs to be included in more than just
> >> dbmail-smtp.  Seems overkill to have a dedicated file, and
> >> there's no such "misc. utility functions" file yet, so...
> >>
> >>
> >>
> >> ---- Original Message ----
> >> From: Jesse Norell <dbmail-dev@dbmail.org>
> >> To: dbmail-dev@dbmail.org
> >> Subject: [Dbmail-dev] message status 4
> >> Sent: Tue, 10 Jun 2003 09:07:06 -0600 (MDT)
> >>
> >>>
> >>> Hello,
> >>>
> >>>   In implimenting a unique_id fix, in several issues in the past, and
> >>> in message insertion in general, it seems appropriate to have a
> >>> message status that basically just means 'not yet 
> >>> processed/complete,'
> >>> for which I propose using message status = 4 (which isn't used
> >>> anywhere, right?).  I believe all the existing code should handle
> >>> that without change (ie. if status is 4, it won't show in any
> >>> mailboxes, get cleaned by maintenance, etc.), so there should be no
> >>> migration problems unless someone uses status 4 locally (which a
> >>> trivial db update can fix).
> >>>
> >>>   This would make things like the "message inserted, but not yet
> >>> filtered" race condition Aaron was going to have to address a while
> >>> back easy - just insert all messages with status = 4, do whatever
> >>> processing, and update to 2 when the message is fully processed.
> >>> It would fix a race condition in the current insertion code where a
> >>> message actually changes unique_id and another where the messages
> >>> table entry exists, but messageblk entries do not yet (ie. if
> >>> messages entry was inserted, then a user checks POP3 before
> >>> messageblk is inserted, it'll hang OE waiting for data, till a
> >>> timeout period, then error).
> >>>
> >>>   Sound good / any objections (particularly from IC&S)?
> >>>
> >>> Jesse
> >>>
> >>>
> >>> --
> >>> Jesse Norell
> >>> jesse (at) kci.net
> >>>
> >>>
> >>> _______________________________________________
> >>> Dbmail-dev mailing list
> >>> Dbmail-dev@dbmail.org
> >>> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>
> >> -- End Original Message --
> >>
> >>
> >> --
> >> Jesse Norell
> >> jesse (at) kci.net
> >>
> >>
> >> _______________________________________________
> >> Dbmail-dev mailing list
> >> Dbmail-dev@dbmail.org
> >> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>
> > _______________________________________________
> > Dbmail-dev mailing list
> > Dbmail-dev@dbmail.org
> > http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >
> > -- End Original Message --
> >
> >
> > --
> > Jesse Norell
> > jesse (at) kci.net
> >
> >
> > _______________________________________________
> > Dbmail-dev mailing list
> > Dbmail-dev@dbmail.org
> > http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >
> 
> _________________________
> R.A. Rozendaal
> IC&S
> T: +31 30 2322878
> F: +31 30 2322305
> www.ic-s.nl
> 
> _______________________________________________
> Dbmail-dev mailing list
> Dbmail-dev@dbmail.org
> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> 
-- End Original Message --


--
Jesse Norell
jesse (at) kci.net


Reply via email to