63 static const char b64marker[7] =
";base64";
72 DBGC (
uri,
"DATA %p has no opaque part\n",
uri );
79 DBGC (
uri,
"DATA %p has no comma separator\n",
uri );
83 encoded = ( comma + 1 );
87 if ( ( prefix_len >=
sizeof ( b64marker ) ) &&
88 (
strncasecmp ( ( comma -
sizeof ( b64marker ) ), b64marker,
89 sizeof ( b64marker ) ) == 0 ) ) {
95 DBGC (
uri,
"DATA %p could not decode Base64: %s\n",
struct arbelprm_rc_send_wqe rc
int base64_decode(const char *encoded, void *data, size_t len)
Base64-decode string.
int blob_open(struct interface *xfer, const void *data, size_t len)
Open data blob.
int datauri_parse(struct uri *uri, void *buf)
Parse data URI.
static int datauri_open(struct interface *xfer, struct uri *uri)
Open data URI.
static size_t datauri_max_len(struct uri *uri)
Get maximum length of parsed data URI.
uint8_t data[48]
Additional event data.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define EINVAL
Invalid argument.
#define ENOMEM
Not enough space.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
void * malloc(size_t size)
Allocate memory.
Data transfer interface opening.
#define __uri_opener
Register a URI opener.
static void(* free)(struct refcnt *refcnt))
char * strerror(int errno)
Retrieve string representation of error number.
char * strchr(const char *src, int character)
Find character within a string.
int strncasecmp(const char *first, const char *second, size_t max)
Compare case-insensitive strings.
char * strcpy(char *dest, const char *src)
Copy string.
size_t strlen(const char *src)
Get length of string.
A Uniform Resource Identifier.
const char * opaque
Opaque part.