Re: ctl_enqueuedata ENOBUFS error
Re: ctl_enqueuedata ENOBUFS error
- Subject: Re: ctl_enqueuedata ENOBUFS error
- From: Stephane Sudre <email@hidden>
- Date: Tue, 12 Jul 2005 11:11:23 +0200
On 12 juil. 05, at 1:53, Allan Hoeltje wrote:
I am using ctl_enqueuedata() in my KEXT to send data to a client
application. The client is reading the socket with recv( s, buff,
BUFFER_LENGTH, MSG_WAITALL ). Everything seems to work fine but the
ctl_enqueuedata() call in my KEXT eventually returns "ENOBUFS - The
queue
is full or there are no free mbufs."
So, it appears that recv() does not remove data from the queue. What
do I
need to do so that ctl_enqueuedata() does not fill the queue? I do
not see
any other function calls in sys/kern_control.h that look appropriate.
At which rate are you sending data and what is the usual size of this
data?
When you get this result you may want to:
- increase the recv or send "buffer" size (use the socket API because
IIRC there's a bug in the ctl API in 10.4).
- save the data and try to send it later. This is what the old tcp log
sample code was doing.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden