400 changed files with 35430 additions and 0 deletions
Binary file not shown.
Binary file not shown.
@ -0,0 +1,39 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2013 Martin Sustrik All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef BUS_H_INCLUDED |
||||
|
#define BUS_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_PROTO_BUS 7 |
||||
|
|
||||
|
#define NN_BUS (NN_PROTO_BUS * 16 + 0) |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,37 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef INPROC_H_INCLUDED |
||||
|
#define INPROC_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_INPROC -1 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,42 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef IPC_H_INCLUDED |
||||
|
#define IPC_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_IPC -2 |
||||
|
|
||||
|
/* The object set here must be valid as long as you are using the socket */ |
||||
|
#define NN_IPC_SEC_ATTR 1 |
||||
|
#define NN_IPC_OUTBUFSZ 2 |
||||
|
#define NN_IPC_INBUFSZ 3 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,412 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012-2014 Martin Sustrik All rights reserved. |
||||
|
Copyright (c) 2013 GoPivotal, Inc. All rights reserved. |
||||
|
Copyright 2016 Garrett D'Amore <garrett@damore.org> |
||||
|
Copyright (c) 2015-2016 Jack R. Dunaway. All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef NN_H_INCLUDED |
||||
|
#define NN_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#include <errno.h> |
||||
|
#include <stddef.h> |
||||
|
#include <stdint.h> |
||||
|
|
||||
|
/* Handle DSO symbol visibility. */ |
||||
|
#if !defined(NN_EXPORT) |
||||
|
# if defined(_WIN32) && !defined(NN_STATIC_LIB) |
||||
|
# if defined NN_SHARED_LIB |
||||
|
# define NN_EXPORT __declspec(dllexport) |
||||
|
# else |
||||
|
# define NN_EXPORT __declspec(dllimport) |
||||
|
# endif |
||||
|
# else |
||||
|
# define NN_EXPORT extern |
||||
|
# endif |
||||
|
#endif |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* ABI versioning support. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
/* Don't change this unless you know exactly what you're doing and have */ |
||||
|
/* read and understand the following documents: */ |
||||
|
/* www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html */ |
||||
|
/* www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html */ |
||||
|
|
||||
|
/* The current interface version. */ |
||||
|
#define NN_VERSION_CURRENT 5 |
||||
|
|
||||
|
/* The latest revision of the current interface. */ |
||||
|
#define NN_VERSION_REVISION 0 |
||||
|
|
||||
|
/* How many past interface versions are still supported. */ |
||||
|
#define NN_VERSION_AGE 0 |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* Errors. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
/* A number random enough not to collide with different errno ranges on */ |
||||
|
/* different OSes. The assumption is that error_t is at least 32-bit type. */ |
||||
|
#define NN_HAUSNUMERO 156384712 |
||||
|
|
||||
|
/* On some platforms some standard POSIX errnos are not defined. */ |
||||
|
#ifndef ENOTSUP |
||||
|
#define ENOTSUP (NN_HAUSNUMERO + 1) |
||||
|
#endif |
||||
|
#ifndef EPROTONOSUPPORT |
||||
|
#define EPROTONOSUPPORT (NN_HAUSNUMERO + 2) |
||||
|
#endif |
||||
|
#ifndef ENOBUFS |
||||
|
#define ENOBUFS (NN_HAUSNUMERO + 3) |
||||
|
#endif |
||||
|
#ifndef ENETDOWN |
||||
|
#define ENETDOWN (NN_HAUSNUMERO + 4) |
||||
|
#endif |
||||
|
#ifndef EADDRINUSE |
||||
|
#define EADDRINUSE (NN_HAUSNUMERO + 5) |
||||
|
#endif |
||||
|
#ifndef EADDRNOTAVAIL |
||||
|
#define EADDRNOTAVAIL (NN_HAUSNUMERO + 6) |
||||
|
#endif |
||||
|
#ifndef ECONNREFUSED |
||||
|
#define ECONNREFUSED (NN_HAUSNUMERO + 7) |
||||
|
#endif |
||||
|
#ifndef EINPROGRESS |
||||
|
#define EINPROGRESS (NN_HAUSNUMERO + 8) |
||||
|
#endif |
||||
|
#ifndef ENOTSOCK |
||||
|
#define ENOTSOCK (NN_HAUSNUMERO + 9) |
||||
|
#endif |
||||
|
#ifndef EAFNOSUPPORT |
||||
|
#define EAFNOSUPPORT (NN_HAUSNUMERO + 10) |
||||
|
#endif |
||||
|
#ifndef EPROTO |
||||
|
#define EPROTO (NN_HAUSNUMERO + 11) |
||||
|
#endif |
||||
|
#ifndef EAGAIN |
||||
|
#define EAGAIN (NN_HAUSNUMERO + 12) |
||||
|
#endif |
||||
|
#ifndef EBADF |
||||
|
#define EBADF (NN_HAUSNUMERO + 13) |
||||
|
#endif |
||||
|
#ifndef EINVAL |
||||
|
#define EINVAL (NN_HAUSNUMERO + 14) |
||||
|
#endif |
||||
|
#ifndef EMFILE |
||||
|
#define EMFILE (NN_HAUSNUMERO + 15) |
||||
|
#endif |
||||
|
#ifndef EFAULT |
||||
|
#define EFAULT (NN_HAUSNUMERO + 16) |
||||
|
#endif |
||||
|
#ifndef EACCES |
||||
|
#define EACCES (NN_HAUSNUMERO + 17) |
||||
|
#endif |
||||
|
#ifndef EACCESS |
||||
|
#define EACCESS (EACCES) |
||||
|
#endif |
||||
|
#ifndef ENETRESET |
||||
|
#define ENETRESET (NN_HAUSNUMERO + 18) |
||||
|
#endif |
||||
|
#ifndef ENETUNREACH |
||||
|
#define ENETUNREACH (NN_HAUSNUMERO + 19) |
||||
|
#endif |
||||
|
#ifndef EHOSTUNREACH |
||||
|
#define EHOSTUNREACH (NN_HAUSNUMERO + 20) |
||||
|
#endif |
||||
|
#ifndef ENOTCONN |
||||
|
#define ENOTCONN (NN_HAUSNUMERO + 21) |
||||
|
#endif |
||||
|
#ifndef EMSGSIZE |
||||
|
#define EMSGSIZE (NN_HAUSNUMERO + 22) |
||||
|
#endif |
||||
|
#ifndef ETIMEDOUT |
||||
|
#define ETIMEDOUT (NN_HAUSNUMERO + 23) |
||||
|
#endif |
||||
|
#ifndef ECONNABORTED |
||||
|
#define ECONNABORTED (NN_HAUSNUMERO + 24) |
||||
|
#endif |
||||
|
#ifndef ECONNRESET |
||||
|
#define ECONNRESET (NN_HAUSNUMERO + 25) |
||||
|
#endif |
||||
|
#ifndef ENOPROTOOPT |
||||
|
#define ENOPROTOOPT (NN_HAUSNUMERO + 26) |
||||
|
#endif |
||||
|
#ifndef EISCONN |
||||
|
#define EISCONN (NN_HAUSNUMERO + 27) |
||||
|
#define NN_EISCONN_DEFINED |
||||
|
#endif |
||||
|
#ifndef ESOCKTNOSUPPORT |
||||
|
#define ESOCKTNOSUPPORT (NN_HAUSNUMERO + 28) |
||||
|
#endif |
||||
|
|
||||
|
/* Native nanomsg error codes. */ |
||||
|
#ifndef ETERM |
||||
|
#define ETERM (NN_HAUSNUMERO + 53) |
||||
|
#endif |
||||
|
#ifndef EFSM |
||||
|
#define EFSM (NN_HAUSNUMERO + 54) |
||||
|
#endif |
||||
|
|
||||
|
/* This function retrieves the errno as it is known to the library. */ |
||||
|
/* The goal of this function is to make the code 100% portable, including */ |
||||
|
/* where the library is compiled with certain CRT library (on Windows) and */ |
||||
|
/* linked to an application that uses different CRT library. */ |
||||
|
NN_EXPORT int nn_errno (void); |
||||
|
|
||||
|
/* Resolves system errors and native errors to human-readable string. */ |
||||
|
NN_EXPORT const char *nn_strerror (int errnum); |
||||
|
|
||||
|
|
||||
|
/* Returns the symbol name (e.g. "NN_REQ") and value at a specified index. */ |
||||
|
/* If the index is out-of-range, returns NULL and sets errno to EINVAL */ |
||||
|
/* General usage is to start at i=0 and iterate until NULL is returned. */ |
||||
|
NN_EXPORT const char *nn_symbol (int i, int *value); |
||||
|
|
||||
|
/* Constants that are returned in `ns` member of nn_symbol_properties */ |
||||
|
#define NN_NS_NAMESPACE 0 |
||||
|
#define NN_NS_VERSION 1 |
||||
|
#define NN_NS_DOMAIN 2 |
||||
|
#define NN_NS_TRANSPORT 3 |
||||
|
#define NN_NS_PROTOCOL 4 |
||||
|
#define NN_NS_OPTION_LEVEL 5 |
||||
|
#define NN_NS_SOCKET_OPTION 6 |
||||
|
#define NN_NS_TRANSPORT_OPTION 7 |
||||
|
#define NN_NS_OPTION_TYPE 8 |
||||
|
#define NN_NS_OPTION_UNIT 9 |
||||
|
#define NN_NS_FLAG 10 |
||||
|
#define NN_NS_ERROR 11 |
||||
|
#define NN_NS_LIMIT 12 |
||||
|
#define NN_NS_EVENT 13 |
||||
|
#define NN_NS_STATISTIC 14 |
||||
|
|
||||
|
/* Constants that are returned in `type` member of nn_symbol_properties */ |
||||
|
#define NN_TYPE_NONE 0 |
||||
|
#define NN_TYPE_INT 1 |
||||
|
#define NN_TYPE_STR 2 |
||||
|
|
||||
|
/* Constants that are returned in the `unit` member of nn_symbol_properties */ |
||||
|
#define NN_UNIT_NONE 0 |
||||
|
#define NN_UNIT_BYTES 1 |
||||
|
#define NN_UNIT_MILLISECONDS 2 |
||||
|
#define NN_UNIT_PRIORITY 3 |
||||
|
#define NN_UNIT_BOOLEAN 4 |
||||
|
#define NN_UNIT_MESSAGES 5 |
||||
|
#define NN_UNIT_COUNTER 6 |
||||
|
|
||||
|
/* Structure that is returned from nn_symbol */ |
||||
|
struct nn_symbol_properties { |
||||
|
|
||||
|
/* The constant value */ |
||||
|
int value; |
||||
|
|
||||
|
/* The constant name */ |
||||
|
const char* name; |
||||
|
|
||||
|
/* The constant namespace, or zero for namespaces themselves */ |
||||
|
int ns; |
||||
|
|
||||
|
/* The option type for socket option constants */ |
||||
|
int type; |
||||
|
|
||||
|
/* The unit for the option value for socket option constants */ |
||||
|
int unit; |
||||
|
}; |
||||
|
|
||||
|
/* Fills in nn_symbol_properties structure and returns it's length */ |
||||
|
/* If the index is out-of-range, returns 0 */ |
||||
|
/* General usage is to start at i=0 and iterate until zero is returned. */ |
||||
|
NN_EXPORT int nn_symbol_info (int i, |
||||
|
struct nn_symbol_properties *buf, int buflen); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* Helper function for shutting down multi-threaded applications. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
NN_EXPORT void nn_term (void); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* Zero-copy support. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
#define NN_MSG ((size_t) -1) |
||||
|
|
||||
|
NN_EXPORT void *nn_allocmsg (size_t size, int type); |
||||
|
NN_EXPORT void *nn_reallocmsg (void *msg, size_t size); |
||||
|
NN_EXPORT int nn_freemsg (void *msg); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* Socket definition. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
struct nn_iovec { |
||||
|
void *iov_base; |
||||
|
size_t iov_len; |
||||
|
}; |
||||
|
|
||||
|
struct nn_msghdr { |
||||
|
struct nn_iovec *msg_iov; |
||||
|
int msg_iovlen; |
||||
|
void *msg_control; |
||||
|
size_t msg_controllen; |
||||
|
}; |
||||
|
|
||||
|
struct nn_cmsghdr { |
||||
|
size_t cmsg_len; |
||||
|
int cmsg_level; |
||||
|
int cmsg_type; |
||||
|
}; |
||||
|
|
||||
|
/* Internal stuff. Not to be used directly. */ |
||||
|
NN_EXPORT struct nn_cmsghdr *nn_cmsg_nxthdr_ ( |
||||
|
const struct nn_msghdr *mhdr, |
||||
|
const struct nn_cmsghdr *cmsg); |
||||
|
#define NN_CMSG_ALIGN_(len) \ |
||||
|
(((len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) |
||||
|
|
||||
|
/* POSIX-defined msghdr manipulation. */ |
||||
|
|
||||
|
#define NN_CMSG_FIRSTHDR(mhdr) \ |
||||
|
nn_cmsg_nxthdr_ ((struct nn_msghdr*) (mhdr), NULL) |
||||
|
|
||||
|
#define NN_CMSG_NXTHDR(mhdr, cmsg) \ |
||||
|
nn_cmsg_nxthdr_ ((struct nn_msghdr*) (mhdr), (struct nn_cmsghdr*) (cmsg)) |
||||
|
|
||||
|
#define NN_CMSG_DATA(cmsg) \ |
||||
|
((unsigned char*) (((struct nn_cmsghdr*) (cmsg)) + 1)) |
||||
|
|
||||
|
/* Extensions to POSIX defined by RFC 3542. */ |
||||
|
|
||||
|
#define NN_CMSG_SPACE(len) \ |
||||
|
(NN_CMSG_ALIGN_ (len) + NN_CMSG_ALIGN_ (sizeof (struct nn_cmsghdr))) |
||||
|
|
||||
|
#define NN_CMSG_LEN(len) \ |
||||
|
(NN_CMSG_ALIGN_ (sizeof (struct nn_cmsghdr)) + (len)) |
||||
|
|
||||
|
/* SP address families. */ |
||||
|
#define AF_SP 1 |
||||
|
#define AF_SP_RAW 2 |
||||
|
|
||||
|
/* Max size of an SP address. */ |
||||
|
#define NN_SOCKADDR_MAX 128 |
||||
|
|
||||
|
/* Socket option levels: Negative numbers are reserved for transports,
|
||||
|
positive for socket types. */ |
||||
|
#define NN_SOL_SOCKET 0 |
||||
|
|
||||
|
/* Generic socket options (NN_SOL_SOCKET level). */ |
||||
|
#define NN_LINGER 1 |
||||
|
#define NN_SNDBUF 2 |
||||
|
#define NN_RCVBUF 3 |
||||
|
#define NN_SNDTIMEO 4 |
||||
|
#define NN_RCVTIMEO 5 |
||||
|
#define NN_RECONNECT_IVL 6 |
||||
|
#define NN_RECONNECT_IVL_MAX 7 |
||||
|
#define NN_SNDPRIO 8 |
||||
|
#define NN_RCVPRIO 9 |
||||
|
#define NN_SNDFD 10 |
||||
|
#define NN_RCVFD 11 |
||||
|
#define NN_DOMAIN 12 |
||||
|
#define NN_PROTOCOL 13 |
||||
|
#define NN_IPV4ONLY 14 |
||||
|
#define NN_SOCKET_NAME 15 |
||||
|
#define NN_RCVMAXSIZE 16 |
||||
|
#define NN_MAXTTL 17 |
||||
|
|
||||
|
/* Send/recv options. */ |
||||
|
#define NN_DONTWAIT 1 |
||||
|
|
||||
|
/* Ancillary data. */ |
||||
|
#define PROTO_SP 1 |
||||
|
#define SP_HDR 1 |
||||
|
|
||||
|
NN_EXPORT int nn_socket (int domain, int protocol); |
||||
|
NN_EXPORT int nn_close (int s); |
||||
|
NN_EXPORT int nn_setsockopt (int s, int level, int option, const void *optval, |
||||
|
size_t optvallen); |
||||
|
NN_EXPORT int nn_getsockopt (int s, int level, int option, void *optval, |
||||
|
size_t *optvallen); |
||||
|
NN_EXPORT int nn_bind (int s, const char *addr); |
||||
|
NN_EXPORT int nn_connect (int s, const char *addr); |
||||
|
NN_EXPORT int nn_shutdown (int s, int how); |
||||
|
NN_EXPORT int nn_send (int s, const void *buf, size_t len, int flags); |
||||
|
NN_EXPORT int nn_recv (int s, void *buf, size_t len, int flags); |
||||
|
NN_EXPORT int nn_sendmsg (int s, const struct nn_msghdr *msghdr, int flags); |
||||
|
NN_EXPORT int nn_recvmsg (int s, struct nn_msghdr *msghdr, int flags); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* Socket mutliplexing support. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
#define NN_POLLIN 1 |
||||
|
#define NN_POLLOUT 2 |
||||
|
|
||||
|
struct nn_pollfd { |
||||
|
int fd; |
||||
|
short events; |
||||
|
short revents; |
||||
|
}; |
||||
|
|
||||
|
NN_EXPORT int nn_poll (struct nn_pollfd *fds, int nfds, int timeout); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* Built-in support for devices. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
NN_EXPORT int nn_device (int s1, int s2); |
||||
|
|
||||
|
/******************************************************************************/ |
||||
|
/* Statistics. */ |
||||
|
/******************************************************************************/ |
||||
|
|
||||
|
/* Transport statistics */ |
||||
|
#define NN_STAT_ESTABLISHED_CONNECTIONS 101 |
||||
|
#define NN_STAT_ACCEPTED_CONNECTIONS 102 |
||||
|
#define NN_STAT_DROPPED_CONNECTIONS 103 |
||||
|
#define NN_STAT_BROKEN_CONNECTIONS 104 |
||||
|
#define NN_STAT_CONNECT_ERRORS 105 |
||||
|
#define NN_STAT_BIND_ERRORS 106 |
||||
|
#define NN_STAT_ACCEPT_ERRORS 107 |
||||
|
|
||||
|
#define NN_STAT_CURRENT_CONNECTIONS 201 |
||||
|
#define NN_STAT_INPROGRESS_CONNECTIONS 202 |
||||
|
#define NN_STAT_CURRENT_EP_ERRORS 203 |
||||
|
|
||||
|
/* The socket-internal statistics */ |
||||
|
#define NN_STAT_MESSAGES_SENT 301 |
||||
|
#define NN_STAT_MESSAGES_RECEIVED 302 |
||||
|
#define NN_STAT_BYTES_SENT 303 |
||||
|
#define NN_STAT_BYTES_RECEIVED 304 |
||||
|
/* Protocol statistics */ |
||||
|
#define NN_STAT_CURRENT_SND_PRIORITY 401 |
||||
|
|
||||
|
NN_EXPORT uint64_t nn_get_statistic (int s, int stat); |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
@ -0,0 +1,39 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PAIR_H_INCLUDED |
||||
|
#define PAIR_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_PROTO_PAIR 1 |
||||
|
|
||||
|
#define NN_PAIR (NN_PROTO_PAIR * 16 + 0) |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,41 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
Copyright (c) 2013 GoPivotal, Inc. All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PIPELINE_H_INCLUDED |
||||
|
#define PIPELINE_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_PROTO_PIPELINE 5 |
||||
|
|
||||
|
#define NN_PUSH (NN_PROTO_PIPELINE * 16 + 0) |
||||
|
#define NN_PULL (NN_PROTO_PIPELINE * 16 + 1) |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,43 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef PUBSUB_H_INCLUDED |
||||
|
#define PUBSUB_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_PROTO_PUBSUB 2 |
||||
|
|
||||
|
#define NN_PUB (NN_PROTO_PUBSUB * 16 + 0) |
||||
|
#define NN_SUB (NN_PROTO_PUBSUB * 16 + 1) |
||||
|
|
||||
|
#define NN_SUB_SUBSCRIBE 1 |
||||
|
#define NN_SUB_UNSUBSCRIBE 2 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,50 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
Copyright 2016 Garrett D'Amore <garrett@damore.org> |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef REQREP_H_INCLUDED |
||||
|
#define REQREP_H_INCLUDED |
||||
|
|
||||
|
#include "nn.h" |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_PROTO_REQREP 3 |
||||
|
|
||||
|
#define NN_REQ (NN_PROTO_REQREP * 16 + 0) |
||||
|
#define NN_REP (NN_PROTO_REQREP * 16 + 1) |
||||
|
|
||||
|
#define NN_REQ_RESEND_IVL 1 |
||||
|
|
||||
|
typedef union nn_req_handle { |
||||
|
int i; |
||||
|
void *ptr; |
||||
|
} nn_req_handle; |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,46 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
Copyright 2015 Garrett D'Amore <garrett@damore.org> |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef SURVEY_H_INCLUDED |
||||
|
#define SURVEY_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_PROTO_SURVEY 6 |
||||
|
|
||||
|
/* NB: Version 0 used 16 + 0/1. That version lacked backtraces, and so
|
||||
|
is wire-incompatible with this version. */ |
||||
|
|
||||
|
#define NN_SURVEYOR (NN_PROTO_SURVEY * 16 + 2) |
||||
|
#define NN_RESPONDENT (NN_PROTO_SURVEY * 16 + 3) |
||||
|
|
||||
|
#define NN_SURVEYOR_DEADLINE 1 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,39 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 Martin Sustrik All rights reserved. |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef TCP_H_INCLUDED |
||||
|
#define TCP_H_INCLUDED |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_TCP -3 |
||||
|
|
||||
|
#define NN_TCP_NODELAY 1 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
||||
|
|
@ -0,0 +1,49 @@ |
|||||
|
/*
|
||||
|
Copyright (c) 2012 250bpm s.r.o. All rights reserved. |
||||
|
Copyright (c) 2014 Wirebird Labs LLC. All rights reserved. |
||||
|
Copyright 2015 Garrett D'Amore <garrett@damore.org> |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
|
of this software and associated documentation files (the "Software"), |
||||
|
to deal in the Software without restriction, including without limitation |
||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||
|
and/or sell copies of the Software, and to permit persons to whom |
||||
|
the Software is furnished to do so, subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included |
||||
|
in all copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
||||
|
IN THE SOFTWARE. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef WS_H_INCLUDED |
||||
|
#define WS_H_INCLUDED |
||||
|
|
||||
|
#include "nn.h" |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#define NN_WS -4 |
||||
|
|
||||
|
/* NN_WS level socket/cmsg options. Note that only NN_WSMG_TYPE_TEXT and
|
||||
|
NN_WS_MSG_TYPE_BINARY messages are supported fully by this implementation. |
||||
|
Attempting to set other message types is undefined. */ |
||||
|
#define NN_WS_MSG_TYPE 1 |
||||
|
|
||||
|
/* WebSocket opcode constants as per RFC 6455 5.2 */ |
||||
|
#define NN_WS_MSG_TYPE_TEXT 0x01 |
||||
|
#define NN_WS_MSG_TYPE_BINARY 0x02 |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,13 @@ |
|||||
|
prefix=/home/ca/Schreibtisch/supernet/iguana/nanomsg |
||||
|
exec_prefix=${prefix} |
||||
|
includedir=${prefix}/include |
||||
|
libdir=${prefix}/lib |
||||
|
|
||||
|
Name: nanomsg |
||||
|
Description: High-Performance Scalability Protocols |
||||
|
URL: http://nanomsg.org/ |
||||
|
Version: 1.0.0 |
||||
|
Requires: |
||||
|
Libs: -L${libdir} -lnanomsg |
||||
|
Libs.private: -lws2_32 -lmswsock -ladvapi32 |
||||
|
Cflags: -I${includedir} |
@ -0,0 +1,178 @@ |
|||||
|
#! /bin/sh |
||||
|
#*************************************************************************** |
||||
|
# _ _ ____ _ |
||||
|
# Project ___| | | | _ \| | |
||||
|
# / __| | | | |_) | | |
||||
|
# | (__| |_| | _ <| |___ |
||||
|
# \___|\___/|_| \_\_____| |
||||
|
# |
||||
|
# Copyright (C) 2001 - 2012, 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 https://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. |
||||
|
# |
||||
|
########################################################################### |
||||
|
|
||||
|
prefix=/home/ca/Schreibtisch/supernet/crypto777/curl-7.52.1/win_lib |
||||
|
exec_prefix=${prefix} |
||||
|
includedir=${prefix}/include |
||||
|
cppflag_curl_staticlib=-DCURL_STATICLIB |
||||
|
|
||||
|
usage() |
||||
|
{ |
||||
|
cat <<EOF |
||||
|
Usage: curl-config [OPTION] |
||||
|
|
||||
|
Available values for OPTION include: |
||||
|
|
||||
|
--built-shared says 'yes' if libcurl was built shared |
||||
|
--ca ca bundle install path |
||||
|
--cc compiler |
||||
|
--cflags pre-processor and compiler flags |
||||
|
--checkfor [version] check for (lib)curl of the specified version |
||||
|
--configure the arguments given to configure when building curl |
||||
|
--features newline separated list of enabled features |
||||
|
--help display this help and exit |
||||
|
--libs library linking information |
||||
|
--prefix curl install prefix |
||||
|
--protocols newline separated list of enabled protocols |
||||
|
--static-libs static libcurl library linking information |
||||
|
--version output version information |
||||
|
--vernum output the version information as a number (hexadecimal) |
||||
|
EOF |
||||
|
|
||||
|
exit $1 |
||||
|
} |
||||
|
|
||||
|
if test $# -eq 0; then |
||||
|
usage 1 |
||||
|
fi |
||||
|
|
||||
|
while test $# -gt 0; do |
||||
|
case "$1" in |
||||
|
# this deals with options in the style |
||||
|
# --option=value and extracts the value part |
||||
|
# [not currently used] |
||||
|
-*=*) value=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; |
||||
|
*) value= ;; |
||||
|
esac |
||||
|
|
||||
|
case "$1" in |
||||
|
--built-shared) |
||||
|
echo no |
||||
|
;; |
||||
|
|
||||
|
--ca) |
||||
|
echo |
||||
|
;; |
||||
|
|
||||
|
--cc) |
||||
|
echo "i686-w64-mingw32-gcc" |
||||
|
;; |
||||
|
|
||||
|
--prefix) |
||||
|
echo "$prefix" |
||||
|
;; |
||||
|
|
||||
|
--feature|--features) |
||||
|
for feature in SSL IPv6 NTLM TLS-SRP HTTPS-proxy ""; do |
||||
|
test -n "$feature" && echo "$feature" |
||||
|
done |
||||
|
;; |
||||
|
|
||||
|
--protocols) |
||||
|
for protocol in DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP; do |
||||
|
echo "$protocol" |
||||
|
done |
||||
|
;; |
||||
|
|
||||
|
--version) |
||||
|
echo libcurl 7.52.1 |
||||
|
exit 0 |
||||
|
;; |
||||
|
|
||||
|
--checkfor) |
||||
|
checkfor=$2 |
||||
|
cmajor=`echo $checkfor | cut -d. -f1` |
||||
|
cminor=`echo $checkfor | cut -d. -f2` |
||||
|
# when extracting the patch part we strip off everything after a |
||||
|
# dash as that's used for things like version 1.2.3-CVS |
||||
|
cpatch=`echo $checkfor | cut -d. -f3 | cut -d- -f1` |
||||
|
checknum=`echo "$cmajor*256*256 + $cminor*256 + ${cpatch:-0}" | bc` |
||||
|
numuppercase=`echo 073401 | tr 'a-f' 'A-F'` |
||||
|
nownum=`echo "obase=10; ibase=16; $numuppercase" | bc` |
||||
|
|
||||
|
if test "$nownum" -ge "$checknum"; then |
||||
|
# silent success |
||||
|
exit 0 |
||||
|
else |
||||
|
echo "requested version $checkfor is newer than existing 7.52.1" |
||||
|
exit 1 |
||||
|
fi |
||||
|
;; |
||||
|
|
||||
|
--vernum) |
||||
|
echo 073401 |
||||
|
exit 0 |
||||
|
;; |
||||
|
|
||||
|
--help) |
||||
|
usage 0 |
||||
|
;; |
||||
|
|
||||
|
--cflags) |
||||
|
if test "X$cppflag_curl_staticlib" = "X-DCURL_STATICLIB"; then |
||||
|
CPPFLAG_CURL_STATICLIB="-DCURL_STATICLIB " |
||||
|
else |
||||
|
CPPFLAG_CURL_STATICLIB="" |
||||
|
fi |
||||
|
if test "X${prefix}/include" = "X/usr/include"; then |
||||
|
echo "$CPPFLAG_CURL_STATICLIB" |
||||
|
else |
||||
|
echo "${CPPFLAG_CURL_STATICLIB}-I${prefix}/include" |
||||
|
fi |
||||
|
;; |
||||
|
|
||||
|
--libs) |
||||
|
if test "X${exec_prefix}/lib" != "X/usr/lib" -a "X${exec_prefix}/lib" != "X/usr/lib64"; then |
||||
|
CURLLIBDIR="-L${exec_prefix}/lib " |
||||
|
else |
||||
|
CURLLIBDIR="" |
||||
|
fi |
||||
|
if test "Xyes" = "Xyes"; then |
||||
|
echo ${CURLLIBDIR}-lcurl -lssl -lcrypto -lssl -lcrypto -lgdi32 -lwldap32 -lws2_32 |
||||
|
else |
||||
|
echo ${CURLLIBDIR}-lcurl |
||||
|
fi |
||||
|
;; |
||||
|
|
||||
|
--static-libs) |
||||
|
if test "Xyes" != "Xno" ; then |
||||
|
echo ${exec_prefix}/lib/libcurl.a -L/home/ca/Schreibtisch/supernet/crypto777/curl-7.52.1/openssl-1.1.0e/dist/lib -lssl -lcrypto -lssl -lcrypto -lgdi32 -lwldap32 -lws2_32 |
||||
|
else |
||||
|
echo "curl was built with static libraries disabled" >&2 |
||||
|
exit 1 |
||||
|
fi |
||||
|
;; |
||||
|
|
||||
|
--configure) |
||||
|
echo " '--enable-mingw' '--enable-static' '--disable-shared' '--prefix=/home/ca/Schreibtisch/supernet/crypto777/curl-7.52.1/win_lib' '--host=i686-w64-mingw32' '--with-ssl=openssl_lib/' 'host_alias=i686-w64-mingw32' 'CC=i686-w64-mingw32-gcc'" |
||||
|
;; |
||||
|
|
||||
|
*) |
||||
|
echo "unknown option: $1" |
||||
|
usage 1 |
||||
|
;; |
||||
|
esac |
||||
|
shift |
||||
|
done |
||||
|
|
||||
|
exit 0 |
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
@ -0,0 +1,198 @@ |
|||||
|
/* include/curl/curlbuild.h. Generated from curlbuild.h.in by configure. */ |
||||
|
#ifndef __CURL_CURLBUILD_H |
||||
|
#define __CURL_CURLBUILD_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2012, 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 https://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. |
||||
|
* |
||||
|
***************************************************************************/ |
||||
|
|
||||
|
/* ================================================================ */ |
||||
|
/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ |
||||
|
/* ================================================================ */ |
||||
|
|
||||
|
/*
|
||||
|
* NOTE 1: |
||||
|
* ------- |
||||
|
* |
||||
|
* Nothing in this file is intended to be modified or adjusted by the |
||||
|
* curl library user nor by the curl library builder. |
||||
|
* |
||||
|
* If you think that something actually needs to be changed, adjusted |
||||
|
* or fixed in this file, then, report it on the libcurl development |
||||
|
* mailing list: https://cool.haxx.se/mailman/listinfo/curl-library/
|
||||
|
* |
||||
|
* This header file shall only export symbols which are 'curl' or 'CURL' |
||||
|
* prefixed, otherwise public name space would be polluted. |
||||
|
* |
||||
|
* NOTE 2: |
||||
|
* ------- |
||||
|
* |
||||
|
* Right now you might be staring at file include/curl/curlbuild.h.in or |
||||
|
* at file include/curl/curlbuild.h, this is due to the following reason: |
||||
|
* |
||||
|
* On systems capable of running the configure script, the configure process |
||||
|
* will overwrite the distributed include/curl/curlbuild.h file with one that |
||||
|
* is suitable and specific to the library being configured and built, which |
||||
|
* is generated from the include/curl/curlbuild.h.in template file. |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
/* ================================================================ */ |
||||
|
/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ |
||||
|
/* ================================================================ */ |
||||
|
|
||||
|
#ifdef CURL_SIZEOF_LONG |
||||
|
#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T |
||||
|
#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_SIZEOF_CURL_SOCKLEN_T |
||||
|
#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_TYPEOF_CURL_OFF_T |
||||
|
#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_FORMAT_CURL_OFF_T |
||||
|
#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_FORMAT_CURL_OFF_TU |
||||
|
#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_FORMAT_OFF_T |
||||
|
#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_SIZEOF_CURL_OFF_T |
||||
|
#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_SUFFIX_CURL_OFF_T |
||||
|
#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined |
||||
|
#endif |
||||
|
|
||||
|
#ifdef CURL_SUFFIX_CURL_OFF_TU |
||||
|
#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" |
||||
|
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined |
||||
|
#endif |
||||
|
|
||||
|
/* ================================================================ */ |
||||
|
/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ |
||||
|
/* ================================================================ */ |
||||
|
|
||||
|
/* Configure process defines this to 1 when it finds out that system */ |
||||
|
/* header file ws2tcpip.h must be included by the external interface. */ |
||||
|
#define CURL_PULL_WS2TCPIP_H 1 |
||||
|
#ifdef CURL_PULL_WS2TCPIP_H |
||||
|
# ifndef WIN32_LEAN_AND_MEAN |
||||
|
# define WIN32_LEAN_AND_MEAN 1 |
||||
|
# endif |
||||
|
# include <windows.h> |
||||
|
# include <winsock2.h> |
||||
|
# include <ws2tcpip.h> |
||||
|
#endif |
||||
|
|
||||
|
/* Configure process defines this to 1 when it finds out that system */ |
||||
|
/* header file sys/types.h must be included by the external interface. */ |
||||
|
#define CURL_PULL_SYS_TYPES_H 1 |
||||
|
#ifdef CURL_PULL_SYS_TYPES_H |
||||
|
# include <sys/types.h> |
||||
|
#endif |
||||
|
|
||||
|
/* Configure process defines this to 1 when it finds out that system */ |
||||
|
/* header file stdint.h must be included by the external interface. */ |
||||
|
#define CURL_PULL_STDINT_H 1 |
||||
|
#ifdef CURL_PULL_STDINT_H |
||||
|
# include <stdint.h> |
||||
|
#endif |
||||
|
|
||||
|
/* Configure process defines this to 1 when it finds out that system */ |
||||
|
/* header file inttypes.h must be included by the external interface. */ |
||||
|
#define CURL_PULL_INTTYPES_H 1 |
||||
|
#ifdef CURL_PULL_INTTYPES_H |
||||
|
# include <inttypes.h> |
||||
|
#endif |
||||
|
|
||||
|
/* Configure process defines this to 1 when it finds out that system */ |
||||
|
/* header file sys/socket.h must be included by the external interface. */ |
||||
|
/* #undef CURL_PULL_SYS_SOCKET_H */ |
||||
|
#ifdef CURL_PULL_SYS_SOCKET_H |
||||
|
# include <sys/socket.h> |
||||
|
#endif |
||||
|
|
||||
|
/* Configure process defines this to 1 when it finds out that system */ |
||||
|
/* header file sys/poll.h must be included by the external interface. */ |
||||
|
/* #undef CURL_PULL_SYS_POLL_H */ |
||||
|
#ifdef CURL_PULL_SYS_POLL_H |
||||
|
# include <sys/poll.h> |
||||
|
#endif |
||||
|
|
||||
|
/* The size of `long', as computed by sizeof. */ |
||||
|
#define CURL_SIZEOF_LONG 4 |
||||
|
|
||||
|
/* Integral data type used for curl_socklen_t. */ |
||||
|
#define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t |
||||
|
|
||||
|
/* The size of `curl_socklen_t', as computed by sizeof. */ |
||||
|
#define CURL_SIZEOF_CURL_SOCKLEN_T 4 |
||||
|
|
||||
|
/* Data type definition of curl_socklen_t. */ |
||||
|
typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; |
||||
|
|
||||
|
/* Signed integral data type used for curl_off_t. */ |
||||
|
#define CURL_TYPEOF_CURL_OFF_T int64_t |
||||
|
|
||||
|
/* Data type definition of curl_off_t. */ |
||||
|
typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; |
||||
|
|
||||
|
/* curl_off_t formatting string directive without "%" conversion specifier. */ |
||||
|
#define CURL_FORMAT_CURL_OFF_T "I64d" |
||||
|
|
||||
|
/* unsigned curl_off_t formatting string without "%" conversion specifier. */ |
||||
|
#define CURL_FORMAT_CURL_OFF_TU "I64u" |
||||
|
|
||||
|
/* curl_off_t formatting string directive with "%" conversion specifier. */ |
||||
|
#define CURL_FORMAT_OFF_T "%I64d" |
||||
|
|
||||
|
/* The size of `curl_off_t', as computed by sizeof. */ |
||||
|
#define CURL_SIZEOF_CURL_OFF_T 8 |
||||
|
|
||||
|
/* curl_off_t constant suffix. */ |
||||
|
#define CURL_SUFFIX_CURL_OFF_T LL |
||||
|
|
||||
|
/* unsigned curl_off_t constant suffix. */ |
||||
|
#define CURL_SUFFIX_CURL_OFF_TU ULL |
||||
|
|
||||
|
#endif /* __CURL_CURLBUILD_H */ |
@ -0,0 +1,262 @@ |
|||||
|
#ifndef __CURL_CURLRULES_H |
||||
|
#define __CURL_CURLRULES_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2012, 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 https://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. |
||||
|
* |
||||
|
***************************************************************************/ |
||||
|
|
||||
|
/* ================================================================ */ |
||||
|
/* COMPILE TIME SANITY CHECKS */ |
||||
|
/* ================================================================ */ |
||||
|
|
||||
|
/*
|
||||
|
* NOTE 1: |
||||
|
* ------- |
||||
|
* |
||||
|
* All checks done in this file are intentionally placed in a public |
||||
|
* header file which is pulled by curl/curl.h when an application is |
||||
|
* being built using an already built libcurl library. Additionally |
||||
|
* this file is also included and used when building the library. |
||||
|
* |
||||
|
* If compilation fails on this file it is certainly sure that the |
||||
|
* problem is elsewhere. It could be a problem in the curlbuild.h |
||||
|
* header file, or simply that you are using different compilation |
||||
|
* settings than those used to build the library. |
||||
|
* |
||||
|
* Nothing in this file is intended to be modified or adjusted by the |
||||
|
* curl library user nor by the curl library builder. |
||||
|
* |
||||
|
* Do not deactivate any check, these are done to make sure that the |
||||
|
* library is properly built and used. |
||||
|
* |
||||
|
* You can find further help on the libcurl development mailing list: |
||||
|
* https://cool.haxx.se/mailman/listinfo/curl-library/
|
||||
|
* |
||||
|
* NOTE 2 |
||||
|
* ------ |
||||
|
* |
||||
|
* Some of the following compile time checks are based on the fact |
||||
|
* that the dimension of a constant array can not be a negative one. |
||||
|
* In this way if the compile time verification fails, the compilation |
||||
|
* will fail issuing an error. The error description wording is compiler |
||||
|
* dependent but it will be quite similar to one of the following: |
||||
|
* |
||||
|
* "negative subscript or subscript is too large" |
||||
|
* "array must have at least one element" |
||||
|
* "-1 is an illegal array size" |
||||
|
* "size of array is negative" |
||||
|
* |
||||
|
* If you are building an application which tries to use an already |
||||
|
* built libcurl library and you are getting this kind of errors on |
||||
|
* this file, it is a clear indication that there is a mismatch between |
||||
|
* how the library was built and how you are trying to use it for your |
||||
|
* application. Your already compiled or binary library provider is the |
||||
|
* only one who can give you the details you need to properly use it. |
||||
|
*/ |
||||
|
|
||||
|
/*
|
||||
|
* Verify that some macros are actually defined. |
||||
|
*/ |
||||
|
|
||||
|
#ifndef CURL_SIZEOF_LONG |
||||
|
# error "CURL_SIZEOF_LONG definition is missing!" |
||||
|
Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_TYPEOF_CURL_SOCKLEN_T |
||||
|
# error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!" |
||||
|
Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_SIZEOF_CURL_SOCKLEN_T |
||||
|
# error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!" |
||||
|
Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_TYPEOF_CURL_OFF_T |
||||
|
# error "CURL_TYPEOF_CURL_OFF_T definition is missing!" |
||||
|
Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_FORMAT_CURL_OFF_T |
||||
|
# error "CURL_FORMAT_CURL_OFF_T definition is missing!" |
||||
|
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_FORMAT_CURL_OFF_TU |
||||
|
# error "CURL_FORMAT_CURL_OFF_TU definition is missing!" |
||||
|
Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_FORMAT_OFF_T |
||||
|
# error "CURL_FORMAT_OFF_T definition is missing!" |
||||
|
Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_SIZEOF_CURL_OFF_T |
||||
|
# error "CURL_SIZEOF_CURL_OFF_T definition is missing!" |
||||
|
Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_SUFFIX_CURL_OFF_T |
||||
|
# error "CURL_SUFFIX_CURL_OFF_T definition is missing!" |
||||
|
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing |
||||
|
#endif |
||||
|
|
||||
|
#ifndef CURL_SUFFIX_CURL_OFF_TU |
||||
|
# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!" |
||||
|
Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing |
||||
|
#endif |
||||
|
|
||||
|
/*
|
||||
|
* Macros private to this header file. |
||||
|
*/ |
||||
|
|
||||
|
#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1 |
||||
|
|
||||
|
#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1 |
||||
|
|
||||
|
/*
|
||||
|
* Verify that the size previously defined and expected for long |
||||
|
* is the same as the one reported by sizeof() at compile time. |
||||
|
*/ |
||||
|
|
||||
|
typedef char |
||||
|
__curl_rule_01__ |
||||
|
[CurlchkszEQ(long, CURL_SIZEOF_LONG)]; |
||||
|
|
||||
|
/*
|
||||
|
* Verify that the size previously defined and expected for |
||||
|
* curl_off_t is actually the the same as the one reported |
||||
|
* by sizeof() at compile time. |
||||
|
*/ |
||||
|
|
||||
|
typedef char |
||||
|
__curl_rule_02__ |
||||
|
[CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)]; |
||||
|
|
||||
|
/*
|
||||
|
* Verify at compile time that the size of curl_off_t as reported |
||||
|
* by sizeof() is greater or equal than the one reported for long |
||||
|
* for the current compilation. |
||||
|
*/ |
||||
|
|
||||
|
typedef char |
||||
|
__curl_rule_03__ |
||||
|
[CurlchkszGE(curl_off_t, long)]; |
||||
|
|
||||
|
/*
|
||||
|
* Verify that the size previously defined and expected for |
||||
|
* curl_socklen_t is actually the the same as the one reported |
||||
|
* by sizeof() at compile time. |
||||
|
*/ |
||||
|
|
||||
|
typedef char |
||||
|
__curl_rule_04__ |
||||
|
[CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)]; |
||||
|
|
||||
|
/*
|
||||
|
* Verify at compile time that the size of curl_socklen_t as reported |
||||
|
* by sizeof() is greater or equal than the one reported for int for |
||||
|
* the current compilation. |
||||
|
*/ |
||||
|
|
||||
|
typedef char |
||||
|
__curl_rule_05__ |
||||
|
[CurlchkszGE(curl_socklen_t, int)]; |
||||
|
|
||||
|
/* ================================================================ */ |
||||
|
/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */ |
||||
|
/* ================================================================ */ |
||||
|
|
||||
|
/*
|
||||
|
* CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow |
||||
|
* these to be visible and exported by the external libcurl interface API, |
||||
|
* while also making them visible to the library internals, simply including |
||||
|
* curl_setup.h, without actually needing to include curl.h internally. |
||||
|
* If some day this section would grow big enough, all this should be moved |
||||
|
* to its own header file. |
||||
|
*/ |
||||
|
|
||||
|
/*
|
||||
|
* Figure out if we can use the ## preprocessor operator, which is supported |
||||
|
* by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ |
||||
|
* or __cplusplus so we need to carefully check for them too. |
||||
|
*/ |
||||
|
|
||||
|
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ |
||||
|
defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ |
||||
|
defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ |
||||
|
defined(__ILEC400__) |
||||
|
/* This compiler is believed to have an ISO compatible preprocessor */ |
||||
|
#define CURL_ISOCPP |
||||
|
#else |
||||
|
/* This compiler is believed NOT to have an ISO compatible preprocessor */ |
||||
|
#undef CURL_ISOCPP |
||||
|
#endif |
||||
|
|
||||
|
/*
|
||||
|
* Macros for minimum-width signed and unsigned curl_off_t integer constants. |
||||
|
*/ |
||||
|
|
||||
|
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) |
||||
|
# define __CURL_OFF_T_C_HLPR2(x) x |
||||
|
# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) |
||||
|
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ |
||||
|
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) |
||||
|
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ |
||||
|
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) |
||||
|
#else |
||||
|
# ifdef CURL_ISOCPP |
||||
|
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix |
||||
|
# else |
||||
|
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix |
||||
|
# endif |
||||
|
# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) |
||||
|
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) |
||||
|
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) |
||||
|
#endif |
||||
|
|
||||
|
/*
|
||||
|
* Get rid of macros private to this header file. |
||||
|
*/ |
||||
|
|
||||
|
#undef CurlchkszEQ |
||||
|
#undef CurlchkszGE |
||||
|
|
||||
|
/*
|
||||
|
* Get rid of macros not intended to exist beyond this point. |
||||
|
*/ |
||||
|
|
||||
|
#undef CURL_PULL_WS2TCPIP_H |
||||
|
#undef CURL_PULL_SYS_TYPES_H |
||||
|
#undef CURL_PULL_SYS_SOCKET_H |
||||
|
#undef CURL_PULL_SYS_POLL_H |
||||
|
#undef CURL_PULL_STDINT_H |
||||
|
#undef CURL_PULL_INTTYPES_H |
||||
|
|
||||
|
#undef CURL_TYPEOF_CURL_SOCKLEN_T |
||||
|
#undef CURL_TYPEOF_CURL_OFF_T |
||||
|
|
||||
|
#ifdef CURL_NO_OLDIES |
||||
|
#undef CURL_FORMAT_OFF_T /* not required since 7.19.0 - obsoleted in 7.20.0 */ |
||||
|
#endif |
||||
|
|
||||
|
#endif /* __CURL_CURLRULES_H */ |
@ -0,0 +1,77 @@ |
|||||
|
#ifndef __CURL_CURLVER_H |
||||
|
#define __CURL_CURLVER_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
* |
||||
|
***************************************************************************/ |
||||
|
|
||||
|
/* This header file contains nothing but libcurl version info, generated by
|
||||
|
a script at release-time. This was made its own header file in 7.11.2 */ |
||||
|
|
||||
|
/* This is the global package copyright */ |
||||
|
#define LIBCURL_COPYRIGHT "1996 - 2016 Daniel Stenberg, <daniel@haxx.se>." |
||||
|
|
||||
|
/* This is the version number of the libcurl package from which this header
|
||||
|
file origins: */ |
||||
|
#define LIBCURL_VERSION "7.52.1" |
||||
|
|
||||
|
/* The numeric version number is also available "in parts" by using these
|
||||
|
defines: */ |
||||
|
#define LIBCURL_VERSION_MAJOR 7 |
||||
|
#define LIBCURL_VERSION_MINOR 52 |
||||
|
#define LIBCURL_VERSION_PATCH 1 |
||||
|
|
||||
|
/* This is the numeric version of the libcurl version number, meant for easier
|
||||
|
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will |
||||
|
always follow this syntax: |
||||
|
|
||||
|
0xXXYYZZ |
||||
|
|
||||
|
Where XX, YY and ZZ are the main version, release and patch numbers in |
||||
|
hexadecimal (using 8 bits each). All three numbers are always represented |
||||
|
using two digits. 1.2 would appear as "0x010200" while version 9.11.7 |
||||
|
appears as "0x090b07". |
||||
|
|
||||
|
This 6-digit (24 bits) hexadecimal number does not show pre-release number, |
||||
|
and it is always a greater number in a more recent release. It makes |
||||
|
comparisons with greater than and less than work. |
||||
|
|
||||
|
Note: This define is the full hex number and _does not_ use the |
||||
|
CURL_VERSION_BITS() macro since curl's own configure script greps for it |
||||
|
and needs it to contain the full number. |
||||
|
*/ |
||||
|
#define LIBCURL_VERSION_NUM 0x073401 |
||||
|
|
||||
|
/*
|
||||
|
* This is the date and time when the full source package was created. The |
||||
|
* timestamp is not stored in git, as the timestamp is properly set in the |
||||
|
* tarballs by the maketgz script. |
||||
|
* |
||||
|
* The format of the date should follow this template: |
||||
|
* |
||||
|
* "Mon Feb 12 11:35:33 UTC 2007" |
||||
|
*/ |
||||
|
#define LIBCURL_TIMESTAMP "Fri Dec 23 07:22:31 UTC 2016" |
||||
|
|
||||
|
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z) |
||||
|
#define CURL_AT_LEAST_VERSION(x,y,z) \ |
||||
|
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) |
||||
|
|
||||
|
#endif /* __CURL_CURLVER_H */ |
@ -0,0 +1,102 @@ |
|||||
|
#ifndef __CURL_EASY_H |
||||
|
#define __CURL_EASY_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
* |
||||
|
***************************************************************************/ |
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
CURL_EXTERN CURL *curl_easy_init(void); |
||||
|
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); |
||||
|
CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); |
||||
|
CURL_EXTERN void curl_easy_cleanup(CURL *curl); |
||||
|
|
||||
|
/*
|
||||
|
* NAME curl_easy_getinfo() |
||||
|
* |
||||
|
* DESCRIPTION |
||||
|
* |
||||
|
* Request internal information from the curl session with this function. The |
||||
|
* third argument MUST be a pointer to a long, a pointer to a char * or a |
||||
|
* pointer to a double (as the documentation describes elsewhere). The data |
||||
|
* pointed to will be filled in accordingly and can be relied upon only if the |
||||
|
* function returns CURLE_OK. This function is intended to get used *AFTER* a |
||||
|
* performed transfer, all results from this function are undefined until the |
||||
|
* transfer is completed. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); |
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* NAME curl_easy_duphandle() |
||||
|
* |
||||
|
* DESCRIPTION |
||||
|
* |
||||
|
* Creates a new curl session handle with the same options set for the handle |
||||
|
* passed in. Duplicating a handle could only be a matter of cloning data and |
||||
|
* options, internal state info and things like persistent connections cannot |
||||
|
* be transferred. It is useful in multithreaded applications when you can run |
||||
|
* curl_easy_duphandle() for each new thread to avoid a series of identical |
||||
|
* curl_easy_setopt() invokes in every thread. |
||||
|
*/ |
||||
|
CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl); |
||||
|
|
||||
|
/*
|
||||
|
* NAME curl_easy_reset() |
||||
|
* |
||||
|
* DESCRIPTION |
||||
|
* |
||||
|
* Re-initializes a CURL handle to the default values. This puts back the |
||||
|
* handle to the same state as it was in when it was just created. |
||||
|
* |
||||
|
* It does keep: live connections, the Session ID cache, the DNS cache and the |
||||
|
* cookies. |
||||
|
*/ |
||||
|
CURL_EXTERN void curl_easy_reset(CURL *curl); |
||||
|
|
||||
|
/*
|
||||
|
* NAME curl_easy_recv() |
||||
|
* |
||||
|
* DESCRIPTION |
||||
|
* |
||||
|
* Receives data from the connected socket. Use after successful |
||||
|
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, |
||||
|
size_t *n); |
||||
|
|
||||
|
/*
|
||||
|
* NAME curl_easy_send() |
||||
|
* |
||||
|
* DESCRIPTION |
||||
|
* |
||||
|
* Sends data over the connected socket. Use after successful |
||||
|
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, |
||||
|
size_t buflen, size_t *n); |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif |
@ -0,0 +1,50 @@ |
|||||
|
#ifndef __CURL_MPRINTF_H |
||||
|
#define __CURL_MPRINTF_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2016, 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 https://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 <stdarg.h> |
||||
|
#include <stdio.h> /* needed for FILE */ |
||||
|
#include "curl.h" /* for CURL_EXTERN */ |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
CURL_EXTERN int curl_mprintf(const char *format, ...); |
||||
|
CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); |
||||
|
CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); |
||||
|
CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, |
||||
|
const char *format, ...); |
||||
|
CURL_EXTERN int curl_mvprintf(const char *format, va_list args); |
||||
|
CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); |
||||
|
CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); |
||||
|
CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, |
||||
|
const char *format, va_list args); |
||||
|
CURL_EXTERN char *curl_maprintf(const char *format, ...); |
||||
|
CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} |
||||
|
#endif |
||||
|
|
||||
|
#endif /* __CURL_MPRINTF_H */ |
@ -0,0 +1,439 @@ |
|||||
|
#ifndef __CURL_MULTI_H |
||||
|
#define __CURL_MULTI_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
* |
||||
|
***************************************************************************/ |
||||
|
/*
|
||||
|
This is an "external" header file. Don't give away any internals here! |
||||
|
|
||||
|
GOALS |
||||
|
|
||||
|
o Enable a "pull" interface. The application that uses libcurl decides where |
||||
|
and when to ask libcurl to get/send data. |
||||
|
|
||||
|
o Enable multiple simultaneous transfers in the same thread without making it |
||||
|
complicated for the application. |
||||
|
|
||||
|
o Enable the application to select() on its own file descriptors and curl's |
||||
|
file descriptors simultaneous easily. |
||||
|
|
||||
|
*/ |
||||
|
|
||||
|
/*
|
||||
|
* This header file should not really need to include "curl.h" since curl.h |
||||
|
* itself includes this file and we expect user applications to do #include |
||||
|
* <curl/curl.h> without the need for especially including multi.h. |
||||
|
* |
||||
|
* For some reason we added this include here at one point, and rather than to |
||||
|
* break existing (wrongly written) libcurl applications, we leave it as-is |
||||
|
* but with this warning attached. |
||||
|
*/ |
||||
|
#include "curl.h" |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
extern "C" { |
||||
|
#endif |
||||
|
|
||||
|
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) |
||||
|
typedef struct Curl_multi CURLM; |
||||
|
#else |
||||
|
typedef void CURLM; |
||||
|
#endif |
||||
|
|
||||
|
typedef enum { |
||||
|
CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
|
||||
|
curl_multi_socket*() soon */ |
||||
|
CURLM_OK, |
||||
|
CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ |
||||
|
CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ |
||||
|
CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ |
||||
|
CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ |
||||
|
CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ |
||||
|
CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ |
||||
|
CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was
|
||||
|
attempted to get added - again */ |
||||
|
CURLM_LAST |
||||
|
} CURLMcode; |
||||
|
|
||||
|
/* just to make code nicer when using curl_multi_socket() you can now check
|
||||
|
for CURLM_CALL_MULTI_SOCKET too in the same style it works for |
||||
|
curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ |
||||
|
#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM |
||||
|
|
||||
|
/* bitmask bits for CURLMOPT_PIPELINING */ |
||||
|
#define CURLPIPE_NOTHING 0L |
||||
|
#define CURLPIPE_HTTP1 1L |
||||
|
#define CURLPIPE_MULTIPLEX 2L |
||||
|
|
||||
|
typedef enum { |
||||
|
CURLMSG_NONE, /* first, not used */ |
||||
|
CURLMSG_DONE, /* This easy handle has completed. 'result' contains
|
||||
|
the CURLcode of the transfer */ |
||||
|
CURLMSG_LAST /* last, not used */ |
||||
|
} CURLMSG; |
||||
|
|
||||
|
struct CURLMsg { |
||||
|
CURLMSG msg; /* what this message means */ |
||||
|
CURL *easy_handle; /* the handle it concerns */ |
||||
|
union { |
||||
|
void *whatever; /* message-specific data */ |
||||
|
CURLcode result; /* return code for transfer */ |
||||
|
} data; |
||||
|
}; |
||||
|
typedef struct CURLMsg CURLMsg; |
||||
|
|
||||
|
/* Based on poll(2) structure and values.
|
||||
|
* We don't use pollfd and POLL* constants explicitly |
||||
|
* to cover platforms without poll(). */ |
||||
|
#define CURL_WAIT_POLLIN 0x0001 |
||||
|
#define CURL_WAIT_POLLPRI 0x0002 |
||||
|
#define CURL_WAIT_POLLOUT 0x0004 |
||||
|
|
||||
|
struct curl_waitfd { |
||||
|
curl_socket_t fd; |
||||
|
short events; |
||||
|
short revents; /* not supported yet */ |
||||
|
}; |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_init() |
||||
|
* |
||||
|
* Desc: inititalize multi-style curl usage |
||||
|
* |
||||
|
* Returns: a new CURLM handle to use in all 'curl_multi' functions. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLM *curl_multi_init(void); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_add_handle() |
||||
|
* |
||||
|
* Desc: add a standard curl handle to the multi stack |
||||
|
* |
||||
|
* Returns: CURLMcode type, general multi error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, |
||||
|
CURL *curl_handle); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_remove_handle() |
||||
|
* |
||||
|
* Desc: removes a curl handle from the multi stack again |
||||
|
* |
||||
|
* Returns: CURLMcode type, general multi error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, |
||||
|
CURL *curl_handle); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_fdset() |
||||
|
* |
||||
|
* Desc: Ask curl for its fd_set sets. The app can use these to select() or |
||||
|
* poll() on. We want curl_multi_perform() called as soon as one of |
||||
|
* them are ready. |
||||
|
* |
||||
|
* Returns: CURLMcode type, general multi error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, |
||||
|
fd_set *read_fd_set, |
||||
|
fd_set *write_fd_set, |
||||
|
fd_set *exc_fd_set, |
||||
|
int *max_fd); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_wait() |
||||
|
* |
||||
|
* Desc: Poll on all fds within a CURLM set as well as any |
||||
|
* additional fds passed to the function. |
||||
|
* |
||||
|
* Returns: CURLMcode type, general multi error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, |
||||
|
struct curl_waitfd extra_fds[], |
||||
|
unsigned int extra_nfds, |
||||
|
int timeout_ms, |
||||
|
int *ret); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_perform() |
||||
|
* |
||||
|
* Desc: When the app thinks there's data available for curl it calls this |
||||
|
* function to read/write whatever there is right now. This returns |
||||
|
* as soon as the reads and writes are done. This function does not |
||||
|
* require that there actually is data available for reading or that |
||||
|
* data can be written, it can be called just in case. It returns |
||||
|
* the number of handles that still transfer data in the second |
||||
|
* argument's integer-pointer. |
||||
|
* |
||||
|
* Returns: CURLMcode type, general multi error code. *NOTE* that this only |
||||
|
* returns errors etc regarding the whole multi stack. There might |
||||
|
* still have occurred problems on invidual transfers even when this |
||||
|
* returns OK. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, |
||||
|
int *running_handles); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_cleanup() |
||||
|
* |
||||
|
* Desc: Cleans up and removes a whole multi stack. It does not free or |
||||
|
* touch any individual easy handles in any way. We need to define |
||||
|
* in what state those handles will be if this function is called |
||||
|
* in the middle of a transfer. |
||||
|
* |
||||
|
* Returns: CURLMcode type, general multi error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_info_read() |
||||
|
* |
||||
|
* Desc: Ask the multi handle if there's any messages/informationals from |
||||
|
* the individual transfers. Messages include informationals such as |
||||
|
* error code from the transfer or just the fact that a transfer is |
||||
|
* completed. More details on these should be written down as well. |
||||
|
* |
||||
|
* Repeated calls to this function will return a new struct each |
||||
|
* time, until a special "end of msgs" struct is returned as a signal |
||||
|
* that there is no more to get at this point. |
||||
|
* |
||||
|
* The data the returned pointer points to will not survive calling |
||||
|
* curl_multi_cleanup(). |
||||
|
* |
||||
|
* The 'CURLMsg' struct is meant to be very simple and only contain |
||||
|
* very basic informations. If more involved information is wanted, |
||||
|
* we will provide the particular "transfer handle" in that struct |
||||
|
* and that should/could/would be used in subsequent |
||||
|
* curl_easy_getinfo() calls (or similar). The point being that we |
||||
|
* must never expose complex structs to applications, as then we'll |
||||
|
* undoubtably get backwards compatibility problems in the future. |
||||
|
* |
||||
|
* Returns: A pointer to a filled-in struct, or NULL if it failed or ran out |
||||
|
* of structs. It also writes the number of messages left in the |
||||
|
* queue (after this read) in the integer the second argument points |
||||
|
* to. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, |
||||
|
int *msgs_in_queue); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_strerror() |
||||
|
* |
||||
|
* Desc: The curl_multi_strerror function may be used to turn a CURLMcode |
||||
|
* value into the equivalent human readable error string. This is |
||||
|
* useful for printing meaningful error messages. |
||||
|
* |
||||
|
* Returns: A pointer to a zero-terminated error message. |
||||
|
*/ |
||||
|
CURL_EXTERN const char *curl_multi_strerror(CURLMcode); |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_socket() and |
||||
|
* curl_multi_socket_all() |
||||
|
* |
||||
|
* Desc: An alternative version of curl_multi_perform() that allows the |
||||
|
* application to pass in one of the file descriptors that have been |
||||
|
* detected to have "action" on them and let libcurl perform. |
||||
|
* See man page for details. |
||||
|
*/ |
||||
|
#define CURL_POLL_NONE 0 |
||||
|
#define CURL_POLL_IN 1 |
||||
|
#define CURL_POLL_OUT 2 |
||||
|
#define CURL_POLL_INOUT 3 |
||||
|
#define CURL_POLL_REMOVE 4 |
||||
|
|
||||
|
#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD |
||||
|
|
||||
|
#define CURL_CSELECT_IN 0x01 |
||||
|
#define CURL_CSELECT_OUT 0x02 |
||||
|
#define CURL_CSELECT_ERR 0x04 |
||||
|
|
||||
|
typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ |
||||
|
curl_socket_t s, /* socket */ |
||||
|
int what, /* see above */ |
||||
|
void *userp, /* private callback
|
||||
|
pointer */ |
||||
|
void *socketp); /* private socket
|
||||
|
pointer */ |
||||
|
/*
|
||||
|
* Name: curl_multi_timer_callback |
||||
|
* |
||||
|
* Desc: Called by libcurl whenever the library detects a change in the |
||||
|
* maximum number of milliseconds the app is allowed to wait before |
||||
|
* curl_multi_socket() or curl_multi_perform() must be called |
||||
|
* (to allow libcurl's timed events to take place). |
||||
|
* |
||||
|
* Returns: The callback should return zero. |
||||
|
*/ |
||||
|
typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ |
||||
|
long timeout_ms, /* see above */ |
||||
|
void *userp); /* private callback
|
||||
|
pointer */ |
||||
|
|
||||
|
CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, |
||||
|
int *running_handles); |
||||
|
|
||||
|
CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, |
||||
|
curl_socket_t s, |
||||
|
int ev_bitmask, |
||||
|
int *running_handles); |
||||
|
|
||||
|
CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, |
||||
|
int *running_handles); |
||||
|
|
||||
|
#ifndef CURL_ALLOW_OLD_MULTI_SOCKET |
||||
|
/* This macro below was added in 7.16.3 to push users who recompile to use
|
||||
|
the new curl_multi_socket_action() instead of the old curl_multi_socket() |
||||
|
*/ |
||||
|
#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) |
||||
|
#endif |
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_timeout() |
||||
|
* |
||||
|
* Desc: Returns the maximum number of milliseconds the app is allowed to |
||||
|
* wait before curl_multi_socket() or curl_multi_perform() must be |
||||
|
* called (to allow libcurl's timed events to take place). |
||||
|
* |
||||
|
* Returns: CURLM error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, |
||||
|
long *milliseconds); |
||||
|
|
||||
|
#undef CINIT /* re-using the same name as in curl.h */ |
||||
|
|
||||
|
#ifdef CURL_ISOCPP |
||||
|
#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num |
||||
|
#else |
||||
|
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ |
||||
|
#define LONG CURLOPTTYPE_LONG |
||||
|
#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT |
||||
|
#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT |
||||
|
#define OFF_T CURLOPTTYPE_OFF_T |
||||
|
#define CINIT(name,type,number) CURLMOPT_/**/name = type + number |
||||
|
#endif |
||||
|
|
||||
|
typedef enum { |
||||
|
/* This is the socket callback function pointer */ |
||||
|
CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), |
||||
|
|
||||
|
/* This is the argument passed to the socket callback */ |
||||
|
CINIT(SOCKETDATA, OBJECTPOINT, 2), |
||||
|
|
||||
|
/* set to 1 to enable pipelining for this multi handle */ |
||||
|
CINIT(PIPELINING, LONG, 3), |
||||
|
|
||||
|
/* This is the timer callback function pointer */ |
||||
|
CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), |
||||
|
|
||||
|
/* This is the argument passed to the timer callback */ |
||||
|
CINIT(TIMERDATA, OBJECTPOINT, 5), |
||||
|
|
||||
|
/* maximum number of entries in the connection cache */ |
||||
|
CINIT(MAXCONNECTS, LONG, 6), |
||||
|
|
||||
|
/* maximum number of (pipelining) connections to one host */ |
||||
|
CINIT(MAX_HOST_CONNECTIONS, LONG, 7), |
||||
|
|
||||
|
/* maximum number of requests in a pipeline */ |
||||
|
CINIT(MAX_PIPELINE_LENGTH, LONG, 8), |
||||
|
|
||||
|
/* a connection with a content-length longer than this
|
||||
|
will not be considered for pipelining */ |
||||
|
CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9), |
||||
|
|
||||
|
/* a connection with a chunk length longer than this
|
||||
|
will not be considered for pipelining */ |
||||
|
CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10), |
||||
|
|
||||
|
/* a list of site names(+port) that are blacklisted from
|
||||
|
pipelining */ |
||||
|
CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11), |
||||
|
|
||||
|
/* a list of server types that are blacklisted from
|
||||
|
pipelining */ |
||||
|
CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12), |
||||
|
|
||||
|
/* maximum number of open connections in total */ |
||||
|
CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), |
||||
|
|
||||
|
/* This is the server push callback function pointer */ |
||||
|
CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14), |
||||
|
|
||||
|
/* This is the argument passed to the server push callback */ |
||||
|
CINIT(PUSHDATA, OBJECTPOINT, 15), |
||||
|
|
||||
|
CURLMOPT_LASTENTRY /* the last unused */ |
||||
|
} CURLMoption; |
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_setopt() |
||||
|
* |
||||
|
* Desc: Sets options for the multi handle. |
||||
|
* |
||||
|
* Returns: CURLM error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, |
||||
|
CURLMoption option, ...); |
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_multi_assign() |
||||
|
* |
||||
|
* Desc: This function sets an association in the multi handle between the |
||||
|
* given socket and a private pointer of the application. This is |
||||
|
* (only) useful for curl_multi_socket uses. |
||||
|
* |
||||
|
* Returns: CURLM error code. |
||||
|
*/ |
||||
|
CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, |
||||
|
curl_socket_t sockfd, void *sockp); |
||||
|
|
||||
|
|
||||
|
/*
|
||||
|
* Name: curl_push_callback |
||||
|
* |
||||
|
* Desc: This callback gets called when a new stream is being pushed by the |
||||
|
* server. It approves or denies the new stream. |
||||
|
* |
||||
|
* Returns: CURL_PUSH_OK or CURL_PUSH_DENY. |
||||
|
*/ |
||||
|
#define CURL_PUSH_OK 0 |
||||
|
#define CURL_PUSH_DENY 1 |
||||
|
|
||||
|
struct curl_pushheaders; /* forward declaration only */ |
||||
|
|
||||
|
CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h, |
||||
|
size_t num); |
||||
|
CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h, |
||||
|
const char *name); |
||||
|
|
||||
|
typedef int (*curl_push_callback)(CURL *parent, |
||||
|
CURL *easy, |
||||
|
size_t num_headers, |
||||
|
struct curl_pushheaders *headers, |
||||
|
void *userp); |
||||
|
|
||||
|
#ifdef __cplusplus |
||||
|
} /* end of extern "C" */ |
||||
|
#endif |
||||
|
|
||||
|
#endif |
@ -0,0 +1,33 @@ |
|||||
|
#ifndef __STDC_HEADERS_H |
||||
|
#define __STDC_HEADERS_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2016, 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 https://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 <sys/types.h> |
||||
|
|
||||
|
size_t fread(void *, size_t, size_t, FILE *); |
||||
|
size_t fwrite(const void *, size_t, size_t, FILE *); |
||||
|
|
||||
|
int strcasecmp(const char *, const char *); |
||||
|
int strncasecmp(const char *, const char *, size_t); |
||||
|
|
||||
|
#endif /* __STDC_HEADERS_H */ |
@ -0,0 +1,623 @@ |
|||||
|
#ifndef __CURL_TYPECHECK_GCC_H |
||||
|
#define __CURL_TYPECHECK_GCC_H |
||||
|
/***************************************************************************
|
||||
|
* _ _ ____ _ |
||||
|
* Project ___| | | | _ \| | |
||||
|
* / __| | | | |_) | | |
||||
|
* | (__| |_| | _ <| |___ |
||||
|
* \___|\___/|_| \_\_____| |
||||
|
* |
||||
|
* Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
* |
||||
|
***************************************************************************/ |
||||
|
|
||||
|
/* wraps curl_easy_setopt() with typechecking */ |
||||
|
|
||||
|
/* To add a new kind of warning, add an
|
||||
|
* if(_curl_is_sometype_option(_curl_opt)) |
||||
|
* if(!_curl_is_sometype(value)) |
||||
|
* _curl_easy_setopt_err_sometype(); |
||||
|
* block and define _curl_is_sometype_option, _curl_is_sometype and |
||||
|
* _curl_easy_setopt_err_sometype below |
||||
|
* |
||||
|
* NOTE: We use two nested 'if' statements here instead of the && operator, in |
||||
|
* order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x |
||||
|
* when compiling with -Wlogical-op. |
||||
|
* |
||||
|
* To add an option that uses the same type as an existing option, you'll just |
||||
|
* need to extend the appropriate _curl_*_option macro |
||||
|
*/ |
||||
|
#define curl_easy_setopt(handle, option, value) \ |
||||
|
__extension__ ({ \ |
||||
|
__typeof__(option) _curl_opt = option; \ |
||||
|
if(__builtin_constant_p(_curl_opt)) { \ |
||||
|
if(_curl_is_long_option(_curl_opt)) \ |
||||
|
if(!_curl_is_long(value)) \ |
||||
|
_curl_easy_setopt_err_long(); \ |
||||
|
if(_curl_is_off_t_option(_curl_opt)) \ |
||||
|
if(!_curl_is_off_t(value)) \ |
||||
|
_curl_easy_setopt_err_curl_off_t(); \ |
||||
|
if(_curl_is_string_option(_curl_opt)) \ |
||||
|
if(!_curl_is_string(value)) \ |
||||
|
_curl_easy_setopt_err_string(); \ |
||||
|
if(_curl_is_write_cb_option(_curl_opt)) \ |
||||
|
if(!_curl_is_write_cb(value)) \ |
||||
|
_curl_easy_setopt_err_write_callback(); \ |
||||
|
if((_curl_opt) == CURLOPT_READFUNCTION) \ |
||||
|
if(!_curl_is_read_cb(value)) \ |
||||
|
_curl_easy_setopt_err_read_cb(); \ |
||||
|
if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ |
||||
|
if(!_curl_is_ioctl_cb(value)) \ |
||||
|
_curl_easy_setopt_err_ioctl_cb(); \ |
||||
|
if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ |
||||
|
if(!_curl_is_sockopt_cb(value)) \ |
||||
|
_curl_easy_setopt_err_sockopt_cb(); \ |
||||
|
if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ |
||||
|
if(!_curl_is_opensocket_cb(value)) \ |
||||
|
_curl_easy_setopt_err_opensocket_cb(); \ |
||||
|
if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ |
||||
|
if(!_curl_is_progress_cb(value)) \ |
||||
|
_curl_easy_setopt_err_progress_cb(); \ |
||||
|
if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ |
||||
|
if(!_curl_is_debug_cb(value)) \ |
||||
|
_curl_easy_setopt_err_debug_cb(); \ |
||||
|
if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ |
||||
|
if(!_curl_is_ssl_ctx_cb(value)) \ |
||||
|
_curl_easy_setopt_err_ssl_ctx_cb(); \ |
||||
|
if(_curl_is_conv_cb_option(_curl_opt)) \ |
||||
|
if(!_curl_is_conv_cb(value)) \ |
||||
|
_curl_easy_setopt_err_conv_cb(); \ |
||||
|
if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ |
||||
|
if(!_curl_is_seek_cb(value)) \ |
||||
|
_curl_easy_setopt_err_seek_cb(); \ |
||||
|
if(_curl_is_cb_data_option(_curl_opt)) \ |
||||
|
if(!_curl_is_cb_data(value)) \ |
||||
|
_curl_easy_setopt_err_cb_data(); \ |
||||
|
if((_curl_opt) == CURLOPT_ERRORBUFFER) \ |
||||
|
if(!_curl_is_error_buffer(value)) \ |
||||
|
_curl_easy_setopt_err_error_buffer(); \ |
||||
|
if((_curl_opt) == CURLOPT_STDERR) \ |
||||
|
if(!_curl_is_FILE(value)) \ |
||||
|
_curl_easy_setopt_err_FILE(); \ |
||||
|
if(_curl_is_postfields_option(_curl_opt)) \ |
||||
|
if(!_curl_is_postfields(value)) \ |
||||
|
_curl_easy_setopt_err_postfields(); \ |
||||
|
if((_curl_opt) == CURLOPT_HTTPPOST) \ |
||||
|
if(!_curl_is_arr((value), struct curl_httppost)) \ |
||||
|
_curl_easy_setopt_err_curl_httpost(); \ |
||||
|
if(_curl_is_slist_option(_curl_opt)) \ |
||||
|
if(!_curl_is_arr((value), struct curl_slist)) \ |
||||
|
_curl_easy_setopt_err_curl_slist(); \ |
||||
|
if((_curl_opt) == CURLOPT_SHARE) \ |
||||
|
if(!_curl_is_ptr((value), CURLSH)) \ |
||||
|
_curl_easy_setopt_err_CURLSH(); \ |
||||
|
} \ |
||||
|
curl_easy_setopt(handle, _curl_opt, value); \ |
||||
|
}) |
||||
|
|
||||
|
/* wraps curl_easy_getinfo() with typechecking */ |
||||
|
/* FIXME: don't allow const pointers */ |
||||
|
#define curl_easy_getinfo(handle, info, arg) \ |
||||
|
__extension__ ({ \ |
||||
|
__typeof__(info) _curl_info = info; \ |
||||
|
if(__builtin_constant_p(_curl_info)) { \ |
||||
|
if(_curl_is_string_info(_curl_info)) \ |
||||
|
if(!_curl_is_arr((arg), char *)) \ |
||||
|
_curl_easy_getinfo_err_string(); \ |
||||
|
if(_curl_is_long_info(_curl_info)) \ |
||||
|
if(!_curl_is_arr((arg), long)) \ |
||||
|
_curl_easy_getinfo_err_long(); \ |
||||
|
if(_curl_is_double_info(_curl_info)) \ |
||||
|
if(!_curl_is_arr((arg), double)) \ |
||||
|
_curl_easy_getinfo_err_double(); \ |
||||
|
if(_curl_is_slist_info(_curl_info)) \ |
||||
|
if(!_curl_is_arr((arg), struct curl_slist *)) \ |
||||
|
_curl_easy_getinfo_err_curl_slist(); \ |
||||
|
} \ |
||||
|
curl_easy_getinfo(handle, _curl_info, arg); \ |
||||
|
}) |
||||
|
|
||||
|
/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(),
|
||||
|
* for now just make sure that the functions are called with three |
||||
|
* arguments |
||||
|
*/ |
||||
|
#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) |
||||
|
#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) |
||||
|
|
||||
|
|
||||
|
/* the actual warnings, triggered by calling the _curl_easy_setopt_err*
|
||||
|
* functions */ |
||||
|
|
||||
|
/* To define a new warning, use _CURL_WARNING(identifier, "message") */ |
||||
|
#define _CURL_WARNING(id, message) \ |
||||
|
static void __attribute__((__warning__(message))) \ |
||||
|
__attribute__((__unused__)) __attribute__((__noinline__)) \ |
||||
|
id(void) { __asm__(""); } |
||||
|
|
||||
|
_CURL_WARNING(_curl_easy_setopt_err_long, |
||||
|
"curl_easy_setopt expects a long argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_curl_off_t, |
||||
|
"curl_easy_setopt expects a curl_off_t argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_string, |
||||
|
"curl_easy_setopt expects a " |
||||
|
"string ('char *' or char[]) argument for this option" |
||||
|
) |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_write_callback, |
||||
|
"curl_easy_setopt expects a curl_write_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_read_cb, |
||||
|
"curl_easy_setopt expects a curl_read_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, |
||||
|
"curl_easy_setopt expects a curl_ioctl_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb, |
||||
|
"curl_easy_setopt expects a curl_sockopt_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb, |
||||
|
"curl_easy_setopt expects a " |
||||
|
"curl_opensocket_callback argument for this option" |
||||
|
) |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_progress_cb, |
||||
|
"curl_easy_setopt expects a curl_progress_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_debug_cb, |
||||
|
"curl_easy_setopt expects a curl_debug_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb, |
||||
|
"curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_conv_cb, |
||||
|
"curl_easy_setopt expects a curl_conv_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_seek_cb, |
||||
|
"curl_easy_setopt expects a curl_seek_callback argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_cb_data, |
||||
|
"curl_easy_setopt expects a " |
||||
|
"private data pointer as argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_error_buffer, |
||||
|
"curl_easy_setopt expects a " |
||||
|
"char buffer of CURL_ERROR_SIZE as argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_FILE, |
||||
|
"curl_easy_setopt expects a 'FILE *' argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_postfields, |
||||
|
"curl_easy_setopt expects a 'void *' or 'char *' argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_curl_httpost, |
||||
|
"curl_easy_setopt expects a 'struct curl_httppost *' " |
||||
|
"argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_curl_slist, |
||||
|
"curl_easy_setopt expects a 'struct curl_slist *' argument for this option") |
||||
|
_CURL_WARNING(_curl_easy_setopt_err_CURLSH, |
||||
|
"curl_easy_setopt expects a CURLSH* argument for this option") |
||||
|
|
||||
|
_CURL_WARNING(_curl_easy_getinfo_err_string, |
||||
|
"curl_easy_getinfo expects a pointer to 'char *' for this info") |
||||
|
_CURL_WARNING(_curl_easy_getinfo_err_long, |
||||
|
"curl_easy_getinfo expects a pointer to long for this info") |
||||
|
_CURL_WARNING(_curl_easy_getinfo_err_double, |
||||
|
"curl_easy_getinfo expects a pointer to double for this info") |
||||
|
_CURL_WARNING(_curl_easy_getinfo_err_curl_slist, |
||||
|
"curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info") |
||||
|
|
||||
|
/* groups of curl_easy_setops options that take the same type of argument */ |
||||
|
|
||||
|
/* To add a new option to one of the groups, just add
|
||||
|
* (option) == CURLOPT_SOMETHING |
||||
|
* to the or-expression. If the option takes a long or curl_off_t, you don't |
||||
|
* have to do anything |
||||
|
*/ |
||||
|
|
||||
|
/* evaluates to true if option takes a long argument */ |
||||
|
#define _curl_is_long_option(option) \ |
||||
|
(0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) |
||||
|
|
||||
|
#define _curl_is_off_t_option(option) \ |
||||
|
((option) > CURLOPTTYPE_OFF_T) |
||||
|
|
||||
|
/* evaluates to true if option takes a char* argument */ |
||||
|
#define _curl_is_string_option(option) \ |
||||
|
((option) == CURLOPT_ACCEPT_ENCODING || \ |
||||
|
(option) == CURLOPT_CAINFO || \ |
||||
|
(option) == CURLOPT_CAPATH || \ |
||||
|
(option) == CURLOPT_COOKIE || \ |
||||
|
(option) == CURLOPT_COOKIEFILE || \ |
||||
|
(option) == CURLOPT_COOKIEJAR || \ |
||||
|
(option) == CURLOPT_COOKIELIST || \ |
||||
|
(option) == CURLOPT_CRLFILE || \ |
||||
|
(option) == CURLOPT_CUSTOMREQUEST || \ |
||||
|
(option) == CURLOPT_DEFAULT_PROTOCOL || \ |
||||
|
(option) == CURLOPT_DNS_INTERFACE || \ |
||||
|
(option) == CURLOPT_DNS_LOCAL_IP4 || \ |
||||
|
(option) == CURLOPT_DNS_LOCAL_IP6 || \ |
||||
|
(option) == CURLOPT_DNS_SERVERS || \ |
||||
|
(option) == CURLOPT_EGDSOCKET || \ |
||||
|
(option) == CURLOPT_FTPPORT || \ |
||||
|
(option) == CURLOPT_FTP_ACCOUNT || \ |
||||
|
(option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ |
||||
|
(option) == CURLOPT_INTERFACE || \ |
||||
|
(option) == CURLOPT_ISSUERCERT || \ |
||||
|
(option) == CURLOPT_KEYPASSWD || \ |
||||
|
(option) == CURLOPT_KRBLEVEL || \ |
||||
|
(option) == CURLOPT_LOGIN_OPTIONS || \ |
||||
|
(option) == CURLOPT_MAIL_AUTH || \ |
||||
|
(option) == CURLOPT_MAIL_FROM || \ |
||||
|
(option) == CURLOPT_NETRC_FILE || \ |
||||
|
(option) == CURLOPT_NOPROXY || \ |
||||
|
(option) == CURLOPT_PASSWORD || \ |
||||
|
(option) == CURLOPT_PINNEDPUBLICKEY || \ |
||||
|
(option) == CURLOPT_PROXY || \ |
||||
|
(option) == CURLOPT_PROXYPASSWORD || \ |
||||
|
(option) == CURLOPT_PROXYUSERNAME || \ |
||||
|
(option) == CURLOPT_PROXYUSERPWD || \ |
||||
|
(option) == CURLOPT_PROXY_SERVICE_NAME || \ |
||||
|
(option) == CURLOPT_RANDOM_FILE || \ |
||||
|
(option) == CURLOPT_RANGE || \ |
||||
|
(option) == CURLOPT_REFERER || \ |
||||
|
(option) == CURLOPT_RTSP_SESSION_ID || \ |
||||
|
(option) == CURLOPT_RTSP_STREAM_URI || \ |
||||
|
(option) == CURLOPT_RTSP_TRANSPORT || \ |
||||
|
(option) == CURLOPT_SERVICE_NAME || \ |
||||
|
(option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ |
||||
|
(option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ |
||||
|
(option) == CURLOPT_SSH_KNOWNHOSTS || \ |
||||
|
(option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ |
||||
|
(option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ |
||||
|
(option) == CURLOPT_SSLCERT || \ |
||||
|
(option) == CURLOPT_SSLCERTTYPE || \ |
||||
|
(option) == CURLOPT_SSLENGINE || \ |
||||
|
(option) == CURLOPT_SSLKEY || \ |
||||
|
(option) == CURLOPT_SSLKEYTYPE || \ |
||||
|
(option) == CURLOPT_SSL_CIPHER_LIST || \ |
||||
|
(option) == CURLOPT_TLSAUTH_PASSWORD || \ |
||||
|
(option) == CURLOPT_TLSAUTH_TYPE || \ |
||||
|
(option) == CURLOPT_TLSAUTH_USERNAME || \ |
||||
|
(option) == CURLOPT_UNIX_SOCKET_PATH || \ |
||||
|
(option) == CURLOPT_URL || \ |
||||
|
(option) == CURLOPT_USERAGENT || \ |
||||
|
(option) == CURLOPT_USERNAME || \ |
||||
|
(option) == CURLOPT_USERPWD || \ |
||||
|
(option) == CURLOPT_XOAUTH2_BEARER || \ |
||||
|
0) |
||||
|
|
||||
|
/* evaluates to true if option takes a curl_write_callback argument */ |
||||
|
#define _curl_is_write_cb_option(option) \ |
||||
|
((option) == CURLOPT_HEADERFUNCTION || \ |
||||
|
(option) == CURLOPT_WRITEFUNCTION) |
||||
|
|
||||
|
/* evaluates to true if option takes a curl_conv_callback argument */ |
||||
|
#define _curl_is_conv_cb_option(option) \ |
||||
|
((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ |
||||
|
(option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ |
||||
|
(option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) |
||||
|
|
||||
|
/* evaluates to true if option takes a data argument to pass to a callback */ |
||||
|
#define _curl_is_cb_data_option(option) \ |
||||
|
((option) == CURLOPT_CHUNK_DATA || \ |
||||
|
(option) == CURLOPT_CLOSESOCKETDATA || \ |
||||
|
(option) == CURLOPT_DEBUGDATA || \ |
||||
|
(option) == CURLOPT_FNMATCH_DATA || \ |
||||
|
(option) == CURLOPT_HEADERDATA || \ |
||||
|
(option) == CURLOPT_INTERLEAVEDATA || \ |
||||
|
(option) == CURLOPT_IOCTLDATA || \ |
||||
|
(option) == CURLOPT_OPENSOCKETDATA || \ |
||||
|
(option) == CURLOPT_PRIVATE || \ |
||||
|
(option) == CURLOPT_PROGRESSDATA || \ |
||||
|
(option) == CURLOPT_READDATA || \ |
||||
|
(option) == CURLOPT_SEEKDATA || \ |
||||
|
(option) == CURLOPT_SOCKOPTDATA || \ |
||||
|
(option) == CURLOPT_SSH_KEYDATA || \ |
||||
|
(option) == CURLOPT_SSL_CTX_DATA || \ |
||||
|
(option) == CURLOPT_WRITEDATA || \ |
||||
|
0) |
||||
|
|
||||
|
/* evaluates to true if option takes a POST data argument (void* or char*) */ |
||||
|
#define _curl_is_postfields_option(option) \ |
||||
|
((option) == CURLOPT_POSTFIELDS || \ |
||||
|
(option) == CURLOPT_COPYPOSTFIELDS || \ |
||||
|
0) |
||||
|
|
||||
|
/* evaluates to true if option takes a struct curl_slist * argument */ |
||||
|
#define _curl_is_slist_option(option) \ |
||||
|
((option) == CURLOPT_HTTP200ALIASES || \ |
||||
|
(option) == CURLOPT_HTTPHEADER || \ |
||||
|
(option) == CURLOPT_MAIL_RCPT || \ |
||||
|
(option) == CURLOPT_POSTQUOTE || \ |
||||
|
(option) == CURLOPT_PREQUOTE || \ |
||||
|
(option) == CURLOPT_PROXYHEADER || \ |
||||
|
(option) == CURLOPT_QUOTE || \ |
||||
|
(option) == CURLOPT_RESOLVE || \ |
||||
|
(option) == CURLOPT_TELNETOPTIONS || \ |
||||
|
0) |
||||
|
|
||||
|
/* groups of curl_easy_getinfo infos that take the same type of argument */ |
||||
|
|
||||
|
/* evaluates to true if info expects a pointer to char * argument */ |
||||
|
#define _curl_is_string_info(info) \ |
||||
|
(CURLINFO_STRING < (info) && (info) < CURLINFO_LONG) |
||||
|
|
||||
|
/* evaluates to true if info expects a pointer to long argument */ |
||||
|
#define _curl_is_long_info(info) \ |
||||
|
(CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) |
||||
|
|
||||
|
/* evaluates to true if info expects a pointer to double argument */ |
||||
|
#define _curl_is_double_info(info) \ |
||||
|
(CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) |
||||
|
|
||||
|
/* true if info expects a pointer to struct curl_slist * argument */ |
||||
|
#define _curl_is_slist_info(info) \ |
||||
|
(CURLINFO_SLIST < (info)) |
||||
|
|
||||
|
|
||||
|
/* typecheck helpers -- check whether given expression has requested type*/ |
||||
|
|
||||
|
/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros,
|
||||
|
* otherwise define a new macro. Search for __builtin_types_compatible_p |
||||
|
* in the GCC manual. |
||||
|
* NOTE: these macros MUST NOT EVALUATE their arguments! The argument is |
||||
|
* the actual expression passed to the curl_easy_setopt macro. This |
||||
|
* means that you can only apply the sizeof and __typeof__ operators, no |
||||
|
* == or whatsoever. |
||||
|
*/ |
||||
|
|
||||
|
/* XXX: should evaluate to true iff expr is a pointer */ |
||||
|
#define _curl_is_any_ptr(expr) \ |
||||
|
(sizeof(expr) == sizeof(void *)) |
||||
|
|
||||
|
/* evaluates to true if expr is NULL */ |
||||
|
/* XXX: must not evaluate expr, so this check is not accurate */ |
||||
|
#define _curl_is_NULL(expr) \ |
||||
|
(__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) |
||||
|
|
||||
|
/* evaluates to true if expr is type*, const type* or NULL */ |
||||
|
#define _curl_is_ptr(expr, type) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), type *) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), const type *)) |
||||
|
|
||||
|
/* evaluates to true if expr is one of type[], type*, NULL or const type* */ |
||||
|
#define _curl_is_arr(expr, type) \ |
||||
|
(_curl_is_ptr((expr), type) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), type [])) |
||||
|
|
||||
|
/* evaluates to true if expr is a string */ |
||||
|
#define _curl_is_string(expr) \ |
||||
|
(_curl_is_arr((expr), char) || \ |
||||
|
_curl_is_arr((expr), signed char) || \ |
||||
|
_curl_is_arr((expr), unsigned char)) |
||||
|
|
||||
|
/* evaluates to true if expr is a long (no matter the signedness)
|
||||
|
* XXX: for now, int is also accepted (and therefore short and char, which |
||||
|
* are promoted to int when passed to a variadic function) */ |
||||
|
#define _curl_is_long(expr) \ |
||||
|
(__builtin_types_compatible_p(__typeof__(expr), long) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), signed long) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), int) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), signed int) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), short) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), signed short) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), char) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), signed char) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), unsigned char)) |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_off_t */ |
||||
|
#define _curl_is_off_t(expr) \ |
||||
|
(__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) |
||||
|
|
||||
|
/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ |
||||
|
/* XXX: also check size of an char[] array? */ |
||||
|
#define _curl_is_error_buffer(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), char *) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), char[])) |
||||
|
|
||||
|
/* evaluates to true if expr is of type (const) void* or (const) FILE* */ |
||||
|
#if 0 |
||||
|
#define _curl_is_cb_data(expr) \ |
||||
|
(_curl_is_ptr((expr), void) || \ |
||||
|
_curl_is_ptr((expr), FILE)) |
||||
|
#else /* be less strict */ |
||||
|
#define _curl_is_cb_data(expr) \ |
||||
|
_curl_is_any_ptr(expr) |
||||
|
#endif |
||||
|
|
||||
|
/* evaluates to true if expr is of type FILE* */ |
||||
|
#define _curl_is_FILE(expr) \ |
||||
|
(__builtin_types_compatible_p(__typeof__(expr), FILE *)) |
||||
|
|
||||
|
/* evaluates to true if expr can be passed as POST data (void* or char*) */ |
||||
|
#define _curl_is_postfields(expr) \ |
||||
|
(_curl_is_ptr((expr), void) || \ |
||||
|
_curl_is_arr((expr), char)) |
||||
|
|
||||
|
/* FIXME: the whole callback checking is messy...
|
||||
|
* The idea is to tolerate char vs. void and const vs. not const |
||||
|
* pointers in arguments at least |
||||
|
*/ |
||||
|
/* helper: __builtin_types_compatible_p distinguishes between functions and
|
||||
|
* function pointers, hide it */ |
||||
|
#define _curl_callback_compatible(func, type) \ |
||||
|
(__builtin_types_compatible_p(__typeof__(func), type) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(func), type*)) |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_read_callback or "similar" */ |
||||
|
#define _curl_is_read_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), __typeof__(fread)) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_read_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_read_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_read_callback2) || \ |
||||
|
_curl_callback_compatible((expr), _curl_read_callback3) || \ |
||||
|
_curl_callback_compatible((expr), _curl_read_callback4) || \ |
||||
|
_curl_callback_compatible((expr), _curl_read_callback5) || \ |
||||
|
_curl_callback_compatible((expr), _curl_read_callback6)) |
||||
|
typedef size_t (_curl_read_callback1)(char *, size_t, size_t, void *); |
||||
|
typedef size_t (_curl_read_callback2)(char *, size_t, size_t, const void *); |
||||
|
typedef size_t (_curl_read_callback3)(char *, size_t, size_t, FILE *); |
||||
|
typedef size_t (_curl_read_callback4)(void *, size_t, size_t, void *); |
||||
|
typedef size_t (_curl_read_callback5)(void *, size_t, size_t, const void *); |
||||
|
typedef size_t (_curl_read_callback6)(void *, size_t, size_t, FILE *); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_write_callback or "similar" */ |
||||
|
#define _curl_is_write_cb(expr) \ |
||||
|
(_curl_is_read_cb(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), __typeof__(fwrite)) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_write_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_write_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_write_callback2) || \ |
||||
|
_curl_callback_compatible((expr), _curl_write_callback3) || \ |
||||
|
_curl_callback_compatible((expr), _curl_write_callback4) || \ |
||||
|
_curl_callback_compatible((expr), _curl_write_callback5) || \ |
||||
|
_curl_callback_compatible((expr), _curl_write_callback6)) |
||||
|
typedef size_t (_curl_write_callback1)(const char *, size_t, size_t, void *); |
||||
|
typedef size_t (_curl_write_callback2)(const char *, size_t, size_t, |
||||
|
const void *); |
||||
|
typedef size_t (_curl_write_callback3)(const char *, size_t, size_t, FILE *); |
||||
|
typedef size_t (_curl_write_callback4)(const void *, size_t, size_t, void *); |
||||
|
typedef size_t (_curl_write_callback5)(const void *, size_t, size_t, |
||||
|
const void *); |
||||
|
typedef size_t (_curl_write_callback6)(const void *, size_t, size_t, FILE *); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ |
||||
|
#define _curl_is_ioctl_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_ioctl_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback2) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback3) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ioctl_callback4)) |
||||
|
typedef curlioerr (_curl_ioctl_callback1)(CURL *, int, void *); |
||||
|
typedef curlioerr (_curl_ioctl_callback2)(CURL *, int, const void *); |
||||
|
typedef curlioerr (_curl_ioctl_callback3)(CURL *, curliocmd, void *); |
||||
|
typedef curlioerr (_curl_ioctl_callback4)(CURL *, curliocmd, const void *); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ |
||||
|
#define _curl_is_sockopt_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_sockopt_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_sockopt_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_sockopt_callback2)) |
||||
|
typedef int (_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); |
||||
|
typedef int (_curl_sockopt_callback2)(const void *, curl_socket_t, |
||||
|
curlsocktype); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_opensocket_callback or
|
||||
|
"similar" */ |
||||
|
#define _curl_is_opensocket_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_opensocket_callback) ||\ |
||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback2) || \ |
||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback3) || \ |
||||
|
_curl_callback_compatible((expr), _curl_opensocket_callback4)) |
||||
|
typedef curl_socket_t (_curl_opensocket_callback1) |
||||
|
(void *, curlsocktype, struct curl_sockaddr *); |
||||
|
typedef curl_socket_t (_curl_opensocket_callback2) |
||||
|
(void *, curlsocktype, const struct curl_sockaddr *); |
||||
|
typedef curl_socket_t (_curl_opensocket_callback3) |
||||
|
(const void *, curlsocktype, struct curl_sockaddr *); |
||||
|
typedef curl_socket_t (_curl_opensocket_callback4) |
||||
|
(const void *, curlsocktype, const struct curl_sockaddr *); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_progress_callback or "similar" */ |
||||
|
#define _curl_is_progress_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_progress_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_progress_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_progress_callback2)) |
||||
|
typedef int (_curl_progress_callback1)(void *, |
||||
|
double, double, double, double); |
||||
|
typedef int (_curl_progress_callback2)(const void *, |
||||
|
double, double, double, double); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_debug_callback or "similar" */ |
||||
|
#define _curl_is_debug_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_debug_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback2) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback3) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback4) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback5) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback6) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback7) || \ |
||||
|
_curl_callback_compatible((expr), _curl_debug_callback8)) |
||||
|
typedef int (_curl_debug_callback1) (CURL *, |
||||
|
curl_infotype, char *, size_t, void *); |
||||
|
typedef int (_curl_debug_callback2) (CURL *, |
||||
|
curl_infotype, char *, size_t, const void *); |
||||
|
typedef int (_curl_debug_callback3) (CURL *, |
||||
|
curl_infotype, const char *, size_t, void *); |
||||
|
typedef int (_curl_debug_callback4) (CURL *, |
||||
|
curl_infotype, const char *, size_t, const void *); |
||||
|
typedef int (_curl_debug_callback5) (CURL *, |
||||
|
curl_infotype, unsigned char *, size_t, void *); |
||||
|
typedef int (_curl_debug_callback6) (CURL *, |
||||
|
curl_infotype, unsigned char *, size_t, const void *); |
||||
|
typedef int (_curl_debug_callback7) (CURL *, |
||||
|
curl_infotype, const unsigned char *, size_t, void *); |
||||
|
typedef int (_curl_debug_callback8) (CURL *, |
||||
|
curl_infotype, const unsigned char *, size_t, const void *); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ |
||||
|
/* this is getting even messier... */ |
||||
|
#define _curl_is_ssl_ctx_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_ssl_ctx_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ |
||||
|
_curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback1)(CURL *, void *, void *); |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback2)(CURL *, void *, const void *); |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback3)(CURL *, const void *, void *); |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback4)(CURL *, const void *, const void *); |
||||
|
#ifdef HEADER_SSL_H |
||||
|
/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX
|
||||
|
* this will of course break if we're included before OpenSSL headers... |
||||
|
*/ |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); |
||||
|
typedef CURLcode (_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, |
||||
|
const void *); |
||||
|
#else |
||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; |
||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; |
||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; |
||||
|
typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; |
||||
|
#endif |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_conv_callback or "similar" */ |
||||
|
#define _curl_is_conv_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_conv_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_conv_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_conv_callback2) || \ |
||||
|
_curl_callback_compatible((expr), _curl_conv_callback3) || \ |
||||
|
_curl_callback_compatible((expr), _curl_conv_callback4)) |
||||
|
typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); |
||||
|
typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); |
||||
|
typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); |
||||
|
typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); |
||||
|
|
||||
|
/* evaluates to true if expr is of type curl_seek_callback or "similar" */ |
||||
|
#define _curl_is_seek_cb(expr) \ |
||||
|
(_curl_is_NULL(expr) || \ |
||||
|
__builtin_types_compatible_p(__typeof__(expr), curl_seek_callback) || \ |
||||
|
_curl_callback_compatible((expr), _curl_seek_callback1) || \ |
||||
|
_curl_callback_compatible((expr), _curl_seek_callback2)) |
||||
|
typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); |
||||
|
typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); |
||||
|
|
||||
|
|
||||
|
#endif /* __CURL_TYPECHECK_GCC_H */ |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,41 @@ |
|||||
|
# libcurl.la - a libtool library file |
||||
|
# Generated by libtool (GNU libtool) 2.4.6 Debian-2.4.6-2 |
||||
|
# |
||||
|
# Please DO NOT delete this file! |
||||
|
# It is necessary for linking the library. |
||||
|
|
||||
|
# The name that we can dlopen(3). |
||||
|
dlname='' |
||||
|
|
||||
|
# Names of this library. |
||||
|
library_names='' |
||||
|
|
||||
|
# The name of the static archive. |
||||
|
old_library='libcurl.a' |
||||
|
|
||||
|
# Linker flags that cannot go in dependency_libs. |
||||
|
inherited_linker_flags='' |
||||
|
|
||||
|
# Libraries that this one depends upon. |
||||
|
dependency_libs=' -L/home/ca/Schreibtisch/supernet/crypto777/curl-7.52.1/openssl-1.1.0e/dist/lib -lssl -lcrypto -lgdi32 -lwldap32 -lws2_32' |
||||
|
|
||||
|
# Names of additional weak libraries provided by this library |
||||
|
weak_library_names='' |
||||
|
|
||||
|
# Version information for libcurl. |
||||
|
current=8 |
||||
|
age=4 |
||||
|
revision=0 |
||||
|
|
||||
|
# Is this an already installed library? |
||||
|
installed=yes |
||||
|
|
||||
|
# Should we warn about portability when linking against -modules? |
||||
|
shouldnotlink=no |
||||
|
|
||||
|
# Files to dlopen/dlpreopen |
||||
|
dlopen='' |
||||
|
dlpreopen='' |
||||
|
|
||||
|
# Directory that this library needs to be installed in: |
||||
|
libdir='/home/ca/Schreibtisch/supernet/crypto777/curl-7.52.1/win_lib/lib' |
@ -0,0 +1,39 @@ |
|||||
|
#*************************************************************************** |
||||
|
# _ _ ____ _ |
||||
|
# Project ___| | | | _ \| | |
||||
|
# / __| | | | |_) | | |
||||
|
# | (__| |_| | _ <| |___ |
||||
|
# \___|\___/|_| \_\_____| |
||||
|
# |
||||
|
# Copyright (C) 1998 - 2012, 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 https://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. |
||||
|
# |
||||
|
########################################################################### |
||||
|
|
||||
|
# This should most probably benefit from getting a "Requires:" field added |
||||
|
# dynamically by configure. |
||||
|
# |
||||
|
prefix=/home/ca/Schreibtisch/supernet/crypto777/curl-7.52.1/win_lib |
||||
|
exec_prefix=${prefix} |
||||
|
libdir=${exec_prefix}/lib |
||||
|
includedir=${prefix}/include |
||||
|
supported_protocols="DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP LDAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP" |
||||
|
supported_features="SSL IPv6 NTLM TLS-SRP HTTPS-proxy" |
||||
|
|
||||
|
Name: libcurl |
||||
|
URL: https://curl.haxx.se/ |
||||
|
Description: Library to transfer files with ftp, http, etc. |
||||
|
Version: 7.52.1 |
||||
|
Libs: -L${libdir} -lcurl |
||||
|
Libs.private: -lssl -lcrypto -lssl -lcrypto -lgdi32 -lwldap32 -lws2_32 |
||||
|
Cflags: -I${includedir} -DCURL_STATICLIB |
@ -0,0 +1,272 @@ |
|||||
|
#*************************************************************************** |
||||
|
# _ _ ____ _ |
||||
|
# Project ___| | | | _ \| | |
||||
|
# / __| | | | |_) | | |
||||
|
# | (__| |_| | _ <| |___ |
||||
|
# \___|\___/|_| \_\_____| |
||||
|
# |
||||
|
# Copyright (C) 2006, David Shaw <dshaw@jabberwocky.com> |
||||
|
# |
||||
|
# 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 https://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. |
||||
|
# |
||||
|
########################################################################### |
||||
|
# LIBCURL_CHECK_CONFIG ([DEFAULT-ACTION], [MINIMUM-VERSION], |
||||
|
# [ACTION-IF-YES], [ACTION-IF-NO]) |
||||
|
# ---------------------------------------------------------- |
||||
|
# David Shaw <dshaw@jabberwocky.com> May-09-2006 |
||||
|
# |
||||
|
# Checks for libcurl. DEFAULT-ACTION is the string yes or no to |
||||
|
# specify whether to default to --with-libcurl or --without-libcurl. |
||||
|
# If not supplied, DEFAULT-ACTION is yes. MINIMUM-VERSION is the |
||||
|
# minimum version of libcurl to accept. Pass the version as a regular |
||||
|
# version number like 7.10.1. If not supplied, any version is |
||||
|
# accepted. ACTION-IF-YES is a list of shell commands to run if |
||||
|
# libcurl was successfully found and passed the various tests. |
||||
|
# ACTION-IF-NO is a list of shell commands that are run otherwise. |
||||
|
# Note that using --without-libcurl does run ACTION-IF-NO. |
||||
|
# |
||||
|
# This macro #defines HAVE_LIBCURL if a working libcurl setup is |
||||
|
# found, and sets @LIBCURL@ and @LIBCURL_CPPFLAGS@ to the necessary |
||||
|
# values. Other useful defines are LIBCURL_FEATURE_xxx where xxx are |
||||
|
# the various features supported by libcurl, and LIBCURL_PROTOCOL_yyy |
||||
|
# where yyy are the various protocols supported by libcurl. Both xxx |
||||
|
# and yyy are capitalized. See the list of AH_TEMPLATEs at the top of |
||||
|
# the macro for the complete list of possible defines. Shell |
||||
|
# variables $libcurl_feature_xxx and $libcurl_protocol_yyy are also |
||||
|
# defined to 'yes' for those features and protocols that were found. |
||||
|
# Note that xxx and yyy keep the same capitalization as in the |
||||
|
# curl-config list (e.g. it's "HTTP" and not "http"). |
||||
|
# |
||||
|
# Users may override the detected values by doing something like: |
||||
|
# LIBCURL="-lcurl" LIBCURL_CPPFLAGS="-I/usr/myinclude" ./configure |
||||
|
# |
||||
|
# For the sake of sanity, this macro assumes that any libcurl that is |
||||
|
# found is after version 7.7.2, the first version that included the |
||||
|
# curl-config script. Note that it is very important for people |
||||
|
# packaging binary versions of libcurl to include this script! |
||||
|
# Without curl-config, we can only guess what protocols are available, |
||||
|
# or use curl_version_info to figure it out at runtime. |
||||
|
|
||||
|
AC_DEFUN([LIBCURL_CHECK_CONFIG], |
||||
|
[ |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_SSL],[Defined if libcurl supports SSL]) |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_KRB4],[Defined if libcurl supports KRB4]) |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_IPV6],[Defined if libcurl supports IPv6]) |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_LIBZ],[Defined if libcurl supports libz]) |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_ASYNCHDNS],[Defined if libcurl supports AsynchDNS]) |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_IDN],[Defined if libcurl supports IDN]) |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_SSPI],[Defined if libcurl supports SSPI]) |
||||
|
AH_TEMPLATE([LIBCURL_FEATURE_NTLM],[Defined if libcurl supports NTLM]) |
||||
|
|
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_HTTP],[Defined if libcurl supports HTTP]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_HTTPS],[Defined if libcurl supports HTTPS]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_FTP],[Defined if libcurl supports FTP]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_FTPS],[Defined if libcurl supports FTPS]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_FILE],[Defined if libcurl supports FILE]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_TELNET],[Defined if libcurl supports TELNET]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_LDAP],[Defined if libcurl supports LDAP]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_DICT],[Defined if libcurl supports DICT]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_TFTP],[Defined if libcurl supports TFTP]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_RTSP],[Defined if libcurl supports RTSP]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_POP3],[Defined if libcurl supports POP3]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_IMAP],[Defined if libcurl supports IMAP]) |
||||
|
AH_TEMPLATE([LIBCURL_PROTOCOL_SMTP],[Defined if libcurl supports SMTP]) |
||||
|
|
||||
|
AC_ARG_WITH(libcurl, |
||||
|
AS_HELP_STRING([--with-libcurl=PREFIX],[look for the curl library in PREFIX/lib and headers in PREFIX/include]), |
||||
|
[_libcurl_with=$withval],[_libcurl_with=ifelse([$1],,[yes],[$1])]) |
||||
|
|
||||
|
if test "$_libcurl_with" != "no" ; then |
||||
|
|
||||
|
AC_PROG_AWK |
||||
|
|
||||
|
_libcurl_version_parse="eval $AWK '{split(\$NF,A,\".\"); X=256*256*A[[1]]+256*A[[2]]+A[[3]]; print X;}'" |
||||
|
|
||||
|
_libcurl_try_link=yes |
||||
|
|
||||
|
if test -d "$_libcurl_with" ; then |
||||
|
LIBCURL_CPPFLAGS="-I$withval/include" |
||||
|
_libcurl_ldflags="-L$withval/lib" |
||||
|
AC_PATH_PROG([_libcurl_config],[curl-config],[], |
||||
|
["$withval/bin"]) |
||||
|
else |
||||
|
AC_PATH_PROG([_libcurl_config],[curl-config],[],[$PATH]) |
||||
|
fi |
||||
|
|
||||
|
if test x$_libcurl_config != "x" ; then |
||||
|
AC_CACHE_CHECK([for the version of libcurl], |
||||
|
[libcurl_cv_lib_curl_version], |
||||
|
[libcurl_cv_lib_curl_version=`$_libcurl_config --version | $AWK '{print $[]2}'`]) |
||||
|
|
||||
|
_libcurl_version=`echo $libcurl_cv_lib_curl_version | $_libcurl_version_parse` |
||||
|
_libcurl_wanted=`echo ifelse([$2],,[0],[$2]) | $_libcurl_version_parse` |
||||
|
|
||||
|
if test $_libcurl_wanted -gt 0 ; then |
||||
|
AC_CACHE_CHECK([for libcurl >= version $2], |
||||
|
[libcurl_cv_lib_version_ok], |
||||
|
[ |
||||
|
if test $_libcurl_version -ge $_libcurl_wanted ; then |
||||
|
libcurl_cv_lib_version_ok=yes |
||||
|
else |
||||
|
libcurl_cv_lib_version_ok=no |
||||
|
fi |
||||
|
]) |
||||
|
fi |
||||
|
|
||||
|
if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = xyes ; then |
||||
|
if test x"$LIBCURL_CPPFLAGS" = "x" ; then |
||||
|
LIBCURL_CPPFLAGS=`$_libcurl_config --cflags` |
||||
|
fi |
||||
|
if test x"$LIBCURL" = "x" ; then |
||||
|
LIBCURL=`$_libcurl_config --libs` |
||||
|
|
||||
|
# This is so silly, but Apple actually has a bug in their |
||||
|
# curl-config script. Fixed in Tiger, but there are still |
||||
|
# lots of Panther installs around. |
||||
|
case "${host}" in |
||||
|
powerpc-apple-darwin7*) |
||||
|
LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'` |
||||
|
;; |
||||
|
esac |
||||
|
fi |
||||
|
|
||||
|
# All curl-config scripts support --feature |
||||
|
_libcurl_features=`$_libcurl_config --feature` |
||||
|
|
||||
|
# Is it modern enough to have --protocols? (7.12.4) |
||||
|
if test $_libcurl_version -ge 461828 ; then |
||||
|
_libcurl_protocols=`$_libcurl_config --protocols` |
||||
|
fi |
||||
|
else |
||||
|
_libcurl_try_link=no |
||||
|
fi |
||||
|
|
||||
|
unset _libcurl_wanted |
||||
|
fi |
||||
|
|
||||
|
if test $_libcurl_try_link = yes ; then |
||||
|
|
||||
|
# we didn't find curl-config, so let's see if the user-supplied |
||||
|
# link line (or failing that, "-lcurl") is enough. |
||||
|
LIBCURL=${LIBCURL-"$_libcurl_ldflags -lcurl"} |
||||
|
|
||||
|
AC_CACHE_CHECK([whether libcurl is usable], |
||||
|
[libcurl_cv_lib_curl_usable], |
||||
|
[ |
||||
|
_libcurl_save_cppflags=$CPPFLAGS |
||||
|
CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS" |
||||
|
_libcurl_save_libs=$LIBS |
||||
|
LIBS="$LIBCURL $LIBS" |
||||
|
|
||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <curl/curl.h>]],[[ |
||||
|
/* Try and use a few common options to force a failure if we are |
||||
|
missing symbols or can't link. */ |
||||
|
int x; |
||||
|
curl_easy_setopt(NULL,CURLOPT_URL,NULL); |
||||
|
x=CURL_ERROR_SIZE; |
||||
|
x=CURLOPT_WRITEFUNCTION; |
||||
|
x=CURLOPT_WRITEDATA; |
||||
|
x=CURLOPT_ERRORBUFFER; |
||||
|
x=CURLOPT_STDERR; |
||||
|
x=CURLOPT_VERBOSE; |
||||
|
if (x) {;} |
||||
|
]])],libcurl_cv_lib_curl_usable=yes,libcurl_cv_lib_curl_usable=no) |
||||
|
|
||||
|
CPPFLAGS=$_libcurl_save_cppflags |
||||
|
LIBS=$_libcurl_save_libs |
||||
|
unset _libcurl_save_cppflags |
||||
|
unset _libcurl_save_libs |
||||
|
]) |
||||
|
|
||||
|
if test $libcurl_cv_lib_curl_usable = yes ; then |
||||
|
|
||||
|
# Does curl_free() exist in this version of libcurl? |
||||
|
# If not, fake it with free() |
||||
|
|
||||
|
_libcurl_save_cppflags=$CPPFLAGS |
||||
|
CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" |
||||
|
_libcurl_save_libs=$LIBS |
||||
|
LIBS="$LIBS $LIBCURL" |
||||
|
|
||||
|
AC_CHECK_FUNC(curl_free,, |
||||
|
AC_DEFINE(curl_free,free, |
||||
|
[Define curl_free() as free() if our version of curl lacks curl_free.])) |
||||
|
|
||||
|
CPPFLAGS=$_libcurl_save_cppflags |
||||
|
LIBS=$_libcurl_save_libs |
||||
|
unset _libcurl_save_cppflags |
||||
|
unset _libcurl_save_libs |
||||
|
|
||||
|
AC_DEFINE(HAVE_LIBCURL,1, |
||||
|
[Define to 1 if you have a functional curl library.]) |
||||
|
AC_SUBST(LIBCURL_CPPFLAGS) |
||||
|
AC_SUBST(LIBCURL) |
||||
|
|
||||
|
for _libcurl_feature in $_libcurl_features ; do |
||||
|
AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_feature_$_libcurl_feature),[1]) |
||||
|
eval AS_TR_SH(libcurl_feature_$_libcurl_feature)=yes |
||||
|
done |
||||
|
|
||||
|
if test "x$_libcurl_protocols" = "x" ; then |
||||
|
|
||||
|
# We don't have --protocols, so just assume that all |
||||
|
# protocols are available |
||||
|
_libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT TFTP" |
||||
|
|
||||
|
if test x$libcurl_feature_SSL = xyes ; then |
||||
|
_libcurl_protocols="$_libcurl_protocols HTTPS" |
||||
|
|
||||
|
# FTPS wasn't standards-compliant until version |
||||
|
# 7.11.0 (0x070b00 == 461568) |
||||
|
if test $_libcurl_version -ge 461568; then |
||||
|
_libcurl_protocols="$_libcurl_protocols FTPS" |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
# RTSP, IMAP, POP3 and SMTP were added in |
||||
|
# 7.20.0 (0x071400 == 463872) |
||||
|
if test $_libcurl_version -ge 463872; then |
||||
|
_libcurl_protocols="$_libcurl_protocols RTSP IMAP POP3 SMTP" |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
for _libcurl_protocol in $_libcurl_protocols ; do |
||||
|
AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1]) |
||||
|
eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes |
||||
|
done |
||||
|
else |
||||
|
unset LIBCURL |
||||
|
unset LIBCURL_CPPFLAGS |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
unset _libcurl_try_link |
||||
|
unset _libcurl_version_parse |
||||
|
unset _libcurl_config |
||||
|
unset _libcurl_feature |
||||
|
unset _libcurl_features |
||||
|
unset _libcurl_protocol |
||||
|
unset _libcurl_protocols |
||||
|
unset _libcurl_version |
||||
|
unset _libcurl_ldflags |
||||
|
fi |
||||
|
|
||||
|
if test x$_libcurl_with = xno || test x$libcurl_cv_lib_curl_usable != xyes ; then |
||||
|
# This is the IF-NO path |
||||
|
ifelse([$4],,:,[$4]) |
||||
|
else |
||||
|
# This is the IF-YES path |
||||
|
ifelse([$3],,:,[$3]) |
||||
|
fi |
||||
|
|
||||
|
unset _libcurl_with |
||||
|
])dnl |
@ -0,0 +1,98 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2012, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH curl-config 1 "25 Oct 2007" "Curl 7.17.1" "curl-config manual" |
||||
|
.SH NAME |
||||
|
curl-config \- Get information about a libcurl installation |
||||
|
.SH SYNOPSIS |
||||
|
.B curl-config [options] |
||||
|
.SH DESCRIPTION |
||||
|
.B curl-config |
||||
|
displays information about the curl and libcurl installation. |
||||
|
.SH OPTIONS |
||||
|
.IP "--ca" |
||||
|
Displays the built-in path to the CA cert bundle this libcurl uses. |
||||
|
.IP "--cc" |
||||
|
Displays the compiler used to build libcurl. |
||||
|
.IP "--cflags" |
||||
|
Set of compiler options (CFLAGS) to use when compiling files that use |
||||
|
libcurl. Currently that is only the include path to the curl include files. |
||||
|
.IP "--checkfor [version]" |
||||
|
Specify the oldest possible libcurl version string you want, and this |
||||
|
script will return 0 if the current installation is new enough or it |
||||
|
returns 1 and outputs a text saying that the current version is not new |
||||
|
enough. (Added in 7.15.4) |
||||
|
.IP "--configure" |
||||
|
Displays the arguments given to configure when building curl. |
||||
|
.IP "--feature" |
||||
|
Lists what particular main features the installed libcurl was built with. At |
||||
|
the time of writing, this list may include SSL, KRB4 or IPv6. Do not assume |
||||
|
any particular order. The keywords will be separated by newlines. There may be |
||||
|
none, one, or several keywords in the list. |
||||
|
.IP "--help" |
||||
|
Displays the available options. |
||||
|
.IP "--libs" |
||||
|
Shows the complete set of libs and other linker options you will need in order |
||||
|
to link your application with libcurl. |
||||
|
.IP "--prefix" |
||||
|
This is the prefix used when libcurl was installed. Libcurl is then installed |
||||
|
in $prefix/lib and its header files are installed in $prefix/include and so |
||||
|
on. The prefix is set with "configure --prefix". |
||||
|
.IP "--protocols" |
||||
|
Lists what particular protocols the installed libcurl was built to support. At |
||||
|
the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, FILE, |
||||
|
TELNET, LDAP, DICT. Do not assume any particular order. The protocols will |
||||
|
be listed using uppercase and are separated by newlines. There may be none, |
||||
|
one, or several protocols in the list. (Added in 7.13.0) |
||||
|
.IP "--static-libs" |
||||
|
Shows the complete set of libs and other linker options you will need in order |
||||
|
to link your application with libcurl statically. (Added in 7.17.1) |
||||
|
.IP "--version" |
||||
|
Outputs version information about the installed libcurl. |
||||
|
.IP "--vernum" |
||||
|
Outputs version information about the installed libcurl, in numerical mode. |
||||
|
This outputs the version number, in hexadecimal, with 8 bits for each part; |
||||
|
major, minor, patch. So that libcurl 7.7.4 would appear as 070704 and libcurl |
||||
|
12.13.14 would appear as 0c0d0e... Note that the initial zero might be |
||||
|
omitted. (This option was broken in the 7.15.0 release.) |
||||
|
.SH "EXAMPLES" |
||||
|
What linker options do I need when I link with libcurl? |
||||
|
|
||||
|
$ curl-config --libs |
||||
|
|
||||
|
What compiler options do I need when I compile using libcurl functions? |
||||
|
|
||||
|
$ curl-config --cflags |
||||
|
|
||||
|
How do I know if libcurl was built with SSL support? |
||||
|
|
||||
|
$ curl-config --feature | grep SSL |
||||
|
|
||||
|
What's the installed libcurl version? |
||||
|
|
||||
|
$ curl-config --version |
||||
|
|
||||
|
How do I build a single file with a one-line command? |
||||
|
|
||||
|
$ `curl-config --cc --cflags` -o example example.c `curl-config --libs` |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl (1) |
File diff suppressed because it is too large
@ -0,0 +1,51 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_ACTIVESOCKET 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_ACTIVESOCKET \- get the active socket |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_ACTIVESOCKET, |
||||
|
curl_socket_t *socket); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a curl_socket_t to receive the active socket used by this |
||||
|
curl session. If the socket is no longer valid, \fICURL_SOCKET_BAD\fP is |
||||
|
returned. When you finish working with the socket, you must call |
||||
|
\fIcurl_easy_cleanup(3)\fP as usual on the easy handle and let libcurl close |
||||
|
the socket and cleanup other resources associated with the handle. This is |
||||
|
typically used in combination with \fICURLOPT_CONNECT_ONLY(3)\fP. |
||||
|
|
||||
|
This option was added as a replacement for \fICURLINFO_LASTSOCKET(3)\fP since |
||||
|
that one isn't working on all platforms. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.45.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_LASTSOCKET "(3), " |
@ -0,0 +1,47 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_APPCONNECT_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_APPCONNECT_TIME \- get the time until the SSL/SSH handshake is completed |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_APPCONNECT_TIME, double *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the time, in seconds, it took from the |
||||
|
start until the SSL/SSH connect/handshake to the remote host was completed. |
||||
|
This time is most often very near to the \fICURLINFO_PRETRANSFER_TIME(3)\fP |
||||
|
time, except for cases such as HTTP pipelining where the pretransfer time can |
||||
|
be delayed due to waits in line for the pipeline and more. |
||||
|
|
||||
|
See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.19.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,51 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_CERTINFO 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_CERTINFO \- get the TLS certificate chain |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CERTINFO, |
||||
|
struct curl_certinfo *chainp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a 'struct curl_certinfo *' and you'll get it set to point to |
||||
|
struct that holds a number of linked lists with info about the certificate |
||||
|
chain, assuming you had \fICURLOPT_CERTINFO(3)\fP enabled when the request was |
||||
|
made. The struct reports how many certs it found and then you can extract info |
||||
|
for each of those certs by following the linked lists. The info chain is |
||||
|
provided in a series of data in the format "name:content" where the content is |
||||
|
for the specific named data. See also the certinfo.c example. |
||||
|
.SH PROTOCOLS |
||||
|
All TLS-based |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
This option is only working in libcurl built with OpenSSL, NSS, schannel or |
||||
|
GSKit support. schannel support added in 7.50.0 |
||||
|
|
||||
|
Added in 7.19.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,45 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_CONDITION_UNMET 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_CONDITION_UNMET \- get info on unmet time conditional |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONDITION_UNMET, long *unmet); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the number 1 if the condition provided in |
||||
|
the previous request didn't match (see \fICURLOPT_TIMECONDITION(3)\fP). Alas, |
||||
|
if this returns a 1 you know that the reason you didn't get data in return is |
||||
|
because it didn't fulfill the condition. The long ths argument points to will |
||||
|
get a zero stored if the condition instead was met. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP and some |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.19.4 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,44 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_CONNECT_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_CONNECT_TIME \- get the time until connect |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONNECT_TIME, double *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the total time in seconds from the start |
||||
|
until the connection to the remote host (or proxy) was completed. |
||||
|
|
||||
|
See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,45 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_CONTENT_LENGTH_DOWNLOAD 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_CONTENT_LENGTH_DOWNLOAD \- get content-length of download |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD, |
||||
|
double *content_length); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the content-length of the download. This |
||||
|
is the value read from the Content-Length: field. Since 7.19.4, this returns |
||||
|
-1 if the size isn't known. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.6.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_CONTENT_LENGTH_UPLOAD "(3), " |
@ -0,0 +1,43 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_CONTENT_LENGTH_UPLOAD 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_CONTENT_LENGTH_UPLOAD \- get the specified size of the upload |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD, |
||||
|
double *content_length); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the specified size of the upload. Since |
||||
|
7.19.4, this returns -1 if the size isn't known. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.6.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,48 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_CONTENT_TYPE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_CONTENT_TYPE \- get Content-Type |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_TYPE, char **ct); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive the content-type of the downloaded |
||||
|
object. This is the value read from the Content-Type: field. If you get NULL, |
||||
|
it means that the server didn't send a valid Content-Type header or that the |
||||
|
protocol used doesn't support this. |
||||
|
|
||||
|
The \fBct\fP pointer will be NULL or pointing to private memory you MUST NOT |
||||
|
free it - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the |
||||
|
corresponding CURL handle. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.9.4 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,50 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_COOKIELIST 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_COOKIELIST \- get all known cookies |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_COOKIELIST, |
||||
|
struct curl_slist **cookies); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a 'struct curl_slist *' to receive a linked-list of all |
||||
|
cookies curl knows (expired ones, too). Don't forget to call |
||||
|
\fIcurl_slist_free_all(3)\fP on the list after it has been used. If there are |
||||
|
no cookies (cookies for the handle have not been enabled or simply none have |
||||
|
been received) 'struct curl_slist *' will be set to point to NULL. |
||||
|
|
||||
|
Since 7.43.0 cookies that were imported in the Set-Cookie format without a |
||||
|
domain name are not exported by this option. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.14.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLOPT_COOKIELIST "(3), " |
@ -0,0 +1,48 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_EFFECTIVE_URL 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_EFFECTIVE_URL \- get the last used URL |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_EFFECTIVE_URL, char **urlp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass in a pointer to a char pointer and get the last used effective URL. |
||||
|
|
||||
|
In cases when you've asked libcurl to follow redirects, it may very well not |
||||
|
be the same value you set with \fICURLOPT_URL(3)\fP. |
||||
|
|
||||
|
The \fBurlp\fP pointer will be NULL or pointing to private memory you MUST NOT |
||||
|
free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the |
||||
|
corresponding CURL handle. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,49 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_FILETIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_FILETIME \- get the remote time of the retrieved document |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME, long *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the remote time of the retrieved document |
||||
|
(in number of seconds since 1 jan 1970 in the GMT/UTC time zone). If you get |
||||
|
-1, it can be because of many reasons (it might be unknown, the server might |
||||
|
hide it or the server doesn't support the command that tells document time |
||||
|
etc) and the time of the document is unknown. |
||||
|
|
||||
|
Note that you must tell the server to collect this information before the |
||||
|
transfer is made, by using the \fICURLOPT_FILETIME(3)\fP option to |
||||
|
\fIcurl_easy_setopt(3)\fP or you will unconditionally get a -1 back. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S), FTP(S), SFTP |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.5 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,48 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_FTP_ENTRY_PATH 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_FTP_ENTRY_PATH \- get entry path in FTP server |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FTP_ENTRY_PATH, char **path); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive a pointer to a string holding the |
||||
|
path of the entry path. That is the initial path libcurl ended up in when |
||||
|
logging on to the remote FTP server. This stores a NULL as pointer if |
||||
|
something is wrong. |
||||
|
|
||||
|
The \fBpath\fP pointer will be NULL or pointing to private memory you MUST NOT |
||||
|
free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the |
||||
|
corresponding CURL handle. |
||||
|
.SH PROTOCOLS |
||||
|
FTP(S) and SFTP |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.15.4. Works for SFTP since 7.21.4 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,44 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_HEADER_SIZE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_HEADER_SIZE \- get size of retrieved headers |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HEADER_SIZE, long *sizep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the total size of all the headers |
||||
|
received. Measured in number of bytes. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_REQUEST_SIZE "(3), " |
||||
|
.BR CURLINFO_SIZE_DOWNLOAD "(3), " |
@ -0,0 +1,44 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_HTTPAUTH_AVAIL 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_HTTPAUTH_AVAIL \- get available HTTP authentication methods |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTPAUTH_AVAIL, long *authp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive a bitmask indicating the authentication |
||||
|
method(s) available according to the previous response. The meaning of the |
||||
|
bits is explained in the \fICURLOPT_HTTPAUTH(3)\fP option for |
||||
|
\fIcurl_easy_setopt(3)\fP. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.10.8 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,44 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_HTTP_CONNECTCODE 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_HTTP_CONNECTCODE \- get the CONNECT response code |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_CONNECTCODE, long *p); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the last received HTTP proxy response code |
||||
|
to a CONNECT request. The returned value will be zero if no such response code |
||||
|
was available. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.10.7 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLINFO_RESPONSE_CODE "(3), " |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,56 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_HTTP_VERSION 3 "11 May 2016" "libcurl 7.50.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_HTTP_VERSION \- get the http version used in the connection |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTP_VERSION, long *p); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the version used in the last http connection. |
||||
|
The returned value will be CURL_HTTP_VERSION_1_0, CURL_HTTP_VERSION_1_1, or |
||||
|
CURL_HTTP_VERSION_2_0, or 0 if the version can't be determined. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
CURL *curl = curl_easy_init(); |
||||
|
if(curl) { |
||||
|
CURLcode res; |
||||
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); |
||||
|
res = curl_easy_perform(curl); |
||||
|
if(res == CURLE_OK) { |
||||
|
long http_version; |
||||
|
curl_easy_getinfo(curl, CURLINFO_HTTP_VERSION, &http_version); |
||||
|
} |
||||
|
curl_easy_cleanup(curl); |
||||
|
} |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.50.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLINFO_RESPONSE_CODE "(3), " |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,53 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_LASTSOCKET 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_LASTSOCKET \- get the last socket used |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LASTSOCKET, long *socket); |
||||
|
.SH DESCRIPTION |
||||
|
Deprecated since 7.45.0. Use \fICURLINFO_ACTIVESOCKET(3)\fP instead. |
||||
|
|
||||
|
Pass a pointer to a long to receive the last socket used by this curl |
||||
|
session. If the socket is no longer valid, -1 is returned. When you finish |
||||
|
working with the socket, you must call curl_easy_cleanup() as usual and let |
||||
|
libcurl close the socket and cleanup other resources associated with the |
||||
|
handle. This is typically used in combination with |
||||
|
\fICURLOPT_CONNECT_ONLY(3)\fP. |
||||
|
|
||||
|
NOTE: this API is deprecated since it is not working on win64 where the SOCKET |
||||
|
type is 64 bits large while its 'long' is 32 bits. Use the |
||||
|
\fICURLINFO_ACTIVESOCKET(3)\fP instead, if possible. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.15.2 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_ACTIVESOCKET "(3), " |
@ -0,0 +1,51 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_LOCAL_IP 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_LOCAL_IP \- get local IP address of last connection |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LOCAL_IP, char **ip); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive the pointer to a zero-terminated |
||||
|
string holding the IP address of the local end of most recent connection done |
||||
|
with this \fBcurl\fP handle. This string may be IPv6 when that is |
||||
|
enabled. Note that you get a pointer to a memory area that will be re-used at |
||||
|
next request so you need to copy the string if you want to keep the |
||||
|
information. |
||||
|
|
||||
|
The \fBip\fP pointer will be NULL or pointing to private memory you MUST NOT |
||||
|
free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the |
||||
|
corresponding CURL handle. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.21.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_PRIMARY_IP "(3), " |
@ -0,0 +1,43 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_LOCAL_PORT 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_LOCAL_PORT \- get the latest local port number |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_LOCAL_PORT, long *portp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the local port number of the most recent |
||||
|
connection done with this \fBcurl\fP handle. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.21.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_PRIMARY_PORT "(3), " CURLINFO_LOCAL_IP "(3), " |
@ -0,0 +1,44 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_NAMELOOKUP_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_NAMELOOKUP_TIME \- get the name lookup time |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NAMELOOKUP_TIME, double *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the total time in seconds from the start |
||||
|
until the name resolving was completed. |
||||
|
|
||||
|
See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,46 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_NUM_CONNECTS 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_NUM_CONNECTS \- get number of created connections |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NUM_CONNECTS, long *nump); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive how many new connections libcurl had to |
||||
|
create to achieve the previous transfer (only the successful connects are |
||||
|
counted). Combined with \fICURLINFO_REDIRECT_COUNT(3)\fP you are able to know |
||||
|
how many times libcurl successfully reused existing connection(s) or not. See |
||||
|
the connection options of \fIcurl_easy_setopt(3)\fP to see how libcurl tries |
||||
|
to make persistent connections to save time. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.12.3 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,43 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_OS_ERRNO 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_OS_ERRNO \- get errno number from last connect failure |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_OS_ERRNO, long *errnop); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the errno variable from a connect failure. |
||||
|
Note that the value is only set on failure, it is not reset upon a successful |
||||
|
operation. The number is OS and system specific. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.12.2 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,47 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_PRETRANSFER_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_PRETRANSFER_TIME \- get the time until the file transfer start |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRETRANSFER_TIME, double *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the time, in seconds, it took from the |
||||
|
start until the file transfer is just about to begin. This includes all |
||||
|
pre-transfer commands and negotiations that are specific to the particular |
||||
|
protocol(s) involved. It does \fInot\fP involve the sending of the protocol- |
||||
|
specific request that triggers a transfer. |
||||
|
|
||||
|
See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,49 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_PRIMARY_IP 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_PRIMARY_IP \- get IP address of last connection |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIMARY_IP, char **ip); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive the pointer to a zero-terminated |
||||
|
string holding the IP address of the most recent connection done with this |
||||
|
\fBcurl\fP handle. This string may be IPv6 when that is enabled. Note that you |
||||
|
get a pointer to a memory area that will be re-used at next request so you |
||||
|
need to copy the string if you want to keep the information. |
||||
|
|
||||
|
The \fBip\fP pointer will be NULL or pointing to private memory you MUST NOT |
||||
|
free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the |
||||
|
corresponding CURL handle. |
||||
|
.SH PROTOCOLS |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.19.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_PRIMARY_PORT "(3), " CURLINFO_LOCAL_IP "(3), " |
@ -0,0 +1,42 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_PRIMARY_PORT 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_PRIMARY_PORT \- get the latest destination port number |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIMARY_PORT, long *portp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the destination port of the most recent |
||||
|
connection done with this \fBcurl\fP handle. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.21.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,45 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_PRIVATE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_PRIVATE \- get the private pointer |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRIVATE, char **private); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive the pointer to the private data |
||||
|
associated with the curl handle (set with the \fICURLOPT_PRIVATE(3)\fP). |
||||
|
Please note that for internal reasons, the value is returned as a char |
||||
|
pointer, although effectively being a 'void *'. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.10.3 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLOPT_PRIVATE "(3), " |
@ -0,0 +1,55 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_PROTOCOL 3 "23 November 2016" "libcurl 7.52.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_PROTOCOL \- get the protocol used in the connection |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROTOCOL, long *p); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the version used in the last http connection. |
||||
|
The returned value will be one of the CURLPROTO_* values. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
CURL *curl = curl_easy_init(); |
||||
|
if(curl) { |
||||
|
CURLcode res; |
||||
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); |
||||
|
res = curl_easy_perform(curl); |
||||
|
if(res == CURLE_OK) { |
||||
|
long protocol; |
||||
|
curl_easy_getinfo(curl, CURLINFO_PROTOCOL, &protocol); |
||||
|
} |
||||
|
curl_easy_cleanup(curl); |
||||
|
} |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.52.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLINFO_RESPONSE_CODE "(3), " |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,44 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_PROXYAUTH_AVAIL 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_PROXYAUTH_AVAIL \- get available HTTP proxy authentication methods |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXYAUTH_AVAIL, long *authp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive a bitmask indicating the authentication |
||||
|
method(s) available according to the previous response. The meaning of the |
||||
|
bits is explained in the \fICURLOPT_PROXYAUTH(3)\fP option for |
||||
|
\fIcurl_easy_setopt(3)\fP. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.10.8 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,43 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_PROXY_SSL_VERIFYRESULT 3 "16 Nov 2016" "libcurl 7.52.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_PROXY_SSL_VERIFYRESULT \- get the result of the proxy certificate verification |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXY_SSL_VERIFYRESULT, long *result); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the result of the certificate verification |
||||
|
that was requested (using the \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP option. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.52.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_SSL_VERIFYRESULT "(3), " |
@ -0,0 +1,42 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_REDIRECT_COUNT 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_REDIRECT_COUNT \- get the number of redirects |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_COUNT, long *countp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the total number of redirections that were |
||||
|
actually followed. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.9.7 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,46 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_REDIRECT_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_REDIRECT_TIME \- get the time for all redirection steps |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME, double *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the total time, in seconds, it took for |
||||
|
all redirection steps include name lookup, connect, pretransfer and transfer |
||||
|
before final transaction was started. CURLINFO_REDIRECT_TIME contains the |
||||
|
complete execution time for multiple redirections. |
||||
|
|
||||
|
See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.9.7 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,45 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_REDIRECT_URL 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_REDIRECT_URL \- get the URL a redirect would go to |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_URL, char **urlp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive the URL a redirect \fIwould\fP |
||||
|
take you to if you would enable \fICURLOPT_FOLLOWLOCATION(3)\fP. This can come |
||||
|
very handy if you think using the built-in libcurl redirect logic isn't good |
||||
|
enough for you but you would still prefer to avoid implementing all the magic |
||||
|
of figuring out the new URL. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.18.2 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,45 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_REQUEST_SIZE 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_REQUEST_SIZE \- get size of sent request |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REQUEST_SIZE, long *sizep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the total size of the issued |
||||
|
requests. This is so far only for HTTP requests. Note that this may be more |
||||
|
than one request if \fICURLOPT_FOLLOWLOCATION(3)\fP is enabled. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_HEADER_SIZE "(3), " |
||||
|
.BR CURLINFO_SIZE_DOWNLOAD "(3), " |
@ -0,0 +1,60 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_RESPONSE_CODE 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_RESPONSE_CODE \- get the last response code |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RESPONSE_CODE, long *codep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the last received HTTP, FTP or SMTP |
||||
|
response code. This option was previously known as CURLINFO_HTTP_CODE in |
||||
|
libcurl 7.10.7 and earlier. The stored value will be zero if no server |
||||
|
response code has been received. Note that a proxy's CONNECT response should |
||||
|
be read with \fICURLINFO_HTTP_CONNECTCODE(3)\fP and not this. |
||||
|
|
||||
|
Support for SMTP responses added in 7.25.0. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP, FTP and SMTP |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
CURL *curl = curl_easy_init(); |
||||
|
if(curl) { |
||||
|
CURLcode res; |
||||
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); |
||||
|
res = curl_easy_perform(curl); |
||||
|
if(res == CURLE_OK) { |
||||
|
long response_code; |
||||
|
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code); |
||||
|
} |
||||
|
curl_easy_cleanup(curl); |
||||
|
} |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.10.8. CURLINFO_HTTP_CODE was added in 7.4.1. |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_HTTP_CONNECTCODE "(3), " |
@ -0,0 +1,42 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_RTSP_CLIENT_CSEQ 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_RTSP_CLIENT_CSEQ \- get the next RTSP client CSeq |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_CLIENT_CSEQ, long *cseq); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the next CSeq that will be used by the |
||||
|
application. |
||||
|
.SH PROTOCOLS |
||||
|
RTSP |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.20.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,44 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_RTSP_CSEQ_RECV 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_RTSP_CSEQ_RECV \- get the recently received CSeq |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_CSEQ_RECV, long *cseq); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the most recently received CSeq from the |
||||
|
server. If your application encounters a \fICURLE_RTSP_CSEQ_ERROR\fP then you |
||||
|
may wish to troubleshoot and/or fix the CSeq mismatch by peeking at this |
||||
|
value. |
||||
|
.SH PROTOCOLS |
||||
|
RTSP |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.20.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,47 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_RTSP_SERVER_CSEQ 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_RTSP_SERVER_CSEQ \- get the next RTSP server CSeq |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_SERVER_CSEQ, long *cseq); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the next CSeq that will be expected by the |
||||
|
application. |
||||
|
|
||||
|
Llistening for server initiated requests is currently unimplemented! |
||||
|
|
||||
|
Applications wishing to resume an RTSP session on another connection should |
||||
|
retrieve this info before closing the active connection. |
||||
|
.SH PROTOCOLS |
||||
|
RTSP |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.20.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,49 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_RTSP_SESSION_ID 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_RTSP_SESSION_ID \- get RTSP session ID |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RTSP_SESSION_ID, char **id); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive a pointer to a string holding the |
||||
|
most recent RTSP Session ID. |
||||
|
|
||||
|
Applications wishing to resume an RTSP session on another connection should |
||||
|
retrieve this info before closing the active connection. |
||||
|
|
||||
|
The \fBid\fP pointer will be NULL or pointing to private memory you MUST NOT |
||||
|
free - it gets freed when you call \fIcurl_easy_cleanup(3)\fP on the |
||||
|
corresponding CURL handle. |
||||
|
.SH PROTOCOLS |
||||
|
RTSP |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.20.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,59 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_SCHEME 3 "23 November 2016" "libcurl 7.52.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_SCHEME \- get the URL scheme (sometimes called protocol) used in the connection |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SCHEME, long *p); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a char pointer to receive the pointer to a zero-terminated |
||||
|
string holding the URL scheme used for the most recent connection done with this |
||||
|
\fBcurl\fP handle. |
||||
|
|
||||
|
The \fBid\fP pointer will be NULL or pointing to private read-only memory you |
||||
|
MUST NOT free or modify. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
CURL *curl = curl_easy_init(); |
||||
|
if(curl) { |
||||
|
CURLcode res; |
||||
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); |
||||
|
res = curl_easy_perform(curl); |
||||
|
if(res == CURLE_OK) { |
||||
|
char * scheme; |
||||
|
curl_easy_getinfo(curl, CURLINFO_SCHEME, &scheme); |
||||
|
} |
||||
|
curl_easy_cleanup(curl); |
||||
|
} |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.52.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLINFO_RESPONSE_CODE "(3), " |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,45 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_SIZE_DOWNLOAD 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_SIZE_DOWNLOAD \- get the number of downloaded bytes |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD, double *dlp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the total amount of bytes that were |
||||
|
downloaded. The amount is only for the latest transfer and will be reset |
||||
|
again for each new transfer. This counts actual payload data, what's also |
||||
|
commonly called body. All meta and header data are excluded and will not be |
||||
|
counted in this number. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,42 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_SIZE_UPLOAD 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_SIZE_UPLOAD \- get the number of uploaded bytes |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD, double *uploadp); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the total amount of bytes that were |
||||
|
uploaded. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,42 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_SPEED_DOWNLOAD 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_SPEED_DOWNLOAD \- get download speed |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD, double *speed); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the average download speed that curl |
||||
|
measured for the complete download. Measured in bytes/second. |
||||
|
.SH PROTOCOLS |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_SPEED_UPLOAD "(3), " |
@ -0,0 +1,42 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_SPEED_UPLOAD 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_SPEED_UPLOAD \- get upload speed |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD, double *speed); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the average upload speed that curl |
||||
|
measured for the complete upload. Measured in bytes/second. |
||||
|
.SH PROTOCOLS |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_SPEED_DOWNLOAD "(3), " |
@ -0,0 +1,47 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_SSL_ENGINES 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_SSL_ENGINES \- get an slist of OpenSSL crypto-engines |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SSL_ENGINES, |
||||
|
struct curl_slist **engine_list); |
||||
|
.SH DESCRIPTION |
||||
|
Pass the address of a 'struct curl_slist *' to receive a linked-list of |
||||
|
OpenSSL crypto-engines supported. Note that engines are normally implemented |
||||
|
in separate dynamic libraries. Hence not all the returned engines may be |
||||
|
available at run-time. \fBNOTE:\fP you must call \fIcurl_slist_free_all(3)\fP |
||||
|
on the list pointer once you're done with it, as libcurl will not free the |
||||
|
data for you. |
||||
|
.SH PROTOCOLS |
||||
|
All TLS based ones. |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.12.3. Available in OpenSSL builds with "engine" support. |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,43 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_SSL_VERIFYRESULT 3 "1 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_SSL_VERIFYRESULT \- get the result of the certificate verification |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SSL_VERIFYRESULT, long *result); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a long to receive the result of the server SSL certificate |
||||
|
verification that was requested (using the \fICURLOPT_SSL_VERIFYPEER(3)\fP |
||||
|
option. |
||||
|
.SH PROTOCOLS |
||||
|
All using TLS |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.5 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,46 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_STARTTRANSFER_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_STARTTRANSFER_TIME \- get the time until the first byte is received |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_STARTTRANSFER_TIME, double *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the time, in seconds, it took from the |
||||
|
start until the first byte is received by libcurl. This includes |
||||
|
\fICURLINFO_PRETRANSFER_TIME(3)\fP and also the time the server needs to |
||||
|
calculate the result. |
||||
|
|
||||
|
See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.9.2 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,60 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_TLS_SESSION 3 "12 Sep 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_TLS_SESSION \- get TLS session info |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SESSION, |
||||
|
struct curl_tlssessioninfo **session); |
||||
|
.SH DESCRIPTION |
||||
|
\fBThis option has been superseded\fP by \fICURLINFO_TLS_SSL_PTR(3)\fP which |
||||
|
was added in 7.48.0. The only reason you would use this option instead is if |
||||
|
you could be using a version of libcurl earlier than 7.48.0. |
||||
|
|
||||
|
This option is exactly the same as \fICURLINFO_TLS_SSL_PTR(3)\fP except in the |
||||
|
case of OpenSSL. If the session \fIbackend\fP is CURLSSLBACKEND_OPENSSL the |
||||
|
session \fIinternals\fP pointer varies depending on the option: |
||||
|
|
||||
|
CURLINFO_TLS_SESSION OpenSSL session \fIinternals\fP is SSL_CTX *. |
||||
|
|
||||
|
CURLINFO_TLS_SSL_PTR OpenSSL session \fIinternals\fP is SSL *. |
||||
|
|
||||
|
You can obtain an SSL_CTX pointer from an SSL pointer using OpenSSL function |
||||
|
SSL_get_SSL_CTX. Therefore unless you need compatibility with older versions of |
||||
|
libcurl use \fICURLINFO_TLS_SSL_PTR(3)\fP. Refer to that document for more |
||||
|
information. |
||||
|
.SH PROTOCOLS |
||||
|
All TLS-based |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.34.0, and supported OpenSSL, GnuTLS, NSS and gskit only up until |
||||
|
7.48.0 was released. |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_TLS_SSL_PTR "(3), " |
@ -0,0 +1,141 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_TLS_SSL_PTR 3 "23 Feb 2016" "libcurl 7.48.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SSL_PTR, |
||||
|
struct curl_tlssessioninfo **session); |
||||
|
|
||||
|
/* if you need compatibility with libcurl < 7.48.0 use |
||||
|
CURLINFO_TLS_SESSION instead: */ |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SESSION, |
||||
|
struct curl_tlssessioninfo **session); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a 'struct curl_tlssessioninfo *'. The pointer will be |
||||
|
initialized to refer to a 'struct curl_tlssessioninfo *' that will contain an |
||||
|
enum indicating the SSL library used for the handshake and a pointer to the |
||||
|
respective internal TLS session structure of this underlying SSL library. |
||||
|
|
||||
|
This option may be useful for example to extract certificate information in a |
||||
|
format convenient for further processing, such as manual validation. Refer to |
||||
|
the \fBLIMITATIONS\fP section. |
||||
|
|
||||
|
.nf |
||||
|
struct curl_tlssessioninfo { |
||||
|
curl_sslbackend backend; |
||||
|
void *internals; |
||||
|
}; |
||||
|
.fi |
||||
|
|
||||
|
The \fIbackend\fP struct member is one of the defines in the CURLSSLBACKEND_* |
||||
|
series: CURLSSLBACKEND_NONE (when built without TLS support), |
||||
|
CURLSSLBACKEND_AXTLS, CURLSSLBACKEND_CYASSL, CURLSSLBACKEND_DARWINSSL, |
||||
|
CURLSSLBACKEND_GNUTLS, CURLSSLBACKEND_GSKIT, CURLSSLBACKEND_MBEDTLS, |
||||
|
CURLSSLBACKEND_NSS, CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_POLARSSL or |
||||
|
CURLSSLBACKEND_SCHANNEL. (Note that the OpenSSL forks are all reported as just |
||||
|
OpenSSL here.) |
||||
|
|
||||
|
The \fIinternals\fP struct member will point to a TLS library specific pointer |
||||
|
for the active ("in use") SSL connection, with the following underlying types: |
||||
|
.RS |
||||
|
.IP GnuTLS |
||||
|
gnutls_session_t |
||||
|
.IP gskit |
||||
|
gsk_handle |
||||
|
.IP NSS |
||||
|
PRFileDesc * |
||||
|
.IP OpenSSL |
||||
|
CURLINFO_TLS_SESSION: SSL_CTX * |
||||
|
|
||||
|
CURLINFO_TLS_SSL_PTR: SSL * |
||||
|
.RE |
||||
|
Since 7.48.0 the \fIinternals\fP member can point to these other SSL backends |
||||
|
as well: |
||||
|
.RS |
||||
|
.IP axTLS |
||||
|
SSL * |
||||
|
.IP mbedTLS |
||||
|
mbedtls_ssl_context * |
||||
|
.IP PolarSSL |
||||
|
ssl_context * |
||||
|
.IP "Secure Channel (WinSSL)" |
||||
|
CtxtHandle * |
||||
|
.IP "Secure Transport (DarwinSSL)" |
||||
|
SSLContext * |
||||
|
.IP "WolfSSL (formerly CyaSSL)" |
||||
|
SSL * |
||||
|
.RE |
||||
|
|
||||
|
If the \fIinternals\fP pointer is NULL then either the SSL backend is not |
||||
|
supported, an SSL session has not yet been established or the connection is no |
||||
|
longer associated with the easy handle (eg curl_easy_perform has returned). |
||||
|
.SH LIMITATIONS |
||||
|
\fBThis option has some limitations that could make it unsafe when it comes to |
||||
|
the manual verification of certificates.\fP |
||||
|
|
||||
|
This option only retrieves the first in-use SSL session pointer for your easy |
||||
|
handle, however your easy handle may have more than one in-use SSL session if |
||||
|
using FTP over SSL. That is because the FTP protocol has a control channel and |
||||
|
a data channel and one or both may be over SSL. \fBCurrently there is no way to |
||||
|
retrieve a second in-use SSL session associated with an easy handle.\fP |
||||
|
|
||||
|
This option has not been thoroughly tested with plaintext protocols that can be |
||||
|
upgraded/downgraded to/from SSL: FTP, SMTP, POP3, IMAP when used with |
||||
|
\fICURLOPT_USE_SSL(3)\fP. Though you will be able to retrieve the SSL pointer, |
||||
|
it's possible that before you can do that \fBdata (including auth) may have |
||||
|
already been sent over a connection after it was upgraded.\fP |
||||
|
|
||||
|
Renegotiation. If unsafe renegotiation or renegotiation in a way that the |
||||
|
certificate is allowed to change is allowed by your SSL library this may occur |
||||
|
and the certificate may change, and \fBdata may continue to be sent or received |
||||
|
after renegotiation but before you are able to get the (possibly) changed SSL |
||||
|
pointer,\fP with the (possibly) changed certificate information. |
||||
|
|
||||
|
If you are using OpenSSL or wolfSSL then \fICURLOPT_SSL_CTX_FUNCTION(3)\fP can |
||||
|
be used to set a certificate verification callback in the CTX. That is safer |
||||
|
than using this option to poll for certificate changes and doesn't suffer from |
||||
|
any of the problems above. There is currently no way in libcurl to set a |
||||
|
verification callback for the other SSL backends. |
||||
|
|
||||
|
How are you using this option? Are you affected by any of these limitations? |
||||
|
Please let us know by making a comment at |
||||
|
https://github.com/curl/curl/issues/685 |
||||
|
.SH PROTOCOLS |
||||
|
All TLS-based |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.48.0. |
||||
|
|
||||
|
This option supersedes \fICURLINFO_TLS_SESSION(3)\fP which was added in 7.34.0. |
||||
|
This option is exactly the same as that option except in the case of OpenSSL. |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
||||
|
.BR CURLINFO_TLS_SESSION "(3), " |
@ -0,0 +1,45 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLINFO_TOTAL_TIME 3 "28 Aug 2015" "libcurl 7.44.0" "curl_easy_getinfo options" |
||||
|
.SH NAME |
||||
|
CURLINFO_TOTAL_TIME \- get total time of previous transfer |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TOTAL_TIME, double *timep); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to a double to receive the total time in seconds for the |
||||
|
previous transfer, including name resolving, TCP connect etc. The double |
||||
|
represents the time in seconds, including fractions. |
||||
|
|
||||
|
See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.4.1 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), " |
@ -0,0 +1,48 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE 3 "4 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE \- chunk length threshold for pipelining |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, long size); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a long with a \fBsize\fP in bytes. If a pipelined connection is currently |
||||
|
processing a chunked (Transfer-encoding: chunked) request with a current chunk |
||||
|
length larger than \fICURLMOPT_CHUNK_LENGTH_PENALTY_SIZE(3)\fP, that pipeline |
||||
|
will not be considered for additional requests, even if it is shorter than |
||||
|
\fICURLMOPT_MAX_PIPELINE_LENGTH(3)\fP. |
||||
|
.SH DEFAULT |
||||
|
The default value is 0, which means that the penalization is inactive. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.30.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE "(3), " |
||||
|
.BR CURLMOPT_MAX_PIPELINE_LENGTH "(3), " |
@ -0,0 +1,47 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE 3 "4 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE \- size threshold for pipelining penalty |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, long size); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a long with a \fBsize\fP in bytes. If a pipelined connection is currently |
||||
|
processing a request with a Content-Length larger than this |
||||
|
\fICURLMOPT_CONTENT_LENGTH_PENALTY_SIZE(3)\fP, that pipeline will then not be |
||||
|
considered for additional requests, even if it is shorter than |
||||
|
\fICURLMOPT_MAX_PIPELINE_LENGTH(3)\fP. |
||||
|
.SH DEFAULT |
||||
|
The default value is 0, which means that the size penalization is inactive. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.30.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE "(3), " |
@ -0,0 +1,62 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_MAXCONNECTS 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_MAXCONNECTS \- set size of connection cache |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAXCONNECTS, long max); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a long indicating the \fBmax\fP. The set number will be used as the |
||||
|
maximum amount of simultaneously open connections that libcurl may keep in its |
||||
|
connection cache after completed use. By default libcurl will enlarge the size |
||||
|
for each added easy handle to make it fit 4 times the number of added easy |
||||
|
handles. |
||||
|
|
||||
|
By setting this option, you can prevent the cache size from growing beyond the |
||||
|
limit set by you. |
||||
|
|
||||
|
When the cache is full, curl closes the oldest one in the cache to prevent the |
||||
|
number of open connections from increasing. |
||||
|
|
||||
|
This option is for the multi handle's use only, when using the easy interface |
||||
|
you should instead use the \fICURLOPT_MAXCONNECTS(3)\fP option. |
||||
|
|
||||
|
See \fICURLMOPT_MAX_TOTAL_CONNECTIONS(3)\fP for limiting the number of active |
||||
|
connections. |
||||
|
|
||||
|
.SH DEFAULT |
||||
|
See DESCRIPTION |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.16.3 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_MAX_HOST_CONNECTIONS "(3), " |
||||
|
.BR CURLOPT_MAXCONNECTS "(3), " |
||||
|
|
@ -0,0 +1,58 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_MAX_HOST_CONNECTIONS 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_MAX_HOST_CONNECTIONS \- set max number of connections to a single host |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_HOST_CONNECTIONS, long max); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a long to indicate \fBmax\fP. The set number will be used as the maximum |
||||
|
amount of simultaneously open connections to a single host (a host being the |
||||
|
same as a host name + port number pair). For each new session to a host, |
||||
|
libcurl will open a new connection up to the limit set by |
||||
|
\fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP. When the limit is reached, the |
||||
|
sessions will be pending until a connection becomes available. If |
||||
|
\fICURLMOPT_PIPELINING(3)\fP is enabled, libcurl will try to pipeline if the |
||||
|
host is capable of it. |
||||
|
|
||||
|
The default \fBmax\fP value is 0, unlimited. However, for backwards |
||||
|
compatibility, setting it to 0 when \fICURLMOPT_PIPELINING(3)\fP is 1 will not |
||||
|
be treated as unlimited. Instead it will open only 1 connection and try to |
||||
|
pipeline on it. |
||||
|
|
||||
|
This set limit is also used for proxy connections, and then the proxy is |
||||
|
considered to be the host for which this limit counts. |
||||
|
.SH DEFAULT |
||||
|
0 |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.30.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_MAXCONNECTS "(3), " CURLMOPT_MAX_TOTAL_CONNECTIONS "(3), " |
@ -0,0 +1,51 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_MAX_PIPELINE_LENGTH 3 "4 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_MAX_PIPELINE_LENGTH \- maximum number of requests in a pipeline |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_PIPELINE_LENGTH, long max); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a long. The set \fBmax\fP number will be used as the maximum amount of |
||||
|
outstanding requests in an HTTP/1.1 pipelined connection. This option is only |
||||
|
used for HTTP/1.1 pipelining, not for HTTP/2 multiplexing. |
||||
|
|
||||
|
When this limit is reached, libcurl will use another connection to the same |
||||
|
host (see \fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP), or queue the request until |
||||
|
one of the pipelines to the host is ready to accept a request. Thus, the |
||||
|
total number of requests in-flight is \fICURLMOPT_MAX_HOST_CONNECTIONS(3)\fP * |
||||
|
\fICURLMOPT_MAX_PIPELINE_LENGTH(3)\fP. |
||||
|
.SH DEFAULT |
||||
|
5 |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.30.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_MAX_HOST_CONNECTIONS "(3), " |
@ -0,0 +1,50 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_MAX_TOTAL_CONNECTIONS 3 "4 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_MAX_TOTAL_CONNECTIONS \- max simultaneously open connections |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_TOTAL_CONNECTIONS, long amount); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a long for the \fBamount\fP. The set number will be used as the maximum |
||||
|
number of simultaneously open connections in total using this multi |
||||
|
handle. For each new session, libcurl will open a new connection up to the |
||||
|
limit set by \fICURLMOPT_MAX_TOTAL_CONNECTIONS(3)\fP. When the limit is |
||||
|
reached, the sessions will be pending until there are available |
||||
|
connections. If \fICURLMOPT_PIPELINING(3)\fP is enabled, libcurl will try to |
||||
|
pipeline or use multiplexing if the host is capable of it. |
||||
|
.SH DEFAULT |
||||
|
The default value is 0, which means that there is no limit. It is then simply |
||||
|
controlled by the number of easy handles added. |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.30.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_MAXCONNECTS "(3), " CURLMOPT_MAX_HOST_CONNECTIONS "(3), " |
@ -0,0 +1,80 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_PIPELINING 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_PIPELINING \- enable HTTP pipelining and multiplexing |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, long bitmask); |
||||
|
.SH DESCRIPTION |
||||
|
Pass in the \fBbitmask\fP parameter to instruct libcurl to enable HTTP |
||||
|
pipelining and/or HTTP/2 multiplexing for this multi handle. |
||||
|
|
||||
|
When enabled, libcurl will attempt to use those protocol features when doing |
||||
|
parallel requests to the same hosts. |
||||
|
|
||||
|
For pipelining, this means that if you add a second request that can use an |
||||
|
already existing connection, the second request will be \&"piped" on the same |
||||
|
connection rather than being executed in parallel. |
||||
|
|
||||
|
For multiplexing, this means that follow-up requests can re-use an existing |
||||
|
connection and send the new request multiplexed over that at the same time as |
||||
|
other transfers are already using that single connection. |
||||
|
|
||||
|
There are several other related options that are interesting to tweak and |
||||
|
adjust to alter how libcurl spreads out requests on different connections or |
||||
|
not etc. |
||||
|
|
||||
|
Before 7.43.0, this option was set to 1 and 0 to enable and disable HTTP/1.1 |
||||
|
pipelining. |
||||
|
|
||||
|
Starting in 7.43.0, \fBbitmask\fP's second bit also has a meaning, and you can |
||||
|
ask for pipelining and multiplexing independently of each other by toggling |
||||
|
the correct bits. |
||||
|
.IP CURLPIPE_NOTHING (0) |
||||
|
Default, which means doing no attempts at pipelining or multiplexing. |
||||
|
.IP CURLPIPE_HTTP1 (1) |
||||
|
If this bit is set, libcurl will try to pipeline HTTP/1.1 requests on |
||||
|
connections that are already established and in use to hosts. |
||||
|
.IP CURLPIPE_MULTIPLEX (2) |
||||
|
If this bit is set, libcurl will try to multiplex the new transfer over an |
||||
|
existing connection if possible. This requires HTTP/2. |
||||
|
.SH DEFAULT |
||||
|
0 (both pipeline and multiplexing are off) |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.16.0. Multiplex support bit added in 7.43.0. |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_MAX_PIPELINE_LENGTH "(3), " |
||||
|
.BR CURLMOPT_PIPELINING_SITE_BL "(3), " |
||||
|
.BR CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE "(3), " |
||||
|
.BR CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE "(3), " |
||||
|
.BR CURLMOPT_MAX_HOST_CONNECTIONS "(3), " |
||||
|
.BR CURLMOPT_MAXCONNECTS "(3), " |
||||
|
.BR CURLMOPT_MAX_HOST_CONNECTIONS "(3), " |
@ -0,0 +1,60 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_PIPELINING_SERVER_BL 3 "4 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_PIPELINING_SERVER_BL \- pipelining server blacklist |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING_SERVER_BL, char **servers); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a \fBservers\fP array of char *, ending with a NULL entry. This is a list |
||||
|
of server types prefixes (in the Server: HTTP header) that are blacklisted |
||||
|
from pipelining, i.e server types that are known to not support HTTP |
||||
|
pipelining. The array is copied by libcurl. |
||||
|
|
||||
|
Note that the comparison matches if the Server: header begins with the string |
||||
|
in the blacklist, i.e "Server: Ninja 1.2.3" and "Server: Ninja 1.4.0" can |
||||
|
both be blacklisted by having "Ninja" in the backlist. |
||||
|
|
||||
|
Pass a NULL pointer to clear the blacklist. |
||||
|
.SH DEFAULT |
||||
|
The default value is NULL, which means that there is no blacklist. |
||||
|
.SH PROTOCOLS |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
server_blacklist[] = |
||||
|
{ |
||||
|
"Microsoft-IIS/6.0", |
||||
|
"nginx/0.8.54", |
||||
|
NULL |
||||
|
}; |
||||
|
|
||||
|
curl_multi_setopt(m, CURLMOPT_PIPELINING_SERVER_BL, server_blacklist); |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.30.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_PIPELINING_SITE_BL "(3), " |
@ -0,0 +1,56 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_PIPELINING_SITE_BL 3 "4 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_PIPELINING_SITE_BL \- pipelining host blacklist |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING_SITE_BL, char **hosts); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a \fBhosts\fP array of char *, ending with a NULL entry. This is a list |
||||
|
of sites that are blacklisted from pipelining, i.e sites that are known to not |
||||
|
support HTTP pipelining. The array is copied by libcurl. |
||||
|
|
||||
|
Pass a NULL pointer to clear the blacklist. |
||||
|
.SH DEFAULT |
||||
|
The default value is NULL, which means that there is no blacklist. |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
site_blacklist[] = |
||||
|
{ |
||||
|
"www.haxx.se", |
||||
|
"www.example.com:1234", |
||||
|
NULL |
||||
|
}; |
||||
|
|
||||
|
curl_multi_setopt(m, CURLMOPT_PIPELINING_SITE_BL, site_blacklist); |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.30.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_PIPELINING "(3), " CURLMOPT_PIPELINING_SERVER_BL "(3), " |
@ -0,0 +1,49 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_PUSHDATA 3 "1 Jun 2015" "libcurl 7.44.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_PUSHDATA \- pointer to pass to push callback |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PUSHDATA, void *pointer); |
||||
|
.fi |
||||
|
.SH DESCRIPTION |
||||
|
Set \fIpointer\fP to pass as the last argument to the |
||||
|
\fICURLMOPT_PUSHFUNCTION(3)\fP callback. The pointer will not be touched or |
||||
|
used by libcurl itself, only passed on to the callback function. |
||||
|
.SH DEFAULT |
||||
|
NULL |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.44.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_PUSHFUNCTION "(3), " CURLMOPT_PIPELINING "(3), " |
||||
|
.BR CURLOPT_PIPEWAIT "(3), " |
||||
|
.BR RFC 7540 |
@ -0,0 +1,133 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2015, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_PUSHFUNCTION 3 "1 Jun 2015" "libcurl 7.44.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
char *curl_pushheader_bynum(struct curl_pushheaders *h, size_t num); |
||||
|
char *curl_pushheader_byname(struct curl_pushheaders *h, const char *name); |
||||
|
|
||||
|
int curl_push_callback(CURL *parent, |
||||
|
CURL *easy, |
||||
|
size_t num_headers, |
||||
|
struct curl_pushheaders *headers, |
||||
|
void *userp); |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PUSHFUNCTION, |
||||
|
curl_push_callback func); |
||||
|
.fi |
||||
|
.SH DESCRIPTION |
||||
|
This callback gets called when a new HTTP/2 stream is being pushed by the |
||||
|
server (using the PUSH_PROMISE frame). If no push callback is set, all offered |
||||
|
pushes will be denied automatically. |
||||
|
.SH CALLBACK DESCRIPTION |
||||
|
The callback gets its arguments like this: |
||||
|
|
||||
|
\fIparent\fP is the handle of the stream on which this push arrives. The new |
||||
|
handle has been duphandle()d from the parent, meaning that it has gotten all |
||||
|
its options inherited. It is then up to the application to alter any options |
||||
|
if desired. |
||||
|
|
||||
|
\fIeasy\fP is a newly created handle that represents this upcoming transfer. |
||||
|
|
||||
|
\fInum_headers\fP is the number of name+value pairs that was received and can |
||||
|
be accessed |
||||
|
|
||||
|
\fIheaders\fP is a handle used to access push headers using the accessor |
||||
|
functions described below. This only accesses and provides the PUSH_PROMISE |
||||
|
headers, the normal response headers will be provided in the header callback |
||||
|
as usual. |
||||
|
|
||||
|
\fIuserp\fP is the pointer set with \fICURLMOPT_PUSHDATA(3)\fP |
||||
|
|
||||
|
If the callback returns CURL_PUSH_OK, the 'easy' handle will be added to the |
||||
|
multi handle, the callback must not do that by itself. |
||||
|
|
||||
|
The callback can access PUSH_PROMISE headers with two accessor |
||||
|
functions. These functions can only be used from within this callback and they |
||||
|
can only access the PUSH_PROMISE headers. The normal response headers will be |
||||
|
passed to the header callback for pushed streams just as for normal streams. |
||||
|
.IP curl_pushheader_bynum |
||||
|
Returns the header at index 'num' (or NULL). The returned pointer points to a |
||||
|
"name:value" string that will be freed when this callback returns. |
||||
|
.IP curl_pushheader_byname |
||||
|
Returns the value for the given header name (or NULL). This is a shortcut so |
||||
|
that the application doesn't have to loop through all headers to find the one |
||||
|
it is interested in. The data pointed will be freed when this callback |
||||
|
returns. If more than one header field use the same name, this returns only |
||||
|
the first one. |
||||
|
.SH CALLBACK RETURN VALUE |
||||
|
.IP "CURL_PUSH_OK (0)" |
||||
|
The application has accepted the stream and it can now start receiving data, |
||||
|
the ownership of the CURL handle has been taken over by the application. |
||||
|
.IP "CURL_PUSH_DENY (1)" |
||||
|
The callback denies the stream and no data for this will reach the |
||||
|
application, the easy handle will be destroyed by libcurl. |
||||
|
.IP * |
||||
|
All other return codes are reserved for future use. |
||||
|
.SH DEFAULT |
||||
|
NULL, no callback |
||||
|
.SH PROTOCOLS |
||||
|
HTTP(S) (HTTP/2 only) |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
/* only allow pushes for file names starting with "push-" */ |
||||
|
int push_callback(CURL *parent, |
||||
|
CURL *easy, |
||||
|
size_t num_headers, |
||||
|
struct curl_pushheaders *headers, |
||||
|
void *userp) |
||||
|
{ |
||||
|
char *headp; |
||||
|
int *transfers = (int *)userp; |
||||
|
FILE *out; |
||||
|
headp = curl_pushheader_byname(headers, ":path"); |
||||
|
if(headp && !strncmp(headp, "/push-", 6)) { |
||||
|
fprintf(stderr, "The PATH is %s\\n", headp); |
||||
|
|
||||
|
/* save the push here */ |
||||
|
out = fopen("pushed-stream", "wb"); |
||||
|
|
||||
|
/* write to this file */ |
||||
|
curl_easy_setopt(easy, CURLOPT_WRITEDATA, out); |
||||
|
|
||||
|
(*transfers)++; /* one more */ |
||||
|
|
||||
|
return CURL_PUSH_OK; |
||||
|
} |
||||
|
return CURL_PUSH_DENY; |
||||
|
} |
||||
|
|
||||
|
curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_callback); |
||||
|
curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter); |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.44.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_PUSHDATA "(3), " CURLMOPT_PIPELINING "(3), " CURLOPT_PIPEWAIT "(3), " |
||||
|
.BR RFC 7540 |
@ -0,0 +1,49 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_SOCKETDATA 3 "3 Nov 2014" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETDATA, void *pointer); |
||||
|
.SH DESCRIPTION |
||||
|
A data \fIpointer\fP to pass to the socket callback set with the |
||||
|
\fICURLMOPT_SOCKETFUNCTION(3)\fP option. |
||||
|
|
||||
|
This pointer will not be touched by libcurl but will only be passed in to the |
||||
|
socket callbacks's \fBuserp\fP argument. |
||||
|
.SH DEFAULT |
||||
|
NULL |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.15.4 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_SOCKETFUNCTION "(3), " curl_multi_socket_action "(3), " |
||||
|
.BR CURLMOPT_TIMERFUNCTION "(3) " |
@ -0,0 +1,74 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_SOCKETFUNCTION 3 "3 Nov 2016" "libcurl 7.39.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
int socket_callback(CURL *easy, /* easy handle */ |
||||
|
curl_socket_t s, /* socket */ |
||||
|
int what, /* describes the socket */ |
||||
|
void *userp, /* private callback pointer */ |
||||
|
void *socketp); /* private socket pointer */ |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_SOCKETFUNCTION, socket_callback); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to your callback function, which should match the prototype |
||||
|
shown above. |
||||
|
|
||||
|
When the \fIcurl_multi_socket_action(3)\fP function runs, it informs the |
||||
|
application about updates in the socket (file descriptor) status by doing |
||||
|
none, one, or multiple calls to the \fBsocket_callback\fP. The callback gets |
||||
|
status updates with changes since the previous time the callback was called. |
||||
|
If the given callback pointer is NULL, no callback will be called. Set the |
||||
|
callback's \fBuserp\fP argument with \fICURLMOPT_SOCKETDATA(3)\fP. See |
||||
|
\fIcurl_multi_socket_action(3)\fP for more details on how the callback is used |
||||
|
and should work. |
||||
|
|
||||
|
The \fBwhat\fP parameter informs the callback on the status of the given |
||||
|
socket. It can hold one of these values: |
||||
|
.IP CURL_POLL_IN |
||||
|
Wait for incoming data. For the socket to become readable. |
||||
|
.IP CURL_POLL_OUT |
||||
|
Wait for outgoing data. For the socket to become writable. |
||||
|
.IP CURL_POLL_INOUT |
||||
|
Wait for incoming and outgoing data. For the socket to become readable or |
||||
|
writable. |
||||
|
.IP CURL_POLL_REMOVE |
||||
|
The specified socket/file descriptor is no longer used by libcurl. |
||||
|
.SH DEFAULT |
||||
|
NULL (no callback) |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.15.4 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_SOCKETDATA "(3), " curl_multi_socket_action "(3), " |
||||
|
.BR CURLMOPT_TIMERFUNCTION "(3) " |
||||
|
|
@ -0,0 +1,48 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_TIMERDATA 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_TIMERDATA, void *pointer); |
||||
|
.SH DESCRIPTION |
||||
|
A data \fBpointer\fP to pass to the timer callback set with the |
||||
|
\fICURLMOPT_TIMERFUNCTION(3)\fP option. |
||||
|
|
||||
|
This pointer will not be touched by libcurl but will only be passed in to the |
||||
|
timer callbacks's \fBuserp\fP argument. |
||||
|
.SH DEFAULT |
||||
|
NULL |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
TODO |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.16.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_TIMERFUNCTION "(3), " CURLMOPT_SOCKETFUNCTION "(3), " |
@ -0,0 +1,101 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2014, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLMOPT_TIMERFUNCTION 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt options" |
||||
|
.SH NAME |
||||
|
CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values |
||||
|
.SH SYNOPSIS |
||||
|
.nf |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
int timer_callback(CURLM *multi, /* multi handle */ |
||||
|
long timeout_ms, /* see above */ |
||||
|
void *userp); /* private callback pointer */ |
||||
|
|
||||
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_TIMERFUNCTION, timer_callback); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a pointer to your callback function, which should match the prototype |
||||
|
shown above. |
||||
|
|
||||
|
Certain features, such as timeouts and retries, require you to call libcurl |
||||
|
even when there is no activity on the file descriptors. |
||||
|
|
||||
|
Your callback function \fBtimer_callback\fP should install a non-repeating |
||||
|
timer with an interval of \fBtimeout_ms\fP. Each time that timer fires, call |
||||
|
either \fIcurl_multi_socket_action(3)\fP or \fIcurl_multi_perform(3)\fP, |
||||
|
depending on which interface you use. |
||||
|
|
||||
|
A \fBtimeout_ms\fP value of -1 means you should delete your timer. |
||||
|
|
||||
|
A \fBtimeout_ms\fP value of 0 means you should call |
||||
|
\fIcurl_multi_socket_action(3)\fP or \fIcurl_multi_perform(3)\fP (once) as soon |
||||
|
as possible. |
||||
|
|
||||
|
\fBtimer_callback\fP will only be called when the \fBtimeout_ms\fP changes. |
||||
|
|
||||
|
The \fBuserp\fP pointer is set with \fICURLMOPT_TIMERDATA(3)\fP. |
||||
|
|
||||
|
The timer callback should return 0 on success, and -1 on error. This callback |
||||
|
can be used instead of, or in addition to, \fIcurl_multi_timeout(3)\fP. |
||||
|
.SH DEFAULT |
||||
|
NULL |
||||
|
.SH PROTOCOLS |
||||
|
All |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
static gboolean timeout_cb(gpointer user_data) { |
||||
|
if (user_data) { |
||||
|
g_free(user_data); |
||||
|
curl_multi_setopt(curl_handle, CURLMOPT_TIMERDATA, NULL); |
||||
|
} |
||||
|
int running; |
||||
|
curl_multi_socket_action(multi, CURL_SOCKET_TIMEOUT, 0, &running); |
||||
|
return G_SOURCE_REMOVE; |
||||
|
} |
||||
|
|
||||
|
static int timerfunc(CURLM *multi, long timeout_ms, void *userp) { |
||||
|
guint *id = userp; |
||||
|
|
||||
|
if (id) |
||||
|
g_source_remove(*id); |
||||
|
|
||||
|
// -1 means we should just delete our timer. |
||||
|
if (timeout_ms == -1) { |
||||
|
g_free(id); |
||||
|
id = NULL; |
||||
|
} else { |
||||
|
if (!id) |
||||
|
id = g_new(guint, 1); |
||||
|
*id = g_timeout_add(timeout_ms, timeout_cb, id); |
||||
|
} |
||||
|
curl_multi_setopt(multi, CURLMOPT_TIMERDATA, id); |
||||
|
return 0; |
||||
|
} |
||||
|
|
||||
|
curl_multi_setopt(multi, CURLMOPT_TIMERFUNCTION, timerfunc); |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.16.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLMOPT_TIMERDATA "(3), " CURLMOPT_SOCKETFUNCTION "(3), " |
@ -0,0 +1,54 @@ |
|||||
|
.\" ************************************************************************** |
||||
|
.\" * _ _ ____ _ |
||||
|
.\" * Project ___| | | | _ \| | |
||||
|
.\" * / __| | | | |_) | | |
||||
|
.\" * | (__| |_| | _ <| |___ |
||||
|
.\" * \___|\___/|_| \_\_____| |
||||
|
.\" * |
||||
|
.\" * Copyright (C) 1998 - 2016, 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 https://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. |
||||
|
.\" * |
||||
|
.\" ************************************************************************** |
||||
|
.\" |
||||
|
.TH CURLOPT_ACCEPTTIMEOUT_MS 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options" |
||||
|
.SH NAME |
||||
|
CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back |
||||
|
.SH SYNOPSIS |
||||
|
#include <curl/curl.h> |
||||
|
|
||||
|
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPTTIMEOUT_MS, long ms); |
||||
|
.SH DESCRIPTION |
||||
|
Pass a long telling libcurl the maximum number of milliseconds to wait for a |
||||
|
server to connect back to libcurl when an active FTP connection is used. |
||||
|
.SH DEFAULT |
||||
|
60000 milliseconds |
||||
|
.SH PROTOCOLS |
||||
|
FTP |
||||
|
.SH EXAMPLE |
||||
|
.nf |
||||
|
CURL *curl = curl_easy_init(); |
||||
|
if(curl) { |
||||
|
curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/path/file"); |
||||
|
|
||||
|
/* wait no more than 5 seconds for FTP server responses */ |
||||
|
curl_easy_setopt(curl, CURLOPT_ACCEPTTIMEOUT_MS, 5000L); |
||||
|
|
||||
|
curl_easy_perform(curl); |
||||
|
} |
||||
|
.fi |
||||
|
.SH AVAILABILITY |
||||
|
Added in 7.24.0 |
||||
|
.SH RETURN VALUE |
||||
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
||||
|
.SH "SEE ALSO" |
||||
|
.BR CURLOPT_STDERR "(3), " CURLOPT_DEBUGFUNCTION "(3), " |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue