chiark / gitweb /
update nss-myhostname
authorlennart <lennart@bf9bc1cc-28ce-0310-abfb-9041aa761afb>
Sat, 19 Nov 2005 18:50:07 +0000 (18:50 +0000)
committerlennart <lennart@bf9bc1cc-28ce-0310-abfb-9041aa761afb>
Sat, 19 Nov 2005 18:50:07 +0000 (18:50 +0000)
git-svn-id: svn+ssh://rootserver/home/lennart/svn/private/projects/nss-myhostname@84 bf9bc1cc-28ce-0310-abfb-9041aa761afb

Makefile
nss-myhostname.c

index 9301fab9f201530d1243ce24ef403e5f022d1927..6b129dfc9b78f3c1b590efbd7387def0c35c1e42 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,11 @@
 CFLAGS=-Wall -pipe -W -O2 -Wextra -Wno-unused-parameter
 
 libnss_myhostname.so.2: nss-myhostname.o
-       $(CC) -shared -o $@ -Wl,-soname,$@ $^
+       $(CC) $(CFLAGS) -shared -o $@ -Wl,-soname,$@ $^
        strip $@
 
 install:
-       install -D -g root -m 644 -o root -s -v libnss_myhostname.so.2 /usr/lib/libnss_myhostname.so.2
+       install -D -g root -m 644 -o root -v libnss_myhostname.so.2 /lib/libnss_myhostname.so.2
 
 clean:
        rm -f *.o *~ libnss_myhostname.so.2
index a459fd0ea0e6fa96db476dbb7d849bd727f168de..22eddd8f2a8f78e80857b8d62fd407ad5c73d015 100644 (file)
@@ -27,7 +27,7 @@
 #include <assert.h>
 #include <unistd.h>
 
-#define LOCALADDRESS (htonl(0x7F0002))
+#define LOCALADDRESS (htonl(0x7F000002))
 
 static enum nss_status fill_in_hostent(
     const char *hn,
@@ -73,7 +73,7 @@ static enum nss_status fill_in_hostent(
     return NSS_STATUS_SUCCESS;
 }
 
-enum nss_status _nss_hostname_gethostbyname2_r(
+enum nss_status _nss_myhostname_gethostbyname2_r(
     const char *name,
     int af,
     struct hostent * result,
@@ -113,7 +113,7 @@ enum nss_status _nss_hostname_gethostbyname2_r(
     return fill_in_hostent(hn, result, buffer, buflen, errnop, h_errnop);
 }
 
-enum nss_status _nss_hostname_gethostbyname_r (
+enum nss_status _nss_myhostname_gethostbyname_r (
     const char *name,
     struct hostent *result,
     char *buffer,
@@ -121,7 +121,7 @@ enum nss_status _nss_hostname_gethostbyname_r (
     int *errnop,
     int *h_errnop) {
 
-    return _nss_hostname_gethostbyname2_r(
+    return _nss_myhostname_gethostbyname2_r(
         name,
         AF_UNSPEC,
         result,
@@ -131,7 +131,7 @@ enum nss_status _nss_hostname_gethostbyname_r (
         h_errnop);
 }
 
-enum nss_status _nss_hostname_gethostbyaddr_r(
+enum nss_status _nss_myhostname_gethostbyaddr_r(
     const void* addr,
     int len,
     int af,
@@ -146,7 +146,7 @@ enum nss_status _nss_hostname_gethostbyaddr_r(
     assert(errnop);
     assert(h_errnop);
 
-    if (af != AF_INET || len != 4 || (*(uint32_t*) addr) != LOCALADDRESS) {
+    if (af != AF_INET || len < 4 || (*(uint32_t*) addr) != LOCALADDRESS) {
         *errnop = ENOENT;
         *h_errnop = HOST_NOT_FOUND;
         return NSS_STATUS_NOTFOUND;