Hi goinsane,

I'd like to get values from the struct sockaddr_in which is passed to accept . 
At the time of entry this struct has still no values. How could I access the 
struct at return? The usage of arg0 seems useless, as this is a new 
filedesriptor. Does the copyin at entry make sense at all?
The copyin at the entry probe does not make sense. Since the address of the sockaddr_in structure will not be available in argN builtin variables, you must store the addresses you are interested in in a thread local variable. On the return probe you can use copyin builtin method to get the contents of the sockaddr structure.
The modified script would look like the following,

fbt:sockfs:accept:entry
{
   self->sockaddr_ref = arg1;
   self->sockaddr_len = arg2;
}

fbt:sockfs:accept:return
{
self->sockaddr_content = (struct sockaddr_in*) copyin(self->sockaddr_ref, self->sockaddr_len);
   /* whatever your script intends to with the sockaddr structure */
}

cheers,
Krishnan
fbt:sockfs:accept:entry
{
   newsock = (struct sockaddr_in*)copyin(arg1, arg2); */
}


fbt:sockfs:accept:return
{
  /* ???  */
}


thank you,

goinsane

Message was edited by: goinsane

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to