You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
393 lines
12 KiB
393 lines
12 KiB
From e1782a92cc0e6dde404fa5fb18cb8dba46887fc0 Mon Sep 17 00:00:00 2001 |
|
From: Simon Pichugin <spichugi@redhat.com> |
|
Date: Thu, 26 May 2022 17:17:39 -0700 |
|
Subject: [PATCH] Revert "ITS#8618 - Remove deprecated -h and -p options to |
|
client tools" |
|
|
|
Except tests. For tests, use -H option. |
|
--- |
|
clients/tools/common.c | 53 +++++++++++++++++++++++++++++++++++++- |
|
clients/tools/common.h | 2 ++ |
|
doc/man/man1/ldapcompare.1 | 12 +++++++++ |
|
doc/man/man1/ldapdelete.1 | 12 +++++++++ |
|
doc/man/man1/ldapexop.1 | 12 +++++++++ |
|
doc/man/man1/ldapmodify.1 | 16 ++++++++++++ |
|
doc/man/man1/ldapmodrdn.1 | 12 +++++++++ |
|
doc/man/man1/ldappasswd.1 | 12 +++++++++ |
|
doc/man/man1/ldapsearch.1 | 12 +++++++++ |
|
doc/man/man1/ldapwhoami.1 | 12 +++++++++ |
|
10 files changed, 154 insertions(+), 1 deletion(-) |
|
|
|
diff --git a/clients/tools/common.c b/clients/tools/common.c |
|
index b88f219b3..28178d64c 100644 |
|
--- a/clients/tools/common.c |
|
+++ b/clients/tools/common.c |
|
@@ -71,6 +71,8 @@ char *prog = NULL; |
|
|
|
/* connection */ |
|
char *ldapuri = NULL; |
|
+char *ldaphost = NULL; |
|
+int ldapport = 0; |
|
int use_tls = 0; |
|
int protocol = -1; |
|
int version = 0; |
|
@@ -348,6 +350,7 @@ N_(" [!]sessiontracking[=<username>]\n") |
|
N_(" abandon, cancel, ignore (SIGINT sends abandon/cancel,\n" |
|
" or ignores response; if critical, doesn't wait for SIGINT.\n" |
|
" not really controls)\n") |
|
+N_(" -h host LDAP server (deprecated in favor of \"-H\")\n"), |
|
N_(" -H URI LDAP Uniform Resource Identifier(s)\n"), |
|
N_(" -I use SASL Interactive mode\n"), |
|
N_(" -n show what would be done but don't actually do it\n"), |
|
@@ -356,6 +359,7 @@ N_(" -O props SASL security properties\n"), |
|
N_(" -o <opt>[=<optparam>] any libldap ldap.conf options, plus\n"), |
|
N_(" ldif_wrap=<width> (in columns, or \"no\" for no wrapping)\n"), |
|
N_(" nettimeout=<timeout> (in seconds, or \"none\" or \"max\")\n"), |
|
+N_(" -p port port on LDAP server (deprecated in favor of \"-H\")\n"), |
|
N_(" -Q use SASL Quiet mode\n"), |
|
N_(" -R realm SASL realm\n"), |
|
N_(" -U authcid SASL authentication identity\n"), |
|
@@ -774,6 +778,13 @@ tool_args( int argc, char **argv ) |
|
} |
|
infile = optarg; |
|
break; |
|
+ case 'h': /* ldap host */ |
|
+ if( ldaphost != NULL ) { |
|
+ fprintf( stderr, "%s: -h previously specified\n", prog ); |
|
+ exit( EXIT_FAILURE ); |
|
+ } |
|
+ ldaphost = optarg; |
|
+ break; |
|
case 'H': /* ldap URI */ |
|
if( ldapuri != NULL ) { |
|
fprintf( stderr, "%s: -H previously specified\n", prog ); |
|
@@ -887,6 +898,18 @@ tool_args( int argc, char **argv ) |
|
exit( EXIT_FAILURE ); |
|
#endif |
|
break; |
|
+ case 'p': |
|
+ if( ldapport ) { |
|
+ fprintf( stderr, "%s: -p previously specified\n", prog ); |
|
+ exit( EXIT_FAILURE ); |
|
+ } |
|
+ ival = strtol( optarg, &next, 10 ); |
|
+ if ( next == NULL || next[0] != '\0' ) { |
|
+ fprintf( stderr, "%s: unable to parse port number \"%s\"\n", prog, optarg ); |
|
+ exit( EXIT_FAILURE ); |
|
+ } |
|
+ ldapport = ival; |
|
+ break; |
|
case 'P': |
|
ival = strtol( optarg, &next, 10 ); |
|
if ( next == NULL || next[0] != '\0' ) { |
|
@@ -1121,6 +1144,22 @@ tool_args( int argc, char **argv ) |
|
#endif |
|
} |
|
|
|
+ if( ldapuri == NULL ) { |
|
+ if( ldapport && ( ldaphost == NULL )) { |
|
+ fprintf( stderr, "%s: -p without -h is invalid.\n", prog ); |
|
+ exit( EXIT_FAILURE ); |
|
+ } |
|
+ } else { |
|
+ if( ldaphost != NULL ) { |
|
+ fprintf( stderr, "%s: -H incompatible with -h\n", prog ); |
|
+ exit( EXIT_FAILURE ); |
|
+ } |
|
+ if( ldapport ) { |
|
+ fprintf( stderr, "%s: -H incompatible with -p\n", prog ); |
|
+ exit( EXIT_FAILURE ); |
|
+ } |
|
+ } |
|
+ |
|
if( protocol == LDAP_VERSION2 ) { |
|
if( assertctl || authzid || manageDIT || manageDSAit || |
|
#ifdef LDAP_CONTROL_OBSOLETE_PROXY_AUTHZ |
|
@@ -1191,7 +1230,19 @@ tool_conn_setup( int dont, void (*private_setup)( LDAP * ) ) |
|
if ( !dont ) { |
|
int rc; |
|
|
|
- if ( ldapuri != NULL ) { |
|
+ if( ( ldaphost != NULL || ldapport ) && ( ldapuri == NULL ) ) { |
|
+ /* construct URL */ |
|
+ LDAPURLDesc url; |
|
+ memset( &url, 0, sizeof(url)); |
|
+ |
|
+ url.lud_scheme = "ldap"; |
|
+ url.lud_host = ldaphost; |
|
+ url.lud_port = ldapport; |
|
+ url.lud_scope = LDAP_SCOPE_DEFAULT; |
|
+ |
|
+ ldapuri = ldap_url_desc2str( &url ); |
|
+ |
|
+ } else if ( ldapuri != NULL ) { |
|
LDAPURLDesc *ludlist, **ludp; |
|
char **urls = NULL; |
|
int nurls = 0; |
|
diff --git a/clients/tools/common.h b/clients/tools/common.h |
|
index c4377da17..41c3d874a 100644 |
|
--- a/clients/tools/common.h |
|
+++ b/clients/tools/common.h |
|
@@ -61,6 +61,8 @@ extern char *prog; |
|
|
|
/* connection */ |
|
extern char *ldapuri; |
|
+extern char *ldaphost; |
|
+extern int ldapport; |
|
extern int use_tls; |
|
extern int protocol; |
|
extern int version; |
|
diff --git a/doc/man/man1/ldapcompare.1 b/doc/man/man1/ldapcompare.1 |
|
index b15b0c4f8..b7747ad8c 100644 |
|
--- a/doc/man/man1/ldapcompare.1 |
|
+++ b/doc/man/man1/ldapcompare.1 |
|
@@ -31,6 +31,10 @@ ldapcompare \- LDAP compare tool |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-P \ { 2 \||\| 3 }] |
|
[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -139,6 +143,14 @@ Specify URI(s) referring to the ldap server(s); only the protocol/host/port |
|
fields are allowed; a list of URI, separated by whitespace or commas |
|
is expected. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify an alternate host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify an alternate TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-P \ { 2 \||\| 3 } |
|
Specify the LDAP protocol version to use. |
|
.TP |
|
diff --git a/doc/man/man1/ldapdelete.1 b/doc/man/man1/ldapdelete.1 |
|
index e12cc56bb..84dbd882c 100644 |
|
--- a/doc/man/man1/ldapdelete.1 |
|
+++ b/doc/man/man1/ldapdelete.1 |
|
@@ -37,6 +37,10 @@ ldapdelete \- LDAP delete entry tool |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-P \ { 2 \||\| 3 }] |
|
[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -145,6 +149,14 @@ Specify URI(s) referring to the ldap server(s); only the protocol/host/port |
|
fields are allowed; a list of URI, separated by whitespace or commas |
|
is expected. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify an alternate host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify an alternate TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-P \ { 2 \||\| 3 } |
|
Specify the LDAP protocol version to use. |
|
.TP |
|
diff --git a/doc/man/man1/ldapexop.1 b/doc/man/man1/ldapexop.1 |
|
index 2040c3e45..26e1730a8 100644 |
|
--- a/doc/man/man1/ldapexop.1 |
|
+++ b/doc/man/man1/ldapexop.1 |
|
@@ -42,6 +42,10 @@ ldapexop |
|
[\c |
|
.BI \-H \ URI\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
[\c |
|
.BI \-o \ opt \fR[= optparam \fR]] |
|
@@ -156,6 +160,14 @@ Specify URI(s) referring to the ldap server(s); only the protocol/host/port |
|
fields are allowed; a list of URI, separated by whitespace or commas |
|
is expected. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify the host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify the TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ] |
|
Specify general extensions. \'!\' indicates criticality. |
|
.nf |
|
diff --git a/doc/man/man1/ldapmodify.1 b/doc/man/man1/ldapmodify.1 |
|
index 1104e9f2a..affc661ea 100644 |
|
--- a/doc/man/man1/ldapmodify.1 |
|
+++ b/doc/man/man1/ldapmodify.1 |
|
@@ -37,6 +37,10 @@ ldapmodify, ldapadd \- LDAP modify entry and LDAP add entry tools |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-P \ { 2 \||\| 3 }] |
|
[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -93,6 +97,10 @@ ldapmodify, ldapadd \- LDAP modify entry and LDAP add entry tools |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-P \ { 2 \||\| 3 }] |
|
[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -204,6 +212,14 @@ Specify URI(s) referring to the ldap server(s); only the protocol/host/port |
|
fields are allowed; a list of URI, separated by whitespace or commas |
|
is expected. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify an alternate host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify an alternate TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-P \ { 2 \||\| 3 } |
|
Specify the LDAP protocol version to use. |
|
.TP |
|
diff --git a/doc/man/man1/ldapmodrdn.1 b/doc/man/man1/ldapmodrdn.1 |
|
index 777c539ad..0226db5d2 100644 |
|
--- a/doc/man/man1/ldapmodrdn.1 |
|
+++ b/doc/man/man1/ldapmodrdn.1 |
|
@@ -37,6 +37,10 @@ ldapmodrdn \- LDAP rename entry tool |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-P \ { 2 \||\| 3 }] |
|
[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -139,6 +143,14 @@ Specify URI(s) referring to the ldap server(s); only the protocol/host/port |
|
fields are allowed; a list of URI, separated by whitespace or commas |
|
is expected. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify an alternate host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify an alternate TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-P \ { 2 \||\| 3 } |
|
Specify the LDAP protocol version to use. |
|
.TP |
|
diff --git a/doc/man/man1/ldappasswd.1 b/doc/man/man1/ldappasswd.1 |
|
index d1aea0c8b..c9cea59c5 100644 |
|
--- a/doc/man/man1/ldappasswd.1 |
|
+++ b/doc/man/man1/ldappasswd.1 |
|
@@ -39,6 +39,10 @@ ldappasswd \- change the password of an LDAP entry |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
[\c |
|
.BR \-E \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -144,6 +148,14 @@ Specify URI(s) referring to the ldap server(s); only the protocol/host/port |
|
fields are allowed; a list of URI, separated by whitespace or commas |
|
is expected. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify an alternate host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify an alternate TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ] |
|
.TP |
|
.BR \-E \ [ ! ] \fIext\fP [ =\fIextparam\fP ] |
|
diff --git a/doc/man/man1/ldapsearch.1 b/doc/man/man1/ldapsearch.1 |
|
index 7f3ec4095..7496602b8 100644 |
|
--- a/doc/man/man1/ldapsearch.1 |
|
+++ b/doc/man/man1/ldapsearch.1 |
|
@@ -57,6 +57,10 @@ ldapsearch \- LDAP search tool |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-P \ { 2 \||\| 3 }] |
|
[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -277,6 +281,14 @@ DNS SRV records, according to RFC 2782. The DN must be a non-empty |
|
sequence of AVAs whose attribute type is "dc" (domain component), |
|
and must be escaped according to RFC 2396. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify an alternate host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify an alternate TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-P \ { 2 \||\| 3 } |
|
Specify the LDAP protocol version to use. |
|
.TP |
|
diff --git a/doc/man/man1/ldapwhoami.1 b/doc/man/man1/ldapwhoami.1 |
|
index 49b1187b2..adbc3f52c 100644 |
|
--- a/doc/man/man1/ldapwhoami.1 |
|
+++ b/doc/man/man1/ldapwhoami.1 |
|
@@ -27,6 +27,10 @@ ldapwhoami \- LDAP who am i? tool |
|
[\c |
|
.BI \-H \ ldapuri\fR] |
|
[\c |
|
+.BI \-h \ ldaphost\fR] |
|
+[\c |
|
+.BI \-p \ ldapport\fR] |
|
+[\c |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
[\c |
|
.BR \-E \ [ ! ] \fIext\fP [ =\fIextparam\fP ]] |
|
@@ -99,6 +103,14 @@ Specify URI(s) referring to the ldap server(s); only the protocol/host/port |
|
fields are allowed; a list of URI, separated by whitespace or commas |
|
is expected. |
|
.TP |
|
+.BI \-h \ ldaphost |
|
+Specify an alternate host on which the ldap server is running. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
+.BI \-p \ ldapport |
|
+Specify an alternate TCP port where the ldap server is listening. |
|
+Deprecated in favor of \fB\-H\fP. |
|
+.TP |
|
.BR \-e \ [ ! ] \fIext\fP [ =\fIextparam\fP ] |
|
.TP |
|
.BR \-E \ [ ! ] \fIext\fP [ =\fIextparam\fP ] |
|
-- |
|
2.35.3 |
|
|
|
|