diff options
| author | Max <max.suraev@fairwaves.co> | 2014-10-13 14:54:25 +0200 | 
|---|---|---|
| committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-10-13 21:29:42 +0200 | 
| commit | 862ba65bd64202b5e860a05adf6fdd51c8790591 (patch) | |
| tree | 6e3ced4c1877d228ee486bd4e96132c913b49139 /src | |
| parent | 10dd73cf6afdc0ba237022510ec702a56237d7d7 (diff) | |
Move common socket routine into separate function
Signed-off-by: Max <max.suraev@fairwaves.co>
Diffstat (limited to 'src')
| -rw-r--r-- | src/socket.c | 53 | 
1 files changed, 24 insertions, 29 deletions
diff --git a/src/socket.c b/src/socket.c index 844ebd3b..567939b7 100644 --- a/src/socket.c +++ b/src/socket.c @@ -150,24 +150,16 @@ int osmo_sock_init(uint16_t family, uint16_t type, uint8_t proto,  	return sfd;  } -/*! \brief Initialize a socket and fill \ref osmo_fd +/*! \brief fill \ref osmo_fd for a give sfd   *  \param[out] ofd file descriptor (will be filled in) - *  \param[in] family Address Family like AF_INET, AF_INET6, AF_UNSPEC - *  \param[in] type Socket type like SOCK_DGRAM, SOCK_STREAM - *  \param[in] proto Protocol like IPPROTO_TCP, IPPROTO_UDP - *  \param[in] host remote host name or IP address in string form - *  \param[in] port remote port number in host byte order - *  \param[in] flags flags like \ref OSMO_SOCK_F_CONNECT + *  \param[in] sfd socket file descriptor   * - * This function creates (and optionall binds/connects) a socket using - * \ref osmo_sock_init, but also fills the \a ofd structure. + * This function fills the \a ofd structure.   */ -int osmo_sock_init_ofd(struct osmo_fd *ofd, int family, int type, int proto, -			const char *host, uint16_t port, unsigned int flags) +static inline int osmo_fd_init_ofd(struct osmo_fd *ofd, int sfd)  { -	int sfd, rc; +	int rc; -	sfd = osmo_sock_init(family, type, proto, host, port, flags);  	if (sfd < 0)  		return sfd; @@ -183,6 +175,24 @@ int osmo_sock_init_ofd(struct osmo_fd *ofd, int family, int type, int proto,  	return sfd;  } +/*! \brief Initialize a socket and fill \ref osmo_fd + *  \param[out] ofd file descriptor (will be filled in) + *  \param[in] family Address Family like AF_INET, AF_INET6, AF_UNSPEC + *  \param[in] type Socket type like SOCK_DGRAM, SOCK_STREAM + *  \param[in] proto Protocol like IPPROTO_TCP, IPPROTO_UDP + *  \param[in] host remote host name or IP address in string form + *  \param[in] port remote port number in host byte order + *  \param[in] flags flags like \ref OSMO_SOCK_F_CONNECT + * + * This function creates (and optionall binds/connects) a socket using + * \ref osmo_sock_init, but also fills the \a ofd structure. + */ +int osmo_sock_init_ofd(struct osmo_fd *ofd, int family, int type, int proto, +			const char *host, uint16_t port, unsigned int flags) +{ +	return osmo_fd_init_ofd(ofd, osmo_sock_init(family, type, proto, host, port, flags)); +} +  /*! \brief Initialize a socket and fill \ref sockaddr   *  \param[out] ss socket address (will be filled in)   *  \param[in] type Socket type like SOCK_DGRAM, SOCK_STREAM @@ -362,22 +372,7 @@ err:  int osmo_sock_unix_init_ofd(struct osmo_fd *ofd, uint16_t type, uint8_t proto,  			    const char *socket_path, unsigned int flags)  { -	int sfd, rc; - -	sfd = osmo_sock_unix_init(type, proto, socket_path, flags); -	if (sfd < 0) -		return sfd; - -	ofd->fd = sfd; -	ofd->when = BSC_FD_READ; - -	rc = osmo_fd_register(ofd); -	if (rc < 0) { -		close(sfd); -		return rc; -	} - -	return sfd; +	return osmo_fd_init_ofd(ofd, osmo_sock_unix_init(type, proto, socket_path, flags));  }  #endif /* HAVE_SYS_SOCKET_H */  | 
