diff options
Diffstat (limited to 'cups/ipp.c')
-rw-r--r-- | cups/ipp.c | 266 |
1 files changed, 137 insertions, 129 deletions
diff --git a/cups/ipp.c b/cups/ipp.c index 36f8a53bf..96361abdc 100644 --- a/cups/ipp.c +++ b/cups/ipp.c @@ -16,6 +16,8 @@ * * Contents: * + * _cupsBufferGet() - Get a read/write buffer. + * _cupsBufferRelease() - Release a read/write buffer. * ippAddBoolean() - Add a boolean attribute to an IPP message. * ippAddBooleans() - Add an array of boolean values. * ippAddCollection() - Add a collection value. @@ -90,8 +92,6 @@ * ippWriteFile() - Write data for an IPP message to a file. * ippWriteIO() - Write data for an IPP message. * ipp_add_attr() - Add a new attribute to the message. - * ipp_buffer_get() - Get a read/write buffer. - * ipp_buffer_release() - Release a read/write buffer. * ipp_free_values() - Free attribute values. * ipp_get_code() - Convert a C locale/charset name into an IPP * language/charset code. @@ -122,8 +122,6 @@ static ipp_attribute_t *ipp_add_attr(ipp_t *ipp, const char *name, ipp_tag_t group_tag, ipp_tag_t value_tag, int num_values); -static unsigned char *ipp_buffer_get(void); -static void ipp_buffer_release(unsigned char *b); static void ipp_free_values(ipp_attribute_t *attr, int element, int count); static char *ipp_get_code(const char *locale, char *buffer, size_t bufsize); static char *ipp_lang_code(const char *locale, char *buffer, size_t bufsize); @@ -138,6 +136,57 @@ static ssize_t ipp_write_file(int *fd, ipp_uchar_t *buffer, /* + * '_cupsBufferGet()' - Get a read/write buffer. + */ + +char * /* O - Buffer */ +_cupsBufferGet(size_t size) /* I - Size required */ +{ + _cups_buffer_t *buffer; /* Current buffer */ + _cups_globals_t *cg = _cupsGlobals(); + /* Global data */ + + + for (buffer = cg->cups_buffers; buffer; buffer = buffer->next) + if (!buffer->used && buffer->size >= size) + break; + + if (!buffer) + { + if ((buffer = malloc(sizeof(_cups_buffer_t) + size - 1)) == NULL) + return (NULL); + + buffer->next = cg->cups_buffers; + buffer->size = size; + cg->cups_buffers = buffer; + } + + buffer->used = 1; + + return (buffer->d); +} + + +/* + * '_cupsBufferRelease()' - Release a read/write buffer. + */ + +void +_cupsBufferRelease(char *b) /* I - Buffer to release */ +{ + _cups_buffer_t *buffer; /* Buffer */ + + + /* + * Mark this buffer as unused... + */ + + buffer = (_cups_buffer_t *)(b - offsetof(_cups_buffer_t, d)); + buffer->used = 0; +} + + +/* * 'ippAddBoolean()' - Add a boolean attribute to an IPP message. * * The @code ipp@ parameter refers to an IPP message previously created using the @@ -2423,7 +2472,7 @@ ippReadIO(void *src, /* I - Data source */ if (!src || !ipp) return (IPP_ERROR); - if ((buffer = ipp_buffer_get()) == NULL) + if ((buffer = (unsigned char *)_cupsBufferGet(IPP_BUF_SIZE)) == NULL) { DEBUG_puts("1ippReadIO: Unable to get read buffer."); return (IPP_ERROR); @@ -2444,7 +2493,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, 8) < 8) { DEBUG_puts("1ippReadIO: Unable to read header."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2483,7 +2532,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, 1) < 1) { DEBUG_puts("1ippReadIO: Callback returned EOF/error"); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2504,7 +2553,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, 4) < 1) { DEBUG_puts("1ippReadIO: Callback returned EOF/error"); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2517,9 +2566,9 @@ ippReadIO(void *src, /* I - Data source */ * Fail if the high bit is set in the tag... */ - _cupsSetError(IPP_ERROR, _("IPP extension tag larger than 0x7FFFFFFF."), 1); + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP extension tag larger than 0x7FFFFFFF."), 1); DEBUG_printf(("1ippReadIO: bad name length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } } @@ -2563,7 +2612,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, 2) < 2) { DEBUG_puts("1ippReadIO: unable to read name length."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2571,9 +2620,9 @@ ippReadIO(void *src, /* I - Data source */ if (n >= IPP_BUF_SIZE) { - _cupsSetError(IPP_ERROR, _("IPP name larger than 32767 bytes."), 1); + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP name larger than 32767 bytes."), 1); DEBUG_printf(("1ippReadIO: bad name length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2588,9 +2637,9 @@ ippReadIO(void *src, /* I - Data source */ if (ipp->current == NULL) { - _cupsSetError(IPP_ERROR, _("IPP attribute has no name."), 1); + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP attribute has no name."), 1); DEBUG_puts("1ippReadIO: Attribute without name and no current."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2624,13 +2673,13 @@ ippReadIO(void *src, /* I - Data source */ (tag < IPP_TAG_TEXT || tag > IPP_TAG_MIMETYPE) && tag != IPP_TAG_NOVALUE) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP 1setOf attribute with incompatible value " "tags."), 1); DEBUG_printf(("1ippReadIO: 1setOf value tag %x(%s) != %x(%s)", value_tag, ippTagString(value_tag), tag, ippTagString(tag))); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2651,13 +2700,13 @@ ippReadIO(void *src, /* I - Data source */ if (tag != IPP_TAG_INTEGER && tag != IPP_TAG_RANGE) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP 1setOf attribute with incompatible value " "tags."), 1); DEBUG_printf(("1ippReadIO: 1setOf value tag %x(%s) != %x(%s)", value_tag, ippTagString(value_tag), tag, ippTagString(tag))); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2674,13 +2723,13 @@ ippReadIO(void *src, /* I - Data source */ } else if (value_tag != tag) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP 1setOf attribute with incompatible value " "tags."), 1); DEBUG_printf(("1ippReadIO: value tag %x(%s) != %x(%s)", value_tag, ippTagString(value_tag), tag, ippTagString(tag))); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2690,7 +2739,7 @@ ippReadIO(void *src, /* I - Data source */ if ((value = ipp_set_value(ipp, &attr, attr->num_values)) == NULL) { - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } } @@ -2702,9 +2751,9 @@ ippReadIO(void *src, /* I - Data source */ if (n) { - _cupsSetError(IPP_ERROR, _("IPP member name is not empty."), 1); + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP member name is not empty."), 1); DEBUG_puts("1ippReadIO: member name not empty."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2727,7 +2776,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, n) < n) { DEBUG_puts("1ippReadIO: unable to read name."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2741,7 +2790,7 @@ ippReadIO(void *src, /* I - Data source */ { _cupsSetHTTPError(HTTP_ERROR); DEBUG_puts("1ippReadIO: unable to allocate attribute."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2759,7 +2808,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, 2) < 2) { DEBUG_puts("1ippReadIO: unable to read value length."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2768,10 +2817,10 @@ ippReadIO(void *src, /* I - Data source */ if (n >= IPP_BUF_SIZE) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP value larger than 32767 bytes."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2782,20 +2831,20 @@ ippReadIO(void *src, /* I - Data source */ if (n != 4) { if (tag == IPP_TAG_INTEGER) - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP integer value not 4 bytes."), 1); else - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP enum value not 4 bytes."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } if ((*cb)(src, buffer, 4) < 4) { DEBUG_puts("1ippReadIO: Unable to read integer value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2811,17 +2860,17 @@ ippReadIO(void *src, /* I - Data source */ case IPP_TAG_BOOLEAN : if (n != 1) { - _cupsSetError(IPP_ERROR, _("IPP boolean value not 1 byte."), + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP boolean value not 1 byte."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } if ((*cb)(src, buffer, 1) < 1) { DEBUG_puts("1ippReadIO: Unable to read boolean value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2857,7 +2906,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, n) < n) { DEBUG_puts("1ippReadIO: unable to read string value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2869,16 +2918,16 @@ ippReadIO(void *src, /* I - Data source */ case IPP_TAG_DATE : if (n != 11) { - _cupsSetError(IPP_ERROR, _("IPP date value not 11 bytes."), 1); + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP date value not 11 bytes."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } if ((*cb)(src, value->date, 11) < 11) { DEBUG_puts("1ippReadIO: Unable to read date value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } break; @@ -2886,17 +2935,17 @@ ippReadIO(void *src, /* I - Data source */ case IPP_TAG_RESOLUTION : if (n != 9) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP resolution value not 9 bytes."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } if ((*cb)(src, buffer, 9) < 9) { DEBUG_puts("1ippReadIO: Unable to read resolution value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2913,17 +2962,17 @@ ippReadIO(void *src, /* I - Data source */ case IPP_TAG_RANGE : if (n != 8) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP rangeOfInteger value not 8 bytes."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } if ((*cb)(src, buffer, 8) < 8) { DEBUG_puts("1ippReadIO: Unable to read range value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2940,15 +2989,15 @@ ippReadIO(void *src, /* I - Data source */ if (n < 4) { if (tag == IPP_TAG_TEXTLANG) - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP textWithLanguage value less than " "minimum 4 bytes."), 1); else - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP nameWithLanguage value less than " "minimum 4 bytes."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2956,7 +3005,7 @@ ippReadIO(void *src, /* I - Data source */ { DEBUG_puts("1ippReadIO: Unable to read string w/language " "value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2977,10 +3026,10 @@ ippReadIO(void *src, /* I - Data source */ if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE) || n >= sizeof(string)) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP language length overflows value."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -2994,10 +3043,10 @@ ippReadIO(void *src, /* I - Data source */ if ((bufptr + 2 + n) >= (buffer + IPP_BUF_SIZE)) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP string length overflows value."), 1); DEBUG_printf(("1ippReadIO: bad value length %d.", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -3014,28 +3063,28 @@ ippReadIO(void *src, /* I - Data source */ if (n > 0) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP begCollection value not 0 bytes."), 1); DEBUG_puts("1ippReadIO: begCollection tag with value length " "> 0."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } if (ippReadIO(src, cb, 1, ipp, value->collection) == IPP_ERROR) { DEBUG_puts("1ippReadIO: Unable to read collection value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } break; case IPP_TAG_END_COLLECTION : - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); if (n > 0) { - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP endCollection value not 0 bytes."), 1); DEBUG_puts("1ippReadIO: endCollection tag with value length " "> 0."); @@ -3054,7 +3103,7 @@ ippReadIO(void *src, /* I - Data source */ if ((*cb)(src, buffer, n) < n) { DEBUG_puts("1ippReadIO: Unable to read member name value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -3080,14 +3129,14 @@ ippReadIO(void *src, /* I - Data source */ { _cupsSetHTTPError(HTTP_ERROR); DEBUG_puts("1ippReadIO: Unable to allocate value"); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } if ((*cb)(src, value->unknown.data, n) < n) { DEBUG_puts("1ippReadIO: Unable to read unsupported value."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } } @@ -3113,7 +3162,7 @@ ippReadIO(void *src, /* I - Data source */ } DEBUG_printf(("1ippReadIO: returning ipp->state=%d.", ipp->state)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (ipp->state); } @@ -3967,7 +4016,7 @@ ippWriteIO(void *dst, /* I - Destination */ if (!dst || !ipp) return (IPP_ERROR); - if ((buffer = ipp_buffer_get()) == NULL) + if ((buffer = (unsigned char *)_cupsBufferGet(IPP_BUF_SIZE)) == NULL) { DEBUG_puts("1ippWriteIO: Unable to get write buffer"); return (IPP_ERROR); @@ -4010,7 +4059,7 @@ ippWriteIO(void *dst, /* I - Destination */ if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0) { DEBUG_puts("1ippWriteIO: Could not write IPP header..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } } @@ -4089,7 +4138,7 @@ ippWriteIO(void *dst, /* I - Destination */ if ((n = (int)strlen(attr->name)) > (IPP_BUF_SIZE - 8)) { DEBUG_printf(("1ippWriteIO: Attribute name too long (%d)", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4128,7 +4177,7 @@ ippWriteIO(void *dst, /* I - Destination */ if ((n = (int)strlen(attr->name)) > (IPP_BUF_SIZE - 12)) { DEBUG_printf(("1ippWriteIO: Attribute name too long (%d)", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4197,7 +4246,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4243,7 +4292,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4304,7 +4353,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4324,7 +4373,7 @@ ippWriteIO(void *dst, /* I - Destination */ if (n > (IPP_BUF_SIZE - 2)) { DEBUG_printf(("1ippWriteIO: String too long (%d)", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4337,7 +4386,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4376,7 +4425,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4421,7 +4470,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4474,7 +4523,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4533,7 +4582,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4567,7 +4616,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_printf(("1ippWriteIO: text/nameWithLanguage value " "too long (%d)", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4577,7 +4626,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4640,7 +4689,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4670,7 +4719,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4686,7 +4735,7 @@ ippWriteIO(void *dst, /* I - Destination */ value->collection) == IPP_ERROR) { DEBUG_puts("1ippWriteIO: Unable to write collection value"); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } } @@ -4710,7 +4759,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4735,7 +4784,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_printf(("1ippWriteIO: Data length too long (%d)", n)); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4745,7 +4794,7 @@ ippWriteIO(void *dst, /* I - Destination */ { DEBUG_puts("1ippWriteIO: Could not write IPP " "attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4775,7 +4824,7 @@ ippWriteIO(void *dst, /* I - Destination */ if ((*cb)(dst, buffer, (int)(bufptr - buffer)) < 0) { DEBUG_puts("1ippWriteIO: Could not write IPP attribute..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4816,7 +4865,7 @@ ippWriteIO(void *dst, /* I - Destination */ if ((*cb)(dst, buffer, n) < 0) { DEBUG_puts("1ippWriteIO: Could not write IPP end-tag..."); - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (IPP_ERROR); } @@ -4831,7 +4880,7 @@ ippWriteIO(void *dst, /* I - Destination */ break; /* anti-compiler-warning-code */ } - ipp_buffer_release(buffer); + _cupsBufferRelease((char *)buffer); return (ipp->state); } @@ -4907,47 +4956,6 @@ ipp_add_attr(ipp_t *ipp, /* I - IPP message */ /* - * 'ipp_buffer_get()' - Get a read/write buffer. - */ - -static unsigned char * /* O - Buffer */ -ipp_buffer_get(void) -{ - _ipp_buffer_t *buffer; /* Current buffer */ - _cups_globals_t *cg = _cupsGlobals(); - /* Global data */ - - - for (buffer = cg->ipp_buffers; buffer; buffer = buffer->next) - if (!buffer->used) - { - buffer->used = 1; - return (buffer->d); - } - - if ((buffer = malloc(sizeof(_ipp_buffer_t))) == NULL) - return (NULL); - - buffer->used = 1; - buffer->next = cg->ipp_buffers; - cg->ipp_buffers = buffer; - - return (buffer->d); -} - - -/* - * 'ipp_buffer_release()' - Release a read/write buffer. - */ - -static void -ipp_buffer_release(unsigned char *b) /* I - Buffer to release */ -{ - ((_ipp_buffer_t *)b)->used = 0; -} - - -/* * 'ipp_free_values()' - Free attribute values. */ @@ -5503,7 +5511,7 @@ ipp_set_value(ipp_t *ipp, /* IO - IPP message */ */ *attr = temp; - _cupsSetError(IPP_ERROR, + _cupsSetError(IPP_INTERNAL_ERROR, _("IPP attribute is not a member of the message."), 1); DEBUG_puts("4ipp_set_value: Unable to find attribute in message."); return (NULL); |