Re[5]: Как сменить мак в исходящем пакете?
|
От: |
_ks_
|
|
| Дата: | 20.07.04 14:14 |
|
Оценка: |
|
Здравствуйте, Kochuev, Вы писали:
K>Должен ли этот псевдо заголовок отправляться по сети? Нельзя ли примерчик, как считать эту контрольную сумму?
inline u_short in_cksum(u_short *addr, int len)
{
register int nleft = len;
register u_short *w = addr;
register int sum = 0;
u_short answer = 0;
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
if (nleft == 1) {
*(u_char *)(&answer) = *(u_char *) w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return(answer);
}
Пока на собственное сообщение не было ответов, его можно удалить.