LINUX.ORG.RU

История изменений

Исправление Harald, (текущая версия) :

я тут в процессе задумался, как избавиться от memmove(). Можно убирая обработанный пакет передвигать указатель buf, но возможна такая ситуация - приходит небольшой пакет, вслед за ним пакет максимального размера, и писать его некуда, упираемся в конец буфера. Тогда надо либо увеличивать на лету буфер, либо копировать хвост пакета в начало буфера, и потом склеивать пакет из двух кусков идущих в обратном порядке, что потребует копирования большего числа байт, чем в случае с memmove()

Исходная версия Harald, :

я тут в процессе задумался, как избавиться от memmove(). Можно убирая обработанный пакет передвигать указатель buf, но возможна такая ситуация - приходит небольшой пакет, вслед за ним пакет максимального размера, и писать его некуда, упираемся в конец буфера. Тогда надо либо увеличивать на лету буфер, либо копировать хвост пакета в начало буфера, и потом склеивать пакет из двух кусков идущих в обратном порядке, что потребует копирования большего числа байт