diff --git a/libc/include/resolv.h b/libc/include/resolv.h index bb21c2380..5463ce62d 100644 --- a/libc/include/resolv.h +++ b/libc/include/resolv.h @@ -50,6 +50,16 @@ extern struct __res_state *__res_state(void); extern int b64_ntop(u_char const *, size_t, char *, size_t); extern int b64_pton(char const *, u_char *, size_t); + +/* The following declarations should *not* be part of the public C library + * headers, and are also in bionic/libc/private/resolv_iface.h + * + * Use a guard macro to prevent duplication until we modify system/netd + * to use the proper header. + */ +#ifndef _BIONIC_RESOLV_IFACE_FUNCTIONS_DECLARED +#define _BIONIC_RESOLV_IFACE_FUNCTIONS_DECLARED + /* Set name of default interface */ extern void _resolv_set_default_iface(const char* ifname); @@ -65,6 +75,8 @@ extern void _resolv_flush_cache_for_default_iface(); /* flush the cache associated with a certain interface */ extern void _resolv_flush_cache_for_iface(const char* ifname); +#endif /* _BIONIC_RESOLV_IFACE_FUNCTIONS_DECLARED */ + __END_DECLS #endif /* _RESOLV_H_ */ diff --git a/libc/include/time.h b/libc/include/time.h index 4ad4f7bd7..011d16177 100644 --- a/libc/include/time.h +++ b/libc/include/time.h @@ -79,7 +79,17 @@ extern struct tm* gmtime_r(const time_t *timep, struct tm *result); extern char* strptime(const char *buf, const char *fmt, struct tm *tm); extern size_t strftime(char *s, size_t max, const char *format, const struct tm *tm); -/* ANDROID-BEGIN */ +/* The following declarations should not be part of the C library's public + * headers. They are duplicated under bionic/libc/private/bionic_time.h and + * will be removed from here when we modify system/libcutils to use the + * proper header instead. + * + * Use a guard macro to avoid compilation error when both headers are + * included. + */ +#ifndef _BIONIC_STRFTIME_TZ_DECLARED +#define _BIONIC_STRFTIME_TZ_DECLARED + struct strftime_locale { const char * mon[12]; const char * month[12]; @@ -95,7 +105,8 @@ struct strftime_locale { }; extern size_t strftime_tz(char *s, size_t max, const char *format, const struct tm *tm, const struct strftime_locale* lc); -/* ANDROID-END */ + +#endif /* _BIONIC_STRFTIME_TZ_DECLARED */ extern char *ctime(const time_t *timep); extern char *ctime_r(const time_t *timep, char *buf); diff --git a/libc/private/bionic_time.h b/libc/private/bionic_time.h new file mode 100644 index 000000000..ee8225474 --- /dev/null +++ b/libc/private/bionic_time.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#ifndef _BIONIC_TIME_H +#define _BIONIC_TIME_H + +#include + +__BEGIN_DECLS + +#ifndef _BIONIC_STRFTIME_TZ_DECLARED +#define _BIONIC_STRFTIME_TZ_DECLARED + +struct strftime_locale { + const char * mon[12]; + const char * month[12]; + const char * standalone_month[12]; + const char * wday[7]; + const char * weekday[7]; + const char * X_fmt; + const char * x_fmt; + const char * c_fmt; + const char * am; + const char * pm; + const char * date_fmt; +}; + +extern size_t strftime_tz(char *s, size_t max, const char *format, const struct tm *tm, const struct strftime_locale* lc); + +#endif /* _BIONIC_STRFTIME_TZ_DECLARED */ + +__END_DECLS + +#endif /* _BIONIC_TIME_H */ diff --git a/libc/private/resolv_iface.h b/libc/private/resolv_iface.h new file mode 100644 index 000000000..f562687c6 --- /dev/null +++ b/libc/private/resolv_iface.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#ifndef _RESOLV_IFACE_H +#define _RESOLV_IFACE_H + +/* This header contains declarations related to per-interface DNS + * server selection. They are used by system/netd/ and should not be + * exposed by the C library's public NDK headers. + * + * NOTE: contains the same declarations, this will be removed + * when we change system/netd to use this header instead. + */ +#include +#include + +__BEGIN_DECLS + +/* Use a guard macro until we remove the same definitions from */ +#ifndef _BIONIC_RESOLV_IFACE_FUNCTIONS_DECLARED +#define _BIONIC_RESOLV_IFACE_FUNCTIONS_DECLARED + +/* Set name of default interface */ +extern void _resolv_set_default_iface(const char* ifname); + +/* set name servers for an interface */ +extern void _resolv_set_nameservers_for_iface(const char* ifname, char** servers, int numservers); + +/* tell resolver of the address of an interface */ +extern void _resolv_set_addr_of_iface(const char* ifname, struct in_addr* addr); + +/* flush the cache associated with the default interface */ +extern void _resolv_flush_cache_for_default_iface(); + +/* flush the cache associated with a certain interface */ +extern void _resolv_flush_cache_for_iface(const char* ifname); + +#endif /* _BIONIC_RESOLV_IFACE_FUNCTIONS_DECLARED */ + +__END_DECLS + +#endif /* _RESOLV_IFACE_H */