00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_URL_H
00018 #define GLOBUS_URL_H
00019
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038
00039
00050 typedef enum
00051 {
00053 GLOBUS_URL_SCHEME_FTP=0,
00055 GLOBUS_URL_SCHEME_GSIFTP,
00057 GLOBUS_URL_SCHEME_HTTP,
00059 GLOBUS_URL_SCHEME_HTTPS,
00061 GLOBUS_URL_SCHEME_LDAP,
00063 GLOBUS_URL_SCHEME_FILE,
00065 GLOBUS_URL_SCHEME_X_NEXUS,
00067 GLOBUS_URL_SCHEME_X_GASS_CACHE,
00069 GLOBUS_URL_SCHEME_UNKNOWN,
00070 GLOBUS_URL_SCHEME_SSHFTP,
00072 GLOBUS_URL_NUM_SCHEMES
00073 } globus_url_scheme_t;
00074
00075
00076
00077
00078
00079
00088 typedef struct
00089 {
00091 char *scheme;
00092
00094 globus_url_scheme_t scheme_type;
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110 char *user;
00111 char *password;
00112 char *host;
00114 unsigned short port;
00116 char *url_path;
00118 char *dn;
00120 char *attributes;
00122 char *scope;
00123 char *filter;
00126 char *url_specific_part;
00131 } globus_url_t;
00132
00133
00134 int globus_url_parse(const char *url_string, globus_url_t *url);
00135
00136
00137 int globus_url_parse_rfc1738(const char *url_string, globus_url_t *url);
00138
00139
00140 int globus_url_parse_loose(const char *url_string, globus_url_t *url);
00141
00142
00143 int globus_url_destroy(globus_url_t *url);
00144
00145
00146 int globus_url_copy(globus_url_t * dest, const globus_url_t * src);
00147
00148
00149 int globus_url_get_scheme(const char *url_string,
00150 globus_url_scheme_t *scheme_type);
00151
00152
00153 void
00154 globus_url_string_hex_decode(
00155 char * s);
00156
00157 char *
00158 globus_url_string_hex_encode(
00159 const char * s,
00160 const char * enc);
00161
00162
00163 #define GLOBUS_URL_SUCCESS 0
00164 #define GLOBUS_URL_ERROR_NULL_STRING -1
00165 #define GLOBUS_URL_ERROR_NULL_URL -2
00166 #define GLOBUS_URL_ERROR_BAD_SCHEME -3
00167 #define GLOBUS_URL_ERROR_BAD_USER -4
00168 #define GLOBUS_URL_ERROR_BAD_PASSWORD -5
00169 #define GLOBUS_URL_ERROR_BAD_HOST -6
00170 #define GLOBUS_URL_ERROR_BAD_PORT -7
00171 #define GLOBUS_URL_ERROR_BAD_PATH -8
00172
00173
00174 #define GLOBUS_URL_ERROR_BAD_DN -9
00175 #define GLOBUS_URL_ERROR_BAD_ATTRIBUTES -10
00176 #define GLOBUS_URL_ERROR_BAD_SCOPE -11
00177 #define GLOBUS_URL_ERROR_BAD_FILTER -12
00178
00179
00180 #define GLOBUS_URL_ERROR_OUT_OF_MEMORY -13
00181
00182
00183 #define GLOBUS_URL_ERROR_INTERNAL_ERROR -14
00184
00185 #define GLOBUS_URL_TRUE 1
00186 #define GLOBUS_URL_FALSE 0
00187
00188
00189 #ifdef __cplusplus
00190 }
00191 #endif
00192
00193 #endif