Index: c/address.c |
diff --git a/c/address.c b/c/address.c |
deleted file mode 100644 |
index 7fa5a7d19915d74d83462939bd012d1e8cf893b0..0000000000000000000000000000000000000000 |
--- a/c/address.c |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-/* Licensed to the Apache Software Foundation (ASF) under one or more |
- * contributor license agreements. See the NOTICE file distributed with |
- * this work for additional information regarding copyright ownership. |
- * The ASF licenses this file to You under the Apache License, Version 2.0 |
- * (the "License"); you may not use this file except in compliance with |
- * the License. You may obtain a copy of the License at |
- * |
- * http://www.apache.org/licenses/LICENSE-2.0 |
- * |
- * Unless required by applicable law or agreed to in writing, software |
- * distributed under the License is distributed on an "AS IS" BASIS, |
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
- * See the License for the specific language governing permissions and |
- * limitations under the License. |
- */ |
- |
-/* |
- * |
- * @author Mladen Turk |
- * @version $Id: address.c 1442587 2013-02-05 13:49:48Z rjung $ |
- */ |
- |
-#include "tcn.h" |
- |
-TCN_IMPLEMENT_CALL(jlong, Address, info)(TCN_STDARGS, |
- jstring hostname, |
- jint family, jint port, |
- jint flags, jlong pool) |
-{ |
- apr_pool_t *p = J2P(pool, apr_pool_t *); |
- TCN_ALLOC_CSTRING(hostname); |
- char *sp = NULL; |
- int scope_id = 0; |
- apr_sockaddr_t *sa = NULL; |
- apr_sockaddr_t *sl = NULL; |
- apr_int32_t f; |
- |
- |
- UNREFERENCED(o); |
- GET_S_FAMILY(f, family); |
-#if APR_HAVE_IPV6 |
- if (hostname) { |
- /* XXX: This only works for real scope_id's |
- */ |
- if ((sp = strchr(J2S(hostname), '%'))) { |
- *sp++ = '\0'; |
- scope_id = atoi(sp); |
- } |
- } |
-#endif |
- TCN_THROW_IF_ERR(apr_sockaddr_info_get(&sa, |
- J2S(hostname), f, (apr_port_t)port, |
- (apr_int32_t)flags, p), sa); |
- sl = sa; |
- /* |
- * apr_sockaddr_info_get may return several address so this is not |
- * go to work in some cases (but as least it works for Linux) |
- * XXX: with AP_ENABLE_V4_MAPPED it is going to work otherwise it won't. |
- */ |
-#if APR_HAVE_IPV6 |
- if (hostname == NULL) { |
- /* Try all address using IPV6 one */ |
- while (sl) { |
- if (sl->family == APR_INET6) |
- break; /* Done */ |
- sl = sl->next; |
- } |
- /* If we don't find an IPv6 address, use the original one */ |
- if (sl == NULL) { |
- sl = sa; |
- } |
- } |
- if (sp) { |
- /* Set the provided scope id |
- * APR lack the api for setting this directly so lets presume |
- * the sin6_scope_id is present everywhere |
- */ |
- sl->sa.sin6.sin6_scope_id = scope_id; |
- } |
-#endif |
- |
-cleanup: |
- TCN_FREE_CSTRING(hostname); |
- return P2J(sl); |
-} |
- |
-TCN_IMPLEMENT_CALL(jstring, Address, getnameinfo)(TCN_STDARGS, |
- jlong sa, jint flags) |
-{ |
- apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *); |
- char *hostname; |
- |
- UNREFERENCED(o); |
- if (apr_getnameinfo(&hostname, s, (apr_int32_t)flags) == APR_SUCCESS) |
- return AJP_TO_JSTRING(hostname); |
- else |
- return NULL; |
-} |
- |
-TCN_IMPLEMENT_CALL(jstring, Address, getip)(TCN_STDARGS, jlong sa) |
-{ |
- apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *); |
- char *ipaddr; |
- |
- UNREFERENCED(o); |
- if (apr_sockaddr_ip_get(&ipaddr, s) == APR_SUCCESS) |
- return AJP_TO_JSTRING(ipaddr); |
- else |
- return NULL; |
-} |
- |
-TCN_IMPLEMENT_CALL(jlong, Address, get)(TCN_STDARGS, jint which, |
- jlong sock) |
-{ |
- tcn_socket_t *s = J2P(sock, tcn_socket_t *); |
- apr_sockaddr_t *sa = NULL; |
- |
- UNREFERENCED(o); |
- TCN_THROW_IF_ERR(apr_socket_addr_get(&sa, |
- (apr_interface_e)which, s->sock), sa); |
-cleanup: |
- return P2J(sa); |
-} |
- |
-TCN_IMPLEMENT_CALL(jboolean, Address, equal)(TCN_STDARGS, |
- jlong a, jlong b) |
-{ |
- apr_sockaddr_t *sa = J2P(a, apr_sockaddr_t *); |
- apr_sockaddr_t *sb = J2P(b, apr_sockaddr_t *); |
- |
- UNREFERENCED_STDARGS; |
- return apr_sockaddr_equal(sa, sb) ? JNI_TRUE : JNI_FALSE; |
-} |
- |
-TCN_IMPLEMENT_CALL(jint, Address, getservbyname)(TCN_STDARGS, |
- jlong sa, jstring servname) |
-{ |
- apr_sockaddr_t *s = J2P(sa, apr_sockaddr_t *); |
- TCN_ALLOC_CSTRING(servname); |
- apr_status_t rv; |
- |
- UNREFERENCED(o); |
- rv = apr_getservbyname(s, J2S(servname)); |
- TCN_FREE_CSTRING(servname); |
- return (jint)rv; |
-} |