aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2020-09-01 08:17:28 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2020-09-01 08:17:28 +0000
commit262b2a3ac1ce7a86d0474d4cfbb791c10a064d2b (patch)
tree7d316e75ea26762a616b15febc58ed6e1d7fc8f9
parent143cf447045ad2e22748aadb483247df66b6f15f (diff)
downloadports-262b2a3ac1ce7a86d0474d4cfbb791c10a064d2b.tar.gz
ports-262b2a3ac1ce7a86d0474d4cfbb791c10a064d2b.zip
Notes
-rw-r--r--net/yptransitd/Makefile2
-rw-r--r--net/yptransitd/files/patch-freebsd-master-passwd227
-rw-r--r--net/yptransitd/files/patch-src_modules_ldap_cache.c177
-rw-r--r--net/yptransitd/files/patch-src_modules_ldap_ldap.c13
-rw-r--r--net/yptransitd/files/patch-src_modules_ldap_ldap.h12
5 files changed, 203 insertions, 228 deletions
diff --git a/net/yptransitd/Makefile b/net/yptransitd/Makefile
index 95dbccd538bd..7a99a79bd130 100644
--- a/net/yptransitd/Makefile
+++ b/net/yptransitd/Makefile
@@ -28,7 +28,7 @@ post-patch:
${WRKSRC}/Makefile.in
@${REINPLACE_CMD} -e 's,=gcc,=@CC@,' \
${WRKSRC}/lib/Makefile.in
- @${REINPLACE_CMD} -e 's,-O2 -g,@CFLAGS@, ; \
+ @${REINPLACE_CMD} -e 's,-O2 -g,@CFLAGS@ -fcommon, ; \
s, $${BINDIR}, $${DESTDIR}$${BINDIR},' \
${WRKSRC}/src/Makefile.in
@${REINPLACE_CMD} -E 's,^([[:blank:]]+)\([^\)]+\) ,\1,' \
diff --git a/net/yptransitd/files/patch-freebsd-master-passwd b/net/yptransitd/files/patch-freebsd-master-passwd
deleted file mode 100644
index 76ee47d5ba8f..000000000000
--- a/net/yptransitd/files/patch-freebsd-master-passwd
+++ /dev/null
@@ -1,227 +0,0 @@
-diff -rc /services/build/usr/ports/net/yptransitd/work/yptransitd-0.5/src/modules/ldap/cache.c ./src/modules/ldap/cache.c
-*** /services/build/usr/ports/net/yptransitd/work/yptransitd-0.5/src/modules/ldap/cache.c Tue Oct 9 10:34:51 2001
---- ./src/modules/ldap/cache.c Wed May 5 01:51:16 2004
-***************
-*** 278,285 ****
- } else
- if(!strcasecmp(attr, "userpassword"))
- {
-! pwinfo->userpassword = fix_password(values);
-! pwinfo->size += strlen(pwinfo->userpassword);
- } else
- if(!strcasecmp(attr, "uidnumber"))
- {
---- 278,285 ----
- } else
- if(!strcasecmp(attr, "userpassword"))
- {
-! pwinfo->userpassword = safe_strdup("*");
-! pwinfo->size += strlen("*");
- } else
- if(!strcasecmp(attr, "uidnumber"))
- {
-***************
-*** 322,327 ****
---- 322,394 ----
- return (rval);
- }
-
-+ int assemble_master_passwd(valdat *val, LDAPMessage *user, struct pwinfo *pwinfo)
-+ {
-+ ypstat rval;
-+ char *attr;
-+ BerElement *ber = NULL;
-+
-+ rval = YP_YPERR;
-+ fill_pwinfo(pwinfo);
-+
-+ for (attr = ldap_first_attribute (ldaprefs.ldap, user, &ber); attr; attr = ldap_next_attribute (ldaprefs.ldap, user, ber))
-+ {
-+ char **values;
-+
-+ values = ldap_get_values (ldaprefs.ldap, user, attr);
-+ if (values)
-+ {
-+ if(!strcasecmp(attr, "uid"))
-+ {
-+ pwinfo->uid = safe_strdup(values[0]);
-+ pwinfo->size += strlen(values[0]);
-+ } else
-+ if(!strcasecmp(attr, "userpassword"))
-+ {
-+ pwinfo->userpassword = fix_password(values);
-+ pwinfo->size += strlen(pwinfo->userpassword);
-+ } else
-+ if(!strcasecmp(attr, "uidnumber"))
-+ {
-+ pwinfo->uidnumber = safe_strdup(values[0]);
-+ pwinfo->size += strlen(values[0]);
-+ } else
-+ if(!strcasecmp(attr, "gidnumber"))
-+ {
-+ pwinfo->gidnumber = safe_strdup(values[0]);
-+ pwinfo->size += strlen(values[0]);
-+ } else
-+ if(!strcasecmp(attr, "gecos"))
-+ {
-+ pwinfo->gecos = safe_strdup(values[0]);
-+ pwinfo->size += strlen(values[0]);
-+ } else
-+ if(!strcasecmp(attr, "homedirectory"))
-+ {
-+ pwinfo->homedirectory = safe_strdup(values[0]);
-+ pwinfo->size += strlen(values[0]);
-+ } else
-+ if(!strcasecmp(attr, "loginshell"))
-+ {
-+ pwinfo->loginshell = safe_strdup(values[0]);
-+ pwinfo->size += strlen(values[0]);
-+ }
-+ ldap_value_free(values);
-+ }
-+ }
-+ if (check_pwinfo(pwinfo) == YP_TRUE)
-+ {
-+ val->valdat_len = pwinfo->size + MPWLINE_SIZE;
-+ val->valdat_val = safe_malloc(val->valdat_len + 1);
-+ sprintf(val->valdat_val, MPWLINE, pwinfo->uid, pwinfo->userpassword, pwinfo->uidnumber, pwinfo->gidnumber, pwinfo->gecos, pwinfo->homedirectory, pwinfo->loginshell);
-+ rval = YP_TRUE;
-+ } else {
-+ rval = YP_NOKEY;
-+ }
-+
-+ return (rval);
-+ }
-+
- int assemble_group(valdat *val, LDAPMessage *group, struct gwinfo *gwinfo)
- {
- ypstat rval;
-***************
-*** 538,548 ****
- free(filter);
- free(base);
- }
- else if (!strcmp((char *) mapcache_current->map, "group.byname"))
- {
- /* XXX Add preferences for filter and basedn */
- base = safe_malloc(strlen(ldaprefs.basedn) + strlen("ou=Group,") + 1);
- sprintf(base, "%s%s", "ou=Group,", ldaprefs.basedn);
- filter = safe_strdup("(objectClass=posixGroup)");
-
- if(ldap_search_s(ldaprefs.ldap,
---- 605,689 ----
- free(filter);
- free(base);
- }
-+ else if (!strcmp((char *) mapcache_current->map, "master.passwd.byname"))
-+ {
-+ /* XXX Add preferences for filter and basedn */
-+ base = safe_malloc(strlen(ldaprefs.basedn) + strlen("ou=Staffs,") + 1);
-+ sprintf(base, "%s%s", "ou=Staffs,", ldaprefs.basedn);
-+ filter = safe_strdup("(objectClass=posixAccount)");
-+
-+ if(ldap_search_s(ldaprefs.ldap,
-+ base,
-+ LDAP_SCOPE_ONELEVEL,
-+ filter,
-+ user_attributes,
-+ 0,
-+ &ldapreturn) != -1)
-+ {
-+ for (record = ldap_first_entry(ldaprefs.ldap, ldapreturn); record; record = ldap_next_entry(ldaprefs.ldap, record))
-+ {
-+ pwinfo = safe_malloc(sizeof(struct pwinfo));
-+ rval = assemble_master_passwd(val, record, pwinfo);
-+ if(rval == YP_TRUE);
-+ {
-+ if(check_unique(mapcache_current, pwinfo->uid) == YP_NOKEY)
-+ {
-+ mapentry_current = safe_malloc(sizeof(struct mapentry));
-+ mapentry_current->key = safe_strdup(pwinfo->uid);
-+ mapentry_current->val = val->valdat_val;
-+ mapentry_current->next = mapcache_current->mapentry;
-+ mapcache_current->mapentry = mapentry_current;
-+ }
-+ }
-+ clean_pwinfo(pwinfo);
-+ }
-+ }
-+ ldap_msgfree(ldapreturn);
-+ free(filter);
-+ free(base);
-+ }
-+ else if (!strcmp((char *) mapcache_current->map, "master.passwd.byuid"))
-+ {
-+ /* XXX Add preferences for filter and basedn */
-+ base = safe_malloc(strlen(ldaprefs.basedn) + strlen("ou=Staffs,") + 1);
-+ sprintf(base, "%s%s", "ou=Staffs,", ldaprefs.basedn);
-+ filter = safe_strdup("(objectClass=posixAccount)");
-+
-+ if(ldap_search_s(ldaprefs.ldap,
-+ base,
-+ LDAP_SCOPE_ONELEVEL,
-+ filter,
-+ user_attributes,
-+ 0,
-+ &ldapreturn) != -1)
-+ {
-+ for (record = ldap_first_entry(ldaprefs.ldap, ldapreturn); record; record = ldap_next_entry(ldaprefs.ldap, record))
-+ {
-+ pwinfo = safe_malloc(sizeof(struct pwinfo));
-+ rval = assemble_master_passwd(val, record, pwinfo);
-+ if(rval == YP_TRUE);
-+ {
-+ if(check_unique(mapcache_current, pwinfo->uidnumber) == YP_NOKEY)
-+ {
-+ mapentry_current = safe_malloc(sizeof(struct mapentry));
-+ mapentry_current->key = safe_strdup(pwinfo->uidnumber);
-+ mapentry_current->val = val->valdat_val;
-+ mapentry_current->next = mapcache_current->mapentry;
-+ mapcache_current->mapentry = mapentry_current;
-+ }
-+ }
-+ clean_pwinfo(pwinfo);
-+ }
-+ }
-+ ldap_msgfree(ldapreturn);
-+ free(filter);
-+ free(base);
-+ }
- else if (!strcmp((char *) mapcache_current->map, "group.byname"))
- {
- /* XXX Add preferences for filter and basedn */
- base = safe_malloc(strlen(ldaprefs.basedn) + strlen("ou=Group,") + 1);
- sprintf(base, "%s%s", "ou=Group,", ldaprefs.basedn);
- filter = safe_strdup("(objectClass=posixGroup)");
-
- if(ldap_search_s(ldaprefs.ldap,
-diff -rc /services/build/usr/ports/net/yptransitd/work/yptransitd-0.5/src/modules/ldap/ldap.c ./src/modules/ldap/ldap.c
-*** /services/build/usr/ports/net/yptransitd/work/yptransitd-0.5/src/modules/ldap/ldap.c Wed Oct 3 09:45:29 2001
---- ./src/modules/ldap/ldap.c Wed May 5 01:39:20 2004
-***************
-*** 60,66 ****
---- 60,69 ----
- #include "cache.h"
-
- #define CONFIG_FILE CONFDIR "/ldap.conf"
-+ /*
- #define MAPS "auto.home auto_home amd.home passwd.byname passwd.byuid group.byname group.bygid"
-+ */
-+ #define MAPS "auto.home auto_home amd.home master.passwd.byname master.passwd.byuid passwd.byname passwd.byuid group.byname group.bygid"
-
- struct ldaprefs ldaprefs;
-
-diff -rc /services/build/usr/ports/net/yptransitd/work/yptransitd-0.5/src/modules/ldap/ldap.h ./src/modules/ldap/ldap.h
-*** /services/build/usr/ports/net/yptransitd/work/yptransitd-0.5/src/modules/ldap/ldap.h Wed Oct 3 08:59:53 2001
---- ./src/modules/ldap/ldap.h Wed May 5 01:49:57 2004
-***************
-*** 42,47 ****
---- 42,50 ----
- #define PWLINE "%s:%s:%s:%s:%s:%s:%s"
- #define PWLINE_SIZE 6
-
-+ #define MPWLINE "%s:%s:%s:%s::0:0:%s:%s:%s"
-+ #define MPWLINE_SIZE 11
-+
- #define GWLINE "%s:%s:%s:%s"
- #define GWLINE_SIZE 3
diff --git a/net/yptransitd/files/patch-src_modules_ldap_cache.c b/net/yptransitd/files/patch-src_modules_ldap_cache.c
new file mode 100644
index 000000000000..b0dca21a3a8e
--- /dev/null
+++ b/net/yptransitd/files/patch-src_modules_ldap_cache.c
@@ -0,0 +1,177 @@
+--- src/modules/ldap/cache.c.orig 2001-10-09 02:34:51 UTC
++++ src/modules/ldap/cache.c
+@@ -278,8 +278,8 @@ int assemble_passwd(valdat *val, LDAPMes
+ } else
+ if(!strcasecmp(attr, "userpassword"))
+ {
+- pwinfo->userpassword = fix_password(values);
+- pwinfo->size += strlen(pwinfo->userpassword);
++ pwinfo->userpassword = safe_strdup("*");
++ pwinfo->size += strlen("*");
+ } else
+ if(!strcasecmp(attr, "uidnumber"))
+ {
+@@ -322,6 +322,73 @@ int assemble_passwd(valdat *val, LDAPMes
+ return (rval);
+ }
+
++int assemble_master_passwd(valdat *val, LDAPMessage *user, struct pwinfo *pwinfo)
++{
++ ypstat rval;
++ char *attr;
++ BerElement *ber = NULL;
++
++ rval = YP_YPERR;
++ fill_pwinfo(pwinfo);
++
++ for (attr = ldap_first_attribute (ldaprefs.ldap, user, &ber); attr; attr = ldap_next_attribute (ldaprefs.ldap, user, ber))
++ {
++ char **values;
++
++ values = ldap_get_values (ldaprefs.ldap, user, attr);
++ if (values)
++ {
++ if(!strcasecmp(attr, "uid"))
++ {
++ pwinfo->uid = safe_strdup(values[0]);
++ pwinfo->size += strlen(values[0]);
++ } else
++ if(!strcasecmp(attr, "userpassword"))
++ {
++ pwinfo->userpassword = fix_password(values);
++ pwinfo->size += strlen(pwinfo->userpassword);
++ } else
++ if(!strcasecmp(attr, "uidnumber"))
++ {
++ pwinfo->uidnumber = safe_strdup(values[0]);
++ pwinfo->size += strlen(values[0]);
++ } else
++ if(!strcasecmp(attr, "gidnumber"))
++ {
++ pwinfo->gidnumber = safe_strdup(values[0]);
++ pwinfo->size += strlen(values[0]);
++ } else
++ if(!strcasecmp(attr, "gecos"))
++ {
++ pwinfo->gecos = safe_strdup(values[0]);
++ pwinfo->size += strlen(values[0]);
++ } else
++ if(!strcasecmp(attr, "homedirectory"))
++ {
++ pwinfo->homedirectory = safe_strdup(values[0]);
++ pwinfo->size += strlen(values[0]);
++ } else
++ if(!strcasecmp(attr, "loginshell"))
++ {
++ pwinfo->loginshell = safe_strdup(values[0]);
++ pwinfo->size += strlen(values[0]);
++ }
++ ldap_value_free(values);
++ }
++ }
++ if (check_pwinfo(pwinfo) == YP_TRUE)
++ {
++ val->valdat_len = pwinfo->size + MPWLINE_SIZE;
++ val->valdat_val = safe_malloc(val->valdat_len + 1);
++ sprintf(val->valdat_val, MPWLINE, pwinfo->uid, pwinfo->userpassword, pwinfo->uidnumber, pwinfo->gidnumber, pwinfo->gecos, pwinfo->homedirectory, pwinfo->loginshell);
++ rval = YP_TRUE;
++ } else {
++ rval = YP_NOKEY;
++ }
++
++ return (rval);
++}
++
+ int assemble_group(valdat *val, LDAPMessage *group, struct gwinfo *gwinfo)
+ {
+ ypstat rval;
+@@ -452,7 +519,7 @@ struct mapcache *create_cache (ypmaplist
+ valdat *val;
+ int rval;
+
+- (void *) mapcache_current = (void *) mapcache_head = (void *) ldapreturn = (void *) record = NULL;
++ mapcache_current = mapcache_head = ldapreturn = record = NULL;
+ val = safe_malloc(sizeof(valdat));
+
+ for(maplist_current = maps; maplist_current; maplist_current = maplist_current->next)
+@@ -538,6 +605,80 @@ struct mapcache *create_cache (ypmaplist
+ free(filter);
+ free(base);
+ }
++ else if (!strcmp((char *) mapcache_current->map, "master.passwd.byname"))
++ {
++ /* XXX Add preferences for filter and basedn */
++ base = safe_malloc(strlen(ldaprefs.basedn) + strlen("ou=Staffs,") + 1);
++ sprintf(base, "%s%s", "ou=Staffs,", ldaprefs.basedn);
++ filter = safe_strdup("(objectClass=posixAccount)");
++
++ if(ldap_search_s(ldaprefs.ldap,
++ base,
++ LDAP_SCOPE_ONELEVEL,
++ filter,
++ user_attributes,
++ 0,
++ &ldapreturn) != -1)
++ {
++ for (record = ldap_first_entry(ldaprefs.ldap, ldapreturn); record; record = ldap_next_entry(ldaprefs.ldap, record))
++ {
++ pwinfo = safe_malloc(sizeof(struct pwinfo));
++ rval = assemble_master_passwd(val, record, pwinfo);
++ if(rval == YP_TRUE);
++ {
++ if(check_unique(mapcache_current, pwinfo->uid) == YP_NOKEY)
++ {
++ mapentry_current = safe_malloc(sizeof(struct mapentry));
++ mapentry_current->key = safe_strdup(pwinfo->uid);
++ mapentry_current->val = val->valdat_val;
++ mapentry_current->next = mapcache_current->mapentry;
++ mapcache_current->mapentry = mapentry_current;
++ }
++ }
++ clean_pwinfo(pwinfo);
++ }
++ }
++ ldap_msgfree(ldapreturn);
++ free(filter);
++ free(base);
++ }
++ else if (!strcmp((char *) mapcache_current->map, "master.passwd.byuid"))
++ {
++ /* XXX Add preferences for filter and basedn */
++ base = safe_malloc(strlen(ldaprefs.basedn) + strlen("ou=Staffs,") + 1);
++ sprintf(base, "%s%s", "ou=Staffs,", ldaprefs.basedn);
++ filter = safe_strdup("(objectClass=posixAccount)");
++
++ if(ldap_search_s(ldaprefs.ldap,
++ base,
++ LDAP_SCOPE_ONELEVEL,
++ filter,
++ user_attributes,
++ 0,
++ &ldapreturn) != -1)
++ {
++ for (record = ldap_first_entry(ldaprefs.ldap, ldapreturn); record; record = ldap_next_entry(ldaprefs.ldap, record))
++ {
++ pwinfo = safe_malloc(sizeof(struct pwinfo));
++ rval = assemble_master_passwd(val, record, pwinfo);
++ if(rval == YP_TRUE);
++ {
++ if(check_unique(mapcache_current, pwinfo->uidnumber) == YP_NOKEY)
++ {
++ mapentry_current = safe_malloc(sizeof(struct mapentry));
++ mapentry_current->key = safe_strdup(pwinfo->uidnumber);
++ mapentry_current->val = val->valdat_val;
++ mapentry_current->next = mapcache_current->mapentry;
++ mapcache_current->mapentry = mapentry_current;
++ }
++ }
++ clean_pwinfo(pwinfo);
++ }
++ }
++ ldap_msgfree(ldapreturn);
++ free(filter);
++ free(base);
++ }
+ else if (!strcmp((char *) mapcache_current->map, "group.byname"))
+ {
+ /* XXX Add preferences for filter and basedn */
diff --git a/net/yptransitd/files/patch-src_modules_ldap_ldap.c b/net/yptransitd/files/patch-src_modules_ldap_ldap.c
new file mode 100644
index 000000000000..dcd48524fbcd
--- /dev/null
+++ b/net/yptransitd/files/patch-src_modules_ldap_ldap.c
@@ -0,0 +1,13 @@
+--- src/modules/ldap/ldap.c.orig 2001-10-03 01:45:29 UTC
++++ src/modules/ldap/ldap.c
+@@ -60,7 +60,10 @@
+ #include "cache.h"
+
+ #define CONFIG_FILE CONFDIR "/ldap.conf"
++/*
+ #define MAPS "auto.home auto_home amd.home passwd.byname passwd.byuid group.byname group.bygid"
++*/
++#define MAPS "auto.home auto_home amd.home master.passwd.byname master.passwd.byuid passwd.byname passwd.byuid group.byname group.bygid"
+
+ struct ldaprefs ldaprefs;
+
diff --git a/net/yptransitd/files/patch-src_modules_ldap_ldap.h b/net/yptransitd/files/patch-src_modules_ldap_ldap.h
new file mode 100644
index 000000000000..3da35cd5e533
--- /dev/null
+++ b/net/yptransitd/files/patch-src_modules_ldap_ldap.h
@@ -0,0 +1,12 @@
+--- src/modules/ldap/ldap.h.orig 2001-10-03 00:59:53 UTC
++++ src/modules/ldap/ldap.h
+@@ -42,6 +42,9 @@
+ #define PWLINE "%s:%s:%s:%s:%s:%s:%s"
+ #define PWLINE_SIZE 6
+
++#define MPWLINE "%s:%s:%s:%s::0:0:%s:%s:%s"
++#define MPWLINE_SIZE 11
++
+ #define GWLINE "%s:%s:%s:%s"
+ #define GWLINE_SIZE 3
+