Apparently 'free' is defined as a macro which takes two arguments and calls
rtems_bsdnet_free. When fixing #2405 I added a missing 'free' but didn't notice
it was non-standard.
Closes#2410.
This was needed to make it possible to only include <sys/socket.h>
for the methods in this file in compliance with the POSIX
specification. This was identified by the Open Group FACE
Conformance Test Suite.
Close 2245.
rtems_dhcp_failsafe() can be configured at compile time with
various options. This change makes it possible to instead configure
it at runtime.
This will make it marginally larger. I haven't measured the difference
but I'll guess it's in the lower hundreds of bytes. The change could be
modified to leave it either compile time or run time configurable,
I prefer the simplicity of a single method.
closes#1905
This patch adds a default network tasks CPU affinity configuration
option. The network drivers have the option to create their own
daemon tasks with a custom CPU affinity set, or rely on the
default set.
Waiting for mbufs at this level is a bad solution. It would be better
to try to allocate a new mbuf chain before we hand over the current mbuf
chain to the upper layer. In case the allocation fails we should drop
the current packet and use its mbuf chain for a new packet.
Move interrupt lock to device context and expose only this structure to
the read, write and set attributes device handler. This makes these
device handler independent of the general Termios infrastructure
suitable for direct use in printk() support.
Don't use unsafe buffer operations, averting (stack) buffer overflow
when the syslog message length (including Facility and Level encoding)
would exceed 199 characters
1) The value of rtems_bsdnet_ntpserver_count is equal to 0 when no
server is set, so the check for (rtems_bsdnet_ntpserver_count < 0)
in rtems_bsdnet_get_ntp() is wrong. The check should be "<= 0".
2) Binding the listening socket port to 0 does not work. Packets
appear on the interface, but the recvfrom in tryServer() never
returns. Changing this to the well known NTP socket 123 allows
the packets to be seen.
3) In tryServer(), an explicit check for NTP version 3 packets is made.
If the NTP server is version 4, this check fails even though the
packets seem to be the right shape.
The readv() and writev() support was implemented in terms of multiple
calls to the read and write handlers. This imposes a problem on device
files which use an IO vector as single request entity. For example a
low-level network device (e.g. BPF(4)) may use an IO vector to create
one frame from multiple protocol layers each with its own IO vector
entry.
Move implementation specific parts of coremutex.h and coremutex.inl into
new header file coremuteximpl.h. The coremutex.h contains now only the
application visible API.
It is invalid to issue a SIZE command once a data transfer is
in progress. For reads we issue the SIZE command before the RETR
command and get a snapshot of the file size. For writes the file size
is initialized to zero and incremented for each write chunk.