MCPcopy Create free account
hub / github.com/OpenPrinting/cups / cupsdAddNameMask

Function cupsdAddNameMask

scheduler/auth.c:182–249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180 */
181
182int /* O - 1 on success, 0 on failure */
183cupsdAddNameMask(cups_array_t **masks, /* IO - Masks array (created as needed) */
184 char *name) /* I - Host or interface name */
185{
186 cupsd_authmask_t temp; /* New host/domain mask */
187 char ifname[32], /* Interface name */
188 *ifptr; /* Pointer to end of name */
189
190
191 cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdAddNameMask(masks=%p(%p), name=\"%s\")", (void *)masks, (void *)*masks, name);
192
193 if (!_cups_strcasecmp(name, "@LOCAL"))
194 {
195 /*
196 * Deny *interface*...
197 */
198
199 temp.type = CUPSD_AUTH_INTERFACE;
200 temp.mask.name.name = (char *)"*";
201 }
202 else if (!_cups_strncasecmp(name, "@IF(", 4))
203 {
204 /*
205 * Deny *interface*...
206 */
207
208 strlcpy(ifname, name + 4, sizeof(ifname));
209
210 ifptr = ifname + strlen(ifname) - 1;
211
212 if (ifptr >= ifname && *ifptr == ')')
213 {
214 *ifptr = '\0';
215 }
216
217 temp.type = CUPSD_AUTH_INTERFACE;
218 temp.mask.name.name = ifname;
219 }
220 else
221 {
222 /*
223 * Deny name...
224 */
225
226 if (*name == '*')
227 name ++;
228
229 temp.type = CUPSD_AUTH_NAME;
230 temp.mask.name.name = (char *)name;
231 }
232
233 /*
234 * Set the name length...
235 */
236
237 temp.mask.name.length = strlen(temp.mask.name.name);
238
239 /*

Callers 1

parse_aaaFunction · 0.85

Calls 5

cupsdLogMessageFunction · 0.85
_cups_strcasecmpFunction · 0.85
_cups_strncasecmpFunction · 0.85
cupsArrayNew3Function · 0.85
cupsArrayAddFunction · 0.85

Tested by

no test coverage detected