diff options
author | Andreas Schneider <asn@samba.org> | 2017-01-16 12:05:09 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2017-01-27 08:09:15 +0100 |
commit | 9d60ad53b809281a5a6f6ad82a0daea99c989f2d (patch) | |
tree | b70f0c2a3eab8517af2fa47983719fb2add018f6 /source3 | |
parent | 35dfa5c6e2bf60f8f1efda5eb7026cabe8bf5ba3 (diff) | |
download | samba-9d60ad53b809281a5a6f6ad82a0daea99c989f2d.tar.gz |
rpc_server: Allow to configure the port range for RPC services
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12521
Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/proto.h | 2 | ||||
-rw-r--r-- | source3/param/loadparm.c | 16 | ||||
-rw-r--r-- | source3/rpc_server/rpc_server.c | 5 |
3 files changed, 19 insertions, 4 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 642900ed67c..b3d3ca0e5d1 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -889,6 +889,8 @@ int lp_client_ipc_signing(void); int lp_smb2_max_credits(void); int lp_cups_encrypt(void); bool lp_widelinks(int ); +int lp_rpc_low_port(void); +int lp_rpc_high_port(void); int lp_wi_scan_global_parametrics( const char *regex, size_t max_matches, diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c index 0ce4f92ce39..c65e613feea 100644 --- a/source3/param/loadparm.c +++ b/source3/param/loadparm.c @@ -929,6 +929,12 @@ static void init_globals(struct loadparm_context *lp_ctx, bool reinit_globals) Globals.aio_max_threads = 100; + lpcfg_string_set(Globals.ctx, + &Globals.rpc_server_dynamic_port_range, + "49152-65535"); + Globals.rpc_low_port = SERVER_TCP_LOW_PORT; + Globals.rpc_high_port = SERVER_TCP_HIGH_PORT; + /* Now put back the settings that were set with lp_set_cmdline() */ apply_lp_set_cmdline(); } @@ -4548,6 +4554,16 @@ int lp_client_ipc_signing(void) return client_ipc_signing; } +int lp_rpc_low_port(void) +{ + return Globals.rpc_low_port; +} + +int lp_rpc_high_port(void) +{ + return Globals.rpc_high_port; +} + struct loadparm_global * get_globals(void) { return &Globals; diff --git a/source3/rpc_server/rpc_server.c b/source3/rpc_server/rpc_server.c index 37fe68fc36d..f7fb8ef5207 100644 --- a/source3/rpc_server/rpc_server.c +++ b/source3/rpc_server/rpc_server.c @@ -34,9 +34,6 @@ #include "rpc_server/srv_pipe_hnd.h" #include "rpc_server/srv_pipe.h" -#define SERVER_TCP_LOW_PORT 49152 -#define SERVER_TCP_HIGH_PORT 65535 - /* Creates a pipes_struct and initializes it with the information * sent from the client */ int make_server_pipes_struct(TALLOC_CTX *mem_ctx, @@ -608,7 +605,7 @@ int create_tcpip_socket(const struct sockaddr_storage *ifss, uint16_t *port) if (*port == 0) { uint16_t i; - for (i = SERVER_TCP_LOW_PORT; i <= SERVER_TCP_HIGH_PORT; i++) { + for (i = lp_rpc_low_port(); i <= lp_rpc_high_port(); i++) { fd = open_socket_in(SOCK_STREAM, i, 0, |