| 101 | } |
| 102 | |
| 103 | int net_connect(char *server, int port) |
| 104 | { |
| 105 | int fd; |
| 106 | struct sockaddr_in sin; |
| 107 | |
| 108 | memset(&sin, 0, sizeof(struct sockaddr_in)); |
| 109 | sin.sin_family = AF_INET; |
| 110 | sin.sin_port = htons(port); |
| 111 | |
| 112 | if (net_resolve_ipv4(server, &sin.sin_addr) < 0) |
| 113 | return -1; |
| 114 | |
| 115 | if ((fd = socket(PF_INET, SOCK_STREAM, 0)) < 0) { |
| 116 | LM_ERR("socket() failed: %s\n", strerror(errno)); |
| 117 | return -1; |
| 118 | } |
| 119 | |
| 120 | LM_DBG("connecting to %s:%d...\n", inet_ntoa(sin.sin_addr), port); |
| 121 | |
| 122 | if (connect(fd, (struct sockaddr *) &sin, sizeof(struct sockaddr_in)) < 0) { |
| 123 | LM_ERR("connect() failed: %s\n", strerror(errno)); |
| 124 | close(fd); |
| 125 | return -1; |
| 126 | } |
| 127 | |
| 128 | LM_DBG("connected to %s:%d...\n", inet_ntoa(sin.sin_addr), port); |
| 129 | return fd; |
| 130 | } |
| 131 | |
| 132 | int net_send(int fd, const char *buf, int len) |
| 133 | { |
no test coverage detected