mirror of
https://github.com/curl/curl.git
synced 2024-12-09 06:30:06 +08:00
b5d170b551
Introduced the initial setup to allow closesocket callbacks by making sure sclose() is only ever called from one place in the libcurl source and still run all test cases fine.
74 lines
2.8 KiB
C
74 lines
2.8 KiB
C
#ifndef __CONNECT_H
|
|
#define __CONNECT_H
|
|
/***************************************************************************
|
|
* _ _ ____ _
|
|
* Project ___| | | | _ \| |
|
|
* / __| | | | |_) | |
|
|
* | (__| |_| | _ <| |___
|
|
* \___|\___/|_| \_\_____|
|
|
*
|
|
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
*
|
|
* This software is licensed as described in the file COPYING, which
|
|
* you should have received as part of this distribution. The terms
|
|
* are also available at http://curl.haxx.se/docs/copyright.html.
|
|
*
|
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
* copies of the Software, and permit persons to whom the Software is
|
|
* furnished to do so, under the terms of the COPYING file.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
***************************************************************************/
|
|
|
|
#include "nonblock.h" /* for curlx_nonblock(), formerly Curl_nonblock() */
|
|
|
|
CURLcode Curl_is_connected(struct connectdata *conn,
|
|
int sockindex,
|
|
bool *connected);
|
|
|
|
CURLcode Curl_connecthost(struct connectdata *conn,
|
|
const struct Curl_dns_entry *host, /* connect to
|
|
this */
|
|
curl_socket_t *sockconn, /* not set if error */
|
|
Curl_addrinfo **addr, /* the one we used */
|
|
bool *connected); /* truly connected? */
|
|
|
|
/* generic function that returns how much time there's left to run, according
|
|
to the timeouts set */
|
|
long Curl_timeleft(struct SessionHandle *data,
|
|
struct timeval *nowp,
|
|
bool duringconnect);
|
|
|
|
#define DEFAULT_CONNECT_TIMEOUT 300000 /* milliseconds == five minutes */
|
|
|
|
/*
|
|
* Used to extract socket and connectdata struct for the most recent
|
|
* transfer on the given SessionHandle.
|
|
*
|
|
* The returned socket will be CURL_SOCKET_BAD in case of failure!
|
|
*/
|
|
curl_socket_t Curl_getconnectinfo(struct SessionHandle *data,
|
|
struct connectdata **connp);
|
|
|
|
#ifdef WIN32
|
|
/* When you run a program that uses the Windows Sockets API, you may
|
|
experience slow performance when you copy data to a TCP server.
|
|
|
|
http://support.microsoft.com/kb/823764
|
|
|
|
Work-around: Make the Socket Send Buffer Size Larger Than the Program Send
|
|
Buffer Size
|
|
|
|
*/
|
|
void Curl_sndbufset(curl_socket_t sockfd);
|
|
#else
|
|
#define Curl_sndbufset(y)
|
|
#endif
|
|
|
|
void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd);
|
|
void Curl_persistconninfo(struct connectdata *conn);
|
|
int Curl_closesocket(struct connectdata *conn, curl_socket_t sock);
|
|
#endif
|