コード例 #1
0
ファイル: tcp_listener.c プロジェクト: nohal/rtl-ais
// ------------------------------------------------------------
// Accept call
// ------------------------------------------------------------
int accept_c(P_TCP_SOCK p_tcp_sock) {

	int optval = 1; // Keep alive
	socklen_t optlen = sizeof(optval);
	socklen_t clilen = sizeof(p_tcp_sock->cli_addr);

	/* wait for connection on local port.*/
	if ((p_tcp_sock->sock = accept(sockfd, (struct sockaddr*) &p_tcp_sock->cli_addr, &clilen)) < 0) {
		fprintf(stderr, "Failed to accept socket!, error = %d\n", errno);
		if( errno == 22) return -1;
		return error_category(errno);
	}

	if (setsockopt(p_tcp_sock->sock, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
		fprintf(stderr, "Failed to set option keepalive!, error = %d\n", errno);
		return error_category(errno);
	}

	sprintf(p_tcp_sock->from_ip, "%.*s", 19, inet_ntoa(p_tcp_sock->cli_addr.sin_addr));
	if (_debug) {
		fprintf(stdout, "connect from %s\n", p_tcp_sock->from_ip);
	}

	p_tcp_sock->sesion_active = 1;

	return 0;
}
コード例 #2
0
ファイル: jsdati_decoder.hpp プロジェクト: AimuTran/avbot
inline boost::system::error_code make_error_code(errc_t e)
{
	return boost::system::error_code(static_cast<int>(e), error_category());
}
コード例 #3
0
 std::error_condition make_error_condition(error_condition_t e)
 {
     return std::error_condition(static_cast<int>(e), error_category());
 }
コード例 #4
0
 std::error_code make_error_code(error_code_t e)
 {
     return std::error_code(static_cast<int>(e), error_category());
 }