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