mirror of
https://github.com/samba-team/samba.git
synced 2025-01-22 22:04:08 +03:00
s3-smbd: expose smbd_set_server_fd()
this allows the fd to be setup by subsystems that want to use the s3 server core code Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org> Autobuild-User: Andrew Bartlett <abartlet@samba.org> Autobuild-Date: Sun May 8 12:01:13 CEST 2011 on sn-devel-104
This commit is contained in:
parent
2c569cd8ba
commit
45e26fdeec
@ -1856,6 +1856,7 @@ void send_stat_cache_delete_message(struct messaging_context *msg_ctx,
|
||||
NTSTATUS can_delete_directory(struct connection_struct *conn,
|
||||
const char *dirname);
|
||||
bool change_to_root_user(void);
|
||||
void smbd_set_server_fd(int fd);
|
||||
struct event_context *smbd_event_context(void);
|
||||
void contend_level2_oplocks_begin(files_struct *fsp,
|
||||
enum level2_contention_type type);
|
||||
|
@ -160,3 +160,32 @@ void smbd_init_globals(void)
|
||||
smbd_server_conn->smb1.echo_handler.trusted_fd = -1;
|
||||
smbd_server_conn->smb1.echo_handler.socket_lock_fd = -1;
|
||||
}
|
||||
|
||||
void smbd_set_server_fd(int fd)
|
||||
{
|
||||
struct smbd_server_connection *sconn = smbd_server_conn;
|
||||
char addr[INET6_ADDRSTRLEN];
|
||||
const char *name;
|
||||
|
||||
sconn->sock = fd;
|
||||
|
||||
/*
|
||||
* Initialize sconn->client_id: If we can't find the client's
|
||||
* name, default to its address.
|
||||
*/
|
||||
|
||||
client_addr(fd, sconn->client_id.addr, sizeof(sconn->client_id.addr));
|
||||
|
||||
name = client_name(sconn->sock);
|
||||
if (strcmp(name, "UNKNOWN") != 0) {
|
||||
name = talloc_strdup(sconn, name);
|
||||
} else {
|
||||
name = NULL;
|
||||
}
|
||||
sconn->client_id.name =
|
||||
(name != NULL) ? name : sconn->client_id.addr;
|
||||
|
||||
sub_set_socket_ids(sconn->client_id.addr, sconn->client_id.name,
|
||||
client_socket_addr(sconn->sock, addr,
|
||||
sizeof(addr)));
|
||||
}
|
||||
|
@ -51,35 +51,6 @@ extern void start_spoolssd(struct event_context *ev_ctx,
|
||||
extern int dcelogin_atmost_once;
|
||||
#endif /* WITH_DFS */
|
||||
|
||||
static void smbd_set_server_fd(int fd)
|
||||
{
|
||||
struct smbd_server_connection *sconn = smbd_server_conn;
|
||||
char addr[INET6_ADDRSTRLEN];
|
||||
const char *name;
|
||||
|
||||
sconn->sock = fd;
|
||||
|
||||
/*
|
||||
* Initialize sconn->client_id: If we can't find the client's
|
||||
* name, default to its address.
|
||||
*/
|
||||
|
||||
client_addr(fd, sconn->client_id.addr, sizeof(sconn->client_id.addr));
|
||||
|
||||
name = client_name(sconn->sock);
|
||||
if (strcmp(name, "UNKNOWN") != 0) {
|
||||
name = talloc_strdup(sconn, name);
|
||||
} else {
|
||||
name = NULL;
|
||||
}
|
||||
sconn->client_id.name =
|
||||
(name != NULL) ? name : sconn->client_id.addr;
|
||||
|
||||
sub_set_socket_ids(sconn->client_id.addr, sconn->client_id.name,
|
||||
client_socket_addr(sconn->sock, addr,
|
||||
sizeof(addr)));
|
||||
}
|
||||
|
||||
struct event_context *smbd_event_context(void)
|
||||
{
|
||||
return server_event_context();
|
||||
|
Loading…
x
Reference in New Issue
Block a user