summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2013-01-27 22:28:07 +0100
committerArthur de Jong <arthur@arthurdejong.org>2013-02-08 21:13:00 +0100
commitb9395c8f5796d899c61b1133aa313c89b89f5e0d (patch)
tree7a3e62906e48b968c4e7b0f27a67f133aeca1f08
parent0ae8e560212fbcd0765e2cc48f88259ad821f7ca (diff)
implement a netgroup_all request
-rw-r--r--nslcd.h3
-rw-r--r--nslcd/common.h3
-rw-r--r--nslcd/netgroup.c10
-rw-r--r--nslcd/nslcd.c1
-rw-r--r--pynslcd/netgroup.py7
5 files changed, 20 insertions, 4 deletions
diff --git a/nslcd.h b/nslcd.h
index 21120e2..24b1f14 100644
--- a/nslcd.h
+++ b/nslcd.h
@@ -2,7 +2,7 @@
nslcd.h - file describing client/server protocol
Copyright (C) 2006 West Consulting
- Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012 Arthur de Jong
+ Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012, 2013 Arthur de Jong
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -131,6 +131,7 @@
INT32 NSLCD_NETGROUP_TYPE_END
*/
#define NSLCD_ACTION_NETGROUP_BYNAME 0x00060001
+#define NSLCD_ACTION_NETGROUP_ALL 0x00060008
#define NSLCD_NETGROUP_TYPE_NETGROUP 1
#define NSLCD_NETGROUP_TYPE_TRIPLE 2
#define NSLCD_NETGROUP_TYPE_END 3
diff --git a/nslcd/common.h b/nslcd/common.h
index de75276..5167b95 100644
--- a/nslcd/common.h
+++ b/nslcd/common.h
@@ -3,7 +3,7 @@
This file is part of the nss-pam-ldapd library.
Copyright (C) 2006 West Consulting
- Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arthur de Jong
+ Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Arthur de Jong
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -209,6 +209,7 @@ int nslcd_host_byname(TFILE *fp, MYLDAP_SESSION *session);
int nslcd_host_byaddr(TFILE *fp, MYLDAP_SESSION *session);
int nslcd_host_all(TFILE *fp, MYLDAP_SESSION *session);
int nslcd_netgroup_byname(TFILE *fp, MYLDAP_SESSION *session);
+int nslcd_netgroup_all(TFILE *fp, MYLDAP_SESSION *session);
int nslcd_network_byname(TFILE *fp, MYLDAP_SESSION *session);
int nslcd_network_byaddr(TFILE *fp, MYLDAP_SESSION *session);
int nslcd_network_all(TFILE *fp, MYLDAP_SESSION *session);
diff --git a/nslcd/netgroup.c b/nslcd/netgroup.c
index ecbc843..455eab1 100644
--- a/nslcd/netgroup.c
+++ b/nslcd/netgroup.c
@@ -5,7 +5,7 @@
Copyright (C) 1997-2005 Luke Howard
Copyright (C) 2006 West Consulting
- Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012 Arthur de Jong
+ Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012, 2013 Arthur de Jong
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -244,3 +244,11 @@ NSLCD_HANDLE(
mkfilter_netgroup_byname(name, filter, sizeof(filter)),
write_netgroup(fp, entry, name)
)
+
+NSLCD_HANDLE(
+ netgroup, all, NSLCD_ACTION_NETGROUP_ALL,
+ const char *filter;
+ log_setrequest("netgroup(all)");,
+ (filter = netgroup_filter, 0),
+ write_netgroup(fp, entry, NULL)
+)
diff --git a/nslcd/nslcd.c b/nslcd/nslcd.c
index 03d96f7..0356f61 100644
--- a/nslcd/nslcd.c
+++ b/nslcd/nslcd.c
@@ -433,6 +433,7 @@ static void handleconnection(int sock, MYLDAP_SESSION *session)
case NSLCD_ACTION_HOST_BYADDR: (void)nslcd_host_byaddr(fp, session); break;
case NSLCD_ACTION_HOST_ALL: (void)nslcd_host_all(fp, session); break;
case NSLCD_ACTION_NETGROUP_BYNAME: (void)nslcd_netgroup_byname(fp, session); break;
+ case NSLCD_ACTION_NETGROUP_ALL: (void)nslcd_netgroup_all(fp, session); break;
case NSLCD_ACTION_NETWORK_BYNAME: (void)nslcd_network_byname(fp, session); break;
case NSLCD_ACTION_NETWORK_BYADDR: (void)nslcd_network_byaddr(fp, session); break;
case NSLCD_ACTION_NETWORK_ALL: (void)nslcd_network_all(fp, session); break;
diff --git a/pynslcd/netgroup.py b/pynslcd/netgroup.py
index ee0b120..aa6d79a 100644
--- a/pynslcd/netgroup.py
+++ b/pynslcd/netgroup.py
@@ -1,7 +1,7 @@
# netgroup.py - lookup functions for netgroups
#
-# Copyright (C) 2011, 2012 Arthur de Jong
+# Copyright (C) 2011, 2012, 2013 Arthur de Jong
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -75,3 +75,8 @@ class NetgroupByNameRequest(NetgroupRequest):
def read_parameters(self, fp):
return dict(cn=fp.read_string())
+
+
+class NetgroupAllRequest(NetgroupRequest):
+
+ action = constants.NSLCD_ACTION_NETGROUP_ALL