Re: [HACKERS] inet data type regression test fails
| От | Tatsuo Ishii |
|---|---|
| Тема | Re: [HACKERS] inet data type regression test fails |
| Дата | |
| Msg-id | 199905110054.JAA00849@ext16.sra.co.jp обсуждение исходный текст |
| Ответ на | Re: [HACKERS] inet data type regression test fails (Bruce Momjian <maillist@candle.pha.pa.us>) |
| Ответы |
Re: [HACKERS] inet data type regression test fails
Re: [HACKERS] inet data type regression test fails |
| Список | pgsql-hackers |
> > > > int addr = htonl(ntohl(ip_v4addr(ip)) | (0xffffffff >> ip_bits(ip)));
> >
> > There needs to be a UL on the end of that constant. Otherwise it depends
> > on whether or not the compiler chooses to make it signed or unsigned. Not
> > only that, but shifting by >=32 is undefined... Intel chipsets will go mod
> > 32 and change 32 to 0.
> >
>
> Anyone want to supply a patch?
This has been already fixed. Now it looks like:
unsigned long mask = 0xffffffff;
if (ip_bits(ip) < 32) mask >>= ip_bits(ip); addr = htonl(ntohl(ip_v4addr(ip)) | mask);
---
Tatsuo Ishii
В списке pgsql-hackers по дате отправления: