1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-08 16:23:49 +03:00
Files
samba-mirror/source/build/smb_build/main.pm
Andrew Tridgell cf6a46c3cb r5102: This is a major simplification of the logic for controlling top level
servers in smbd. The old code still contained a fairly bit of legacy
from the time when smbd was only handling SMB connection. The new code
gets rid of all of the smb_server specific code in smbd/, and creates
a much simpler infrastructures for new server code.

Major changes include:

 - simplified the process model code a lot.

 - got rid of the top level server and service structures
   completely. The top level context is now the event_context. This
   got rid of service.h and server.h completely (they were the most
   confusing parts of the old code)

 - added service_stream.[ch] for the helper functions that are
   specific to stream type services (services that handle streams, and
   use a logically separate process per connection)

 - got rid of the builtin idle_handler code in the service logic, as
   none of the servers were using it, and it can easily be handled by
   a server in future by adding its own timed_event to the event
   context.

 - fixed some major memory leaks in the rpc server code.

 - added registration of servers, rather than hard coding our list of
   possible servers. This allows for servers as modules in the future.

 - temporarily disabled the winbind code until I add the helper
   functions for that type of server

 - added error checking on service startup. If a configured server
   fails to startup then smbd doesn't startup.

 - cleaned up the command line handling in smbd, removing unused options
2007-10-10 13:09:22 -05:00

79 lines
1.7 KiB
Perl

###########################################################
### SMB Build System ###
### - the main program ###
### ###
### Copyright (C) Stefan (metze) Metzmacher 2004 ###
### Released under the GNU GPL ###
###########################################################
use makefile;
use smb_build_h;
use input;
use config_mk;
use output;
use dot;
use strict;
sub smb_build_main($)
{
my $INPUT = shift;
my %SMB_BUILD_CTX = (
INPUT => $INPUT
);
my @mkfiles = (
"dsdb/config.mk",
"gtk/config.mk",
"smbd/config.mk",
"smbd/process_model.mk",
"libnet/config.mk",
"auth/config.mk",
"nsswitch/config.mk",
"lib/basic.mk",
"lib/dcom/config.mk",
"lib/socket/config.mk",
"lib/ldb/config.mk",
"lib/talloc/config.mk",
"lib/tdb/config.mk",
"lib/registry/config.mk",
"lib/messaging/config.mk",
"smb_server/config.mk",
"rpc_server/config.mk",
"ldap_server/config.mk",
"libcli/auth/gensec.mk",
"libcli/auth/config.mk",
"libcli/ldap/config.mk",
"libcli/config.mk",
"utils/net/config.mk",
"utils/config.mk",
"ntvfs/posix/config.mk",
"ntvfs/config.mk",
"ntvfs/unixuid/config.mk",
"torture/config.mk",
"librpc/config.mk",
"client/config.mk",
"libcli/libsmb.mk",
"libcli/config.mk",
"libcli/security/config.mk"
);
$| = 1;
for my $mkfile (@mkfiles) {
config_mk::import_file($SMB_BUILD_CTX{INPUT}, $mkfile);
}
%{$SMB_BUILD_CTX{DEPEND}} = input::check(\%SMB_BUILD_CTX);
%{$SMB_BUILD_CTX{OUTPUT}} = output::create_output($SMB_BUILD_CTX{DEPEND});
makefile::create_makefile_in($SMB_BUILD_CTX{OUTPUT});
smb_build_h::create_smb_build_h($SMB_BUILD_CTX{OUTPUT});
open DOTTY, ">samba4-deps.dot";
print DOTTY dot::generate($SMB_BUILD_CTX{DEPEND});
close DOTTY;
}
1;