add URL parsing functions
[deb_libnfs.git] / include / nfsc / libnfs.h
index 094de3c27027bad8280853d924f6a2a1fd3aed9b..10358100f889a878388a18f840fdcb03b8ff80d4 100644 (file)
 struct nfs_context;
 struct rpc_context;
 
+struct nfs_url {
+       char *server;
+       char *path;
+       char *file;
+};
+
 #if defined(WIN32)
 #define EXTERN __declspec( dllexport )
 #else
@@ -106,6 +112,31 @@ EXTERN struct nfs_context *nfs_init_context(void);
 EXTERN void nfs_destroy_context(struct nfs_context *nfs);
 
 
+/*
+ * Parse a complete NFS URL including, server, path and
+ * filename. Fail if any component is missing.
+ */
+EXTERN struct nfs_url *nfs_parse_url_full(struct nfs_context *nfs, const char *url);
+
+/*
+ * Parse an NFS URL, but do not split path and file. File
+ * in the resulting struct remains NULL.
+ */
+EXTERN struct nfs_url *nfs_parse_url_dir(struct nfs_context *nfs, const char *url);
+
+/*
+ * Parse an NFS URL, but do not fail if file, path or even server is missing.
+ * Check elements of the resulting struct for NULL.
+ */
+EXTERN struct nfs_url *nfs_parse_url_incomplete(struct nfs_context *nfs, const char *url);
+
+
+/*
+ * Free the URL struct returned by the nfs_parse_url_* functions.
+ */
+EXTERN void nfs_destroy_url(struct nfs_url *url);
+
+
 struct nfsfh;
 
 /*