| 236 | |
| 237 | |
| 238 | const char *Socket::remoteName(void) |
| 239 | { |
| 240 | SockAddr remoteaddr; |
| 241 | SOCKLEN_T addrlen = sizeof(struct sockaddr_storage); |
| 242 | const char *remoteName; |
| 243 | |
| 244 | TRY_SOCK(getpeername(sd, &remoteaddr.u.sa, &addrlen)); |
| 245 | if(remoteaddr.u.ss.ss_family == AF_INET6) |
| 246 | remoteName = inet_ntop(remoteaddr.u.ss.ss_family, |
| 247 | &remoteaddr.u.sin6.sin6_addr, remoteNameBuf, INET6_ADDRSTRLEN); |
| 248 | else |
| 249 | remoteName = inet_ntop(remoteaddr.u.ss.ss_family, |
| 250 | &remoteaddr.u.sin.sin_addr, remoteNameBuf, INET6_ADDRSTRLEN); |
| 251 | |
| 252 | return remoteName ? remoteName : (char *)"Unknown"; |
| 253 | } |
| 254 | |
| 255 | |
| 256 | void Socket::send(char *buf, int len) |