Ejemplo n.º 1
0
mpls_return_enum mpls_socket_tcp_connect(mpls_socket_mgr_handle handle,
  mpls_socket_handle socket, const mpls_dest * to)
{
  struct sockaddr addr, *iaddr = NULL;

  if (to != NULL) {
    _mpls_dest2sockaddr(to, &addr);
    iaddr = &addr;
  } else {
    iaddr = NULL;
  }

  if (connect(socket->fd, iaddr, sizeof(struct sockaddr)) < 0) {
    if (errno == EINPROGRESS) {
      return MPLS_NON_BLOCKING;
    }

    if (errno == EALREADY) {
      return MPLS_SUCCESS;
    }
    perror("connect");
    return MPLS_FAILURE;
  }
  return MPLS_SUCCESS;
}
Ejemplo n.º 2
0
int mpls_socket_udp_sendto(mpls_socket_mgr_handle handle, mpls_socket_handle socket, uint8_t *buffer, int size, const mpls_dest *to)
{
	struct sockaddr addr;

	_mpls_dest2sockaddr(to, &addr);

	return sendto(socket->fd, buffer, size, 0, &addr, sizeof(struct sockaddr));
}
Ejemplo n.º 3
0
mpls_return_enum mpls_socket_bind(mpls_socket_mgr_handle handle, mpls_socket_handle socket, const mpls_dest *local)
{
	struct sockaddr addr;

	_mpls_dest2sockaddr(local, &addr);

	if(bind(socket->fd, &addr, sizeof(struct sockaddr_in)) < 0) {
		perror("bind");
		return MPLS_FAILURE;
	}

	return MPLS_SUCCESS;
}
Ejemplo n.º 4
0
mpls_return_enum mpls_socket_tcp_connect(mpls_socket_mgr_handle handle, mpls_socket_handle socket, const mpls_dest *to)
{
	struct sockaddr addr;

	if(!to)
		return MPLS_FAILURE;

	_mpls_dest2sockaddr(to, &addr);

	if(connect(socket->fd, &addr, sizeof(struct sockaddr)) < 0) {
		if(errno == EINPROGRESS)
			return MPLS_NON_BLOCKING;

		if(errno == EALREADY)
			return MPLS_SUCCESS;

		perror("connect");
		return MPLS_FAILURE;
	}

	return MPLS_SUCCESS;
}