extern http_t *_cupsConnect(void);
extern char *_cupsCreateDest(const char *name, const char *info, const char *device_id, const char *device_uri, char *uri, size_t urisize);
-extern void _cupsEncodeOption(ipp_t *ipp, ipp_tag_t group_tag, _ipp_option_t *map, const char *name, const char *value);
+extern ipp_attribute_t *_cupsEncodeOption(ipp_t *ipp, ipp_tag_t group_tag, _ipp_option_t *map, const char *name, const char *value);
extern int _cupsGet1284Values(const char *device_id, cups_option_t **values);
extern const char *_cupsGetDestResource(cups_dest_t *dest, unsigned flags, char *resource, size_t resourcesize);
extern int _cupsGetDests(http_t *http, ipp_op_t op, const char *name, cups_dest_t **dests, cups_ptype_t type, cups_ptype_t mask);
* '_cupsEncodeOption()' - Encode a single option as an IPP attribute.
*/
-void
+ipp_attribute_t * /* O - New attribute or @code NULL@ on error */
_cupsEncodeOption(
ipp_t *ipp, /* I - IPP request/response/collection */
ipp_tag_t group_tag, /* I - Group tag */
*/
DEBUG_puts("1_cupsEncodeOption: Ran out of memory for attributes.");
- return;
+ return (NULL);
}
if (count > 1)
DEBUG_puts("1_cupsEncodeOption: Ran out of memory for value copy.");
ippDeleteAttribute(ipp, attr);
- return;
+ return (NULL);
}
val = copy;
free(copy);
ippDeleteAttribute(ipp, attr);
- return;
+ return (NULL);
}
ippSetCollection(ipp, &attr, i, collection);
if (copy)
free(copy);
+
+ return (attr);
}
op = ippGetOperation(ipp);
- if (group_tag == IPP_TAG_OPERATION && (op == IPP_OP_PRINT_JOB || op == IPP_OP_PRINT_URI || op == IPP_OP_SEND_DOCUMENT || op == IPP_OP_SEND_URI))
+ if (group_tag == IPP_TAG_OPERATION && (op == IPP_OP_PRINT_JOB || op == IPP_OP_PRINT_URI || op == IPP_OP_SEND_DOCUMENT || op == IPP_OP_SEND_URI))
{
/*
* Handle the document format stuff first...