<div dir="ltr">În af_packet.c, există mai multe funcții care par să facă aproape același lucru... să primească date.<div><br></div><div style>Există packet_rcv și packet_recvmsg.</div><div style><br></div><div style>1. packet_rcv e pusă în câmpul prot_hook.func ca și handler.</div>
<div style>2. Apoi, packet_recvmsg e funcția care e efectiv apelată la un receive.<br></div><div style><br></div><div style>Întrebările:</div><div style><br></div><div style>1. Au prototipuri diferite și par să facă lucruri diferite, dar la implementările mele, handlerul, prot_hook.func (numit stp_rcv) nu pare să fie apelat niciodată.</div>
<div style><br></div><div style>Din ce-am înțeles handlerul ar trebui apelat de kernel când primește un pachet de acel tip.</div><div style>Curios e că am adăugat hook-ul pentru ambii sockeți (am printat un mesaj după instrucțiune) dar nu se apelează niciodată handler-ul. De ce?</div>
<div style><br></div><div style>2. La recvmsg, eroarea pe care o primesc de la skb_recv_datagram() este -512, -ERESTARTSYS.</div><div style>Deci, ar trebui re-apelată... cu alți parametri poate?</div><div style><br></div>
<div style>Mulțumesc!</div></div>