mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
extended the gname field one byte to avoid a possible overflow
added lots of explaining comments
This commit is contained in:
parent
b3dbdfa306
commit
3d96ee7423
@ -82,8 +82,8 @@
|
||||
/* Download buffer size, keep it fairly big for speed reasons */
|
||||
#define BUFSIZE (1024*50)
|
||||
|
||||
/* Upload buffer size, keep it smallish to get faster progress meter
|
||||
updates. This should probably become dynamic and adjust to the upload
|
||||
/* Defaul upload buffer size, keep it smallish to get faster progress meter
|
||||
updates. This is just default, it is dynamic and adjusts to the upload
|
||||
speed. */
|
||||
#define UPLOAD_BUFSIZE (1024*2)
|
||||
|
||||
@ -91,10 +91,14 @@
|
||||
of need. */
|
||||
#define HEADERSIZE 256
|
||||
|
||||
/* Just a convenience macro to get the larger value out of two given */
|
||||
#ifndef MAX
|
||||
#define MAX(x,y) ((x)>(y)?(x):(y))
|
||||
#endif
|
||||
|
||||
/* Type of handle. All publicly returned 'handles' in the curl interface
|
||||
have a handle first in the struct that describes what kind of handle it
|
||||
is. Used to detect bad handle usage. */
|
||||
typedef enum {
|
||||
STRUCT_NONE,
|
||||
STRUCT_OPEN,
|
||||
@ -102,6 +106,8 @@ typedef enum {
|
||||
STRUCT_LAST
|
||||
} Handle;
|
||||
|
||||
/* Connecting to a remote server using the curl interface is moving through
|
||||
a state machine, this type is used to store the current state */
|
||||
typedef enum {
|
||||
CONN_NONE, /* illegal state */
|
||||
CONN_INIT, /* curl_connect() has been called */
|
||||
@ -112,6 +118,7 @@ typedef enum {
|
||||
} ConnState;
|
||||
|
||||
#ifdef KRB4
|
||||
/* Types needed for krb4-ftp connections */
|
||||
struct krb4buffer {
|
||||
void *data;
|
||||
size_t size;
|
||||
@ -155,13 +162,13 @@ struct connectdata {
|
||||
char *hostent_buf; /* pointer to allocated memory for name info */
|
||||
struct hostent *hp;
|
||||
struct sockaddr_in serv_addr;
|
||||
char proto[64];
|
||||
char gname[256];
|
||||
char *name;
|
||||
char *path; /* formerly staticly this size: URL_MAX_LENGTH */
|
||||
char proto[64]; /* store the protocol string in this buffer */
|
||||
char gname[257]; /* store the hostname in this buffer */
|
||||
char *name; /* host name pointer to fool around with */
|
||||
char *path; /* formerly staticly this size: URL_MAX_LENGTH */
|
||||
char *ppath;
|
||||
long bytecount;
|
||||
struct timeval now;
|
||||
struct timeval now; /* current time */
|
||||
|
||||
long upload_bufsize; /* adjust as you see fit, never bigger than BUFSIZE
|
||||
never smaller than UPLOAD_BUFSIZE */
|
||||
@ -248,9 +255,9 @@ struct Progress {
|
||||
struct HTTP {
|
||||
struct FormData *sendit;
|
||||
int postsize;
|
||||
char *p_pragma;
|
||||
char *p_accept;
|
||||
long readbytecount;
|
||||
char *p_pragma; /* Pragma: string */
|
||||
char *p_accept; /* Accept: string */
|
||||
long readbytecount;
|
||||
long writebytecount;
|
||||
|
||||
/* For FORM posting */
|
||||
@ -264,13 +271,15 @@ struct HTTP {
|
||||
***************************************************************************/
|
||||
struct FTP {
|
||||
long *bytecountp;
|
||||
char *user;
|
||||
char *passwd;
|
||||
char *user; /* user name string */
|
||||
char *passwd; /* password string */
|
||||
char *urlpath; /* the originally given path part of the URL */
|
||||
char *dir; /* decoded directory */
|
||||
char *file; /* decoded file */
|
||||
};
|
||||
|
||||
/* This struct is for boolean settings that define how to behave during
|
||||
this session. */
|
||||
struct Configbits {
|
||||
bool get_filetime;
|
||||
bool tunnel_thru_httpproxy;
|
||||
@ -313,6 +322,7 @@ typedef enum {
|
||||
CURLI_LAST
|
||||
} CurlInterface;
|
||||
|
||||
/* struct for data related to SSL and SSL connections */
|
||||
struct ssldata {
|
||||
bool use; /* use ssl encrypted communications TRUE/FALSE */
|
||||
long version; /* what version the client wants to use */
|
||||
@ -468,8 +478,8 @@ struct UrlData {
|
||||
struct curl_slist *quote; /* before the transfer */
|
||||
struct curl_slist *postquote; /* after the transfer */
|
||||
|
||||
TimeCond timecondition;
|
||||
time_t timevalue;
|
||||
TimeCond timecondition; /* kind of comparison */
|
||||
time_t timevalue; /* what time to compare with */
|
||||
|
||||
char *customrequest; /* http/ftp request to use */
|
||||
|
||||
@ -482,7 +492,7 @@ struct UrlData {
|
||||
completion */
|
||||
#endif
|
||||
|
||||
struct Progress progress;
|
||||
struct Progress progress; /* for all the progress meter data */
|
||||
|
||||
#define MAX_CURL_USER_LENGTH 128
|
||||
#define MAX_CURL_PASSWORD_LENGTH 128
|
||||
@ -492,6 +502,7 @@ struct UrlData {
|
||||
* host (which location-following otherwise could lead to)
|
||||
*/
|
||||
|
||||
/* buffers to store authentication data in */
|
||||
char user[MAX_CURL_USER_LENGTH];
|
||||
char passwd[MAX_CURL_PASSWORD_LENGTH];
|
||||
char proxyuser[MAX_CURL_USER_LENGTH];
|
||||
@ -506,7 +517,7 @@ struct UrlData {
|
||||
char *ptr_cookie; /* free later if not NULL! */
|
||||
char *ptr_host; /* free later if not NULL */
|
||||
|
||||
char *krb4_level;
|
||||
char *krb4_level; /* what security level */
|
||||
#ifdef KRB4
|
||||
FILE *cmdchannel;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user