root
8 years ago
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