9e16305afd
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@871 42af7a65-404d-4744-a932-0658087f49c3
452 lines
21 KiB
Plaintext
452 lines
21 KiB
Plaintext
0.1.0 2007-03-09 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Initial Release
|
|
* Support for Linux user mode simulation and TI
|
|
TMS320C5471 (Arm7) provided
|
|
|
|
0.1.1 2007-03-14 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Corrected an error in interrupt level context switching
|
|
for C5471
|
|
* Added fgets() and gets() logic; verified c5471 console read.
|
|
* Corrected error in reading from the C5471 serial port:
|
|
Improper use of semaphore can cause deadlock.
|
|
* Fixed an error in the memory cleanup: The idle task
|
|
cannot take sempahores (because it must always be ready
|
|
to run).
|
|
* Tasks can now accept a configurable maximum number of
|
|
input parameters (argc)
|
|
* _task_init() was divided into separate functions that
|
|
require fewer parameters. This was necessary to keep
|
|
the stack usage down for the 8051/2 (which has only
|
|
256 bytes of stack).
|
|
* Attempts to use C5471 console from interrupt handlers
|
|
can cause errors. Added a special path for this case.
|
|
* Refuse calls to sem_wait and sem_trywait from interrupt
|
|
handlers. This was happening because interrupt handlers
|
|
were calling printf-like functions.
|
|
* Added strtok() and strtok_r()
|
|
* Added a simple shell called nsh (see examples/nsh).
|
|
* Platform support for 8052 is complete but not stable
|
|
when the timer interrupt is enabled. Seems to be an
|
|
issue when SP enters indirect address space.
|
|
* Documentation updates
|
|
|
|
0.1.2 2007-03-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Add dirent.h, opendir(), readdir(), closedir(), etc.
|
|
* Add strerror()
|
|
* Added 'ls' command to nsh
|
|
* Added C5471 watchdog driver
|
|
* Fixed another bug where free() is called from IDLE task.
|
|
Can't do this; the caller must be able to wait for access
|
|
to memory.
|
|
* Fixed bugs associated with debug output:
|
|
Cannot do dbg() in middle of context switch logic.
|
|
because it may require use of semaphores and cause
|
|
additional context switches. lldbg() is safe.
|
|
* Interrupt must be disabled throughout all context switches.
|
|
* Separated C5471 serial driver; a shareable part is
|
|
in drivers/. ; the C5471 specific part is in arch/C5471.
|
|
serial.h defines the interface.
|
|
* Fixed mq_receive() and mq_send() -- bad memcpy()
|
|
* Fixed C5471 signal deliver logic: use of dbg() and
|
|
other actions by use signal handler can alter errno.
|
|
need to protect errno during signal handling.
|
|
* Fixed uninitialized variable in filesystem that could
|
|
cause various problems
|
|
* Added a test for roundrobin scheduler.
|
|
|
|
0.2.1 2007-03-22 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Fix error in handing signed decimal in vsprintf().
|
|
* Major restructuring of header files to get closer to
|
|
POSIX compliance.
|
|
* Eliminate compilation warnings that that crept into
|
|
recent check-ins
|
|
* Add kill()
|
|
* Added support for POSIX timers
|
|
* Some Documentation updates
|
|
* Added support for the Neuros OSD / DM320
|
|
|
|
0.2.2 2007-03-26 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
* Created the configs/ directory; separated board configuration
|
|
from processor architecture logic
|
|
* Add memory leak detection test to examples/ostest
|
|
* Corrected memory leak in OS pthread join logic
|
|
* Corrected memory leaks in examples/ostest due to failures
|
|
to join or detach from pthreads.
|
|
* Added pthread_once(), pthread_kill(), pthread_sigmask()
|
|
* Added pthread_barrierattr_*() APIs
|
|
* Added pthread_barrier_init(), pthread_barrier_destroy(), and
|
|
pthread_barrier_wait();
|
|
* Added pthread barrier test
|
|
* Added protection so that errno cannot be modified from
|
|
interrupt handling.
|
|
* sched_setparam(), sched_setscheduler() now correctly set
|
|
errno; pthread_setscheduler() now returns the correct errno.
|
|
* Added pthread_setschedprio().
|
|
* Added directories to hold board-specific header files
|
|
* Added directories to hold board-specific drivers
|
|
|
|
0.2.3 2007-03-29 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* mq_receive and mq_send now return errno's appropriately
|
|
* mq_receive and mq_send are now correctly awakened by signals.
|
|
* Fixed an unmatched sched_lock/unlock pair in task_delete().
|
|
* sched_lock must be called in _exit() because operation of
|
|
task_delete() can cause pending tasks to be merged and a
|
|
context switch to occur.
|
|
* Added mq_timedreceive() and mq_timedsend()
|
|
* signal mask is now inherited by both child tasks and threads.
|
|
* Improved sharebility of stdout among pthreads (only). Nothing
|
|
was broken, but by moving the mutual exclusion logic to a
|
|
higher level, the printf output is more readable.
|
|
* Fixed a bug in file system cleanup: A list was being deleted
|
|
before the buffers contained in the list.
|
|
* Fixed a bug in the wait-for-message-queue-not-empty logic.
|
|
* Added a test of timed mqueue operations; detected and corrected
|
|
some mqueue errors.
|
|
* Identified and corrected a race condition associated with
|
|
pthread_join. In the failure condition, memory was being
|
|
deallocated while still in use.
|
|
|
|
0.2.4 2007-04-28 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Verfied c5471 build under Cygwin on WinXP
|
|
* Makesystem changes to better support different SoCs.
|
|
* Made arch/c5471/include and arch/dm320/include identical in
|
|
preparation for merging into arch/arm
|
|
* Logic from arch/c5471 and arch/dm320 combined into arch/arm.
|
|
arch/c5471 and arch/dm320 are deprecated and will be removed
|
|
when the new c5471 and dm320 logic is verified.
|
|
|
|
0.2.5 2007-05-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Corrected some build/configuration issues introduced with the
|
|
last release.
|
|
* Added support for the NXP 214x processor on the mcu123.com lpc214x
|
|
development board (untested)
|
|
* Added support for block devices.
|
|
* Simulated target now exports a VFAT filesystem
|
|
* Begin support for VFAT filesystem (missing functionalit)
|
|
* Added mount() and umount()
|
|
* Fix bug in memcmp return value
|
|
* Fix errors in timeslice calculation (several places)
|
|
* Added missing irqrestore() in timer_deletall().
|
|
* close() was not closing the underlying device.
|
|
* Added fsync()
|
|
* Added strspn() and strcspn()
|
|
|
|
0.2.6 2007-05-26 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Added unlink(), mkdir(), rmdir(), and rename()
|
|
* Fixed several serious FAT errors with oflags handling (&& instead of &)
|
|
* Added FAT support for unlink(), mkdir(), rmdir(), and rename
|
|
* Added FAT support for opendir(), closedir(), readdir(), seekdir(),
|
|
telldir(), rewindir().
|
|
* Fixed ARM compilation errors introduced in 0.2.5 (that is what I get
|
|
for only testing on the simulation).
|
|
|
|
0.2.7 2007-06-09 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Added stat() to fs layer and to FAT
|
|
* Fixed reference counting errors associated with mounted filesystems
|
|
* Added fat_getattrib() and fat_setattrib()
|
|
* Added statfs() to fs layer and to FAT
|
|
* Correct file name extension in tools/zipme.sh
|
|
* Fix error in dependencies in 8051/2 Makefile
|
|
* sched/Makefile: Don't build sleep() or usleep() if signals are disabled
|
|
* sched/sched_setparam.c: Remove redundant disabling of interrupts
|
|
* sched/usleep.c: Fixed nsec calculation
|
|
* lib/lib_strcspn.c: Function incorrectly named strspn().
|
|
* examples/ostest/main.c: Errors in SDCC version of a memcpy() call
|
|
* examples/ostest/sighand.c: Don't call fflush() if streams are disabled
|
|
* include/limits.h, include/time.h, sched/clock_internal.h: A support for
|
|
using selectable system timer frequency.
|
|
* Fixed error in mountpoint related conditional compilation introduced
|
|
in 0.2.5
|
|
* Restructured some Makefiles to better handle enabling and disabling
|
|
NuttX features without having so much conditional compilation in the
|
|
source files.
|
|
* tools/mkconfig.c: No longer depends on asprintf() and _GNU_SOURCE and
|
|
so should now build in non-GNU, non-GLIBC environments.
|
|
* include/nuttx/compiler.h: Fix for using SDCC with the Z80.
|
|
* include/assert.h & arch/pjrc-8051/src/up_assert.c: SDCC does support
|
|
__FILE__and __LINE__ (not tested)
|
|
* examples/ostest/barrier.c: Don't call usleep() when signals are
|
|
disabled.
|
|
|
|
0.2.8 2007-07-02 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
* tools/Makefile.mkconfig: Under Cygwin, executable has a different name
|
|
* tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies
|
|
* tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz
|
|
* fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock.
|
|
* lib/lib_getopt.c: Added getopt() support
|
|
* examples/nsh/: NSH now supports cat, mount, umount, and mkdir. ls supports
|
|
-l -s, and -R
|
|
* Added basic OS support to manage environment variables: environment
|
|
storage, cloning on task creation, sharing on pthread creation, destruction
|
|
on thread/task exit.
|
|
* Add environment variables APIs: environ, getenv, putenv, clearenv, setenv,
|
|
unsetenv
|
|
* Correct an error in realloc() when the block is extended "down" in memory.
|
|
In this case, the old memory contents need to be copied to the new location
|
|
and an allocated bit was not being set.
|
|
* examples/ostest/: Added an environment variable test.
|
|
* examples/nsh/: Break into several files.
|
|
* lib/: Added strrchr, basename, dirname
|
|
* examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print
|
|
environment variables.
|
|
|
|
0.3.0 2007-11-06 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Imported uIP into the tree (see
|
|
http://www.sics.se/~adam/uip/index.php/Main_Page)
|
|
* Adding socket(), bind(), connect()
|
|
* Added snprintf()
|
|
* Added send() and sendto(); integrate write() and close() with socket descriptors.
|
|
* Added recv() and recvfrom().
|
|
* Added getsockopt() and setsockopt()
|
|
* Documentation updated to address socket interfaces.
|
|
* Implemented receive timeouts via setsockopt(SO_RCVTIMEO).
|
|
* Provide support for multiple network devices
|
|
* Implement socket ioctl() calls to set addresses
|
|
* Added listen() and accept()
|
|
* Added DM90x0 ethernet driver
|
|
* ARP timer is now built into the network layer
|
|
* Basic client functionality verified: TCP socket(), bind(), connect(), recv(), send().
|
|
|
|
0.3.1 2007-11-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Separated net/uip/uip.c into several functions in several files.
|
|
* Corrected a TCP problem where packets were dropped because there was no
|
|
recv() in place but the packet was being ACKed. There are still TCP
|
|
recv buffering issues, but this is part of a larger buffering issue.
|
|
* Basic server functionality verified: TCP listen(), accept()
|
|
* Fix DM90x0 driver problem that caused TX overruns
|
|
* Add strncmp()
|
|
* Added TCP/IP read-ahead buffer to minimize failed ACKs and packet loss.
|
|
|
|
0.3.2 2007-11-23 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Add strcat() and strncat()
|
|
* Integrated uIP micro webserver
|
|
* Corrected a serious bug in TCP queue management
|
|
* Fix leak in socket close logic
|
|
* Add TX notification to driver so that it can respond faster to
|
|
the availability of TX data.
|
|
* Moved urgent data info into device structure.
|
|
* TCP and ICMP protocols can now be disabled.
|
|
* Added UDP test in examples/udp
|
|
* Verified/debugged UDP socket(), bind(), sendto() and recvfrom() logic
|
|
using examples/udp
|
|
* recvfrom() and accept() now correctly return the remote address.
|
|
* Fixed computation error in ntohl().
|
|
|
|
0.3.3 2007-11-28 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Removed unused uIP files
|
|
* sched/, mm/, and net/ subystem debug can not be selectively enabled/disabled
|
|
* Correct socket close logic -- needs to disconnect TCP socket on close
|
|
* uIP webserver now seems to be fully functional
|
|
* fs/ and lib/ subystem debug can not be selectively enabled/disabled
|
|
* Added vsnprintf
|
|
* Integrated uIP telnetd
|
|
* Add missing logic to readahead buffer logic
|
|
* examples/nettest uses larger buffers
|
|
* Improved ACK handling in send() to better hander deferred acknowledgements
|
|
and polling intervals. Greatly improves send performance.
|
|
|
|
0.3.4 2007-12-10 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Added and partially verified DHCP server logic (netutils/dhcpd)
|
|
* Fix BROADCAST=y compilation problems
|
|
* Fix UDP recvfrom timeout bug
|
|
* Correct processing of input UDP broadcast packets.
|
|
* Verfied basic DHCP client functionality (netutils/dhcpc)
|
|
* Implemented send() timeout logic
|
|
* Added and verifed a TELNETD front end to NSH (examples/nsh)
|
|
* Add a skeleton Ethernet device driver (drivers/net/skeleton.c)
|
|
* Added C5471 Ethernet device driver (arch/arm/src/c5471/c5471_ethernet.c)
|
|
* Found and fixed several problems in uIP when compiled for ARM with optimization.
|
|
|
|
0.3.5 2007-12-18 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Added inet_ntoa() and ether_ntoa()
|
|
* Added netdev_foreach() to support traversal of registered network devices
|
|
* Added support for 'ifconfig' command to NSH (examples/nsh)
|
|
* Moved MAC and ethernet definitions to net/ethernet.h
|
|
* Fix sim and DM90x0 compilation errors introduced in 0.3.4
|
|
* Fixed errors in C5471 configuration files for examples/uip
|
|
* Modified DHCPC (netutils/dhcpc) so that it should work in environments where
|
|
there are more than one DHCPD server.
|
|
* NSH ifconfig command now shows uIP status was well (examples/nsh)
|
|
|
|
0.3.6 2008-01-06 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Changes for use with SDCC compiler
|
|
* Added a simulated z80 target
|
|
* Fix deadlock errors when using stdio but with no buffering
|
|
* Add support for Pascal P-Code interpreter
|
|
|
|
0.3.6.1 2008-01-07 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* The initial 0.3.6 release including an error that prevented
|
|
building successfully if the Pascal add-on was
|
|
was not present.
|
|
|
|
0.3.7 2008-01-31 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Added support for the Zilog Z16F using the Zilog Z16F2800100ZCOG
|
|
Development Kit.
|
|
* Add support toolchains that do not support making of dependencies
|
|
* Fix Cygwin build with spaces in directory names
|
|
* Name make system changes to deal with non-GNU toolchains (i.e., Zilog)
|
|
* Add support for Windows native toolchains that cannot follow Cygwin soft links
|
|
* Modified serial driver interface to handle hardware with non-16550A-like
|
|
interrupt architecture (like the Z16F)
|
|
* Added a "dumb" serial console driver to simplify OS bringup
|
|
* Corrected a bug that caused the errno value of one task to be clobbered
|
|
when a different task exits. Effects all architectures.
|
|
|
|
0.3.8 2008-02-10 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Added a test case to verify the Pascal P-Code interpreter
|
|
* Added /dev/zero
|
|
* 'errno' is now defined to be *get_errno_ptr() with no name conflicts
|
|
* Added lseek() and fseek()
|
|
* Integrated Pascal interpreter test case on the simulation platform. Needs
|
|
pascal-0.1.1.
|
|
* Add Pascal test case on the z16f platform. Needs pascal-0.1.2 (does not
|
|
yet work due to some tool issues).
|
|
* C buffered I/O fixes:
|
|
- Fix fflush() return value,
|
|
- Add correct fflush behavior when the FILE argument is null.
|
|
- Add logic to a correctly handle read/write access on the same FILE
|
|
- fseek() flushes read/write data when before moving the file pointer
|
|
- When read data is flushed, reposition the file pointer to account for
|
|
buffered, but unread data
|
|
* Pascal P-Code files are now standardized to big-endian for portability
|
|
* Fix a build problem with z80 and SDCC 2.7.0 (format of a map file changed)
|
|
(see bug 1887170)
|
|
* Pascal P-Code runtime now compiles with the SDCC toolchain.
|
|
* Added a generic CAN driver. This driver is untested as of this writing.
|
|
* Corrected DM320 UART configuration problem
|
|
|
|
0.3.9 2008-03-09 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Began adding support for the ZiLOG Z8Encore! microcontroller for the Z8Encore000ZCO
|
|
development board and the Z8F6403 part.
|
|
* Fix broken 'clean' target on z80sim configurations
|
|
* Re-structure arch/z80 to provide support for all ZiLOG 8-bit microcontrollers (ez8
|
|
in particular for now).
|
|
* Add support for TRS80-Model 3 based on the xtrs emulation (http://www.tim-mann.org/xtrs.html)
|
|
Per patch from Jacques Pelletier.
|
|
* In all shell scripts, change #!/bin/sh to #!/bin/bash to resolve problems in
|
|
Ubuntu where /bin/sh is a link to dash.
|
|
* Z8Encore! port verified on ZDS-II instruction set/chip simulator.
|
|
|
|
0.3.10 2008-05-15 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Add support for the ZiLOG EZ80Acclaim microcontrooler (EZ80F91 chip).
|
|
* Add configuration for the ZiLOG z8f64200100kit development kit, Z8F6423 part.
|
|
* Add configuration for the ZiLOG ez80f0910200kitg development kit, EZ80F091 part.
|
|
* Correct critical list handling errors in task shutdown logic: One in timer
|
|
deletion logic (timer_delete.c) and one in stream logic (lib_init.c) reported
|
|
by kwonsk.
|
|
|
|
0.3.11 2008-06-01 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Add support for recursive mutexes.
|
|
* Eliminate a memory leak -- contained watchdog instance was not being
|
|
deleted with a POSIX timer was deleted reported by kwonsk.
|
|
* Eliminate a deadlock condition in opendir() reported by kwonsk.
|
|
* Fix several FAT filesystem problems reported by kwonsk (Changes not yet
|
|
verified).
|
|
* Host simulator no longer uses Linux system calls directly; Now works with Cygwin.
|
|
* Fix an error that occurs when a POSIX timer is deleted by the timer signal handler.
|
|
* Add logic to allow the examples/ostest to be run repetitively as an endurance test.
|
|
* Add a ramdisk block driver
|
|
|
|
0.3.12 2008-08-10 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* Improved solution to POSIX timer lifetime controls bug fixed in 0.3.11.
|
|
* Add test for recursive mutexes
|
|
* Correct bug in recursive mutex logic
|
|
* Add mkfifo()
|
|
* Add pipe() and test for both pipes and fifos
|
|
* Attempts to open a FIFO will now block until there is at least one writer
|
|
* Add test/Fixed errors in FIFO reader/writer interlocks
|
|
* Removed limitation: task_create() was only dup'ing 3 file descriptors (now
|
|
dups all open file descriptors).
|
|
* Added a test for redirection of stdio through pipes
|
|
* Fixed error in dup and dup2: Must call open/close methods in fs/driver so that
|
|
driver can correctly maintain open reference counts.
|
|
* Same issue on closing file descriptors in exit()
|
|
* Fixed in error in stdio flush logic. Needed ssize_t vs size_t for error
|
|
check.
|
|
* Moved all FAT related files from fs to fs/fat
|
|
* Implemented mkfatfs(), a non-standard API to create a FAT filesystem on a
|
|
block device (not yet tested).
|
|
* Added a test for mkfatfs() on a RAM disk in examples/mount and verified
|
|
basic mkfatfs functionality for FAT12.
|
|
|
|
0.3.13 2008-09-01 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
|
|
* NSH: Added mkfatfs, mkfifo, sleep, usleep and nice commands
|
|
* Fixed problem with console input in Cygwin-based simulator; NSH now works
|
|
with simulator.
|
|
* NSH will now execute commands in background
|
|
* sched_get_priority_max/min returned error on SCHED_RR
|
|
* Removed duplicate getenv() implementation in /lib
|
|
* Correct detection of End-of-File in fgets
|
|
* NSH: Implemented sh and crude script handler
|
|
* Fix prototype of read() and write(). Need to use ssize_t and size_t, not
|
|
int and unsigned int.
|
|
* NSH now supports redirection of command output
|
|
* NSH can now use both telnet and serial front ends together
|
|
* NSH: $variable can be used for any command value
|
|
* Fixed an error in opendir() that could cause an assertion to fail
|
|
inappropriately.
|
|
* Correct an error in the FAT that caused files opened for writing with
|
|
O_APPEND to fail. The file was not being properly positioned to the
|
|
end of the file in that case.
|
|
* NSH now supports last exit status $?
|
|
* NSH now supports if-then[-else]-fi construct
|
|
* NSH now supports comments beginning with '#'
|
|
* NSH now supports commands to inspect and modify memory
|
|
* NSH cat command now supports multiple files on command line
|
|
* Add chdir() and getcwd()
|
|
* Fix error in getopt() when called with argc==1
|
|
* Fix error in stat() when used on the root directory
|
|
* NSH: Add cd and pwd commands and current working directory to all NSH
|
|
commands that refer to paths.
|
|
* Fix errors and warnings introduced into Linux sim build because of recent
|
|
Cygwin-based sim changes
|
|
* NSH: Add mem command to display heap usage
|
|
* Added telnet NSH configuration for Neuros OSD.
|
|
* Basic integration of concurrent telnet/serial NSH functional on Neuros
|
|
OSD.
|
|
* Fixed a critical bug that effects the way that environment variables are
|
|
shared amongst pthreads.
|
|
* uIP port enhance to support multi-threaded, concurrent socket access. So,
|
|
for example, one thread can be reading from a socket while another is
|
|
writing to the socket.
|
|
|
|
0.3.14 2008-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
* FAT FS now uses position variable in struct file. This simplifies operations
|
|
like ftell().
|
|
* fseek() needs to discard bytes buffered by ungetc().
|
|
* Corrected ftell() return value.
|
|
* Added fsetpos() and fgetpos().
|
|
* NSH: Now supports 'test' and '[' commands
|
|
* Correct error in send() timeout logic.
|
|
* Correct error in multi-threaded socket handling in send() and sendto().
|
|
Outgoing data could overwrite incoming data.
|
|
* Add support to uIP for application access to ICMP protocol stacks; Add
|
|
ping request logic.
|
|
* NSH: Add ping command
|
|
* Correct IP checksum calculation in ICMP and UDP message send logic.
|
|
|