1996-05-04 11:50:46 +04:00
/*
Unix SMB / Netbios implementation .
Version 1.9 .
Test validity of smb . conf
1998-01-22 16:27:43 +03:00
Copyright ( C ) Karl Auer 1993 , 1994 - 1998
1996-05-04 11:50:46 +04:00
Extensively modified by Andrew Tridgell , 1995
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 0213 9 , USA .
*/
/*
* Testbed for loadparm . c / params . c
*
* This module simply loads a specified configuration file and
* if successful , dumps it ' s contents to stdout . Note that the
* operation is performed with DEBUGLEVEL at 3.
*
* Useful for a quick ' syntax check ' of a configuration file .
*
*/
# include "includes.h"
# include "smb.h"
/* these live in util.c */
extern FILE * dbf ;
extern int DEBUGLEVEL ;
1998-02-24 20:59:34 +03:00
extern pstring myhostname ;
1996-05-04 11:50:46 +04:00
1996-06-04 10:42:03 +04:00
int main ( int argc , char * argv [ ] )
1996-05-04 11:50:46 +04:00
{
pstring configfile ;
int s ;
1996-05-31 19:13:29 +04:00
TimeInit ( ) ;
1996-05-04 11:50:46 +04:00
setup_logging ( argv [ 0 ] , True ) ;
1997-07-19 00:21:32 +04:00
charset_initialise ( ) ;
1996-05-04 11:50:46 +04:00
if ( argc < 2 )
1998-05-12 04:55:32 +04:00
pstrcpy ( configfile , CONFIGFILE ) ;
1996-05-04 11:50:46 +04:00
else
1998-05-12 04:55:32 +04:00
pstrcpy ( configfile , argv [ 1 ] ) ;
1996-05-04 11:50:46 +04:00
dbf = stdout ;
DEBUGLEVEL = 2 ;
printf ( " Load smb config files from %s \n " , configfile ) ;
1998-02-24 20:59:34 +03:00
if ( ! get_myname ( myhostname , NULL ) )
{
printf ( " Failed to get my hostname. \n " ) ;
return ( 1 ) ;
}
1998-03-14 11:27:41 +03:00
if ( ! lp_load ( configfile , False , True , False ) )
1996-05-04 11:50:46 +04:00
{
printf ( " Error loading services. \n " ) ;
return ( 1 ) ;
}
printf ( " Loaded services file OK. \n " ) ;
for ( s = 0 ; s < 1000 ; s + + )
if ( VALID_SNUM ( s ) )
if ( strlen ( lp_servicename ( s ) ) > 8 ) {
printf ( " WARNING: You have some share names that are longer than 8 chars \n " ) ;
printf ( " These may give errors while browsing or may not be accessible \n to some older clients \n " ) ;
break ;
}
if ( argc < 4 )
{
printf ( " Press enter to see a dump of your service definitions \n " ) ;
fflush ( stdout ) ;
getc ( stdin ) ;
1998-03-17 14:44:16 +03:00
lp_dump ( stdout , False ) ;
1996-05-04 11:50:46 +04:00
}
if ( argc = = 4 )
{
1996-10-05 14:41:13 +04:00
char * cname = argv [ 2 ] ;
char * caddr = argv [ 3 ] ;
1996-05-04 11:50:46 +04:00
/* this is totally ugly, a real `quick' hack */
for ( s = 0 ; s < 1000 ; s + + )
if ( VALID_SNUM ( s ) )
{
1996-10-05 14:41:13 +04:00
if ( allow_access ( lp_hostsdeny ( s ) , lp_hostsallow ( s ) , cname , caddr ) )
1996-05-04 11:50:46 +04:00
{
printf ( " Allow connection from %s (%s) to %s \n " ,
1996-10-05 14:41:13 +04:00
cname , caddr , lp_servicename ( s ) ) ;
1996-05-04 11:50:46 +04:00
}
else
{
printf ( " Deny connection from %s (%s) to %s \n " ,
1996-10-05 14:41:13 +04:00
cname , caddr , lp_servicename ( s ) ) ;
1996-05-04 11:50:46 +04:00
}
}
}
return ( 0 ) ;
}