Commit Graph

10 Commits

Author SHA1 Message Date
Guy Harris
e57fe28eb2 ZEP: use the exissting NTP time formatting code.
The strftime() format for that case is slightly different, so add a new
p_ntp_time_fmt() routine that takes a strftime() format, and use that in
ZEP.

That way, we can benefit from any handling of times not fitting in a
time_t being done by the NTP time printing code.
2024-03-28 22:49:42 -07:00
Denis Ovsienko
4806d50985 Define FMAXINT only once and use it properly.
[skip ci]
2020-07-28 16:02:07 +01:00
Herwin Weststrate
763bef5f53 Extract NTP printing
This method is required to dissect some RADIUS attributes
2020-04-21 23:50:03 +02:00
Guy Harris
27d428c0a1 Pull a bunch of headers into the only source file that includes them.
For headers included in only one source file, put the header contents in
the source file in question, and get rid of a bunch of stuff from the
header not used in the source file.
2013-12-30 22:52:15 -08:00
hannes
74bb4ee159 provide decent multipline output for the NTP printer 2004-01-28 14:34:50 +00:00
guy
0dc3f6984c 1970 - 1900 in seconds doesn't fit in 31 bits; explicitly make it
unsigned to avoid compiler warnings.
2003-08-06 04:58:21 +00:00
guy
fcc82f451d The "__attribute__((packed))" tag on structures causes some files not to
compile with Sun C, as "interface.h" isn't being included before the
structures are being declared.

Furthermore, in the files that Sun C *can* compile, it doesn't cause Sun
C to generate code that's safe with unaligned accesses, as
"__attribute__" is defined as a do-nothing macro with compilers that
don't support it.

Therefore, we get rid of that tag on the structures to which it was
added, and instead use "EXTRACT_16BIT()" and "EXTRACT_32BIT()" to fetch
16-bit and 32-bit big-endian quantities from packets.  We also fix some
other references to multi-byte quantities to get rid of code that tries
to do unaligned loads on platforms that don't support them.

We also throw in a hack that makes those macros use
"__attribute__((packed))" on structures containing only one 16-bit or
32-bit integer to get the compiler to generate unaligned-safe code
rather than doing it by hand.  (GCC on SPARC produces the same code that
doing it by hand does; I don't know if GCC on any other big-endian
strict-alignment processor generates better code for that case.  On
little-endian processors, as "ntohs()" and "ntohl()" might be functions,
that might actually produce worse code.)

Fix some places to use "%u" rather than "%d" to print unsigned
quantities.
2002-12-11 07:13:49 +00:00
itojun
10afb02ac8 put __attribute__((packed)) to packet headers. s/u_short/u_int16_t/ and so
forth while i'm here
2002-11-09 17:19:16 +00:00
itojun
fb75d3cd5a always use u_intXX_t for protocol format declaration. char/short/int may not
come with exact size.  while at it, correct signedness of ip/udp header field.
nuke most of the use of bitfield.
TODO: bitfield in namser.h
2000-10-03 02:54:54 +00:00
mcr
f555c163f9 Initial revision 1999-10-07 23:47:09 +00:00