And here is the news on uv_server.c - read2_cb if I just change it to
static void read2_cb(uv_pipe_t* handle,ssize_t nread, uv_buf_t buf, 
uv_handle_type pending) {
 int r;
 char buffer[1024] = {0};
      printf("read2cb callback for handle type %d\n", pending);
 r = read(self.uv_client_pipe.accepted_fd, buffer, 1024);
 printf("handle accepted by client  fd = %d, bytes = %d , content are 
%s\n", self.uv_client_pipe.accepted_fd, r, buffer);
}

It is reading the right contents of the xyz file and credential passing is 
working ....but is this right ???

On Wednesday, 11 December 2013 17:01:28 UTC+5:30, Pramod Sharma wrote:

> Oh man, yes you are right read2_cb is getting called but with pending as 
> UV_UNKNOWN_HANDLE. 
> So we cant wrap arbitrary file descriptor/handle ?? 
>
> The code will look too clumsy if I try to mix libuv and "credential 
> passing" using sendmsg and recvmsg outside of libuv.  Or may be I can add 
> libuv call to pass arbitray handle itself after understanding the libuv 
> code.
> What do you suggest ? 
>
> On Wednesday, 11 December 2013 16:51:19 UTC+5:30, Pramod Sharma wrote:
>
>> Thanks Fedor for quick response and looking into it.
>> Tried "uv_buf = uv_buf_init(...)".
>>
>> About sending arbitrary descriptor as per "Ben's" first comment if we 
>> just wrap it over named pipe/tcp it should work, which is happening in  my 
>> case as write2 is passing but on the server side read2_cb is not invoked 
>> immediately on connection close(which is client process exit, which is 
>> obvious I guess).
>>
>>
>> On Wednesday, 11 December 2013 16:21:21 UTC+5:30, Fedor Indutny wrote:
>>
>>> Gosh, spent a lot of time figuring it out :) 
>>>
>>> Try this: `uv_buf = uv_buf_init(...)` instead of just `uv_buf_init`. 
>>>
>>> Anyway, that doesn't seem to be working... First of all, it won't be 
>>> UV_NAMED_PIPE because it isn't it, it will be UV_UKNOWN_HANDLE and you 
>>> should just try calling `uv_accept()` and see if it'll fail. 
>>>
>>> But the most important thing is that you can only send sockets using 
>>> `uv_write2()`, sending a file won't work. 
>>>
>>> On Wed, Dec 11, 2013 at 1:57 PM, Pramod Sharma <[email protected]> 
>>> wrote: 
>>> > 0.10.19. Do you think I should try with  latest one ? 
>>> > 
>>> > On Wednesday, 11 December 2013 15:24:26 UTC+5:30, Fedor Indutny wrote: 
>>> >> 
>>> >> Hello Pramod, 
>>> >> 
>>> >> Which libuv version are you using? 
>>> >> 
>>> >> On Wed, Dec 11, 2013 at 1:21 PM, Pramod Sharma <[email protected]> 
>>>
>>> >> wrote: 
>>> >> > Oh sorry forgot to mention that uv_write2 is passing from the 
>>> client 
>>> >> > side 
>>> >> > with status as 0 in the callback but it is never coming in the 
>>> server 
>>> >> > read2_cb. 
>>> >> > 
>>> >> > 
>>> >> > On Wednesday, 11 December 2013 14:25:31 UTC+5:30, Pramod Sharma 
>>> wrote: 
>>> >> >> 
>>> >> >> Can someone please help in me debugging as I am new to libuv ? 
>>> >> >> I am trying to accomplish as follows 
>>> >> >> - Create a server (domain socket) 
>>> >> >> - Create a client 
>>> >> >> - connect to server 
>>> >> >> - pass the file descriptor(some arbitrary handle, xyz) using 
>>> uv_write2 
>>> >> >> - server accepts the file descriptor (arbitrary handle, xyz) and 
>>> uses 
>>> >> >> it 
>>> >> >> to read it. 
>>> >> >> 
>>> >> >> Attached is my client and server program , I know I am doing some 
>>> silly 
>>> >> >> mistake somewhere. 
>>> >> >> 
>>> >> >> PS - please rename makefile.c to makefile as it was not allowing 
>>> me to 
>>> >> >> upload makefile. 
>>> >> >> 
>>> >> >> 
>>> >> >> On Monday, 9 December 2013 14:04:48 UTC+5:30, Pramod Sharma wrote: 
>>> >> >>> 
>>> >> >>> What about windows ? 
>>> >> >>> I just want to pass regular file handle(process file handle which 
>>> is 
>>> >> >>> trying to connect)  from the client to server and vice versa so 
>>> that I 
>>> >> >>> can 
>>> >> >>> do some authentication on them. 
>>> >> >>> 
>>> >> >>> On Saturday, 19 October 2013 15:26:51 UTC+5:30, Ben Noordhuis 
>>> wrote: 
>>> >> >>>> 
>>> >> >>>> On Fri, Oct 18, 2013 at 11:09 PM, Pramod Sharma 
>>> >> >>>> <[email protected]> wrote: 
>>> >> >>>> > Thanks. So libuv internally is not doing anything with the 
>>> >> >>>> > descriptor 
>>> >> >>>> > assuming it is a pipe or so ? 
>>> >> >>>> 
>>> >> >>>> Not on UNIX platforms, no. 
>>> >> > 
>>> >> > -- 
>>> >> > You received this message because you are subscribed to the Google 
>>> >> > Groups 
>>> >> > "libuv" group. 
>>> >> > To unsubscribe from this group and stop receiving emails from it, 
>>> send 
>>> >> > an 
>>> >> > email to [email protected]. 
>>> >> > To post to this group, send email to [email protected]. 
>>> >> > Visit this group at http://groups.google.com/group/libuv. 
>>> >> > For more options, visit https://groups.google.com/groups/opt_out. 
>>> > 
>>> > -- 
>>> > You received this message because you are subscribed to the Google 
>>> Groups 
>>> > "libuv" group. 
>>> > To unsubscribe from this group and stop receiving emails from it, send 
>>> an 
>>> > email to [email protected]. 
>>> > To post to this group, send email to [email protected]. 
>>> > Visit this group at http://groups.google.com/group/libuv. 
>>> > For more options, visit https://groups.google.com/groups/opt_out. 
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"libuv" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/libuv.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to