1#ifndef __CONNECT_H 2#define __CONNECT_H 3/*************************************************************************** 4 * _ _ ____ _ 5 * Project ___| | | | _ \| | 6 * / __| | | | |_) | | 7 * | (__| |_| | _ <| |___ 8 * \___|\___/|_| \_\_____| 9 * 10 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. 11 * 12 * This software is licensed as described in the file COPYING, which 13 * you should have received as part of this distribution. The terms 14 * are also available at http://curl.haxx.se/docs/copyright.html. 15 * 16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell 17 * copies of the Software, and permit persons to whom the Software is 18 * furnished to do so, under the terms of the COPYING file. 19 * 20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21 * KIND, either express or implied. 22 * 23 ***************************************************************************/ 24 25#include "nonblock.h" /* for curlx_nonblock(), formerly Curl_nonblock() */ 26 27CURLcode Curl_is_connected(struct connectdata *conn, 28 int sockindex, 29 bool *connected); 30 31CURLcode Curl_connecthost(struct connectdata *conn, 32 const struct Curl_dns_entry *host, /* connect to 33 this */ 34 curl_socket_t *sockconn, /* not set if error */ 35 Curl_addrinfo **addr, /* the one we used */ 36 bool *connected); /* truly connected? */ 37 38/* generic function that returns how much time there's left to run, according 39 to the timeouts set */ 40long Curl_timeleft(struct SessionHandle *data, 41 struct timeval *nowp, 42 bool duringconnect); 43 44#define DEFAULT_CONNECT_TIMEOUT 300000 /* milliseconds == five minutes */ 45 46/* 47 * Used to extract socket and connectdata struct for the most recent 48 * transfer on the given SessionHandle. 49 * 50 * The returned socket will be CURL_SOCKET_BAD in case of failure! 51 */ 52curl_socket_t Curl_getconnectinfo(struct SessionHandle *data, 53 struct connectdata **connp); 54 55#ifdef WIN32 56/* When you run a program that uses the Windows Sockets API, you may 57 experience slow performance when you copy data to a TCP server. 58 59 http://support.microsoft.com/kb/823764 60 61 Work-around: Make the Socket Send Buffer Size Larger Than the Program Send 62 Buffer Size 63 64*/ 65void Curl_sndbufset(curl_socket_t sockfd); 66#else 67#define Curl_sndbufset(y) 68#endif 69 70void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd); 71void Curl_persistconninfo(struct connectdata *conn); 72int Curl_closesocket(struct connectdata *conn, curl_socket_t sock); 73#endif 74