/[smeserver]/rpms/cpu/sme8/cpu-1.4.3-mod-delete.patch
ViewVC logotype

Annotation of /rpms/cpu/sme8/cpu-1.4.3-mod-delete.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Sat Nov 6 05:47:03 2010 UTC (14 years ago) by slords
Branch: MAIN
CVS Tags: cpu-1_4_3-9_el5_sme
Changes since 1.1: +196 -16 lines
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-9.sme
- Check for attribute before deleting (for extra attrs) [SME: 6342]

1 slords 1.2 diff -up cpu-1.4.3/src/include/plugins/ldap/ldap.h.mod-delete cpu-1.4.3/src/include/plugins/ldap/ldap.h
2     diff -up cpu-1.4.3/src/include/plugins/ldap/ldap.h.mod-delete cpu-1.4.3/src/include/plugins/ldap/ldap.h
3     --- cpu-1.4.3/src/include/plugins/ldap/ldap.h.mod-delete 2003-12-30 20:22:20.000000000 -0700
4     +++ cpu-1.4.3/src/include/plugins/ldap/ldap.h 2010-11-05 23:41:22.000000000 -0600
5     @@ -127,8 +127,8 @@ int ldapCat(LDAP *ld);
6     uid_t getNextUid(LDAP * ld);
7     gid_t getNextGid(LDAP * ld, ldapop_t op);
8     int ldapUserCheck(int mod_op, LDAP * ld);
9     -int ldapGroupCheck(int mod_op);
10     -LDAPMod ** ldapBuildListStr(int mod_op, char * mod_type, char * value,
11     +int ldapGroupCheck(int mod_op, LDAP * ld);
12     +LDAPMod ** ldapBuildListStr(LDAP * ld, int mod_op, char * mod_type, char * value,
13     LDAPMod ** mods);
14     LDAPMod ** ldapBuildList(int mod_op, char * mod_type, char ** value,
15     LDAPMod ** mods);
16     diff -up cpu-1.4.3/src/plugins/ldap/group.c.mod-delete cpu-1.4.3/src/plugins/ldap/group.c
17     --- cpu-1.4.3/src/plugins/ldap/group.c.mod-delete 2003-10-12 17:34:59.000000000 -0600
18     +++ cpu-1.4.3/src/plugins/ldap/group.c 2010-11-05 23:41:22.000000000 -0600
19     @@ -31,7 +31,7 @@ LDAPMod **groupMod = NULL;
20     int
21     ldapGroupAdd (LDAP * ld)
22     {
23     - if (ldapGroupCheck (LDAP_MOD_ADD) < 0)
24     + if (ldapGroupCheck (LDAP_MOD_ADD, ld) < 0)
25     {
26     fprintf (stderr, "ldap: ldapGroupAdd: error in ldapGroupCheck\n");
27     return -1;
28     @@ -50,7 +50,7 @@ int
29     ldapGroupMod (LDAP * ld)
30     {
31     char *newdn = NULL;
32     - if (ldapGroupCheck (LDAP_MOD_REPLACE) < 0)
33     + if (ldapGroupCheck (LDAP_MOD_REPLACE, ld) < 0)
34     {
35     fprintf (stderr, "ldap: ldapGroupMod: error in ldapGroupCheck\n");
36     return -1;
37     @@ -105,7 +105,7 @@ ldapGroupDel (LDAP * ld)
38     }
39    
40     int
41     -ldapGroupCheck (int mod_op)
42     +ldapGroupCheck (int mod_op, LDAP * ld)
43     {
44     int op = 0;
45     if (mod_op == LDAP_MOD_ADD)
46     @@ -126,11 +126,11 @@ ldapGroupCheck (int mod_op)
47     groupMod = ldapBuildList (op, "objectClass",
48     globalLdap->group_object_class, groupMod);
49     groupMod =
50     - ldapBuildListStr (LDAP_MOD_ADD, "cn", ldapGetCn (), groupMod);
51     + ldapBuildListStr (ld, LDAP_MOD_ADD, "cn", ldapGetCn (), groupMod);
52     }
53    
54     if (globalLdap->passent->pw_passwd)
55     - groupMod = ldapBuildListStr (op, "userPassword",
56     + groupMod = ldapBuildListStr (ld, op, "userPassword",
57     globalLdap->passent->pw_passwd, groupMod);
58    
59     if ((int) globalLdap->passent->pw_gid > -1)
60     @@ -143,7 +143,7 @@ ldapGroupCheck (int mod_op)
61     pos = globalLdap->parse;
62     while (pos != NULL)
63     {
64     - groupMod = ldapBuildListStr (op, pos->attr, pos->attrval, groupMod);
65     + groupMod = ldapBuildListStr (ld, op, pos->attr, pos->attrval, groupMod);
66     pos = pos->next;
67     }
68     }
69 slords 1.1 diff -up cpu-1.4.3/src/plugins/ldap/ld.c.mod-delete cpu-1.4.3/src/plugins/ldap/ld.c
70 slords 1.2 --- cpu-1.4.3/src/plugins/ldap/ld.c.mod-delete 2010-11-05 23:40:48.000000000 -0600
71     +++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-05 23:41:22.000000000 -0600
72     @@ -278,7 +278,7 @@ ldapAddList (LDAPMod ** mods)
73     }
74    
75     LDAPMod **
76     -ldapBuildListStr (int mod_op, char *mod_type, char *value, LDAPMod ** mods)
77     +ldapBuildListStr (LDAP * ld, int mod_op, char *mod_type, char *value, LDAPMod ** mods)
78     {
79     char **temp;
80    
81     @@ -286,19 +286,53 @@ ldapBuildListStr (int mod_op, char *mod_
82 slords 1.1 return mods;
83    
84 slords 1.2 if (value == NULL || strlen(value) == strspn(value, " "))
85 slords 1.1 - return mods;
86 slords 1.2 + {
87     + int strsize = 1;
88     + char *filter = NULL;
89     + int ldapres = 0;
90     +
91     + LDAPMessage *res[2];
92     + res[1] = NULL;
93     +
94     + strsize = strlen (mod_type) + 5;
95     + filter = (char *) malloc (sizeof (char) * strsize);
96     + if (filter == NULL)
97     + return -1;
98     + bzero (filter, strsize);
99     + snprintf (filter, strsize, "(%s=*)", mod_type);
100     + if (ldap_search_st (ld, globalLdap->dn, LDAP_SCOPE_BASE, filter, NULL, 0,
101     + &globalLdap->timeout, res) != LDAP_SUCCESS)
102     + {
103     + CPU_ldapPerror (ld, globalLdap,
104     + "ldapBuildListStr: ldap_search_st");
105     + return -1;
106     + }
107     + ldapres = ldap_count_entries (ld, res[0]);
108     + if (ldapres > 0)
109     + {
110     + mods = ldapAddList (mods);
111    
112     - mods = ldapAddList (mods);
113     + mods[list_size]->mod_op = LDAP_MOD_DELETE;
114     + mods[list_size]->mod_type = strdup (mod_type);
115     + mods[list_size]->mod_values = NULL;
116     + list_size++;
117     + }
118     + }
119     + else
120     + {
121     + mods = ldapAddList (mods);
122 slords 1.1
123     - temp = (char **) malloc (sizeof (char *) * 2);
124     - bzero (temp, sizeof (char *) * 2);
125     - temp[0] = value;
126     - temp[1] = NULL;
127     + temp = (char **) malloc (sizeof (char *) * 2);
128     + bzero (temp, sizeof (char *) * 2);
129     + temp[0] = value;
130     + temp[1] = NULL;
131     +
132     + mods[list_size]->mod_op = mod_op;
133     + mods[list_size]->mod_type = strdup (mod_type);
134     + mods[list_size]->mod_values = temp;
135 slords 1.2 + list_size++;
136 slords 1.1 + }
137    
138     - mods[list_size]->mod_op = mod_op;
139     - mods[list_size]->mod_type = strdup (mod_type);
140     - mods[list_size]->mod_values = temp;
141 slords 1.2 - list_size++;
142 slords 1.1 return mods;
143     }
144 slords 1.2
145     diff -up cpu-1.4.3/src/plugins/ldap/user.c.mod-delete cpu-1.4.3/src/plugins/ldap/user.c
146     --- cpu-1.4.3/src/plugins/ldap/user.c.mod-delete 2010-11-05 23:40:48.000000000 -0600
147     +++ cpu-1.4.3/src/plugins/ldap/user.c 2010-11-05 23:41:22.000000000 -0600
148     @@ -251,16 +251,16 @@ ldapUserCheck (int mod_op, LDAP * ld)
149     */
150     if (op == LDAP_MOD_ADD)
151     {
152     - userMod = ldapBuildListStr (LDAP_MOD_ADD, "cn", ldapGetCn (), userMod);
153     + userMod = ldapBuildListStr (ld, LDAP_MOD_ADD, "cn", ldapGetCn (), userMod);
154     userMod =
155     ldapBuildList (op, "objectClass", globalLdap->user_object_class,
156     userMod);
157     }
158     else if (globalLdap->passent->pw_gecos || (globalLdap->first_name && globalLdap->last_name))
159     - userMod = ldapBuildListStr (op, "cn", ldapGetCn (), userMod);
160     + userMod = ldapBuildListStr (ld, op, "cn", ldapGetCn (), userMod);
161    
162     userMod =
163     - ldapBuildListStr (op, "uid", globalLdap->passent->pw_name, userMod);
164     + ldapBuildListStr (ld, op, "uid", globalLdap->passent->pw_name, userMod);
165    
166     /* do we allow duplicates ? */
167     if ((int) globalLdap->passent->pw_uid > -1)
168     @@ -433,35 +433,35 @@ ldapUserCheck (int mod_op, LDAP * ld)
169     }
170     if (globalLdap->first_name)
171     userMod =
172     - ldapBuildListStr (op, "givenName", globalLdap->first_name, userMod);
173     + ldapBuildListStr (ld, op, "givenName", globalLdap->first_name, userMod);
174    
175     if (globalLdap->last_name)
176     - userMod = ldapBuildListStr (op, "sn", globalLdap->last_name, userMod);
177     + userMod = ldapBuildListStr (ld, op, "sn", globalLdap->last_name, userMod);
178    
179     if (globalLdap->new_username)
180     - userMod = ldapBuildListStr (op, "uid", globalLdap->new_username, userMod);
181     + userMod = ldapBuildListStr (ld, op, "uid", globalLdap->new_username, userMod);
182    
183     if (globalLdap->email_address)
184     userMod =
185     - ldapBuildListStr (op, "mail", globalLdap->email_address, userMod);
186     + ldapBuildListStr (ld, op, "mail", globalLdap->email_address, userMod);
187    
188     if (globalLdap->passent->pw_passwd)
189     userMod =
190     - ldapBuildListStr (op, "userPassword", globalLdap->passent->pw_passwd,
191     + ldapBuildListStr (ld, op, "userPassword", globalLdap->passent->pw_passwd,
192     userMod);
193    
194     if (globalLdap->passent->pw_gecos)
195     - userMod = ldapBuildListStr (op, "gecos", globalLdap->passent->pw_gecos,
196     + userMod = ldapBuildListStr (ld, op, "gecos", globalLdap->passent->pw_gecos,
197     userMod);
198    
199     if (globalLdap->passent->pw_dir)
200     userMod =
201     - ldapBuildListStr (op, "homeDirectory", globalLdap->passent->pw_dir,
202     + ldapBuildListStr (ld, op, "homeDirectory", globalLdap->passent->pw_dir,
203     userMod);
204    
205     if (globalLdap->passent->pw_shell)
206     userMod =
207     - ldapBuildListStr (op, "loginShell", globalLdap->passent->pw_shell,
208     + ldapBuildListStr (ld, op, "loginShell", globalLdap->passent->pw_shell,
209     userMod);
210     if ((int) globalLdap->passent->sp_lstchg != -10)
211     userMod = ldapBuildListInt (op, "shadowLastChange",
212     @@ -501,7 +501,7 @@ ldapUserCheck (int mod_op, LDAP * ld)
213     pos = globalLdap->parse;
214     while (pos != NULL)
215     {
216     - userMod = ldapBuildListStr (op, pos->attr, pos->attrval, userMod);
217     + userMod = ldapBuildListStr (ld, op, pos->attr, pos->attrval, userMod);
218     pos = pos->next;
219     }
220     }

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed