Как в FreeBSD устанавливать патчи ? Вот такой вот простой вопрос. Но, как ни странно я день копался в сети и не нашел внятного ответа. Может кто поможет?
P.S.:Насколько я понял мне нужен KERNEL patch, после которого пересобирают ядро. Патч для нормальной работы mpd.
Это сам патч, который я нашел в инете. А как ставить не знаю.
--- sys/netgraph/ng_pptpgre.c.orig Tue Sep 28 16:49:53 2004
+++ sys/netgraph/ng_pptpgre.c Tue Sep 28 17:27:27 2004
@@ -477,6 +477,8 @@
/* Check if there's data */
if (m != NULL) {
+ if (priv->conf.enableDelayedAck) {
+
/* Is our transmit window full? */
if ((u_int32_t)PPTP_SEQ_DIFF(priv->xmitSeq, priv->recvAck)
>= a->xmitWin) {
@@ -485,6 +487,7 @@
NG_FREE_ITEM(item);
return (ENOBUFS);
}
+ }
/* Sanity check frame length */
if (m != NULL && m->m_pkthdr.len > PPTP_MAX_PAYLOAD) {
@@ -505,8 +508,11 @@
/* Include sequence number if packet contains any data */
if (m != NULL) {
gre->hasSeq = 1;
+
+ if (priv->conf.enableDelayedAck) {
a->timeSent[priv->xmitSeq - priv->recvAck]
= ng_pptpgre_time(node);
+ }
priv->xmitSeq++;
gre->data[0] = htonl(priv->xmitSeq);
}
@@ -516,7 +522,9 @@
gre->hasAck = 1;
gre->data[gre->hasSeq] = htonl(priv->recvSeq);
priv->xmitAck = priv->recvSeq;
- ng_pptpgre_stop_send_ack_timer(node);
+ if (priv->conf.enableDelayedAck) {
+ ng_pptpgre_stop_send_ack_timer(node);
+ }
}
/* Prepend GRE header to outgoing frame */
@@ -554,10 +562,12 @@
NG_SEND_DATA_ONLY(error, priv->lower, m);
}
+ if (priv->conf.enableDelayedAck) {
/* Start receive ACK timer if data was sent and not already running */
if (error == 0 && gre->hasSeq && priv->xmitSeq == priv->recvAck + 1)
ng_pptpgre_start_recv_ack_timer(node);
+ }
return (error);
}
@@ -655,6 +665,8 @@
goto badAck; /* ack already timed out */
priv->recvAck = ack;
+ if (priv->conf.enableDelayedAck) {
+
/* Update adaptive timeout stuff */
sample = ng_pptpgre_time(node) - a->timeSent[index];
diff = sample - a->rtt;
@@ -683,6 +695,7 @@
ng_pptpgre_stop_recv_ack_timer(node);
if (priv->recvAck != priv->xmitSeq)
ng_pptpgre_start_recv_ack_timer(node);
+ }
}
badAck:
@@ -701,6 +714,8 @@
}
priv->recvSeq = seq;
+ if (priv->conf.enableDelayedAck) {
+
/* We need to acknowledge this packet; do it soon... */
if (a->sackTimerPtr == NULL) {
int maxWait;
@@ -719,6 +734,8 @@
ng_pptpgre_start_send_ack_timer(node, maxWait);
}
}
+ }
+ else ng_pptpgre_xmit(node, NULL);
/* Trim mbuf down to internal payload */
m_adj(m, iphlen + grelen);