[zeromq-dev] IPC REQ/REP socket unavailable to other users?
Stewart Douglas
sdouglas at snowgold.com
Wed Aug 11 23:44:02 CEST 2010
Have added an issue.
Cheers
Stew
On 11/08/10 21:02, Pieter Hintjens wrote:
> Stewart,
>
> Very nice... Would you like to post an issue to the bug tracker at
> http://github.com/zeromq/zeromq2/issues, and post your code on
> gist.github.com so that we don't lose this?
>
> It'd be great to at least solve this for Linux and then allow people
> to experiment on other platforms.
>
> -Pieter
>
> On Wed, Aug 11, 2010 at 9:12 PM, Stewart Douglas<sdouglas at snowgold.com> wrote:
>
>> Have just done a quick test and had no issues connecting to an anonymous UDS
>> created by an another user.
>>
>> The code I'm talking about sets up the socket for a connect or bind as shown
>> below having first called socket in the normal way.
>>
>> struct sockaddr_un address;
>> bzero(&address, sizeof(address));
>> address.sun_family = AF_UNIX;
>> strncpy(address.sun_path, localSocketName.c_str(),
>> sizeof(address.sun_path));
>>
>> int length = sizeof(address.sun_family) + strlen(address.sun_path);
>>
>> // make sure we use an abstract name for the socket
>> address.sun_path[0] = 0;
>>
>> if (::connect(theSocketFD, (struct sockaddr *)&address, length))
>>
>> Presumably this could be changed in ipc.cpp, but not sure of the
>> implications for decoding the addresses passed in etc. And how applicable
>> this trick is across non Linux platforms. My copy of Stevens is silent on
>> the matter, or I am too tired to find the correct page. Also I think length
>> could be calculated simply from sizeof(address).
>>
>> int zmq::resolve_local_path (sockaddr_storage *addr_, socklen_t *addr_len_,
>> const char *path_)
>>
>> Hope this is some help
>>
>> Stew
>>
>>
>> On 11/08/10 17:23, Pieter Hintjens wrote:
>>
>> On Wed, Aug 11, 2010 at 6:22 PM, Stewart Douglas<sdouglas at snowgold.com>
>> wrote:
>>
>>
>>
>> Nope can use them between different processes for sure, not talking about
>> socket pair but socket then bind or connect. Pass in a sockaddr_un to
>> connect or bind and make sure the first char of address.sun_path is 0 - best
>> to do this after the strncpy of course ;-> Can dig out example code when I
>> get home - but need to check that it does avoid the permissions issue. Also
>> may be Linux specific
>>
>>
>> That'd be great...!
>>
>> -Pieter
>>
>>
>>
>>
>> --
>> Stewart Douglas
>> sdouglas at snowgold.com
>> http://www.snowgold.com
>>
>
>
--
Stewart Douglas
sdouglas at snowgold.com
http://www.snowgold.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20100811/4894dc58/attachment.htm>
More information about the zeromq-dev
mailing list