summaryrefslogtreecommitdiff
path: root/gpxe/src/include/gpxe/uri.h
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
committerH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
commitf2f897a1762fab84d2905f32b1c15dd7b42abb56 (patch)
treea38f51d3f1fcbf44afddb4736d549c12eaf491be /gpxe/src/include/gpxe/uri.h
parent72d2959272b4616f17a97667e6dfa9d06bf109a3 (diff)
downloadsyslinux-f2f897a1762fab84d2905f32b1c15dd7b42abb56.tar.gz
gpxe: delete long since obsolete snapshot of gPXE
gPXE has been deprecated in favor of iPXE for many, many years now. It is much better than users get it directly from the iPXE project, since we should no longer need any special modifications for Syslinux use. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'gpxe/src/include/gpxe/uri.h')
-rw-r--r--gpxe/src/include/gpxe/uri.h182
1 files changed, 0 insertions, 182 deletions
diff --git a/gpxe/src/include/gpxe/uri.h b/gpxe/src/include/gpxe/uri.h
deleted file mode 100644
index 405d0ce9..00000000
--- a/gpxe/src/include/gpxe/uri.h
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef _GPXE_URI_H
-#define _GPXE_URI_H
-
-/** @file
- *
- * Uniform Resource Identifiers
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER );
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <gpxe/refcnt.h>
-
-/** A Uniform Resource Identifier
- *
- * Terminology for this data structure is as per uri(7), except that
- * "path" is defined to include the leading '/' for an absolute path.
- *
- * Note that all fields within a URI are optional and may be NULL.
- *
- * The pointers to the various fields are packed together so they can
- * be accessed in array fashion in some places in uri.c where doing so
- * saves significant code size.
- *
- * Some examples are probably helpful:
- *
- * http://www.etherboot.org/wiki :
- *
- * scheme = "http", host = "www.etherboot.org", path = "/wiki"
- *
- * /var/lib/tftpboot :
- *
- * path = "/var/lib/tftpboot"
- *
- * mailto:bob@nowhere.com :
- *
- * scheme = "mailto", opaque = "bob@nowhere.com"
- *
- * ftp://joe:secret@insecure.org:8081/hidden/path/to?what=is#this
- *
- * scheme = "ftp", user = "joe", password = "secret",
- * host = "insecure.org", port = "8081", path = "/hidden/path/to",
- * query = "what=is", fragment = "this"
- */
-struct uri {
- /** Reference count */
- struct refcnt refcnt;
- /** Scheme */
- const char *scheme;
- /** Opaque part */
- const char *opaque;
- /** User name */
- const char *user;
- /** Password */
- const char *password;
- /** Host name */
- const char *host;
- /** Port number */
- const char *port;
- /** Path */
- const char *path;
- /** Query */
- const char *query;
- /** Fragment */
- const char *fragment;
-} __attribute__ (( packed ));
-
-/** A field in a URI
- *
- * The order of the indices in this enumeration must match the order
- * of the fields in the URI structure.
- */
-enum {
- URI_SCHEME = 0, URI_SCHEME_BIT = ( 1 << URI_SCHEME ),
- URI_OPAQUE = 1, URI_OPAQUE_BIT = ( 1 << URI_OPAQUE ),
- URI_USER = 2, URI_USER_BIT = ( 1 << URI_USER ),
- URI_PASSWORD = 3, URI_PASSWORD_BIT = ( 1 << URI_PASSWORD ),
- URI_HOST = 4, URI_HOST_BIT = ( 1 << URI_HOST ),
- URI_PORT = 5, URI_PORT_BIT = ( 1 << URI_PORT ),
- URI_PATH = 6, URI_PATH_BIT = ( 1 << URI_PATH ),
- URI_QUERY = 7, URI_QUERY_BIT = ( 1 << URI_QUERY ),
- URI_FRAGMENT = 8, URI_FRAGMENT_BIT = ( 1 << URI_FRAGMENT ),
-
- URI_FIRST_FIELD = URI_SCHEME,
- URI_LAST_FIELD = URI_FRAGMENT,
-};
-
-/** Extract field from URI */
-#define uri_get_field( uri, field ) (&uri->scheme)[field]
-
-/** All URI fields */
-#define URI_ALL ( URI_SCHEME_BIT | URI_OPAQUE_BIT | URI_USER_BIT | \
- URI_PASSWORD_BIT | URI_HOST_BIT | URI_PORT_BIT | \
- URI_PATH_BIT | URI_QUERY_BIT | URI_FRAGMENT_BIT )
-
-/** URI fields that should be decoded on storage */
-#define URI_ENCODED ( URI_USER_BIT | URI_PASSWORD_BIT | URI_HOST_BIT | \
- URI_PATH_BIT | URI_QUERY_BIT | URI_FRAGMENT_BIT )
-
-/**
- * URI is an absolute URI
- *
- * @v uri URI
- * @ret is_absolute URI is absolute
- *
- * An absolute URI begins with a scheme, e.g. "http:" or "mailto:".
- * Note that this is a separate concept from a URI with an absolute
- * path.
- */
-static inline int uri_is_absolute ( struct uri *uri ) {
- return ( uri->scheme != NULL );
-}
-
-/**
- * URI has an absolute path
- *
- * @v uri URI
- * @ret has_absolute_path URI has an absolute path
- *
- * An absolute path begins with a '/'. Note that this is a separate
- * concept from an absolute URI. Note also that a URI may not have a
- * path at all.
- */
-static inline int uri_has_absolute_path ( struct uri *uri ) {
- return ( uri->path && ( uri->path[0] == '/' ) );
-}
-
-/**
- * URI has a relative path
- *
- * @v uri URI
- * @ret has_relative_path URI has a relative path
- *
- * A relative path begins with something other than a '/'. Note that
- * this is a separate concept from a relative URI. Note also that a
- * URI may not have a path at all.
- */
-static inline int uri_has_relative_path ( struct uri *uri ) {
- return ( uri->path && ( uri->path[0] != '/' ) );
-}
-
-/**
- * Increment URI reference count
- *
- * @v uri URI, or NULL
- * @ret uri URI as passed in
- */
-static inline __attribute__ (( always_inline )) struct uri *
-uri_get ( struct uri *uri ) {
- ref_get ( &uri->refcnt );
- return uri;
-}
-
-/**
- * Decrement URI reference count
- *
- * @v uri URI, or NULL
- */
-static inline __attribute__ (( always_inline )) void
-uri_put ( struct uri *uri ) {
- ref_put ( &uri->refcnt );
-}
-
-extern struct uri *cwuri;
-
-extern struct uri * parse_uri ( const char *uri_string );
-extern unsigned int uri_port ( struct uri *uri, unsigned int default_port );
-extern int unparse_uri ( char *buf, size_t size, struct uri *uri,
- unsigned int fields );
-extern struct uri * uri_dup ( struct uri *uri );
-extern char * resolve_path ( const char *base_path,
- const char *relative_path );
-extern struct uri * resolve_uri ( struct uri *base_uri,
- struct uri *relative_uri );
-extern void churi ( struct uri *uri );
-extern size_t uri_encode ( const char *raw_string, char *buf, ssize_t len,
- int field );
-extern size_t uri_decode ( const char *encoded_string, char *buf, ssize_t len );
-
-#endif /* _GPXE_URI_H */