*/
chunk_t chunk_empty = { NULL, 0 };
-/**
- * Described in header.
- */
-chunk_t chunk_create(u_char *ptr, size_t len)
-{
- chunk_t chunk = {ptr, len};
- return chunk;
-}
-
/**
* Described in header.
*/
return chunk_create(buf, outlen);
}
-/**
- * Described in header.
- */
-void chunk_free(chunk_t *chunk)
-{
- free(chunk->ptr);
- chunk->ptr = NULL;
- chunk->len = 0;
-}
-
-/**
- * Described in header.
- */
-void chunk_clear(chunk_t *chunk)
-{
- memset(chunk->ptr, 0, chunk->len);
- chunk_free(chunk);
-}
-
-/**
- * Described in header.
- */
-chunk_t chunk_skip(chunk_t chunk, size_t bytes)
-{
- if (chunk.len > bytes)
- {
- chunk.ptr += bytes;
- chunk.len -= bytes;
- return chunk;
- }
- return chunk_empty;
-}
-
/**
* Described in header.
*/
return memcmp(a.ptr, b.ptr, len);
};
-/**
- * Described in header.
- */
-bool chunk_equals(chunk_t a, chunk_t b)
-{
- return a.ptr != NULL && b.ptr != NULL &&
- a.len == b.len && memeq(a.ptr, b.ptr, a.len);
-}
-
/**
* Described in header.
*
/**
* Create a new chunk pointing to "ptr" with length "len"
*/
-chunk_t chunk_create(u_char *ptr, size_t len);
+static inline chunk_t chunk_create(u_char *ptr, size_t len)
+{
+ chunk_t chunk = {ptr, len};
+ return chunk;
+}
/**
* Create a clone of a chunk pointing to "ptr"
/**
* Free contents of a chunk
*/
-void chunk_free(chunk_t *chunk);
+static inline void chunk_free(chunk_t *chunk)
+{
+ free(chunk->ptr);
+ *chunk = chunk_empty;
+}
/**
* Overwrite the contents of a chunk and free it
*/
-void chunk_clear(chunk_t *chunk);
+static inline void chunk_clear(chunk_t *chunk)
+{
+ memset(chunk->ptr, 0, chunk->len);
+ chunk_free(chunk);
+}
/**
* Initialize a chunk to point to buffer inspectable by sizeof()
/**
* Skip n bytes in chunk (forward pointer, shorten length)
*/
-chunk_t chunk_skip(chunk_t chunk, size_t bytes);
+static inline chunk_t chunk_skip(chunk_t chunk, size_t bytes)
+{
+ if (chunk.len > bytes)
+ {
+ chunk.ptr += bytes;
+ chunk.len -= bytes;
+ return chunk;
+ }
+ return chunk_empty;
+}
/**
* Compare two chunks, returns zero if a equals b
* Compare two chunks for equality,
* NULL chunks are never equal.
*/
-bool chunk_equals(chunk_t a, chunk_t b);
+static inline bool chunk_equals(chunk_t a, chunk_t b)
+{
+ return a.ptr != NULL && b.ptr != NULL &&
+ a.len == b.len && memeq(a.ptr, b.ptr, a.len);
+}
/**
* Computes a 32 bit hash of the given chunk.