FN_GLOBAL_BOOL(readraw, bReadRaw)
FN_GLOBAL_BOOL(unicode, bUnicode)
FN_GLOBAL_BOOL(writeraw, bWriteRaw)
-FN_GLOBAL_LIST(smb_ports, smb_ports)
FN_GLOBAL_STRING(cachedir, szCacheDir)
FN_GLOBAL_STRING(socket_address, szSocketAddress)
FN_GLOBAL_STRING(statedir, szStateDir)
FN_GLOBAL_LIST(rndc_command, szRNDCCommand)
FN_GLOBAL_LIST(samba_kcc_command, szSambaKCCCommand)
FN_GLOBAL_LIST(server_services, server_services)
+FN_GLOBAL_LIST(smb_ports, smb_ports)
FN_GLOBAL_LIST(spn_update_command, szSPNUpdateCommand)
FN_GLOBAL_LIST(svcctl_list, szServicesList)
FN_GLOBAL_LIST(usershare_prefix_allow_list, szUsersharePrefixAllowList)
},
{
.label = "smb ports",
- .type = P_STRING,
+ .type = P_LIST,
.p_class = P_GLOBAL,
.offset = GLOBAL_VAR(smb_ports),
.special = NULL,
Globals.server_signing = SMB_SIGNING_DEFAULT;
Globals.bDeferSharingViolations = true;
- string_set(&Globals.smb_ports, SMB_PORTS);
+ Globals.smb_ports = (const char **)str_list_make_v3(NULL, SMB_PORTS, NULL);
Globals.bEnablePrivileges = true;
Globals.bHostMSDfs = true;
/* These functions remain in source3/param for now */
-FN_GLOBAL_CONST_STRING(smb_ports, smb_ports)
FN_GLOBAL_INTEGER(security, security)
FN_GLOBAL_INTEGER(usershare_max_shares, iUsershareMaxShares)
FN_GLOBAL_STRING(configfile, szConfigFile)
const char *smb_ports)
{
int num_interfaces = iface_count();
- int i;
- const char *ports;
+ int i,j;
+ const char **ports;
unsigned dns_port = 0;
#ifdef HAVE_ATEXIT
/* Stop zombies */
smbd_setup_sig_chld_handler(parent);
+ ports = lp_smb_ports();
+
/* use a reasonable default set of ports - listing on 445 and 139 */
- if (!smb_ports) {
- ports = lp_smb_ports();
- if (!ports || !*ports) {
- ports = talloc_strdup(talloc_tos(), SMB_PORTS);
- } else {
- ports = talloc_strdup(talloc_tos(), ports);
- }
- } else {
- ports = talloc_strdup(talloc_tos(), smb_ports);
+ if (smb_ports) {
+ ports = (const char **)str_list_make_v3(talloc_tos(), smb_ports, NULL);
}
if (lp_interfaces() && lp_bind_interfaces_only()) {
for(i = 0; i < num_interfaces; i++) {
const struct sockaddr_storage *ifss =
iface_n_sockaddr_storage(i);
- char *tok;
- const char *ptr;
-
if (ifss == NULL) {
DEBUG(0,("open_sockets_smbd: "
"interface %d has NULL IP address !\n",
continue;
}
- for (ptr=ports;
- next_token_talloc(talloc_tos(),&ptr, &tok, " \t,");) {
- unsigned port = atoi(tok);
+ for (j = 0; ports && ports[j]; j++) {
+ unsigned port = atoi(ports[j]);
if (port == 0 || port > 0xffff) {
continue;
}
/* Just bind to 0.0.0.0 - accept connections
from anywhere. */
- char *tok;
- const char *ptr;
const char *sock_addr = lp_socket_address();
char *sock_tok;
const char *sock_ptr;
for (sock_ptr=sock_addr;
next_token_talloc(talloc_tos(), &sock_ptr, &sock_tok, " \t,"); ) {
- for (ptr=ports; next_token_talloc(talloc_tos(), &ptr, &tok, " \t,"); ) {
+ for (j = 0; ports && ports[j]; j++) {
struct sockaddr_storage ss;
- unsigned port = atoi(tok);
+ unsigned port = atoi(ports[j]);
if (port == 0 || port > 0xffff) {
continue;
}