diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2013-01-27 22:28:07 +0100 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2013-02-08 21:13:00 +0100 |
commit | b9395c8f5796d899c61b1133aa313c89b89f5e0d (patch) | |
tree | 7a3e62906e48b968c4e7b0f27a67f133aeca1f08 | |
parent | 0ae8e560212fbcd0765e2cc48f88259ad821f7ca (diff) |
implement a netgroup_all request
-rw-r--r-- | nslcd.h | 3 | ||||
-rw-r--r-- | nslcd/common.h | 3 | ||||
-rw-r--r-- | nslcd/netgroup.c | 10 | ||||
-rw-r--r-- | nslcd/nslcd.c | 1 | ||||
-rw-r--r-- | pynslcd/netgroup.py | 7 |
5 files changed, 20 insertions, 4 deletions
@@ -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 |