mbed-os

Dependents:   cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more

Committer:
be_bryan
Date:
Mon Dec 11 17:54:04 2017 +0000
Revision:
0:b74591d5ab33
motor ++

Who changed what in which revision?

UserRevisionLine numberNew contents of line
be_bryan 0:b74591d5ab33 1
be_bryan 0:b74591d5ab33 2 /** \addtogroup netsocket */
be_bryan 0:b74591d5ab33 3 /** @{*/
be_bryan 0:b74591d5ab33 4 /* nsapi_dns.h
be_bryan 0:b74591d5ab33 5 * Original work Copyright (c) 2013 Henry Leinen (henry[dot]leinen [at] online [dot] de)
be_bryan 0:b74591d5ab33 6 * Modified work Copyright (c) 2015 ARM Limited
be_bryan 0:b74591d5ab33 7 *
be_bryan 0:b74591d5ab33 8 * Licensed under the Apache License, Version 2.0 (the "License");
be_bryan 0:b74591d5ab33 9 * you may not use this file except in compliance with the License.
be_bryan 0:b74591d5ab33 10 * You may obtain a copy of the License at
be_bryan 0:b74591d5ab33 11 *
be_bryan 0:b74591d5ab33 12 * http://www.apache.org/licenses/LICENSE-2.0
be_bryan 0:b74591d5ab33 13 *
be_bryan 0:b74591d5ab33 14 * Unless required by applicable law or agreed to in writing, software
be_bryan 0:b74591d5ab33 15 * distributed under the License is distributed on an "AS IS" BASIS,
be_bryan 0:b74591d5ab33 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
be_bryan 0:b74591d5ab33 17 * See the License for the specific language governing permissions and
be_bryan 0:b74591d5ab33 18 * limitations under the License.
be_bryan 0:b74591d5ab33 19 */
be_bryan 0:b74591d5ab33 20 #ifndef NSAPI_DNS_H
be_bryan 0:b74591d5ab33 21 #define NSAPI_DNS_H
be_bryan 0:b74591d5ab33 22
be_bryan 0:b74591d5ab33 23 #include "nsapi_types.h"
be_bryan 0:b74591d5ab33 24 #ifdef __cplusplus
be_bryan 0:b74591d5ab33 25 #include "netsocket/NetworkStack.h"
be_bryan 0:b74591d5ab33 26 #endif
be_bryan 0:b74591d5ab33 27
be_bryan 0:b74591d5ab33 28 #ifndef __cplusplus
be_bryan 0:b74591d5ab33 29
be_bryan 0:b74591d5ab33 30
be_bryan 0:b74591d5ab33 31 /** Query a domain name server for an IP address of a given hostname
be_bryan 0:b74591d5ab33 32 *
be_bryan 0:b74591d5ab33 33 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 34 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 35 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 36 * @param version IP version to resolve
be_bryan 0:b74591d5ab33 37 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 38 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 39 */
be_bryan 0:b74591d5ab33 40 nsapi_error_t nsapi_dns_query(nsapi_stack_t *stack, const char *host,
be_bryan 0:b74591d5ab33 41 nsapi_addr_t *addr, nsapi_version_t version);
be_bryan 0:b74591d5ab33 42
be_bryan 0:b74591d5ab33 43 /** Query a domain name server for multiple IP address of a given hostname
be_bryan 0:b74591d5ab33 44 *
be_bryan 0:b74591d5ab33 45 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 46 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 47 * @param addr Array for the host addresses
be_bryan 0:b74591d5ab33 48 * @param addr_count Number of addresses allocated in the array
be_bryan 0:b74591d5ab33 49 * @param version IP version to resolve
be_bryan 0:b74591d5ab33 50 * @return Number of addresses found on success, negative error code on failure
be_bryan 0:b74591d5ab33 51 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 52 */
be_bryan 0:b74591d5ab33 53 nsapi_size_or_error_t nsapi_dns_query_multiple(nsapi_stack_t *stack, const char *host,
be_bryan 0:b74591d5ab33 54 nsapi_addr_t *addr, nsapi_size_t addr_count, nsapi_version_t version);
be_bryan 0:b74591d5ab33 55
be_bryan 0:b74591d5ab33 56 /** Add a domain name server to list of servers to query
be_bryan 0:b74591d5ab33 57 *
be_bryan 0:b74591d5ab33 58 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 59 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 60 */
be_bryan 0:b74591d5ab33 61 nsapi_error_t nsapi_dns_add_server(nsapi_addr_t addr);
be_bryan 0:b74591d5ab33 62
be_bryan 0:b74591d5ab33 63
be_bryan 0:b74591d5ab33 64 #else
be_bryan 0:b74591d5ab33 65
be_bryan 0:b74591d5ab33 66
be_bryan 0:b74591d5ab33 67 /** Query a domain name server for an IP address of a given hostname
be_bryan 0:b74591d5ab33 68 *
be_bryan 0:b74591d5ab33 69 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 70 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 71 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 72 * @param version IP version to resolve (defaults to NSAPI_IPv4)
be_bryan 0:b74591d5ab33 73 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 74 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 75 */
be_bryan 0:b74591d5ab33 76 nsapi_error_t nsapi_dns_query(NetworkStack *stack, const char *host,
be_bryan 0:b74591d5ab33 77 SocketAddress *addr, nsapi_version_t version = NSAPI_IPv4);
be_bryan 0:b74591d5ab33 78
be_bryan 0:b74591d5ab33 79 /** Query a domain name server for an IP address of a given hostname
be_bryan 0:b74591d5ab33 80 *
be_bryan 0:b74591d5ab33 81 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 82 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 83 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 84 * @param version IP version to resolve (defaults to NSAPI_IPv4)
be_bryan 0:b74591d5ab33 85 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 86 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 87 */
be_bryan 0:b74591d5ab33 88 extern "C" nsapi_error_t nsapi_dns_query(nsapi_stack_t *stack, const char *host,
be_bryan 0:b74591d5ab33 89 nsapi_addr_t *addr, nsapi_version_t version = NSAPI_IPv4);
be_bryan 0:b74591d5ab33 90
be_bryan 0:b74591d5ab33 91 /** Query a domain name server for an IP address of a given hostname
be_bryan 0:b74591d5ab33 92 *
be_bryan 0:b74591d5ab33 93 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 94 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 95 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 96 * @param version IP version to resolve (defaults to NSAPI_IPv4)
be_bryan 0:b74591d5ab33 97 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 98 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 99 */
be_bryan 0:b74591d5ab33 100 template <typename S>
be_bryan 0:b74591d5ab33 101 nsapi_error_t nsapi_dns_query(S *stack, const char *host,
be_bryan 0:b74591d5ab33 102 SocketAddress *addr, nsapi_version_t version = NSAPI_IPv4)
be_bryan 0:b74591d5ab33 103 {
be_bryan 0:b74591d5ab33 104 return nsapi_dns_query(nsapi_create_stack(stack), host, addr, version);
be_bryan 0:b74591d5ab33 105 }
be_bryan 0:b74591d5ab33 106
be_bryan 0:b74591d5ab33 107 /** Query a domain name server for multiple IP address of a given hostname
be_bryan 0:b74591d5ab33 108 *
be_bryan 0:b74591d5ab33 109 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 110 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 111 * @param addr Array for the host addresses
be_bryan 0:b74591d5ab33 112 * @param addr_count Number of addresses allocated in the array
be_bryan 0:b74591d5ab33 113 * @param version IP version to resolve (defaults to NSAPI_IPv4)
be_bryan 0:b74591d5ab33 114 * @return Number of addresses found on success, negative error code on failure
be_bryan 0:b74591d5ab33 115 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 116 */
be_bryan 0:b74591d5ab33 117 nsapi_size_or_error_t nsapi_dns_query_multiple(NetworkStack *stack, const char *host,
be_bryan 0:b74591d5ab33 118 SocketAddress *addr, nsapi_size_t addr_count, nsapi_version_t version = NSAPI_IPv4);
be_bryan 0:b74591d5ab33 119
be_bryan 0:b74591d5ab33 120 /** Query a domain name server for multiple IP address of a given hostname
be_bryan 0:b74591d5ab33 121 *
be_bryan 0:b74591d5ab33 122 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 123 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 124 * @param addr Array for the host addresses
be_bryan 0:b74591d5ab33 125 * @param addr_count Number of addresses allocated in the array
be_bryan 0:b74591d5ab33 126 * @param version IP version to resolve (defaults to NSAPI_IPv4)
be_bryan 0:b74591d5ab33 127 * @return Number of addresses found on success, negative error code on failure
be_bryan 0:b74591d5ab33 128 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 129 */
be_bryan 0:b74591d5ab33 130 extern "C" nsapi_size_or_error_t nsapi_dns_query_multiple(nsapi_stack_t *stack, const char *host,
be_bryan 0:b74591d5ab33 131 nsapi_addr_t *addr, nsapi_size_t addr_count, nsapi_version_t version = NSAPI_IPv4);
be_bryan 0:b74591d5ab33 132
be_bryan 0:b74591d5ab33 133 /** Query a domain name server for multiple IP address of a given hostname
be_bryan 0:b74591d5ab33 134 *
be_bryan 0:b74591d5ab33 135 * @param stack Network stack as target for DNS query
be_bryan 0:b74591d5ab33 136 * @param host Hostname to resolve
be_bryan 0:b74591d5ab33 137 * @param addr Array for the host addresses
be_bryan 0:b74591d5ab33 138 * @param addr_count Number of addresses allocated in the array
be_bryan 0:b74591d5ab33 139 * @param version IP version to resolve (defaults to NSAPI_IPv4)
be_bryan 0:b74591d5ab33 140 * @return Number of addresses found on success, negative error code on failure
be_bryan 0:b74591d5ab33 141 * NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
be_bryan 0:b74591d5ab33 142 */
be_bryan 0:b74591d5ab33 143 template <typename S>
be_bryan 0:b74591d5ab33 144 nsapi_size_or_error_t nsapi_dns_query_multiple(S *stack, const char *host,
be_bryan 0:b74591d5ab33 145 SocketAddress *addr, nsapi_size_t addr_count, nsapi_version_t version = NSAPI_IPv4)
be_bryan 0:b74591d5ab33 146 {
be_bryan 0:b74591d5ab33 147 return nsapi_dns_query_multiple(nsapi_create_stack(stack),
be_bryan 0:b74591d5ab33 148 host, addr, addr_count, version);
be_bryan 0:b74591d5ab33 149 }
be_bryan 0:b74591d5ab33 150
be_bryan 0:b74591d5ab33 151 /** Add a domain name server to list of servers to query
be_bryan 0:b74591d5ab33 152 *
be_bryan 0:b74591d5ab33 153 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 154 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 155 */
be_bryan 0:b74591d5ab33 156 extern "C" nsapi_error_t nsapi_dns_add_server(nsapi_addr_t addr);
be_bryan 0:b74591d5ab33 157
be_bryan 0:b74591d5ab33 158 /** Add a domain name server to list of servers to query
be_bryan 0:b74591d5ab33 159 *
be_bryan 0:b74591d5ab33 160 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 161 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 162 */
be_bryan 0:b74591d5ab33 163 static inline nsapi_error_t nsapi_dns_add_server(const SocketAddress &address)
be_bryan 0:b74591d5ab33 164 {
be_bryan 0:b74591d5ab33 165 return nsapi_dns_add_server(address.get_addr());
be_bryan 0:b74591d5ab33 166 }
be_bryan 0:b74591d5ab33 167
be_bryan 0:b74591d5ab33 168 /** Add a domain name server to list of servers to query
be_bryan 0:b74591d5ab33 169 *
be_bryan 0:b74591d5ab33 170 * @param addr Destination for the host address
be_bryan 0:b74591d5ab33 171 * @return 0 on success, negative error code on failure
be_bryan 0:b74591d5ab33 172 */
be_bryan 0:b74591d5ab33 173 static inline nsapi_error_t nsapi_dns_add_server(const char *address)
be_bryan 0:b74591d5ab33 174 {
be_bryan 0:b74591d5ab33 175 return nsapi_dns_add_server(SocketAddress(address));
be_bryan 0:b74591d5ab33 176 }
be_bryan 0:b74591d5ab33 177
be_bryan 0:b74591d5ab33 178
be_bryan 0:b74591d5ab33 179 #endif
be_bryan 0:b74591d5ab33 180
be_bryan 0:b74591d5ab33 181 #endif
be_bryan 0:b74591d5ab33 182
be_bryan 0:b74591d5ab33 183 /** @}*/