diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/smb.c | 121 | ||||
| -rw-r--r-- | lib/smb.h | 8 | 
2 files changed, 129 insertions, 0 deletions
@@ -28,8 +28,129 @@  #define BUILDING_CURL_SMB_C  #include "smb.h" +#include "urldata.h" +#include "sendf.h" +#include "multiif.h"  /* The last #include file should be: */  #include "memdebug.h" +/* Local API functions */ +static CURLcode smb_setup(struct connectdata *conn); +static CURLcode smb_connect(struct connectdata *conn, bool *done); +static CURLcode smb_connection_state(struct connectdata *conn, bool *done); +static CURLcode smb_request_state(struct connectdata *conn, bool *done); +static CURLcode smb_done(struct connectdata *conn, CURLcode status, +                         bool premature); +static CURLcode smb_disconnect(struct connectdata *conn, bool dead); +static int smb_getsock(struct connectdata *conn, curl_socket_t *socks, +                       int numsocks); + +/* + * SMB handler interface + */ +const struct Curl_handler Curl_handler_smb = { +  "SMB",                                /* scheme */ +  smb_setup,                            /* setup_connection */ +  ZERO_NULL,                            /* do_it */ +  smb_done,                             /* done */ +  ZERO_NULL,                            /* do_more */ +  smb_connect,                          /* connect_it */ +  smb_connection_state,                 /* connecting */ +  smb_request_state,                    /* doing */ +  smb_getsock,                          /* proto_getsock */ +  smb_getsock,                          /* doing_getsock */ +  ZERO_NULL,                            /* domore_getsock */ +  ZERO_NULL,                            /* perform_getsock */ +  smb_disconnect,                       /* disconnect */ +  ZERO_NULL,                            /* readwrite */ +  PORT_SMB,                             /* defport */ +  CURLPROTO_SMB,                        /* protocol */ +  PROTOPT_NONE                          /* flags */ +}; + +#ifdef USE_SSL +/* + * SMBS handler interface + */ +const struct Curl_handler Curl_handler_smbs = { +  "SMBS",                               /* scheme */ +  smb_setup,                            /* setup_connection */ +  ZERO_NULL,                            /* do_it */ +  smb_done,                             /* done */ +  ZERO_NULL,                            /* do_more */ +  smb_connect,                          /* connect_it */ +  smb_connection_state,                 /* connecting */ +  smb_request_state,                    /* doing */ +  smb_getsock,                          /* proto_getsock */ +  smb_getsock,                          /* doing_getsock */ +  ZERO_NULL,                            /* domore_getsock */ +  ZERO_NULL,                            /* perform_getsock */ +  smb_disconnect,                       /* disconnect */ +  ZERO_NULL,                            /* readwrite */ +  PORT_SMBS,                            /* defport */ +  CURLPROTO_SMBS,                       /* protocol */ +  PROTOPT_SSL                           /* flags */ +}; +#endif + +static CURLcode smb_setup(struct connectdata *conn) +{ +  (void) conn; + +  return CURLE_NOT_BUILT_IN; +} + +static CURLcode smb_connect(struct connectdata *conn, bool *done) +{ +  (void) conn; +  (void) done; + +  return CURLE_NOT_BUILT_IN; +} + +static CURLcode smb_connection_state(struct connectdata *conn, bool *done) +{ +  (void) conn; +  (void) done; + +  return CURLE_NOT_BUILT_IN; +} + +static CURLcode smb_request_state(struct connectdata *conn, bool *done) +{ +  (void) conn; +  (void) done; + +  return CURLE_NOT_BUILT_IN; +} + +static CURLcode smb_done(struct connectdata *conn, CURLcode status, +                         bool premature) +{ +  (void) conn; +  (void) status; +  (void) premature; + +  return CURLE_NOT_BUILT_IN; +} + +static CURLcode smb_disconnect(struct connectdata *conn, bool dead) +{ +  (void) conn; +  (void) dead; + +  return CURLE_NOT_BUILT_IN; +} + +static int smb_getsock(struct connectdata *conn, curl_socket_t *socks, +                       int numsocks) +{ +  (void) conn; +  (void) socks; +  (void) numsocks; + +  return GETSOCK_BLANK; +} +  #endif /* CURL_DISABLE_SMB && USE_NTLM && USE_WINDOWS_SSPI */ @@ -256,4 +256,12 @@ struct smb_tree_disconnect {  #endif /* BUILDING_CURL_SMB_C */ +#if !defined(CURL_DISABLE_SMB) && defined(USE_NTLM) && \ +    !defined(USE_WINDOWS_SSPI) + +extern const struct Curl_handler Curl_handler_smb; +extern const struct Curl_handler Curl_handler_smbs; + +#endif /* CURL_DISABLE_SMB && USE_NTLM && USE_WINDOWS_SSPI */ +  #endif /* HEADER_CURL_SMB_H */  | 
