![]() |
libzmq master
The Intelligent Transport Layer
|
00001 /* 00002 Copyright (c) 2011 250bpm s.r.o. 00003 Copyright (c) 2011 Other contributors as noted in the AUTHORS file 00004 00005 This file is part of 0MQ. 00006 00007 0MQ is free software; you can redistribute it and/or modify it under 00008 the terms of the GNU Lesser General Public License as published by 00009 the Free Software Foundation; either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 0MQ is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #include "ipc_address.hpp" 00022 00023 #if !defined ZMQ_HAVE_WINDOWS && !defined ZMQ_HAVE_OPENVMS 00024 00025 #include "err.hpp" 00026 00027 #include <string.h> 00028 00029 zmq::ipc_address_t::ipc_address_t () 00030 { 00031 memset (&address, 0, sizeof (address)); 00032 } 00033 00034 zmq::ipc_address_t::~ipc_address_t () 00035 { 00036 } 00037 00038 int zmq::ipc_address_t::resolve (const char *path_) 00039 { 00040 if (strlen (path_) >= sizeof (address.sun_path)) { 00041 errno = ENAMETOOLONG; 00042 return -1; 00043 } 00044 00045 address.sun_family = AF_UNIX; 00046 strcpy (address.sun_path, path_); 00047 return 0; 00048 } 00049 00050 sockaddr *zmq::ipc_address_t::addr () 00051 { 00052 return (sockaddr*) &address; 00053 } 00054 00055 socklen_t zmq::ipc_address_t::addrlen () 00056 { 00057 return (socklen_t) sizeof (address); 00058 } 00059 00060 #endif