set socketaddr structure information by IP address and port */
| 639 | #ifdef AT_USING_SOCKET_SERVER |
| 640 | /* set socketaddr structure information by IP address and port */ |
| 641 | static int ipaddr_port_to_socketaddr(struct sockaddr *sockaddr, ip_addr_t *addr, uint16_t *port) |
| 642 | { |
| 643 | struct sockaddr_in* sin = (struct sockaddr_in*) (void *) sockaddr; |
| 644 | |
| 645 | #if NETDEV_IPV4 && NETDEV_IPV6 |
| 646 | sin->sin_addr.s_addr = addr->u_addr.ip4.addr; |
| 647 | #elif NETDEV_IPV4 |
| 648 | sin->sin_addr.s_addr = addr->addr; |
| 649 | #elif NETDEV_IPV6 |
| 650 | #error "not support IPV6." |
| 651 | #endif /* NETDEV_IPV4 && NETDEV_IPV6 */ |
| 652 | |
| 653 | sin->sin_port = (uint16_t) HTONS_PORT(*port); |
| 654 | |
| 655 | return 0; |
| 656 | } |
| 657 | #endif |
| 658 | |
| 659 | int at_bind(int socket, const struct sockaddr *name, socklen_t namelen) |