2000-04-16 10:20:02 +04:00
/*
Unix SMB / Netbios implementation .
Version 3.0
load printer lists
Copyright ( C ) Andrew Tridgell 1992 - 2000
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 .
*/
# include "includes.h"
/***************************************************************************
auto - load printer services
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2000-08-01 00:41:51 +04:00
void add_all_printers ( void )
2000-04-16 10:20:02 +04:00
{
int printers = lp_servicenumber ( PRINTERS_NAME ) ;
if ( printers < 0 ) return ;
pcap_printer_fn ( lp_add_one_printer ) ;
}
/***************************************************************************
auto - load some homes and printer services
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
static void add_auto_printers ( void )
{
char * p ;
int printers ;
2001-01-17 21:47:46 +03:00
char * str = strdup ( lp_auto_services ( ) ) ;
2000-04-16 10:20:02 +04:00
if ( ! str ) return ;
printers = lp_servicenumber ( PRINTERS_NAME ) ;
2001-01-17 21:47:46 +03:00
if ( printers < 0 ) {
free ( str ) ;
return ;
}
2000-04-16 10:20:02 +04:00
for ( p = strtok ( str , LIST_SEP ) ; p ; p = strtok ( NULL , LIST_SEP ) ) {
if ( lp_servicenumber ( p ) > = 0 ) continue ;
if ( pcap_printername_ok ( p , NULL ) ) {
lp_add_printer ( p , printers ) ;
}
}
2001-01-17 21:47:46 +03:00
free ( str ) ;
2000-04-16 10:20:02 +04:00
}
/***************************************************************************
load automatic printer services
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void load_printers ( void )
{
add_auto_printers ( ) ;
if ( lp_load_printers ( ) )
add_all_printers ( ) ;
}