samba-2.2.8a-restrict.patch
andree@luch.eu.org
andree w luch.eu.org
Pią, 5 Wrz 2003, 01:21:57 CEST
Patch ten dziala na miasteczku agh, ostatnio zainstalowalem go u siebie i
rowniez sprawuje sie bardzo dobrze. Mysle ze mozna dolaczyc go do samby w
pld. Jezeli nie ma sprzeciwow to prosilbym o wrzucenie moich poprawek do
cvs :)
pozdrawiam
Andree
-------------- następna część ---------
diff -urN samba-2.2.8/source/Makefile.in samba-2.2.8-restrict/source/Makefile.in
--- samba-2.2.8/source/Makefile.in Fri Feb 28 16:56:06 2003
+++ samba-2.2.8-restrict/source/Makefile.in Thu Mar 27 10:11:20 2003
@@ -52,6 +52,7 @@
# or in smb.conf (see smb.conf(5))
LOGFILEBASE = @logfilebase@
CONFIGFILE = $(CONFIGDIR)/smb.conf
+GROUPSFILE = $(CONFIGDIR)/smb.groups
LMHOSTSFILE = $(CONFIGDIR)/lmhosts
DRIVERFILE = $(CONFIGDIR)/printers.def
PASSWD_PROGRAM = @passwd_program@
@@ -84,7 +85,7 @@
PASSWD_FLAGS = -DPASSWD_PROGRAM=\"$(PASSWD_PROGRAM)\" -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" -DTDB_PASSWD_FILE=\"$(TDB_PASSWD_FILE)\"
FLAGS1 = $(CFLAGS) @FLAGS1@ -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx -I$(srcdir)/smbwrapper $(CPPFLAGS) -DLOGFILEBASE=\"$(LOGFILEBASE)\"
-FLAGS2 = -DCONFIGFILE=\"$(CONFIGFILE)\" -DLMHOSTSFILE=\"$(LMHOSTSFILE)\"
+FLAGS2 = -DCONFIGFILE=\"$(CONFIGFILE)\" -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" -DGROUPSFILE=\"$(GROUPSFILE)\"
FLAGS3 = -DSWATDIR=\"$(SWATDIR)\" -DSBINDIR=\"$(SBINDIR)\" -DLOCKDIR=\"$(LOCKDIR)\" -DCODEPAGEDIR=\"$(CODEPAGEDIR)\"
FLAGS4 = -DDRIVERFILE=\"$(DRIVERFILE)\" -DBINDIR=\"$(BINDIR)\" -DPIDDIR=\"$(PIDDIR)\" -DLIBDIR=\"$(LIBDIR)\"
FLAGS5 = $(FLAGS1) $(FLAGS2) $(FLAGS3) $(FLAGS4) -DHAVE_INCLUDES_H
@@ -221,7 +222,7 @@
nmbd/nmbd_become_lmb.o nmbd/nmbd_browserdb.o \
nmbd/nmbd_browsesync.o nmbd/nmbd_elections.o \
nmbd/nmbd_incomingdgrams.o nmbd/nmbd_incomingrequests.o \
- nmbd/nmbd_lmhosts.o nmbd/nmbd_logonnames.o nmbd/nmbd_mynames.o \
+ nmbd/nmbd_lmhosts.o nmbd/nmbd_restrict.o nmbd/nmbd_logonnames.o nmbd/nmbd_mynames.o \
nmbd/nmbd_namelistdb.o nmbd/nmbd_namequery.o \
nmbd/nmbd_nameregister.o nmbd/nmbd_namerelease.o \
nmbd/nmbd_nodestatus.o nmbd/nmbd_packets.o \
diff -urN samba-2.2.8/source/include/nameserv.h samba-2.2.8-restrict/source/include/nameserv.h
--- samba-2.2.8/source/include/nameserv.h Sat May 18 15:40:11 2002
+++ samba-2.2.8-restrict/source/include/nameserv.h Thu Mar 27 10:11:20 2003
@@ -578,4 +578,13 @@
/* To be removed. */
enum state_type { TEST };
+
+
+// Maximum size of restricted groups.
+#define MAX_RESTRICTED_GROUP 100
+
+int size_restricted_group;
+char *restricted_group[MAX_RESTRICTED_GROUP];
+
+
#endif /* _NAMESERV_H_ */
diff -urN samba-2.2.8/source/nmbd/nmbd.c samba-2.2.8-restrict/source/nmbd/nmbd.c
--- samba-2.2.8/source/nmbd/nmbd.c Fri Mar 14 22:34:48 2003
+++ samba-2.2.8-restrict/source/nmbd/nmbd.c Thu Mar 27 10:11:21 2003
@@ -23,6 +23,8 @@
14 jan 96: lkcl w pires.co.uk
added multiple workgroup domain master support
+ 18 Feb 2001: Pawel Dabrowski (ving w icslab.agh.edu.pl)
+ added restricted groups in GROUPSFILE
*/
#include "includes.h"
@@ -881,6 +883,8 @@
DEBUG(3,("Loaded hosts file\n"));
}
+ load_smb_restricted_group_file();
+
/* If we are acting as a WINS server, initialise data structures. */
if( !initialise_wins() )
{
diff -urN samba-2.2.8/source/nmbd/nmbd_restrict.c samba-2.2.8-restrict/source/nmbd/nmbd_restrict.c
--- samba-2.2.8/source/nmbd/nmbd_restrict.c Thu Jan 1 01:00:00 1970
+++ samba-2.2.8-restrict/source/nmbd/nmbd_restrict.c Thu Mar 27 10:11:21 2003
@@ -0,0 +1,77 @@
+/*
+ Unix SMB/Netbios implementation.
+ Version 1.9.
+ NBT netbios routines and daemon - version 2
+ Copyright (C) Jeremy Allison 1994-1998
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ Revision History:
+
+ Restricted groups.
+
+ Added by Ving 2001.
+
+*/
+
+#include "includes.h"
+
+extern int DEBUGLEVEL;
+
+
+/****************************************************************************
+Load a smb.groups file.
+****************************************************************************/
+int load_smb_restricted_group_file()
+{
+ char s[1000]; // it must be greater than maximum size of group.
+ char* p;
+ FILE *fp = sys_fopen(GROUPSFILE,"r");
+ if (!fp) {
+ DEBUG(2,("load_smb_restricted_group_file: Can't open workgroup file %s. Error was %s\n",
+ GROUPSFILE, strerror(errno)));
+ return -1;
+ }
+
+ size_restricted_group=0;
+ while (!feof(fp)) {
+ if (fgets(s,1000,fp)==NULL) break;
+ if (strlen(s)>0) s[strlen(s)-1]=0;
+ if (strlen(s)>0 && size_restricted_group<MAX_RESTRICTED_GROUP) {
+ p =(char*)malloc(strlen(s)+1);
+ if (p==NULL) {
+ DEBUG(0,("load_smb_restricted_group_file: malloc error",
+ GROUPSFILE, strerror(errno)));
+ return -1;
+ }
+ strncpy(p,s,strlen(s)+1);
+ restricted_group[size_restricted_group++]=p;
+ DEBUG(0,("load_smb_restricted_group_file: Define restricted group %s.\n",p));
+ }
+ }
+ fclose(fp);
+ return 0;
+}
+
+
+/****************************************************************************
+Check if workgroup name is restricted.
+****************************************************************************/
+BOOL if_restricted_group(char* name) {
+int i;
+ for (i=0;i<size_restricted_group;i++)
+ if (strcasecmp(name, restricted_group[i])==0) return True;
+ return False;
+}
diff -urN samba-2.2.8/source/nmbd/nmbd_winsserver.c samba-2.2.8-restrict/source/nmbd/nmbd_winsserver.c
--- samba-2.2.8/source/nmbd/nmbd_winsserver.c Fri Mar 14 22:34:48 2003
+++ samba-2.2.8-restrict/source/nmbd/nmbd_winsserver.c Thu Mar 27 10:11:21 2003
@@ -880,6 +880,13 @@
* Name did not exist - add it.
*/
+ if (registering_group_name) {
+ if (!if_restricted_group(question->name)) {
+ DEBUG(3,("wins_process_name_registration_request: Attempt to register name which not definied (restrict) - %s\n",question->name));
+ return;
+ }
+ }
+
(void)add_name_to_subnet( subrec, question->name, question->name_type,
nb_flags, ttl, REGISTER_NAME, 1, &from_ip );
if ((namerec = find_name_on_subnet(subrec, question, FIND_ANY_NAME))) {
diff -urN samba-2.2.8/source/nmbd/nmbd_workgroupdb.c samba-2.2.8-restrict/source/nmbd/nmbd_workgroupdb.c
--- samba-2.2.8/source/nmbd/nmbd_workgroupdb.c Tue Apr 30 15:27:20 2002
+++ samba-2.2.8-restrict/source/nmbd/nmbd_workgroupdb.c Thu Mar 27 10:11:21 2003
@@ -54,7 +54,13 @@
struct work_record *work;
struct subnet_record *subrec;
int t = -1;
-
+
+ if (!if_restricted_group(name)) {
+ DEBUG(3,("create_workgroup: Attempt to create not definied group (restrict) - %s\n",name));
+ return NULL;
+ }
+
+
if((work = (struct work_record *)malloc(sizeof(*work))) == NULL)
{
DEBUG(0,("create_workgroup: malloc fail !\n"));
-------------- następna część ---------
MYGROUP
-------------- następna część ---------
diff -Nur old/samba.spec new/samba.spec
--- old/samba.spec Wed Aug 27 01:19:17 2003
+++ new/samba.spec Thu Sep 4 23:46:46 2003
@@ -38,6 +38,7 @@
Source7: http://dl.sourceforge.net/openantivirus/%{name}-vscan-%{vscan_version}.tar.bz2
# Source7-md5: cacc32f21812494993e32be558b91bdd
Source8: http://aramin.net/~undefine/%{name}-vscan-clamav-0.2.tar.bz2
+Source9: smb.groups
# Source8-md5: 8d425d1e287bdf9d343b6ae4b1c9e842
Patch1: %{name}-config.patch
Patch2: %{name}-DESTDIR.patch
@@ -51,6 +52,7 @@
Patch10: http://v6web.litech.org/samba/%{name}-2.2.4+IPv6-20020609.diff
Patch11: %{name}-DESTDIR-fix.patch
Patch12: %{name}-CIFS-extensions.patch
+Patch13: %{name}-2.2.8a-restrict.patch
URL: http://www.samba.org/
BuildRequires: autoconf
%{!?_without_cups:BuildRequires: cups-devel}
@@ -573,6 +575,7 @@
%{?_with_ipv6:%patch10 -p1}
%patch11 -p1
#%patch12 -p1
+%patch13 -p1
cd examples/VFS
tar xjf %{SOURCE7}
@@ -645,6 +648,7 @@
install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/samba
install %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/samba
install %{SOURCE6} $RPM_BUILD_ROOT%{_libdir}/smb.conf
+install %{SOURCE9} $RPM_BUILD_ROOT%{_libdir}/smb.groups
install source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/lib/libnss_winbind.so.2
install source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/lib/security/
@@ -799,6 +803,7 @@
%attr(755,root,root) %{_bindir}/testprns
%attr(755,root,root) %{_bindir}/make_printerdef
%{_libdir}/codepages
+%{_libdir}/smb.groups
%{_mandir}/man1/make_smbcodepage.1*
%{_mandir}/man1/make_unicodemap.1*
%{_mandir}/man1/testparm.1*
Więcej informacji o liście dyskusyjnej pld-devel-pl