Skip to Content.
Sympa Menu

freetds - RE: [freetds] patch 20031120

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "ZIGLIO Frediano" <Frediano.Ziglio AT vodafone.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: RE: [freetds] patch 20031120
  • Date: Fri, 21 Nov 2003 11:24:16 +0100

> >
> > perhaps this can be a better solution... add a field to TDSICONV to
> > store old errors and caller should say if this is the first
> > and/or the last chunk (in no-chunk conversions it's always
> > the first and the last chunk).
>
> This might turn out to be the best answer. In effect,
> TDSICONV would hold an "error mask" of messages to suppress.
> tds_iconv() would add to the mask as messages accumulated.
> The problem would be to remember to clear the mask when done.
>
> tds_iconv.h:
> struct _suppress {
> unsigned int ei2big:1;
> unsigned int eilseq:1;
> unsigned int einval:1;
> } suppress;
> /* ... */
>
> /* caller: */
> memset(&iconv_info->suppress, 0, sizeof(iconv_info->suppress));
> iconv_info->suppress.eilseq = *wire_size > 0;
> irreverisible = tds_iconv(...);
>
> > So you can also reset iconv state (iconv(cd, NULL,
> > NULL, NULL, NULL) )... Does this sound reasonable ?
>
> I don't know if this is important. It might be just as easy to call
> iconv(3) instead.
>

I'd prefer a tds_iconv_reset...
I don't understand "iconv_info->suppress.eilseq = *wire_size > 0;"
reason...
Perhaps the best solution should be a tds_iconv_done called after every
conversion. So to reset state for next conversion, issue
EINVAL/EILSEQ/whatever warnings/errors and prepare everything else for
conversion.
So tds_iconv is able to detect first/not first conversion.
If I have time I'll try to add a tds_iconv_done and report a patch
today...

freddy77




Archive powered by MHonArc 2.6.24.

Top of Page