Check-in [f658d4913c]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:merge with trunk
Timelines: family | ancestors | descendants | both | wtf-8-experiment
Files: files | file ages | folders
SHA1: f658d4913ca0e8bdfc0b56742b61f39f8625dbfa
User & Date: chw 2019-09-13 11:58:06
Context
2019-09-15
11:15
merge with trunk Leaf check-in: a8d3f02653 user: chw tags: wtf-8-experiment
2019-09-13
11:58
merge with trunk check-in: f658d4913c user: chw tags: wtf-8-experiment
11:50
update curl library to version 7.66.0 check-in: 9f2d627eb9 user: chw tags: trunk
2019-09-12
10:09
merge with trunk check-in: 1426863e72 user: chw tags: wtf-8-experiment
Changes

Changes to jni/curl/CHANGES.

1
2
3
4
5
6
7










































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































8
9
10
11
12
13
14
..
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
....
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
....
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
....
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
....
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
                                  _   _ ____  _
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
                             \___|\___/|_| \_\_____|

                                  Changelog











































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Version 7.65.3 (19 Jul 2019)

Daniel Stenberg (19 Jul 2019)
- RELEASE-NOTES: 7.65.3

- THANKS: 7.65.3 status
................................................................................

- [Stefano Simonelli brought this change]

  CURLOPT_SEEKDATA.3: fix variable name
  
  Closes https://github.com/curl/curl/pull/4118

- [georgeok brought this change]

  CIPHERS.md: Explain Schannel error SEC_E_ALGORITHM_MISMATCH
  
  If the SSL backend is Schannel and the user specifies an Schannel CALG_
  that is not supported by the protocol or the server then curl returns
  CURLE_SSL_CONNECT_ERROR (35) SEC_E_ALGORITHM_MISMATCH.
  
................................................................................
  
  - Add an additional check for LDAP that also checks for OpenSSL since
    on AIX those libraries may be required to link LDAP properly.
  
  Fixes https://github.com/curl/curl/issues/3595
  Closes https://github.com/curl/curl/pull/3596

- [georgeok brought this change]

  schannel: support CALG_ECDH_EPHEM algorithm
  
  Add support for Ephemeral elliptic curve Diffie-Hellman key exchange
  algorithm option when selecting ciphers. This became available on the
  Win10 SDK.
  
................................................................................
- NTLM: fix size check condition for type2 received data
  
  Bug: https://curl.haxx.se/docs/CVE-2018-16890.html
  Reported-by: Wenxiang Qian
  CVE-2018-16890

Marcel Raad (1 Feb 2019)
- [georgeok brought this change]

  spnego_sspi: add support for channel binding
  
  Attempt to add support for Secure Channel binding when negotiate
  authentication is used. The problem to solve is that by default IIS
  accepts channel binding and curl doesn't utilise them. The result was a
  401 response. Scope affects only the Schannel(winssl)-SSPI combination.
................................................................................
  NDK17. Actually they only exist in two NDK versions (15 and 16). With
  overloadable, the first condition tried will succeed. Results in wrong
  detection result.
  
  Closes #3484

Marcel Raad (19 Jan 2019)
- [georgeok brought this change]

  ntlm_sspi: add support for channel binding
  
  Windows extended potection (aka ssl channel binding) is required
  to login to ntlm IIS endpoint, otherwise the server returns 401
  responses.
  
................................................................................
  
  Curl_ftp_parselist: avoid unsigned integer overflows
  
  The overflow has no real world impact, just avoid it for "best
  practice".
  
  Closes #3225

- curl: --local-port range was not "including"
  
  The end port number in a given range was not included in the range used,
  as it is documented to be.
  
  Reported-by: infinnovation-dev on github
  Fixes #3251
  Closes #3255

- [Jérémy Rocher brought this change]

  openssl: support BoringSSL TLS renegotiation
  
  As per BoringSSL porting documentation [1], BoringSSL rejects peer
  renegotiations by default.
  
  curl fails when trying to authenticate to server through client
  certificate if it is requested by server after the initial TLS
  handshake.
  
  Enable renegotiation by default with BoringSSL to get same behavior as
  with OpenSSL. This is done by calling SSL_set_renegotiate_mode [2]
  which was introduced in commit 1d5ef3bb1eb9 [3].
  
  1 - https://boringssl.googlesource.com/boringssl/+/HEAD/PORTING.md#tls-renegotiation
  2 - https://boringssl.googlesource.com/boringssl/+/master/include/openssl/ssl.h#3482
  3 - https://boringssl.googlesource.com/boringssl/+/1d5ef3bb1eb97848617db5e7d633d735a401df86
  
  Signed-off-by: Jérémy Rocher <rocher.jeremy@gmail.com>
  Fixes #3258
  Closes #3259

- HISTORY: add some milestones
  
  Added a few of the more notable milestones in curl history that were
  missing. Primarily more recent ones but I also noted some older that
  could be worth mentioning.
  
  [ci skip]
  Closes #3257

Daniel Gustafsson (9 Nov 2018)
- KNOWN_BUGS: add --proxy-any connection issue
  
  Add the identified issue with --proxy-any and proxy servers which
  advertise authentication schemes other than the supported one.
  
  Closes #876
  Closes #3250
  Reported-by: NTMan on Github
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (9 Nov 2018)
- [Jim Fuller brought this change]

  setopt: add CURLOPT_CURLU
  
  Allows an application to pass in a pre-parsed URL via a URL handle.
  
  Closes #3227

- [Gisle Vanem brought this change]

  docs: ESCape "\n" codes
  
  Groff / Troff will display a:
   printaf("Errno: %ld\n", error);
  as:
    printf("Errno: %ld0, error);
  
  when a "\n" is not escaped. Use "\\n" instead.
  
  Closes #3246

- curl: --local-port fix followup
  
  Regression by 52db54869e6.
  
  Reported-by: infinnovation-dev on github
  Fixes #3248
  Closes #3249

GitHub (7 Nov 2018)
- [Gisle Vanem brought this change]

  More "\n" ESCaping

Daniel Stenberg (7 Nov 2018)
- RELEASE-NOTES: synced

- curl: fix --local-port integer overflow
  
  The tool's local port command line range parser didn't check for integer
  overflows and could pass "weird" data to libcurl for this option.
  libcurl however, has a strict range check for the values so it rejects
  anything outside of the accepted range.
  
  Reported-by: Brian Carpenter
  Closes #3242

- curl: correct the switch() logic in ourWriteOut
  
  Follow-up to e431daf013, as I did the wrong correction for a compiler
  warning. It should be a break and not a fall-through.
  
  Pointed-out-by: Frank Gevaerts

- [Frank Gevaerts brought this change]

  curl: add %{stderr} and %{stdout} for --write-out
  
  Closes #3115

Daniel Gustafsson (7 Nov 2018)
- winssl: be consistent in Schannel capitalization
  
  The productname from Microsoft is "Schannel", but in infof/failf
  reporting we use "schannel". This removes different versions.
  
  Closes #3243
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (7 Nov 2018)
- TODO: Have the URL API offer IDN decoding
  
  Similar to how URL decoding/encoding is done, we could have URL
  functions to convert IDN host names to punycode.
  
  Suggested-by: Alexey Melnichuk
  Closes #3232

- urlapi: only skip encoding the first '=' with APPENDQUERY set
  
  APPENDQUERY + URLENCODE would skip all equals signs but now it only skip
  encoding the first to better allow "name=content" for any content.
  
  Reported-by: Alexey Melnichuk
  Fixes #3231
  Closes #3231

- url: a short host name + port is not a scheme
  
  The function identifying a leading "scheme" part of the URL considered a
  few letters ending with a colon to be a scheme, making something like
  "short:80" to become an unknown scheme instead of a short host name and
  a port number.
  
  Extended test 1560 to verify.
  
  Also fixed test203 to use file_pwd to make it get the correct path on
  windows. Removed test 2070 since it was a duplicate of 203.
  
  Assisted-by: Marcel Raad
  Reported-by: Hagai Auro
  Fixes #3220
  Fixes #3233
  Closes #3223
  Closes #3235

- [Sangamkar brought this change]

  libcurl: stop reading from paused transfers
  
  In the transfer loop it would previously not acknwledge the pause bit
  and continue until drained or loop ended.
  
  Closes #3240

Jay Satiro (6 Nov 2018)
- tool: add undocumented option --dump-module-paths for win32
  
  - Add an undocumented diagnostic option for Windows to show the full
    paths of all loaded modules regardless of whether or not libcurl
    initialization succeeds.
  
  This is needed so that in the CI we can get a list of all DLL
  dependencies after initialization (when they're most likely to have
  finished loading) and then package them as artifacts so that a
  functioning build can be downloaded. Also I imagine it may have some use
  as a diagnostic for help requests.
  
  Ref: https://github.com/curl/curl/pull/3103
  
  Closes https://github.com/curl/curl/pull/3208

- curl_multibyte: fix a malloc overcalculation
  
  Prior to this change twice as many bytes as necessary were malloc'd when
  converting wchar to UTF8. To allay confusion in the future I also
  changed the variable name for the amount of bytes from len to bytes.
  
  Closes https://github.com/curl/curl/pull/3209

Michael Kaufmann (5 Nov 2018)
- netrc: don't ignore the login name specified with "--user"
  
  - for "--netrc", don't ignore the login/password specified with "--user",
    only ignore the login/password in the URL.
    This restores the netrc behaviour of curl 7.61.1 and earlier.
  - fix the documentation of CURL_NETRC_REQUIRED
  - improve the detection of login/password changes when reading .netrc
  - don't read .netrc if both login and password are already set
  
  Fixes #3213
  Closes #3224

Patrick Monnerat (5 Nov 2018)
- OS400: add URL API ccsid wrappers and sync ILE/RPG bindings

Daniel Stenberg (5 Nov 2018)
- [Yasuhiro Matsumoto brought this change]

  curl: fixed UTF-8 in current console code page (Windows)
  
  Fixes #3211
  Fixes #3175
  Closes #3212

- TODO: 2.6 multi upkeep
  
  Closes #3199

Daniel Gustafsson (5 Nov 2018)
- unittest: make 1652 stable across collations
  
  The previous coding used a format string whose output depended on the
  current locale of the environment running the test. Since the gist of
  the test is to have a format string, with the actual formatting being
  less important, switch to a more stable formatstring with decimals.
  
  Reported-by: Marcel Raad
  Closes #3234
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>

Daniel Stenberg (5 Nov 2018)
- Revert "url: a short host name + port is not a scheme"
  
  This reverts commit 226cfa8264cd979eff3fd52c0f3585ef095e7cf2.
  
  This commit caused test failures on appveyor/windows. Work on fixing them is
  in #3235.

- symbols-in-versions: add missing CURLU_ symbols
  
  ...and fix symbol-scan.pl to also scan urlapi.h
  
  Reported-by: Alexey Melnichuk
  Fixes #3226
  Closes #3230

Daniel Gustafsson (3 Nov 2018)
- infof: clearly indicate truncation
  
  The internal buffer in infof() is limited to 2048 bytes of payload plus
  an additional byte for NULL termination. Servers with very long error
  messages can however cause truncation of the string, which currently
  isn't very clear, and leads to badly formatted output.
  
  This appends a "...\n" (or just "..." in case the format didn't with a
  newline char) marker to the end of the string to clearly show
  that it has been truncated.
  
  Also include a unittest covering infof() to try and catch any bugs
  introduced in this quite important function.
  
  Closes #3216
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>

Michael Kaufmann (3 Nov 2018)
- tool_getparam: fix some comments

Daniel Stenberg (3 Nov 2018)
- url: a short host name + port is not a scheme
  
  The function identifying a leading "scheme" part of the URL considered a few
  letters ending with a colon to be a scheme, making something like "short:80"
  to become an unknown scheme instead of a short host name and a port number.
  
  Extended test 1560 to verify.
  
  Reported-by: Hagai Auro
  Fixes #3220
  Closes #3223

- URL: fix IPv6 numeral address parser
  
  Regression from 46e164069d1a52. Extended test 1560 to verify.
  
  Reported-by: tpaukrt on github
  Fixes #3218
  Closes #3219

- travis: remove curl before a normal build
  
  on Linux. To make sure the test suite runs with its newly build tool and
  doesn't require an external one present.
  
  Bug: #3198
  Closes #3200

- [Tim Rühsen brought this change]

  mprintf: avoid unsigned integer overflow warning
  
  The overflow has no real world impact.
  Just avoid it for "best practice".
  
  Code change suggested by "The Infinnovation Team" and Daniel Stenberg.
  Closes #3184

- Curl_follow: accept non-supported schemes for "fake" redirects
  
  When not actually following the redirect and the target URL is only
  stored for later retrieval, curl always accepted "non-supported"
  schemes. This was a regression from 46e164069d1a5230.
  
  Reported-by: Brad King
  Fixes #3210
  Closes #3215

Daniel Gustafsson (2 Nov 2018)
- openvms: fix example name
  
  Commit efc696a2e09225bfeab4 renamed persistant.c to persistent.c to
  fix the typo in the name, but missed to update the OpenVMS package
  files which still looked for the old name.
  
  Closes #3217
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Viktor Szakats <commit@vszakats.net>

Daniel Stenberg (1 Nov 2018)
- configure: show CFLAGS, LDFLAGS etc in summary
  
  To make it easier to understand other people's and remote builds etc.
  
  Closes #3207

- version: bump for next cycle

- axtls: removed
  
  As has been outlined in the DEPRECATE.md document, the axTLS code has
  been disabled for 6 months and is hereby removed.
  
  Use a better supported TLS library!
  
  Assisted-by: Daniel Gustafsson
  Closes #3194

- [marcosdiazr brought this change]

  schannel: make CURLOPT_CERTINFO support using Issuer chain
  
  Closes #3197

- travis: build with sanitize=address,undefined,signed-integer-overflow
  
  ... using clang
  
  Closes #3190

- schannel: use Curl_ prefix for global private symbols
  
  Curl_verify_certificate() must use the Curl_ prefix since it is globally
  available in the lib and otherwise steps outside of our namespace!
  
  Closes #3201

Kamil Dudka (1 Nov 2018)
- tests: drop http_pipe.py script no longer used
  
  It is unused since commit f7208df7d9d5cd5e15e2d89237e828f32b63f135.
  
  Closes #3204

Daniel Stenberg (31 Oct 2018)
- runtests: use the local curl for verifying
  
  ... revert the mistaken change brought in commit 8440616f53.
  
  Reported-by: Alessandro Ghedini
  Bug: https://curl.haxx.se/mail/lib-2018-10/0118.html
  
  Closes #3198

Version 7.62.0 (30 Oct 2018)

Daniel Stenberg (30 Oct 2018)
- RELEASE-NOTES: 7.62.0

- THANKS: 7.62.0 status

Daniel Gustafsson (30 Oct 2018)
- vtls: add MesaLink to curl_sslbackend enum
  
  MesaLink support was added in commit 57348eb97d1b8fc3742e02c but the
  backend was never added to the curl_sslbackend enum in curl/curl.h.
  This adds the new backend to the enum and updates the relevant docs.
  
  Closes #3195
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (30 Oct 2018)
- [Ruslan Baratov brought this change]

  cmake: Remove unused CURL_CONFIG_HAS_BEEN_RUN_BEFORE variable
  
  Closes #3191

- test2080: verify the fix for CVE-2018-16842

- voutf: fix bad arethmetic when outputting warnings to stderr
  
  CVE-2018-16842
  Reported-by: Brian Carpenter
  Bug: https://curl.haxx.se/docs/CVE-2018-16842.html

- [Tuomo Rinne brought this change]

  cmake: uniform ZLIB to use USE_ variable and clean curl-config.cmake.in
  
  Closes #3123

- [Tuomo Rinne brought this change]

  cmake: add find_dependency call for ZLIB to CMake config file

- [Tuomo Rinne brought this change]

  cmake: add support for transitive ZLIB target

- unit1650: fix "null pointer passed as argument 1 to memcmp"
  
  Detected by UndefinedBehaviorSanitizer
  
  Closes #3187

- travis: add a "make tidy" build that runs clang-tidy
  
  Closes #3182

- unit1300: fix stack-use-after-scope AddressSanitizer warning
  
  Closes #3186

- Curl_auth_create_plain_message: fix too-large-input-check
  
  CVE-2018-16839
  Reported-by: Harry Sintonen
  Bug: https://curl.haxx.se/docs/CVE-2018-16839.html

- Curl_close: clear data->multi_easy on free to avoid use-after-free
  
  Regression from b46cfbc068 (7.59.0)
  CVE-2018-16840
  Reported-by: Brian Carpenter (Geeknik Labs)
  
  Bug: https://curl.haxx.se/docs/CVE-2018-16840.html

- [randomswdev brought this change]

  system.h: use proper setting with Sun C++ as well
  
  system.h selects the proper Sun settings when __SUNPRO_C is defined. The
  Sun compiler does not define it when compiling C++ files.  I'm adding a
  check also on __SUNPRO_CC to allow curl to work properly also when used
  in a C++ project on Sun Solaris.
  
  Closes #3181

- rand: add comment to skip a clang-tidy false positive

- test1651: unit test Curl_extract_certinfo()
  
  The version used for Gskit, NSS, GnuTLS, WolfSSL and schannel.

- x509asn1: always check return code from getASN1Element()

- Makefile: add 'tidy' target that runs clang-tidy
  
  Available in the root, src and lib dirs.
  
  Closes #3163

- RELEASE-PROCEDURE: adjust the release dates
  
  See: https://curl.haxx.se/mail/lib-2018-10/0107.html

Patrick Monnerat (27 Oct 2018)
- x509asn1: suppress left shift on signed value
  
  Use an unsigned variable: as the signed operation behavior is undefined,
  this change silents clang-tidy about it.
  
  Ref: https://github.com/curl/curl/pull/3163
  Reported-By: Daniel Stenberg

Michael Kaufmann (27 Oct 2018)
- multi: Fix error handling in the SENDPROTOCONNECT state
  
  If Curl_protocol_connect() returns an error code,
  handle the error instead of switching to the next state.
  
  Closes #3170

Daniel Stenberg (27 Oct 2018)
- RELEASE-NOTES: synced

- openssl: output the correct cipher list on TLS 1.3 error
  
  When failing to set the 1.3 cipher suite, the wrong string pointer would
  be used in the error message. Most often saying "(nil)".
  
  Reported-by: Ricky-Tigg on github
  Fixes #3178
  Closes #3180

- docs/CIPHERS: fix the TLS 1.3 cipher names
  
  ... picked straight from the OpenSSL man page:
  https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_ciphersuites.html
  
  Reported-by: Ricky-Tigg on github
  Bug: #3178

Marcel Raad (27 Oct 2018)
- travis: install gnutls-bin package
  
  This is required for gnutls-serv, which enables a few more tests.
  
  Closes https://github.com/curl/curl/pull/2958

Daniel Gustafsson (26 Oct 2018)
- ssh: free the session on init failures
  
  Ensure to clear the session object in case the libssh2 initialization
  fails.
  
  It could be argued that the libssh2 error function should be called to
  get a proper error message in this case. But since the only error path
  in libssh2_knownhost_init() is memory a allocation failure it's safest
  to avoid since the libssh2 error handling allocates memory.
  
  Closes #3179
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (26 Oct 2018)
- docs/RELEASE-PROCEDURE: remove old entries, modify the Dec 2018 date
  
  ... I'm moving it up one week due to travels. The rest stays.

- [Daniel Gustafsson brought this change]

  openssl: make 'done' a proper boolean
  
  Closes #3176

- gtls: Values stored to but never read
  
  Detected by clang-tidy
  
  Closes #3176

- [Alexey Eremikhin brought this change]

  curl.1: --ipv6 mutexes ipv4 (fixed typo)
  
  Fixes #3171
  Closes #3172

- tool_main: make TerminalSettings static
  
  Reported-by: Gisle Vanem
  Bug: https://github.com/curl/curl/commit/becfe1233ff2b6b0c3e1b6a10048b55b68c2539f#commitcomment-31008819
  Closes #3161

- curl-config.in: remove dependency on bc
  
  Reported-by: Dima Pasechnik
  Fixes #3143
  Closes #3174

- [Gisle Vanem brought this change]

  rtmp: fix for compiling with lwIP
  
  Compiling on _WIN32 and with USE_LWIPSOCK, causes this error:
    curl_rtmp.c(223,3):  error: use of undeclared identifier 'setsockopt'
      setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO,
      ^
    curl_rtmp.c(41,32):  note: expanded from macro 'setsockopt'
    #define setsockopt(a,b,c,d,e) (setsockopt)(a,b,c,(const char *)d,(int)e)
                                   ^
  Closes #3155

- configure: remove CURL_CONFIGURE_CURL_SOCKLEN_T
  
  Follow-up to #3166 which did the cmake part of this. This type/define is
  not used.
  
  Closes #3168

- [Ruslan Baratov brought this change]

  cmake: remove unused variables
  
  Remove variables:
  * HAVE_SOCKLEN_T
  * CURL_SIZEOF_CURL_SOCKLEN_T
  * CURL_TYPEOF_CURL_SOCKLEN_T
  
  Closes #3166

Michael Kaufmann (25 Oct 2018)
- urldata: Fix comment in header
  
  The "connecting" function is used by multiple protocols, not only FTP

- netrc: free temporary strings if memory allocation fails
  
  - Change the inout parameters after all needed memory has been
    allocated. Do not change them if something goes wrong.
  - Free the allocated temporary strings if strdup() fails.
  
  Closes #3122

Daniel Stenberg (24 Oct 2018)
- [Ruslan Baratov brought this change]

  config: Remove unused SIZEOF_VOIDP
  
  Closes #3162

- RELEASE-NOTES: synced

GitHub (23 Oct 2018)
- [Gisle Vanem brought this change]

  Fix for compiling with lwIP (3)
  
  lwIP on Windows does not have a WSAIoctl() function.
  But it do have a SO_SNDBUF option to lwip_setsockopt(). But it currently does nothing.

Daniel Stenberg (23 Oct 2018)
- Curl_follow: return better errors on URL problems
  
  ... by making the converter function global and accessible.
  
  Closes #3153

- Curl_follow: remove remaining free(newurl)
  
  Follow-up to 05564e750e8f0c. This function no longer frees the passed-in
  URL.
  
  Reported-by: Michael Kaufmann
  Bug: https://github.com/curl/curl/commit/05564e750e8f0c79016c680f301ce251e6e86155#commitcomm
  ent-30985666

Daniel Gustafsson (23 Oct 2018)
- headers: end all headers with guard comment
  
  Most headerfiles end with a /* <headerguard> */ comment, but it was
  missing from some. The comment isn't the most important part of our
  code documentation but consistency has an intrinsic value in itself.
  This adds header guard comments to the files that were lacking it.
  
  Closes #3158
  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Jay Satiro (23 Oct 2018)
- CIPHERS.md: Mention the options used to set TLS 1.3 ciphers
  
  Closes https://github.com/curl/curl/pull/3159

Daniel Stenberg (20 Oct 2018)
- docs/BUG-BOUNTY: the sponsors actually decide the amount
  
  Retract the previous approach as the sponsors will be the ones to set the
  final amounts.
  
  Closes #3152
  [ci skip]

- multi: avoid double-free
  
  Curl_follow() no longer frees the string. Make sure it happens in the
  caller function, like we normally handle allocations.
  
  This bug was introduced with the use of the URL API internally, it has
  never been in a release version
  
  Reported-by: Dario Weißer
  Closes #3149

- multi: make the closure handle "inherit" CURLOPT_NOSIGNAL
  
  Otherwise, closing that handle can still cause surprises!
  
  Reported-by: Martin Ankerl
  Fixes #3138
  Closes #3147

Marcel Raad (19 Oct 2018)
- VS projects: add USE_IPV6
  
  The Visual Studio builds didn't use IPv6. Add it to all projects since
  Visual Studio 2008, which is verified to build via AppVeyor.
  
  Closes https://github.com/curl/curl/pull/3137

- config_win32: enable LDAPS
  
  As done in the autotools and CMake builds by default.
  
  Closes https://github.com/curl/curl/pull/3137

Daniel Stenberg (18 Oct 2018)
- travis: add build for "configure --disable-verbose"
  
  Closes #3144

Kamil Dudka (17 Oct 2018)
- tool_cb_hdr: handle failure of rename()
  
  Detected by Coverity.
  
  Closes #3140
  Reviewed-by: Jay Satiro

Daniel Stenberg (17 Oct 2018)
- RELEASE-NOTES: synced

- docs/SECURITY-PROCESS: the hackerone IBB program drops curl
  
  ... now there's only BountyGraph.

Jay Satiro (16 Oct 2018)
- [Matthew Whitehead brought this change]

  x509asn1: Fix SAN IP address verification
  
  For IP addresses in the subject alternative name field, the length
  of the IP address (and hence the number of bytes to perform a
  memcmp on) is incorrectly calculated to be zero. The code previously
  subtracted q from name.end. where in a successful case q = name.end
  and therefore addrlen equalled 0. The change modifies the code to
  subtract name.beg from name.end to calculate the length correctly.
  
  The issue only affects libcurl with GSKit SSL, not other SSL backends.
  The issue is not a security issue as IP verification would always fail.
  
  Fixes #3102
  Closes #3141

Daniel Gustafsson (15 Oct 2018)
- INSTALL: mention mesalink in TLS section
  
  Commit 57348eb97d1b8fc3742e02c6587d2d02ff592da5 added support for the
  MesaLink vtls backend, but missed updating the TLS section containing
  supported backends in the docs.
  
  Closes #3134
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Marcel Raad (14 Oct 2018)
- nonblock: fix unused parameter warning
  
  If USE_BLOCKING_SOCKETS is defined, curlx_nonblock's arguments are not
  used.

Michael Kaufmann (13 Oct 2018)
- Curl_follow: Always free the passed new URL
  
  Closes #3124

Viktor Szakats (12 Oct 2018)
- replace rawgit links [ci skip]
  
  Ref: https://rawgit.com/ "RawGit has reached the end of its useful life"
  Ref: https://news.ycombinator.com/item?id=18202481
  Closes https://github.com/curl/curl/pull/3131

Daniel Stenberg (12 Oct 2018)
- docs/BUG-BOUNTY.md: for vulns published since Aug 1st 2018
  
  [ci skip]

- travis: make distcheck scan for BOM markers
  
  and remove BOM from projects/wolfssl_override.props
  
  Closes #3126

Marcel Raad (11 Oct 2018)
- CMake: remove BOM
  
  Accidentally aded in commit 1bb86057ff07083deeb0b00f8ad35879ec4d03ea.
  
  Reported-by: Viktor Szakats
  Ref: https://github.com/curl/curl/pull/3120#issuecomment-428673136

Daniel Gustafsson (10 Oct 2018)
- transfer: fix typo in comment

Michael Kaufmann (10 Oct 2018)
- docs: add "see also" links for SSL options
  
  - link TLS 1.2 and TLS 1.3 options
  - link proxy and non-proxy options
  
  Closes #3121

Marcel Raad (10 Oct 2018)
- AppVeyor: remove BDIR variable that sneaked in again
  
  Removed in ae762e1abebe3a5fe75658583c85059a0957ef6e, accidentally added
  again in 9f3be5672dc4dda30ab43e0152e13d714a84d762.

- CMake: disable -Wpedantic-ms-format
  
  As done in the autotools build. This is required for MinGW, which
  supports only %I64 for printing 64-bit values, but warns about it.
  
  Closes https://github.com/curl/curl/pull/3120

Viktor Szakats (9 Oct 2018)
- ldap: show precise LDAP call in error message on Windows
  
  Also add a unique but common text ('bind via') to make it
  easy to grep this specific failure regardless of platform.
  
  Ref: https://github.com/curl/curl/pull/878/files#diff-7a636f08047c4edb53a240f540b4ecf6R468
  Closes https://github.com/curl/curl/pull/3118
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>

Daniel Stenberg (9 Oct 2018)
- docs/DEPRECATE: minor reformat to render nicer on web

Daniel Gustafsson (9 Oct 2018)
- CURLOPT_SSL_VERIFYSTATUS: Fix typo
  
  Changes s/OSCP/OCSP/ and bumps the copyright year due to the change.

Marcel Raad (9 Oct 2018)
- curl_setup: define NOGDI on Windows
  
  This avoids an ERROR macro clash between <wingdi.h> and <arpa/tftp.h>
  on MinGW.
  
  Closes https://github.com/curl/curl/pull/3113

- Windows: fixes for MinGW targeting Windows Vista
  
  Classic MinGW has neither InitializeCriticalSectionEx nor
  GetTickCount64, independent of the target Windows version.
  
  Closes https://github.com/curl/curl/pull/3113

Daniel Stenberg (8 Oct 2018)
- TODO: fixed 'API for URL parsing/splitting'

Daniel Gustafsson (8 Oct 2018)
- KNOWN_BUGS: Fix various typos
  
  Closes #3112
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Viktor Szakats (8 Oct 2018)
- spelling fixes [ci skip]
  
  as detected by codespell 1.14.0
  
  Closes https://github.com/curl/curl/pull/3114
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>

Daniel Stenberg (8 Oct 2018)
- RELEASE-NOTES: synced

- curl_ntlm_wb: check aprintf() return codes
  
  ... when they return NULL we're out of memory and MUST return failure.
  
  closes #3111

- docs/BUG-BOUNTY: proposed additional docs
  
  Bug bounty explainer. See https://bountygraph.com/programs/curl
  
  Closes #3067

- [Rick Deist brought this change]

  hostip: fix check on Curl_shuffle_addr return value
  
  Closes #3110

- FILE: fix CURLOPT_NOBODY and CURLOPT_HEADER output
  
  Now FILE transfers send headers to the header callback like HTTP and
  other protocols. Also made curl_easy_getinfo(...CURLINFO_PROTOCOL...)
  work for FILE in the callbacks.
  
  Makes "curl -i file://.." and "curl -I file://.." work like before
  again. Applied the bold header logic to them too.
  
  Regression from c1c2762 (7.61.0)
  
  Reported-by: Shaun Jackman
  Fixes #3083
  Closes #3101

Daniel Gustafsson (7 Oct 2018)
- gskit: make sure to terminate version string
  
  In case a very small buffer was passed to the version function, it could
  result in the buffer not being NULL-terminated since strncpy() doesn't
  guarantee a terminator on an overflowed buffer. Rather than adding code
  to terminate (and handle zero-sized buffers), move to using snprintf()
  instead like all the other vtls backends.
  
  Closes #3105
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Viktor Szakats <commit@vszakats.net>

- TODO: add LD_PRELOAD support on macOS
  
  Add DYLD_INSERT_LIBRARIES support to the TODO list. Reported in #2394.

- runtests: skip ld_preload tests on macOS
  
  The LD_PRELOAD functionality doesn't exist on macOS, so skip any tests
  requiring it.
  
  Fixes #2394
  Closes #3106
  Reported-by: Github user @jakirkham
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Marcel Raad (7 Oct 2018)
- AppVeyor: use Debug builds to run tests
  
  This enables more tests.
  
  Closes https://github.com/curl/curl/pull/3104

- AppVeyor: add HTTP_ONLY build
  
  Closes https://github.com/curl/curl/pull/3104

- AppVeyor: add WinSSL builds
  
  Use the oldest and latest Windows SDKs for them.
  Also, remove all but one OpenSSL build.
  
  Closes https://github.com/curl/curl/pull/3104

- AppVeyor: add remaining Visual Studio versions
  
  This adds Visual Studio 9 and 10 builds.
  There's no 64-bit VC9 compiler on AppVeyor, so use it as the Win32
  build. Also, VC9 cannot be used for running the test suite.
  
  Closes https://github.com/curl/curl/pull/3104

- AppVeyor: break long line
  
  Closes https://github.com/curl/curl/pull/3104

- AppVeyor: remove unused BDIR variable
  
  Closes https://github.com/curl/curl/pull/3104

Daniel Stenberg (6 Oct 2018)
- test2100: test DoH using IPv4-only
  
  To make it only send one DoH request and avoid the race condition that
  could lead to the requests getting sent in reversed order and thus
  making it hard to compare in the test case.
  
  Fixes #3107
  Closes #3108

- tests/FILEFORMAT: mention how to use <fileN> and <stripfileN> too
  
  [ci skip]

- RELEASE-NOTES: synced

- [Dmitry Kostjuchenko brought this change]

  timeval: fix use of weak symbol clock_gettime() on Apple platforms
  
  Closes #3048

- doh: keep the IPv4 address in (original) network byte order
  
  Ideally this will fix the reversed order shown in SPARC tests:
  
    resp 8: Expected 127.0.0.1 got 1.0.0.127
  
  Closes #3091

Jay Satiro (5 Oct 2018)
- INTERNALS.md: wrap lines longer than 79

Daniel Gustafsson (5 Oct 2018)
- INTERNALS: escape reference to parameter
  
  The parameter reference <string> was causing rendering issues in the
  generated HTML page, as <string> isn't a valid HTML tag. Fix by back-
  tick escaping it.
  
  Closes #3099
  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- checksrc: handle zero scoped ignore commands
  
  If a !checksrc! disable command specified to ignore zero errors, it was
  still added to the ignore block even though nothing was ignored. While
  there were no blocks ignored that shouldn't be ignored, the processing
  ended with with a warning:
  
  <filename>:<line>:<col>: warning: Unused ignore: LONGLINE (UNUSEDIGNORE)
   /* !checksrc! disable LONGLINE 0 */
                      ^
  Fix by instead treating a zero ignore as a a badcommand and throw a
  warning for that one.
  
  Closes #3096
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- checksrc: enable strict mode and warnings
  
  Enable strict and warnings mode for checksrc to ensure we aren't missing
  anything due to bugs in the checking code. This uncovered a few things
  which are all fixed in this commit:
  
  * several variables were used uninitialized
  * several variables were not defined in the correct scope
  * the whitelist filehandle was read even if the file didn't exist
  * the enable_warn() call when a disable counter had expired was passing
    incorrect variables, but since the checkwarn() call is unlikely to hit
    (the counter is only decremented to zero on actual ignores) it didn't
    manifest a problem.
  
  Closes #3090
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>

Marcel Raad (5 Oct 2018)
- CMake: suppress MSVC warning C4127 for libtest
  
  It's issued by older Windows SDKs (prior to version 8.0).

Sergei Nikulov (5 Oct 2018)
- Merge branch 'dmitrykos-fix_missing_CMake_defines'

- [Dmitry Kostjuchenko brought this change]

  cmake: test and set missed defines during configuration
  
  Added configuration checks for HAVE_BUILTIN_AVAILABLE and HAVE_CLOCK_GETTIME_MONOTONIC.
  
  Closes #3097

Marcel Raad (5 Oct 2018)
- AppVeyor: disable test 500
  
  It almost always results in
  "starttransfer vs total: 0.000001 0.000000".
  I cannot reproduce this locally, so disable it for now.
  
  Closes https://github.com/curl/curl/pull/3100

- AppVeyor: set custom install prefix
  
  CMake's default has spaces and in 32-bit mode parentheses, which result
  in syntax errors in curl-config.
  
  Closes https://github.com/curl/curl/pull/3100

- AppVeyor: Remove non-SSL non-test builds
  
  They don't add much value.
  
  Closes https://github.com/curl/curl/pull/3100

- AppVeyor: run test suite
  
  Use the preinstalled MSYS2 bash for that.
  Disable test 1139 as the CMake build doesn't generate curl.1.
  
  Ref: https://github.com/curl/curl/issues/3070#issuecomment-425922224
  Closes https://github.com/curl/curl/pull/3100

- AppVeyor: use in-tree build
  
  Required to run the tests.
  
  Closes https://github.com/curl/curl/pull/3100

Daniel Stenberg (4 Oct 2018)
- doh: make sure TTL isn't re-inited by second (discarded?) response
  
  Closes #3092

- test320: strip out more HTML when comparing
  
  To make the test case work with different gnutls-serv versions better.
  
  Reported-by: Kamil Dudka
  Fixes #3093
  Closes #3094

Marcel Raad (4 Oct 2018)
- runtests: use Windows paths for Windows curl
  
  curl generated by CMake's Visual Studio generator has "Windows" in the
  version number.

Daniel Stenberg (4 Oct 2018)
- [Colin Hogben brought this change]

  tests/negtelnetserver.py: fix Python2-ism in neg TELNET server
  
  Fix problems caused by differences in treatment of bytes objects between
  python2 and python3.
  
  Fixes #2929
  Closes #3080

Daniel Gustafsson (3 Oct 2018)
- memory: ensure to check allocation results
  
  The result of a memory allocation should always be checked, as we may
  run under memory pressure where even a small allocation can fail. This
  adds checking and error handling to a few cases where the allocation
  wasn't checked for success. In the ftp case, the freeing of the path
  variable is moved ahead of the allocation since there is little point
  in keeping it around across the strdup, and the separation makes for
  more readable code. In nwlib, the lock is aslo freed in the error path.
  
  Also bumps the copyright years on affected files.
  
  Closes #3084
  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- comment: Fix multiple typos in function parameters
  
  Ensure that the parameters in the comment match the actual names in the
  prototype.
  
  Closes #3079
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- CURLOPT_SSLVERSION.3: fix typos and consistent spelling
  
  Use TLS vX.Y throughout the document, instead of TLS X.Y, as that was
  already done in all but a few cases. Also fix a few typos.
  
  Closes #3076
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- SECURITY-PROCESS: make links into hyperlinks
  
  Use proper Markdown hyperlink format for the Bountygraph links in order
  for the generated website page to be more user friendly. Also link to
  the sponsors to give them a little extra credit.
  
  Closes #3082
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Jay Satiro (3 Oct 2018)
- CURLOPT_HEADER.3: fix typo

- nss: fix nssckbi module loading on Windows
  
  - Use .DLL extension instead of .so to load modules on Windows.
  
  Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
  Reported-by: Maxime Legros
  
  Ref: https://github.com/curl/curl/pull/3016/#issuecomment-423069442
  
  Closes https://github.com/curl/curl/pull/3086

- data-binary.d: clarify default content-type is x-www-form-urlencoded
  
  - Advise user that --data-binary sends a default content type of
    x-www-form-urlencoded, and to have the data treated as arbitrary
    binary data by the server set the content-type header to octet-stream.
  
  Ref: https://github.com/curl/curl/pull/2852#issuecomment-426465094
  
  Closes https://github.com/curl/curl/pull/3085

Marcel Raad (2 Oct 2018)
- test1299: use single quotes around asterisk
  
  Ref: https://github.com/curl/curl/issues/1751#issuecomment-321522580

Daniel Stenberg (2 Oct 2018)
- docs/CIPHERS: mention the colon separation for OpenSSL
  
  Bug: #3077

- runtests: ignore disabled even when ranges are given
  
  runtests.pl support running a range of tests, like "44 to 127". Starting
  now, the code makes sure that even such given ranges will ignore tests
  that are marked as disabled.
  
  Disabled tests can still be run by explictly specifying that test
  number.
  
  Closes #3075

- urlapi: starting with a drive letter on win32 is not an abs url
  
  ... and libcurl doesn't support any single-letter URL schemes (if there
  even exist any) so it should be fairly risk-free.
  
  Reported-by: Marcel Raad
  
  Fixes #3070
  Closes #3071

Marcel Raad (2 Oct 2018)
- doh: fix curl_easy_setopt argument type
  
  CURLOPT_POSTFIELDSIZE is long. Fixes a compiler warning on 64-bit
  MinGW.

Daniel Stenberg (2 Oct 2018)
- RELEASE-NOTES: synced

Jay Satiro (1 Oct 2018)
- [Ruslan Baratov brought this change]

  CMake: Improve config installation
  
  Use 'GNUInstallDirs' standard module to set destinations of installed
  files.
  
  Use uppercase "CURL" names instead of lowercase "curl" to match standard
  'FindCURL.cmake' CMake module:
  * https://cmake.org/cmake/help/latest/module/FindCURL.html
  
  Meaning:
  * Install 'CURLConfig.cmake' instead of 'curl-config.cmake'
  * User should call 'find_package(CURL)' instead of 'find_package(curl)'
  
  Use 'configure_package_config_file' function to generate
  'CURLConfig.cmake' file. This will make 'curl-config.cmake.in' template
  file smaller and handle components better.  E.g.  current configuration
  report no error if user specified unknown components (note: new
  configuration expects no components, report error if user will try to
  specify any).
  
  Closes https://github.com/curl/curl/pull/2849

Daniel Stenberg (1 Oct 2018)
- test1650: make it depend on http/2
  
  Follow-up to 570008c99da0ccbb as it gets link errors.
  
  Reported-by: Michael Kaufmann
  Closes #3068

- [Nate Prewitt brought this change]

  MANUAL: minor grammar fix
  
  Noticed a typo reading through the docs.
  
  Closes #3069

- doh: only build if h2 enabled
  
  The DoH spec says "HTTP/2 [RFC7540] is the minimum RECOMMENDED version
  of HTTP for use with DoH".
  
  Reported-by: Marcel Raad
  Closes #3066

- test2100: require http2 to run
  
  Reported-by: Marcel Raad
  Fixes #3064
  Closes #3065

- multi: fix memory leak in content encoding related error path
  
  ... a missing multi_done() call.
  
  Credit to OSS-Fuzz
  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10728
  Closes #3063

- travis: bump the Secure Transport build to use xcode 10
  
  Due to an issue with travis
  (https://github.com/travis-ci/travis-ci/issues/9956) we've been using
  Xcode 9.2 for darwinssl builds for a while. Now xcode 10 is offered as
  an alternative and as it builds curl+darwinssl fine that seems like a
  better choice.
  
  Closes #3062

- [Rich Turner brought this change]

  curl: enabled Windows VT Support and UTF-8 output
  
  Enabled Console VT support (if running OS supports VT) in tool_main.c.
  
  Fixes #3008
  Closes #3011

- multi: fix location URL memleak in error path
  
  Follow-up to #3044 - fix a leak OSS-Fuzz detected
  Closes #3057

Sergei Nikulov (28 Sep 2018)
- cmake: fixed path used in generation of docs/tests during curl build through add_subdicectory(...)

- [Brad King brought this change]

  cmake: Backport to work with CMake 3.0 again
  
  Changes in commit 7867aaa9a0 (cmake: link curl to the OpenSSL targets
  instead of lib absolute paths, 2018-07-17) and commit f826b4ce98 (cmake:
  bumped minimum version to 3.4, 2018-07-19) required CMake 3.4 to fix
  issue #2746.  This broke support for users on older versions of CMake
  even if they just want to build curl and do not care whether transitive
  dependencies work.
  
  Backport the logic to work with CMake 3.0 again by implementing the
  fix only when the version of CMake is at least 3.4.

Marcel Raad (27 Sep 2018)
- curl_threads: fix classic MinGW compile break
  
  Classic MinGW still has _beginthreadex's return type as unsigned long
  instead of uintptr_t [0]. uintptr_t is not even defined because of [1].
  
  [0] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l167
  [1] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l90
  
  Bug: https://github.com/curl/curl/issues/2924#issuecomment-424334807
  Closes https://github.com/curl/curl/pull/3051

Daniel Stenberg (26 Sep 2018)
- configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE
  
  fix a few leftovers
  
  Fixes #3006
  Closes #3049

- [Doron Behar brought this change]

  example/htmltidy: fix include paths of tidy libraries
  
  Closes #3050

- RELEASE-NOTES: synced

- Curl_http2_done: fix memleak in error path
  
  Free 'header_recvbuf' unconditionally even if 'h2' isn't (yet) set, for
  early failures.
  
  Detected by OSS-Fuzz
  
  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10669
  Closes #3046

- http: fix memleak in rewind error path
  
  If the rewind would fail, a strdup() would not get freed.
  
  Detected by OSS-Fuzz
  
  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10665
  Closes #3044

Viktor Szakats (24 Sep 2018)
- test320: fix regression in [ci skip]
  
  The value in question is coming directly from `gnutls-serv`, so it cannot
  be modified freely.
  
  Reported-by: Marcel Raad
  Ref: https://github.com/curl/curl/commit/6ae6b2a533e8630afbb21f570305bd4ceece6348#commitcomment-30621004

Daniel Stenberg (24 Sep 2018)
- Curl_retry_request: fix memory leak
  
  Detected by OSS-Fuzz
  
  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
  Closes #3042

- openssl: load built-in engines too
  
  Regression since 38203f1
  
  Reported-by: Jean Fabrice
  Fixes #3023
  Closes #3040

- [Christian Heimes brought this change]

  OpenSSL: enable TLS 1.3 post-handshake auth
  
  OpenSSL 1.1.1 requires clients to opt-in for post-handshake
  authentication.
  
  Fixes: https://github.com/curl/curl/issues/3026
  Signed-off-by: Christian Heimes <christian@python.org>
  
  Closes https://github.com/curl/curl/pull/3027

- [Even Rouault brought this change]

  Curl_dedotdotify(): always nul terminate returned string.
  
  This fixes potential out-of-buffer access on "file:./" URL
  
  $ valgrind curl "file:./"
  ==24516== Memcheck, a memory error detector
  ==24516== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
  ==24516== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
  ==24516== Command: /home/even/install-curl-git/bin/curl file:./
  ==24516==
  ==24516== Conditional jump or move depends on uninitialised value(s)
  ==24516==    at 0x4C31F9C: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
  ==24516==    by 0x4EBB315: seturl (urlapi.c:801)
  ==24516==    by 0x4EBB568: parseurl (urlapi.c:861)
  ==24516==    by 0x4EBC509: curl_url_set (urlapi.c:1199)
  ==24516==    by 0x4E644C6: parseurlandfillconn (url.c:2044)
  ==24516==    by 0x4E67AEF: create_conn (url.c:3613)
  ==24516==    by 0x4E68A4F: Curl_connect (url.c:4119)
  ==24516==    by 0x4E7F0A4: multi_runsingle (multi.c:1440)
  ==24516==    by 0x4E808E5: curl_multi_perform (multi.c:2173)
  ==24516==    by 0x4E7558C: easy_transfer (easy.c:686)
  ==24516==    by 0x4E75801: easy_perform (easy.c:779)
  ==24516==    by 0x4E75868: curl_easy_perform (easy.c:798)
  
  Was originally spotted by
  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10637
  Credit to OSS-Fuzz
  
  Closes #3039

Viktor Szakats (23 Sep 2018)
- update URLs in tests
  
  - and one in docs/MANUAL as well
  
  Closes https://github.com/curl/curl/pull/3038

- whitespace fixes
  
  - replace tabs with spaces where possible
  - remove line ending spaces
  - remove double/triple newlines at EOF
  - fix a non-UTF-8 character
  - cleanup a few indentations/line continuations
    in manual examples
  
  Closes https://github.com/curl/curl/pull/3037

Daniel Stenberg (23 Sep 2018)
- http: add missing return code check
  
  Detected by Coverity. CID 1439610.
  
  Follow-up from 46e164069d1a523
  
  Closes #3034

- ftp: don't access pointer before NULL check
  
  Detected by Coverity. CID 1439611.
  
  Follow-up from 46e164069d1a523

- unit1650: fix out of boundary access
  
  Fixes #2987
  Closes #3035

Viktor Szakats (23 Sep 2018)
- docs/examples: URL updates
  
  - also update two URLs outside of docs/examples
  - fix spelling of filename persistant.c
  - fix three long lines that started failing checksrc.pl
  
  Closes https://github.com/curl/curl/pull/3036

- examples/Makefile.m32: sync with core [ci skip]
  
  also:
  - fix two warnings in synctime.c (one of them Windows-specific)
  - upgrade URLs in synctime.c and remove a broken one
  
  Closes https://github.com/curl/curl/pull/3033

Daniel Stenberg (22 Sep 2018)
- examples/parseurl.c: show off the URL API a bit
  
  Closes #3030

- SECURITY-PROCESS: mention the bountygraph program [ci skip]
  
  Closes #3032

- url: use the URL API internally as well
  
  ... to make it a truly unified URL parser.
  
  Closes #3017

Viktor Szakats (22 Sep 2018)
- URL and mailmap updates, remove an obsolete directory [ci skip]
  
  Closes https://github.com/curl/curl/pull/3031

Daniel Stenberg (22 Sep 2018)
- RELEASE-NOTES: synced

- configure: force-use -lpthreads on HPUX
  
  When trying to detect pthreads use on HPUX the checks will succeed
  without the correct -l option but then end up failing at run-time.
  
  Reported-by: Eason-Yu on github
  Fixes #2697
  Closes #3025

- [Erik Minekus brought this change]

  Curl_saferealloc: Fixed typo in docblock
  
  Closes #3029

- urlapi: fix support for address scope in IPv6 numerical addresses
  
  Closes #3024

- [Loganaden Velvindron brought this change]

  GnutTLS: TLS 1.3 support
  
  Closes #2971

- TODO: c-ares and CURLOPT_OPENSOCKETFUNCTION
  
  Removed DoH.
  
  Closes #2734

Jay Satiro (20 Sep 2018)
- vtls: fix ssl version "or later" behavior change for many backends
  
  - Treat CURL_SSLVERSION_MAX_NONE the same as
    CURL_SSLVERSION_MAX_DEFAULT. Prior to this change NONE would mean use
    the minimum version also as the maximum.
  
  This is a follow-up to 6015cef which changed the behavior of setting
  the SSL version so that the requested version would only be the minimum
  and not the maximum. It appears it was (mostly) implemented in OpenSSL
  but not other backends. In other words CURL_SSLVERSION_TLSv1_0 used to
  mean use just TLS v1.0 and now it means use TLS v1.0 *or later*.
  
  - Fix CURL_SSLVERSION_MAX_DEFAULT for OpenSSL.
  
  Prior to this change CURL_SSLVERSION_MAX_DEFAULT with OpenSSL was
  erroneously treated as always TLS 1.3, and would cause an error if
  OpenSSL was built without TLS 1.3 support.
  
  Co-authored-by: Daniel Gustafsson
  
  Fixes https://github.com/curl/curl/issues/2969
  Closes https://github.com/curl/curl/pull/3012

Daniel Stenberg (20 Sep 2018)
- certs: generate tests certs with sha256 digest algorithm
  
  As OpenSSL 1.1.1 starts to complain and fail on sha1 CAs:
  
  "SSL certificate problem: CA signature digest algorithm too weak"
  
  Closes #3014

- urlapi: document the error codes, remove two unused ones
  
  Assisted-by: Daniel Gustafsson
  Closes #3019

- urlapi: add CURLU_GUESS_SCHEME and fix hostname acceptance
  
  In order for this API to fully work for libcurl itself, it now offers a
  CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
  name prefix just like libcurl always did. If there's no known prefix, it
  will guess "http://".
  
  Separately, it relaxes the check of the host name so that IDN host names
  can be passed in as well.
  
  Both these changes are necessary for libcurl itself to use this API.
  
  Assisted-by: Daniel Gustafsson
  Closes #3018

Kamil Dudka (19 Sep 2018)
- nss: try to connect even if libnssckbi.so fails to load
  
  One can still use CA certificates stored in NSS database.
  
  Reported-by: Maxime Legros
  Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
  
  Closes #3016

Daniel Gustafsson (19 Sep 2018)
- urlapi: don't set value which is never read
  
  In the CURLUPART_URL case, there is no codepath which invokes url
  decoding so remove the assignment of the urldecode variable. This
  fixes the deadstore bug-report from clang static analysis.
  
  Closes #3015
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- todo: Update reference to already done item
  
  TODO item 1.1 was implemented in commit 946ce5b61f, update reference
  to it with instead referencing the implemented option.
  
  Closes #3013
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (18 Sep 2018)
- RELEASE-NOTES: synced

- [slodki brought this change]

  cmake: don't require OpenSSL if USE_OPENSSL=OFF
  
  User must have OpenSSL installed even if not used by libcurl at all
  since 7.61.1 release.  Broken at
  7867aaa9a01decf93711428462335be8cef70212
  
  Reviewed-by: Sergei Nikulov
  Closes #3001

- curl_multi_wait: call getsock before figuring out timeout
  
  .... since getsock may update the expiry timer.
  
  Fixes #2996
  Closes #3000

- examples/http2-pushinmemory: receive HTTP/2 pushed files in memory
  
  Closes #3004







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|







 







|







 







|







 







|







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
....
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
....
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
....
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
....
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
....
7619
7620
7621
7622
7623
7624
7625
















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































                                  _   _ ____  _
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
                             \___|\___/|_| \_\_____|

                                  Changelog

Version 7.66.0 (10 Sep 2019)

Daniel Stenberg (10 Sep 2019)
- RELEASE-NOTES: curl 7.66.0

- THANKS: from the 7.66.0 release

- curl: make sure the parallel transfers do them all
  
  The logic could erroneously break the loop too early before all
  transfers had been transferred.
  
  Reported-by: Tom van der Woerdt
  Fixes #4316
  Closes #4317

- urlapi: one colon is enough for the strspn() input (typo)

- urlapi: verify the IPv6 numerical address
  
  It needs to parse correctly. Otherwise it could be tricked into letting
  through a-f using host names that libcurl would then resolve. Like
  '[ab.be]'.
  
  Reported-by: Thomas Vegas
  Closes #4315

- [Clément Notin brought this change]

  openssl: use SSL_CTX_set_<min|max>_proto_version() when available
  
  OpenSSL 1.1.0 adds SSL_CTX_set_<min|max>_proto_version() that we now use
  when available.  Existing code is preserved for older versions of
  OpenSSL.
  
  Closes #4304

- [Clément Notin brought this change]

  openssl: indent, re-organize and add comments

- [migueljcrum brought this change]

  sspi: fix memory leaks
  
  Closes #4299

- travis: disable ngtcp2 builds (again)

- Curl_fillreadbuffer: avoid double-free trailer buf on error
  
  Reviewed-by: Jay Satiro
  Reported-by: Thomas Vegas
  
  Closes #4307

- tool_setopt: handle a libcurl build without netrc support
  
  Reported-by: codesniffer13 on github
  Fixes #4302
  Closes #4305

- security:read_data fix bad realloc()
  
  ... that could end up a double-free
  
  CVE-2019-5481
  Bug: https://curl.haxx.se/docs/CVE-2019-5481.html

- [Thomas Vegas brought this change]

  tftp: Alloc maximum blksize, and use default unless OACK is received
  
  Fixes potential buffer overflow from 'recvfrom()', should the server
  return an OACK without blksize.
  
  Bug: https://curl.haxx.se/docs/CVE-2019-5482.html
  CVE-2019-5482

- [Thomas Vegas brought this change]

  tftp: return error when packet is too small for options

- KNOWN_BUGS/TODO: cleanup and remove outdated issues

- RELEASE-NOTES: synced

- netrc: free 'home' on error
  
  Follow-up to f9c7ba9096ec2
  
  Coverity CID 1453474
  
  Closes #4291

- urldata: avoid 'generic', use dedicated pointers
  
  For the 'proto' union within the connectdata struct.
  
  Closes #4290

- cleanup: move functions out of url.c and make them static
  
  Closes #4289

- smtp: check for and bail out on too short EHLO response
  
  Otherwise, a three byte response would make the smtp_state_ehlo_resp()
  function misbehave.
  
  Credit to OSS-Fuzz
  Bug: https://crbug.com/oss-fuzz/16918
  
  Assisted-by: Max Dymond
  
  Closes #4287

- smb: init *msg to NULL in smb_send_and_recv()
  
  ... it might otherwise return OK from this function leaving that pointer
  uninitialized.
  
  Bug: https://crbug.com/oss-fuzz/16907
  
  Closes #4286

- ROADMAP: updated after recent user poll
  
  In rough prio order

- THANKS: remove duplicate

- Curl_addr2string: take an addrlen argument too
  
  This allows the function to figure out if a unix domain socket has a
  file name or not associated with it! When a socket is created with
  socketpair(), as done in the fuzzer testing, the path struct member is
  uninitialized and must not be accessed.
  
  Bug: https://crbug.com/oss-fuzz/16699
  
  Closes #4283

- [Rolf Eike Beer brought this change]

  CMake: remove needless newlines at end of gss variables

- [Rolf Eike Beer brought this change]

  CI: remove duplicate configure flag for LGTM.com

- [Rolf Eike Beer brought this change]

  CMake: use platform dependent name for dlopen() library
  
  Closes #4279

- quiche: expire when poll returned data
  
  ... to make sure we continue draining the queue until empty
  
  Closes #4281

- quiche: decrease available buffer size, don't assign it!
  
  Found-by: Jeremy Lainé

- RELEASE-NOTES: synced

- [Kyohei Kadota brought this change]

  curl: fix include conditions

- [Kyohei Kadota brought this change]

  plan9: fix installation instructions
  
  Closes #4276

- ngtcp2: on h3 stream close, call expire
  
  ... to trigger a new read to detect the stream close!
  
  Closes #4275

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: build latest ngtcp2 and ngtcp2_crypto_openssl
  
  Closes #4278

- ngtcp2: set flow control window to stream buffer size
  
  Closes #4274

- [Christopher Head brought this change]

  CURLOPT_HEADERFUNCTION.3: clarify
  
  Closes #4273

- CURLINFO docs: mention that in redirects times are added
  
  Suggested-by: Brandon Dong
  Fixes #4250
  Closes #4269

- travis: enable ngtcp2 builds again
  
  Switched to the openssl-quic-draft-22 openssl branch.
  
  Closes #4271

- HTTP3: switched openssl branch to use

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: Build with latest ngtcp2 and ngtcp2_crypto_openssl
  
  Closes #4270

- http2: when marked for closure and wanted to close == OK
  
  It could otherwise return an error even when closed correctly if GOAWAY
  had been received previously.
  
  Reported-by: Tom van der Woerdt
  Fixes #4267
  Closes #4268

- RELEASE-NOTES: synced

- build-openssl: fix build with Visual Studio 2019
  
  Reviewed-by: Marcel Raad
  Contributed-by: osabc on github
  Fixes #4188
  Closes #4266

Kamil Dudka (26 Aug 2019)
- vauth: return CURLE_AUTH_ERROR on gss_init_sec_context() failure
  
  This is a follow-up to https://github.com/curl/curl/pull/3864 .
  
  Closes #4224

Daniel Stenberg (26 Aug 2019)
- KNOWN_BUGS: USE_UNIX_SOCKETS on Windows
  
  Closes #4040

- quiche: send the HTTP body correctly on callback uploads
  
  Closes #4265

- travis: disable ngtcp2 builds (temporarily)
  
  Just too many API changes right now
  
  Closes #4264

- ngtcp2: add support for SSLKEYLOGFILE
  
  Closes #4260

- ngtcp2: improve h3 response receiving
  
  Closes #4259

- ngtcp2: use nghttp3_version()

- ngtcp2: sync with upstream API changes
  
  Assisted-by: Tatsuhiro Tsujikawa

- [Kyle Abramowitz brought this change]

  scp: fix directory name length used in memcpy
  
  Fix read off end of array due to bad pointer math in getworkingpath for
  SCP home directory case.
  
  Closes #4258

- http: the 'closed' struct field is used by both ngh2 and ngh3
  
  and remove 'header_recvbuf', not used for anything
  
  Reported-by: Jeremy Lainé
  
  Closes #4257

- ngtcp2: accept upload via callback
  
  Closes #4256

- defines: avoid underscore-prefixed defines
  
  Double-underscored or underscore plus uppercase letter at least.
  
  ... as they're claimed to be reserved.
  
  Reported-by: patnyb on github
  
  Fixes #4254
  Closes #4255

- travis: add a build using ngtcp2 + nghttp3 (and a patched OpenSSL)
  
  Runs no tests
  
  Closes #4253

- travis: bump to using nghttp2 version 1.39.2
  
  Closes #4252

- [Gisle Vanem brought this change]

  docs/examples/curlx: fix errors
  
  Initialise 'mimetype' and require the -p12 arg.
  
  Closes #4248

- cleanup: remove DOT_CHAR completely
  
  Follow-up to f9c7ba9096ec
  
  The use of DOT_CHAR for ".ssh" was probably a mistake and is removed
  now.
  
  Pointed-out-by: Gisle Vanem
  Bug: https://github.com/curl/curl/pull/4230#issuecomment-522960638
  
  Closes #4247

- spnego_sspi: add typecast to fix build warning
  
  Reported in build "Win32 target on Debian Stretch (64-bit) -
  i686-w64-mingw32 - gcc-20170516"
  
  Closes #4245

- openssl: build warning free with boringssl
  
  Closes #4244

- curl: make --libcurl use CURL_HTTP_VERSION_3
  
  Closes #4243

- ngtcp2: make postfields-set posts work
  
  Closes #4242

- http: remove chunked-encoding and expect header use for HTTP/3

- [Alessandro Ghedini brought this change]

  configure: use pkg-config to detect quiche
  
  This removes the need to hard-code the quiche target path in
  configure.ac.
  
  This depends on https://github.com/cloudflare/quiche/pull/128
  
  Closes #4237

- CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2
  
  For a long time (since 7.28.1) we've returned error when setting the
  value to 1 to make applications notice that we stopped supported the old
  behavior for 1. Starting now, we treat 1 and 2 exactly the same.
  
  Closes #4241

- curl: use .curlrc (with a dot) on Windows as well
  
  Fall-back to _curlrc if the dot-version is missing.
  
  Co-Authored-By: Steve Holme
  
  Closes #4230

- netrc: make the code try ".netrc" on Windows as well
  
  ... but fall back and try "_netrc" too if the dot version didn't work.
  
  Co-Authored-By: Steve Holme

- ngtcp2: use ngtcp2_version() to get the run-time version
  
  ... which of course doesn't have to be the same used at build-time.
  
  Function just recently merged in ngtcp2.

- ngtcp2: move the h3 initing to immediately after the rx key
  
  To fix a segfault and to better deal with 0-RTT
  
  Assisted-by: Tatsuhiro Tsujikawa

- [Alessandro Ghedini brought this change]

  quiche: register debug callback once and earlier
  
  The quiche debug callback is global and can only be initialized once, so
  make sure we don't do it multiple times (e.g. if multiple requests are
  executed).
  
  In addition this initializes the callback before the connection is
  created, so we get logs for the handshake as well.
  
  Closes #4236

- ssh: add a generic Curl_ssh_version function for SSH backends
  
  Closes #4235

- base64: check for SSH, not specific SSH backends

- vssh: move ssh init/cleanup functions into backend code

- vssh: create directory for SSH backend code

- TODO/ROADMAP: remove "refuse downgrade redirects" and HTTP/3
  
  HTTP3 is now already in full progress
  
  Downgrade redirects can be achived almost exactly like that by setting
  CURLOPT_REDIR_PROTOCOLS.

- RELEASE-NOTES: synced

- travis: add a quiche build
  
  Closes #4207

- http: fix use of credentials from URL when using HTTP proxy
  
  When a username and password are provided in the URL, they were wrongly
  removed from the stored URL so that subsequent uses of the same URL
  wouldn't find the crendentials. This made doing HTTP auth with multiple
  connections (like Digest) mishave.
  
  Regression from 46e164069d1a5230 (7.62.0)
  
  Test case 335 added to verify.
  
  Reported-by: Mike Crowe
  
  Fixes #4228
  Closes #4229

- [Mike Crowe brought this change]

  tests: Replace outdated test case numbering documentation
  
  Tests are no longer grouped by numeric range[1]. Let's stop saying that
  and provide some alternative advice for numbering tests.
  
  [1] https://curl.haxx.se/mail/lib-2019-08/0043.html
  
  Closes #4227

- travis: reduce number of torture tests in 'coverage'
  
  ... to make it complete in time. This cut seems not almost not affect
  the coverage percentage and yet completes within 35 minutes on travis
  where the previous runs recently always timed out after 50.
  
  Closes #4223

- [Igor Makarov brought this change]

  configure: use -lquiche to link to quiche
  
  Closes #4226

- ngtcp2: provide the callbacks as a static struct
  
  ... instead of having them in quicsocket

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: add missing nghttp3_conn_add_write_offset call
  
  Closes #4225

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: deal with stream close

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: Consume QUIC STREAM data properly

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: don't reinitialize SSL on Retry

- multi: getsock improvements for QUIC connecting

- connect: connections are persistent by default for HTTP/3

- quiche: happy eyeballs
  
  Closes #4220

- ngtcp2: do QUIC connections happy-eyeballs friendly

- curl_version: bump string buffer size to 250
  
  With HTTP/3 libs and plenty TLS libs, I manged to hit the limit (which
  causes a truncated output).

- CURLOPT_ALTSVC.3: use a "" file name to not load from a file

Jay Satiro (14 Aug 2019)
- vauth: Use CURLE_AUTH_ERROR for auth function errors
  
  - Add new error code CURLE_AUTH_ERROR.
  
  Prior to this change auth function errors were signaled by
  CURLE_OUT_OF_MEMORY and CURLE_RECV_ERROR, and neither one was
  technically correct.
  
  Ref: https://github.com/curl/curl/pull/3848
  
  Co-authored-by: Dominik Hölzl
  
  Closes https://github.com/curl/curl/pull/3864

Daniel Stenberg (13 Aug 2019)
- curl_version_info: make the quic_version a const
  
  Follow-up from 1a2df1518ad8653f
  
  Closes #4222

- examples: add http3.c, altsvc.c and http3-present.c
  
  Closes #4221

Peter Wu (13 Aug 2019)
- nss: use TLSv1.3 as default if supported
  
  SSL_VersionRangeGetDefault returns (TLSv1.0, TLSv1.2) as supported
  range in NSS 3.45. It looks like the intention is to raise the minimum
  version rather than lowering the maximum, so adjust accordingly. Note
  that the caller (nss_setup_connect) initializes the version range to
  (TLSv1.0, TLSv1.3), so there is no need to check for >= TLSv1.0 again.
  
  Closes #4187
  Reviewed-by: Daniel Stenberg
  Reviewed-by: Kamil Dudka

Daniel Stenberg (13 Aug 2019)
- quic.h: remove unused proto

- curl_version_info.3: mentioned ALTSVC and HTTP3
  
  ... and sorted the list alphabetically

- lib/quic.c: unused - removed

- CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED
  
  Follow-up to 98c3f148 that removed it from the header file

- [Junho Choi brought this change]

  docs/HTTP3: simplify quiche build instruction
  
  Use --recursive to get boringssl in one line
  
  Closes #4219

- altsvc: make it use h3-22 with ngtcp2 as well

- ngtcp2: initial h3 request work
  
  Closes #4217

- curl_version_info: offer quic (and h3) library info
  
  Closes #4216

- HTTP3: use ngtcp2's draft-22 branch

- RELEASE-NOTES: synced

- CURLOPT_READFUNCTION.3: provide inline example
  
  ... instead of mentioning one in another place

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: send HTTP/3 request with nghttp3
  
  This commit makes sending HTTP/3 request with nghttp3 work.  It
  minimally receives HTTP response and calls nghttp3 callbacks, but no
  processing is made at the moment.
  
  Closes #4215

- nghttp3: initial h3 template code added

- nghttp3: required when ngtcp2 is used for QUIC
  
  - checked for by configure
  - updated docs/HTTP3.md
  - shown in the version string
  
  Closes #4210

- [Eric Wong brought this change]

  asyn-thread: issue CURL_POLL_REMOVE before closing socket
  
  This avoids EBADF errors from EPOLL_CTL_DEL operations in the
  ephiperfifo.c example.  EBADF is dangerous in multi-threaded
  applications where I rely on epoll_ctl to operate on the same
  epoll description from different threads.
  
  Follow-up to eb9a604f8d7db8
  
  Bug: https://curl.haxx.se/mail/lib-2019-08/0026.html
  Closes #4211

- [Carlo Marcelo Arenas Belón brought this change]

  configure: avoid undefined check_for_ca_bundle
  
  instead of using a "greater than 0" test, check for variable being
  set, as it is always set to 1, and could be left unset if non of
  OPENSSL MBEDTLS GNUTLS WOLFSSL is being configured for.
  
  Closes #4213

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: Send ALPN h3-22
  
  Closes #4212

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: use ngtcp2_settings_default and specify initial_ts

- curl_global_init_mem.3: mention it was added in 7.12.0

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: make the QUIC handshake work
  
  Closes #4209

- [Alex Mayorga brought this change]

  HTTP3.md: Update quiche build instructions
  
  Added cloning for quiche and BoringSSL and modified the build
  instructions so they work on a clean folder.
  
  Closes #4208

- CURLOPT_H3: removed
  
  There's no use for this anymore and it was never in a release.
  
  Closes #4206

- http3: make connection reuse work
  
  Closes #4204

- quiche: add SSLKEYLOGFILE support

- cleanup: s/curl_debug/curl_dbg_debug in comments and docs
  
  Leftovers from the function rename back in 76b63489495
  
  Reported-by: Gisle Vanem
  Bug: https://github.com/curl/curl/commit/f3e0f071b14fcb46a453f69bdf4e062bcaacf362#com
  mitcomment-34601751
  
  Closes #4203

- RELEASE-NOTES: synced

- alt-svc: add protocol version selection masking
  
  So that users can mask in/out specific HTTP versions when Alt-Svc is
  used.
  
   - Removed "h2c" and updated test case accordingly
   - Changed how the altsvc struct is laid out
   - Added ifdefs to make the unittest run even in a quiche-tree
  
  Closes #4201

- http3: fix the HTTP/3 in the request, make alt-svc set right versions
  
  Closes #4200

- alt-svc: send Alt-Used: in redirected requests
  
  RFC 7838 section 5:
  
     When using an alternative service, clients SHOULD include an Alt-Used
     header field in all requests.
  
  Removed CURLALTSVC_ALTUSED again (feature is still EXPERIMENTAL thus
  this is deemed ok).
  
  You can disable sending this header just like you disable any other HTTP
  header in libcurl.
  
  Closes #4199

- CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly
  
  Even though it cannot fall-back to a lower HTTP version automatically. The
  safer way to upgrade remains via CURLOPT_ALTSVC.
  
  CURLOPT_H3 no longer has any bits that do anything and might be removed
  before we remove the experimental label.
  
  Updated the curl tool accordingly to use "--http3".
  
  Closes #4197

- docs/ALTSVC: remove what works and the experimental explanation
  
  Also, put the TODO items at the bottom.
  
  Closes #4198

- docs/EXPERIMENTAL: explain what it means and what's experimental now

- curl: make use of CURLINFO_RETRY_AFTER when retrying
  
  If a Retry-After: header was used in the response, that value overrides
  other retry timing options.
  
  Fixes #3794
  Closes #4195

- curl: use CURLINFO_PROTOCOL to check for HTTP(s)
  
  ... instead of CURLINFO_EFFECTIVE_URL to avoid string operations.

- CURLINFO_RETRY_AFTER: parse the Retry-After header value
  
  This is only the libcurl part that provides the information. There's no
  user of the parsed value. This change includes three new tests for the
  parser.
  
  Ref: #3794

- docs/ALTSVC.md: first basic file format description

- curl: have -w's 'http_version' show '3' for HTTP/3
  
  Closes #4196

- curl.h: add CURL_HTTP_VERSION_3 to the version enum
  
  It can't be set for CURLOPT_HTTP_VERSION, but it can be extracted with
  CURLINFO_HTTP_VERSION.

- quiche: make use of the connection timeout API properly

- quiche: make POSTFIELDS posts work

- quiche: improved error handling and memory cleanups

- quiche: flush egress in h3_stream_recv() too

- RELEASE-NOTES: synced

Jay Satiro (6 Aug 2019)
- [Patrick Monnerat brought this change]

  os400: take care of CURLOPT_SASL_AUTHZID in curl_easy_setopt_ccsid().
  
  Ref: https://github.com/curl/curl/issues/3653
  Ref: https://github.com/curl/curl/pull/3790
  
  NOTE: This commit was cherry-picked and is part of a series of commits
  that added the authzid feature for upcoming 7.66.0. The series was
  temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
  patch release.
  
  Closes https://github.com/curl/curl/pull/4186

- tests: Fix the line endings for the SASL alt-auth tests
  
  - Change data and protocol sections to CRLF line endings.
  
  Prior to this change the tests would fail or hang, which is because
  certain sections such as protocol require CRLF line endings.
  
  Follow-up to grandparent commit which added the tests.
  
  Ref: https://github.com/curl/curl/issues/3653
  Ref: https://github.com/curl/curl/pull/3790
  
  NOTE: This commit was cherry-picked and is part of a series of commits
  that added the authzid feature for upcoming 7.66.0. The series was
  temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
  patch release.
  
  Closes https://github.com/curl/curl/pull/4186

- [Steve Holme brought this change]

  examples: Added SASL PLAIN authorisation identity (authzid) examples
  
  Ref: https://github.com/curl/curl/issues/3653
  Ref: https://github.com/curl/curl/pull/3790
  
  NOTE: This commit was cherry-picked and is part of a series of commits
  that added the authzid feature for upcoming 7.66.0. The series was
  temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
  patch release.
  
  Closes https://github.com/curl/curl/pull/4186

- [Steve Holme brought this change]

  curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool
  
  Ref: https://github.com/curl/curl/issues/3653
  Ref: https://github.com/curl/curl/pull/3790
  
  NOTE: This commit was cherry-picked and is part of a series of commits
  that added the authzid feature for upcoming 7.66.0. The series was
  temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
  patch release.
  
  Closes https://github.com/curl/curl/pull/4186

- [Steve Holme brought this change]

  sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID
  
  Added the ability for the calling program to specify the authorisation
  identity (authzid), the identity to act as, in addition to the
  authentication identity (authcid) and password when using SASL PLAIN
  authentication.
  
  Fixes #3653
  Closes #3790
  
  NOTE: This commit was cherry-picked and is part of a series of commits
  that added the authzid feature for upcoming 7.66.0. The series was
  temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
  patch release.
  
  Closes https://github.com/curl/curl/pull/4186

Daniel Stenberg (6 Aug 2019)
- docs/HTTP3: refreshed as it is now in master and HTTP/3 can be tested

- [Yiming Jing brought this change]

  mesalink: implement client authentication
  
  Closes #4184

- curl_multi_poll: a sister to curl_multi_wait() that waits more
  
  Repeatedly we see problems where using curl_multi_wait() is difficult or
  just awkward because if it has no file descriptor to wait for
  internally, it returns immediately and leaves it to the caller to wait
  for a small amount of time in order to avoid occasional busy-looping.
  
  This is often missed or misunderstood, leading to underperforming
  applications.
  
  This change introduces curl_multi_poll() as a replacement drop-in
  function that accepts the exact same set of arguments. This function
  works identically to curl_multi_wait() - EXCEPT - for the case when
  there's nothing to wait for internally, as then this function will by
  itself wait for a "suitable" short time before it returns. This
  effectiely avoids all risks of busy-looping and should also make it less
  likely that apps "over-wait".
  
  This also changes the curl tool to use this funtion internally when
  doing parallel transfers and changes curl_easy_perform() to use it
  internally.
  
  Closes #4163

- quiche:h3_stream_recv return 0 at end of stream
  
  ... and remove some verbose messages we don't need. Made transfers from
  facebook.com work better.

- altsvc: make quiche use h3-22 now

- quiche: show the actual version number

- quiche: first working HTTP/3 request
  
   - enable debug log
   - fix use of quiche API
   - use download buffer
   - separate header/body
  
  Closes #4193

- http09: disable HTTP/0.9 by default in both tool and library
  
  As the plan has been laid out in DEPRECATED. Update docs accordingly and
  verify in test 1174. Now requires the option to be set to allow HTTP/0.9
  responses.
  
  Closes #4191

- quiche: initial h3 request send/receive

- lib/Makefile.am: make checksrc run in vquic too

- altsvc: fix removal of expired cache entry
  
  Closes #4192

- RELEASE-NOTES: synced

Steve Holme (4 Aug 2019)
- md4: Use our own MD4 implementation when no crypto libraries are available
  
  Closes #3780

- md4: No need to include Curl_md4.h for each TLS library

- md4: No need for the NTLM code to call Curl_md4it() for each TLS library
  
  As the NTLM code no longer calls any of TLS libraries' specific MD4
  functions, there is no need to call this function for each #ifdef.

- md4: Move the mbed TLS MD4 implementation out of the NTLM code

- md4: Move the WinCrypt implementation out of the NTLM code

- md4: Move the SecureTransport implementation out of the NTLM code

- md4: Use the Curl_md4it() function for OpenSSL based NTLM

- md4: Move the GNU TLS gcrypt MD4 implementation out of the NTLM code

- md4: Move the GNU TLS Nettle MD4 implementation out of the NTLM code

Jay Satiro (4 Aug 2019)
- OS400: Add CURLOPT_H3 symbols
  
  Follow-up to 3af0e76 which added experimental H3 support.
  
  Closes https://github.com/curl/curl/pull/4185

Daniel Stenberg (3 Aug 2019)
- url: make use of new HTTP version if alt-svc has one

- url: set conn->transport to default TCP at init time

- altsvc: with quiche, use the quiche h3 alpn string
  
  Closes #4183

- alt-svc: more liberal ALPN name parsing
  
  Allow pretty much anything to be part of the ALPN identifier. In
  particular minus, which is used for "h3-20" (in-progress HTTP/3
  versions) etc.
  
  Updated test 356.
  Closes #4182

- quiche: use the proper HTTP/3 ALPN

- quiche: add failf() calls for two error cases
  
  To aid debugging
  
  Closes #4181

- mailmap: added Kyohei Kadota

Kamil Dudka (1 Aug 2019)
- http_negotiate: improve handling of gss_init_sec_context() failures
  
  If HTTPAUTH_GSSNEGOTIATE was used for a POST request and
  gss_init_sec_context() failed, the POST request was sent
  with empty body.  This commit also restores the original
  behavior of `curl --fail --negotiate`, which was changed
  by commit 6c6035532383e300c712e4c1cd9fdd749ed5cf59.
  
  Add regression tests 2077 and 2078 to cover this.
  
  Fixes #3992
  Closes #4171

Daniel Stenberg (1 Aug 2019)
- mailmap: added 4 more names
  
  Evgeny Grin, Peter Pih, Anton Malov and Marquis de Muesli

- mailmap: add Giorgos Oikonomou

- src/makefile: fix uncompressed hugehelp.c generation
  
  Regression from 5cf5d57ab9 (7.64.1)
  
  Fixed-by: Lance Ware
  Fixes #4176
  Closes #4177

- appveyor: pass on -k to make

- timediff: make it 64 bit (if possible) even with 32 bit time_t
  
  ... to make it hold microseconds too.
  
  Fixes #4165
  Closes #4168

- ROADMAP: parallel transfers are merged now

- getenv: support up to 4K environment variable contents on windows
  
  Reported-by: Michal Čaplygin
  Fixes #4174
  Closes #4175

- [Kyohei Kadota brought this change]

  plan9: add support for running on Plan 9
  
  Closes #3701

- [Kyohei Kadota brought this change]

  ntlm: explicit type casting

- [Justin brought this change]

  curl.h: fix outdated comment
  
  Closes #4167

- curl: remove outdated comment
  
  Turned bad with commit b8894085000
  
  Reported-by: niallor on github
  Fixes #4172
  Closes #4173

- cleanup: remove the 'numsocks' argument used in many places
  
  It was used (intended) to pass in the size of the 'socks' array that is
  also passed to these functions, but was rarely actually checked/used and
  the array is defined to a fixed size of MAX_SOCKSPEREASYHANDLE entries
  that should be used instead.
  
  Closes #4169

- readwrite_data: repair setting the TIMER_STARTTRANSFER stamp
  
  Regression, broken in commit 65eb65fde64bd5f (curl 7.64.1)
  
  Reported-by: Jonathan Cardoso Machado
  Assisted-by: Jay Satiro
  
  Fixes #4136
  Closes #4162

- mailmap: Amit Katyal

- asyn-thread: removed unused variable
  
  Follow-up to eb9a604f. Mistake caused by me when I edited the commit
  before push...

- RELEASE-NOTES: synced

- [Amit Katyal brought this change]

  asyn-thread: create a socketpair to wait on
  
  Closes #4157

- curl: cap the maximum allowed values for retry time arguments
  
  ... to avoid integer overflows later when multiplying with 1000 to
  convert seconds to milliseconds.
  
  Added test 1269 to verify.
  
  Reported-by: Jason Lee
  Closes #4166

- progress: reset download/uploaded counter
  
  ... to make CURLOPT_MAX_RECV_SPEED_LARGE and
  CURLOPT_MAX_SEND_SPEED_LARGE work correctly on subsequent transfers that
  reuse the same handle.
  
  Fixed-by: Ironbars13 on github
  Fixes #4084
  Closes #4161

- http2_recv: trigger another read when the last data is returned
  
  ... so that end-of-stream is detected properly.
  
  Reported-by: Tom van der Woerdt
  Fixes #4043
  Closes #4160

- curl: avoid uncessary libcurl timeouts (in parallel mode)
  
  When curl_multi_wait() returns OK without file descriptors to wait for,
  it might already have done a long timeout.
  
  Closes #4159

- [Balazs Kovacsics brought this change]

  HTTP: use chunked Transfer-Encoding for HTTP_POST if size unknown
  
  If using the read callback for HTTP_POST, and POSTFIELDSIZE is not set,
  automatically add a Transfer-Encoding: chunked header, same as it is
  already done for HTTP_PUT, HTTP_POST_FORM and HTTP_POST_MIME.  Update
  test 1514 according to the new behaviour.
  
  Closes #4138

Jay Satiro (29 Jul 2019)
- [Daniel Stenberg brought this change]

  winbuild: add vquic to list of build directories
  
  This fixes the winbuild build method which broke several days ago
  when experimental quic support was added in 3af0e76.
  
  Reported-by: Michael Lee
  
  Fixes https://github.com/curl/curl/issues/4158

- easy: resize receive buffer on easy handle reset
  
  - In curl_easy_reset attempt to resize the receive buffer to its default
    size. If realloc fails then continue using the previous size.
  
  Prior to this change curl_easy_reset did not properly handle resetting
  the receive buffer (data->state.buffer). It reset the variable holding
  its size (data->set.buffer_size) to the default size (READBUFFER_SIZE)
  but then did not actually resize the buffer. If a user resized the
  buffer by using CURLOPT_BUFFERSIZE to set the size smaller than the
  default, later called curl_easy_reset and attempted to reuse the handle
  then a heap overflow would very likely occur during that handle's next
  transfer.
  
  Reported-by: Felix Hädicke
  
  Fixes https://github.com/curl/curl/issues/4143
  Closes https://github.com/curl/curl/pull/4145

- [Brad Spencer brought this change]

  examples: Avoid reserved names in hiperfifo examples
  
  - Trade in __attribute__((unused)) for the classic (void)x to silence
    unused symbols.
  
  Because the classic way is not gcc specific. Also because the prior
  method mapped to symbol _Unused, which starts with _ and a capital
  letter which is reserved.
  
  Assisted-by: The Infinnovation team
  
  Bug: https://github.com/curl/curl/issues/4120#issuecomment-512542108
  
  Closes https://github.com/curl/curl/pull/4153

Daniel Stenberg (25 Jul 2019)
- RELEASE-NOTES: synced

- [Felix Hädicke brought this change]

  ssh-libssh: do not specify O_APPEND when not in append mode
  
  Specifying O_APPEND in conjunction with O_TRUNC and O_CREAT does not
  make much sense. And this combination of flags is not accepted by all
  SFTP servers (at least not Apache SSHD).
  
  Fixes #4147
  Closes #4148

- [Gergely Nagy brought this change]

  multi: call detach_connection before Curl_disconnect
  
  Curl_disconnect bails out if conn->easyq is not empty, detach_connection
  needs to be called first to remove the current easy from the queue.
  
  Fixes #4144
  Closes #4151

Jay Satiro (23 Jul 2019)
- tool_operate: fix implicit call to easysrc_cleanup
  
  easysrc_cleanup is only defined when CURL_DISABLE_LIBCURL_OPTION is not
  defined, and prior to this change would be called regardless.
  
  Bug: https://github.com/curl/curl/pull/3804#issuecomment-513922637
  Reported-by: Marcel Raad
  
  Closes https://github.com/curl/curl/pull/4142

Daniel Stenberg (22 Jul 2019)
- curl:create_transfers check return code from curl_easy_setopt
  
  From commit b8894085
  
  Pointed out by Coverity CID 1451703
  
  Closes #4134

- HTTP3: initial (experimental) support
  
  USe configure --with-ngtcp2 or --with-quiche
  
  Using either option will enable a HTTP3 build.
  Co-authored-by: Alessandro Ghedini <alessandro@ghedini.me>
  
  Closes #3500

- curl: remove dead code
  
  The loop never loops (since b889408500), pointed out by Coverity (CID
  1451702)
  
  Closes #4133

- docs/PARALLEL-TRANSFERS: correct the version number

- docs/PARALLEL-TRANSFERS: added

- curl: support parallel transfers
  
  This is done by making sure each individual transfer is first added to a
  linked list as then they can be performed serially, or at will, in
  parallel.
  
  Closes #3804

- docs/MANUAL.md: converted to markdown from plain text
  
  ... will make it render as a nicer web page.
  
  Closes #4131

- curl_version_info: provide nghttp2 details
  
  Introducing CURLVERSION_SIXTH with nghttp2 info.
  
  Closes #4121

- bump: start working on 7.66.0

- source: remove names from source comments
  
  Several reasons:
  
  - we can't add everyone who's helping out so its unfair to just a few
  selected ones.
  - we already list all helpers in THANKS and in RELEASE-NOTES for each
  release
  - we don't want to give the impression that some parts of the code is
  "owned" or "controlled" by specific persons
  
  Assisted-by: Daniel Gustafsson
  Closes #4129

Version 7.65.3 (19 Jul 2019)

Daniel Stenberg (19 Jul 2019)
- RELEASE-NOTES: 7.65.3

- THANKS: 7.65.3 status
................................................................................

- [Stefano Simonelli brought this change]

  CURLOPT_SEEKDATA.3: fix variable name
  
  Closes https://github.com/curl/curl/pull/4118

- [Giorgos Oikonomou brought this change]

  CIPHERS.md: Explain Schannel error SEC_E_ALGORITHM_MISMATCH
  
  If the SSL backend is Schannel and the user specifies an Schannel CALG_
  that is not supported by the protocol or the server then curl returns
  CURLE_SSL_CONNECT_ERROR (35) SEC_E_ALGORITHM_MISMATCH.
  
................................................................................
  
  - Add an additional check for LDAP that also checks for OpenSSL since
    on AIX those libraries may be required to link LDAP properly.
  
  Fixes https://github.com/curl/curl/issues/3595
  Closes https://github.com/curl/curl/pull/3596

- [Giorgos Oikonomou brought this change]

  schannel: support CALG_ECDH_EPHEM algorithm
  
  Add support for Ephemeral elliptic curve Diffie-Hellman key exchange
  algorithm option when selecting ciphers. This became available on the
  Win10 SDK.
  
................................................................................
- NTLM: fix size check condition for type2 received data
  
  Bug: https://curl.haxx.se/docs/CVE-2018-16890.html
  Reported-by: Wenxiang Qian
  CVE-2018-16890

Marcel Raad (1 Feb 2019)
- [Giorgos Oikonomou brought this change]

  spnego_sspi: add support for channel binding
  
  Attempt to add support for Secure Channel binding when negotiate
  authentication is used. The problem to solve is that by default IIS
  accepts channel binding and curl doesn't utilise them. The result was a
  401 response. Scope affects only the Schannel(winssl)-SSPI combination.
................................................................................
  NDK17. Actually they only exist in two NDK versions (15 and 16). With
  overloadable, the first condition tried will succeed. Results in wrong
  detection result.
  
  Closes #3484

Marcel Raad (19 Jan 2019)
- [Giorgos Oikonomou brought this change]

  ntlm_sspi: add support for channel binding
  
  Windows extended potection (aka ssl channel binding) is required
  to login to ntlm IIS endpoint, otherwise the server returns 401
  responses.
  
................................................................................
  
  Curl_ftp_parselist: avoid unsigned integer overflows
  
  The overflow has no real world impact, just avoid it for "best
  practice".
  
  Closes #3225
















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Changes to jni/curl/CMake/FindGSS.cmake.

58
59
60
61
62
63
64

65
66
67
68
69
70
71
..
80
81
82
83
84
85
86

87
88
89
90
91
92
93
...
106
107
108
109
110
111
112

113
114
115
116
117
118
119
120
121
122
123

124
125
126
127
128
129
130
  )

  if(_GSS_CONFIGURE_SCRIPT)
    execute_process(
          COMMAND ${_GSS_CONFIGURE_SCRIPT} "--cflags" "gssapi"
          OUTPUT_VARIABLE _GSS_CFLAGS
          RESULT_VARIABLE _GSS_CONFIGURE_FAILED

      )
    message(STATUS "CFLAGS: ${_GSS_CFLAGS}")
    if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
      # should also work in an odd case when multiple directories are given
      string(STRIP "${_GSS_CFLAGS}" _GSS_CFLAGS)
      string(REGEX REPLACE " +-I" ";" _GSS_CFLAGS "${_GSS_CFLAGS}")
      string(REGEX REPLACE " +-([^I][^ \\t;]*)" ";-\\1" _GSS_CFLAGS "${_GSS_CFLAGS}")
................................................................................
      endforeach()
    endif()

    execute_process(
        COMMAND ${_GSS_CONFIGURE_SCRIPT} "--libs" "gssapi"
        OUTPUT_VARIABLE _GSS_LIB_FLAGS
        RESULT_VARIABLE _GSS_CONFIGURE_FAILED

    )
    message(STATUS "LDFLAGS: ${_GSS_LIB_FLAGS}")

    if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
      # this script gives us libraries and link directories. Blah. We have to deal with it.
      string(STRIP "${_GSS_LIB_FLAGS}" _GSS_LIB_FLAGS)
      string(REGEX REPLACE " +-(L|l)" ";-\\1" _GSS_LIB_FLAGS "${_GSS_LIB_FLAGS}")
................................................................................
      endforeach()
    endif()

    execute_process(
        COMMAND ${_GSS_CONFIGURE_SCRIPT} "--version"
        OUTPUT_VARIABLE _GSS_VERSION
        RESULT_VARIABLE _GSS_CONFIGURE_FAILED

    )

    # older versions may not have the "--version" parameter. In this case we just don't care.
    if(_GSS_CONFIGURE_FAILED)
      set(_GSS_VERSION 0)
    endif()

    execute_process(
        COMMAND ${_GSS_CONFIGURE_SCRIPT} "--vendor"
        OUTPUT_VARIABLE _GSS_VENDOR
        RESULT_VARIABLE _GSS_CONFIGURE_FAILED

    )

    # older versions may not have the "--vendor" parameter. In this case we just don't care.
    if(_GSS_CONFIGURE_FAILED)
      set(GSS_FLAVOUR "Heimdal") # most probably, shouldn't really matter
    else()
      if(_GSS_VENDOR MATCHES ".*H|heimdal.*")







>







 







>







 







>











>







58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
..
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
...
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
  )

  if(_GSS_CONFIGURE_SCRIPT)
    execute_process(
          COMMAND ${_GSS_CONFIGURE_SCRIPT} "--cflags" "gssapi"
          OUTPUT_VARIABLE _GSS_CFLAGS
          RESULT_VARIABLE _GSS_CONFIGURE_FAILED
          OUTPUT_STRIP_TRAILING_WHITESPACE
      )
    message(STATUS "CFLAGS: ${_GSS_CFLAGS}")
    if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
      # should also work in an odd case when multiple directories are given
      string(STRIP "${_GSS_CFLAGS}" _GSS_CFLAGS)
      string(REGEX REPLACE " +-I" ";" _GSS_CFLAGS "${_GSS_CFLAGS}")
      string(REGEX REPLACE " +-([^I][^ \\t;]*)" ";-\\1" _GSS_CFLAGS "${_GSS_CFLAGS}")
................................................................................
      endforeach()
    endif()

    execute_process(
        COMMAND ${_GSS_CONFIGURE_SCRIPT} "--libs" "gssapi"
        OUTPUT_VARIABLE _GSS_LIB_FLAGS
        RESULT_VARIABLE _GSS_CONFIGURE_FAILED
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    message(STATUS "LDFLAGS: ${_GSS_LIB_FLAGS}")

    if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
      # this script gives us libraries and link directories. Blah. We have to deal with it.
      string(STRIP "${_GSS_LIB_FLAGS}" _GSS_LIB_FLAGS)
      string(REGEX REPLACE " +-(L|l)" ";-\\1" _GSS_LIB_FLAGS "${_GSS_LIB_FLAGS}")
................................................................................
      endforeach()
    endif()

    execute_process(
        COMMAND ${_GSS_CONFIGURE_SCRIPT} "--version"
        OUTPUT_VARIABLE _GSS_VERSION
        RESULT_VARIABLE _GSS_CONFIGURE_FAILED
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )

    # older versions may not have the "--version" parameter. In this case we just don't care.
    if(_GSS_CONFIGURE_FAILED)
      set(_GSS_VERSION 0)
    endif()

    execute_process(
        COMMAND ${_GSS_CONFIGURE_SCRIPT} "--vendor"
        OUTPUT_VARIABLE _GSS_VENDOR
        RESULT_VARIABLE _GSS_CONFIGURE_FAILED
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )

    # older versions may not have the "--vendor" parameter. In this case we just don't care.
    if(_GSS_CONFIGURE_FAILED)
      set(GSS_FLAVOUR "Heimdal") # most probably, shouldn't really matter
    else()
      if(_GSS_VENDOR MATCHES ".*H|heimdal.*")

Changes to jni/curl/CMakeLists.txt.

256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
...
856
857
858
859
860
861
862

863
864
865
866
867
868
869
    set(USE_THREADS_POSIX ${CMAKE_USE_PTHREADS_INIT})
    set(HAVE_PTHREAD_H ${CMAKE_USE_PTHREADS_INIT})
  endif()
  set(CURL_LIBS ${CURL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
endif()

# Check for all needed libraries
check_library_exists_concat("dl"     dlopen       HAVE_LIBDL)
check_library_exists_concat("socket" connect      HAVE_LIBSOCKET)
check_library_exists("c" gethostbyname "" NOT_NEED_LIBNSL)

# Yellowtab Zeta needs different libraries than BeOS 5.
if(BEOS)
  set(NOT_NEED_LIBNSL 1)
  check_library_exists_concat("bind" gethostbyname HAVE_LIBBIND)
................................................................................
check_symbol_exists(setvbuf       "${CURL_INCLUDES}" HAVE_SETVBUF)
check_symbol_exists(sigsetjmp     "${CURL_INCLUDES}" HAVE_SIGSETJMP)
check_symbol_exists(getpass_r     "${CURL_INCLUDES}" HAVE_GETPASS_R)
check_symbol_exists(strlcat       "${CURL_INCLUDES}" HAVE_STRLCAT)
check_symbol_exists(getpwuid      "${CURL_INCLUDES}" HAVE_GETPWUID)
check_symbol_exists(getpwuid_r    "${CURL_INCLUDES}" HAVE_GETPWUID_R)
check_symbol_exists(geteuid       "${CURL_INCLUDES}" HAVE_GETEUID)

check_symbol_exists(utime         "${CURL_INCLUDES}" HAVE_UTIME)
check_symbol_exists(gmtime_r      "${CURL_INCLUDES}" HAVE_GMTIME_R)
check_symbol_exists(localtime_r   "${CURL_INCLUDES}" HAVE_LOCALTIME_R)

check_symbol_exists(gethostbyname   "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME)
check_symbol_exists(gethostbyname_r "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME_R)








|







 







>







256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
...
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
    set(USE_THREADS_POSIX ${CMAKE_USE_PTHREADS_INIT})
    set(HAVE_PTHREAD_H ${CMAKE_USE_PTHREADS_INIT})
  endif()
  set(CURL_LIBS ${CURL_LIBS} ${CMAKE_THREAD_LIBS_INIT})
endif()

# Check for all needed libraries
check_library_exists_concat("${CMAKE_DL_LIBS}" dlopen HAVE_LIBDL)
check_library_exists_concat("socket" connect      HAVE_LIBSOCKET)
check_library_exists("c" gethostbyname "" NOT_NEED_LIBNSL)

# Yellowtab Zeta needs different libraries than BeOS 5.
if(BEOS)
  set(NOT_NEED_LIBNSL 1)
  check_library_exists_concat("bind" gethostbyname HAVE_LIBBIND)
................................................................................
check_symbol_exists(setvbuf       "${CURL_INCLUDES}" HAVE_SETVBUF)
check_symbol_exists(sigsetjmp     "${CURL_INCLUDES}" HAVE_SIGSETJMP)
check_symbol_exists(getpass_r     "${CURL_INCLUDES}" HAVE_GETPASS_R)
check_symbol_exists(strlcat       "${CURL_INCLUDES}" HAVE_STRLCAT)
check_symbol_exists(getpwuid      "${CURL_INCLUDES}" HAVE_GETPWUID)
check_symbol_exists(getpwuid_r    "${CURL_INCLUDES}" HAVE_GETPWUID_R)
check_symbol_exists(geteuid       "${CURL_INCLUDES}" HAVE_GETEUID)
check_symbol_exists(usleep        "${CURL_INCLUDES}" HAVE_USLEEP)
check_symbol_exists(utime         "${CURL_INCLUDES}" HAVE_UTIME)
check_symbol_exists(gmtime_r      "${CURL_INCLUDES}" HAVE_GMTIME_R)
check_symbol_exists(localtime_r   "${CURL_INCLUDES}" HAVE_LOCALTIME_R)

check_symbol_exists(gethostbyname   "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME)
check_symbol_exists(gethostbyname_r "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME_R)

Changes to jni/curl/Makefile.am.

149
150
151
152
153
154
155










156
157
158
159

160
161
162
163
164
165
166
 projects/Windows/VC15/src/curl.vcxproj.filters     \
 projects/generate.bat                              \
 projects/wolfssl_options.h                         \
 projects/wolfssl_override.props

WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
 winbuild/MakefileBuild.vc winbuild/Makefile.vc











EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
 RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
 scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \

 lib/libcurl.vers.in buildconf.bat scripts/coverage.sh scripts/completion.pl

CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
 $(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
 $(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
 $(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
 $(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) $(VC15_LIBVCXPROJ) $(VC15_SRCVCXPROJ)







>
>
>
>
>
>
>
>
>
>



|
>







149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
 projects/Windows/VC15/src/curl.vcxproj.filters     \
 projects/generate.bat                              \
 projects/wolfssl_options.h                         \
 projects/wolfssl_override.props

WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
 winbuild/MakefileBuild.vc winbuild/Makefile.vc

PLAN9_DIST = plan9/include/mkfile \
 plan9/include/mkfile             \
 plan9/mkfile.proto               \
 plan9/mkfile                     \
 plan9/BUILD.PLAN9.txt            \
 plan9/lib/mkfile.inc             \
 plan9/lib/mkfile                 \
 plan9/src/mkfile.inc             \
 plan9/src/mkfile

EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
 RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
 scripts/updatemanpages.pl $(CMAKE_DIST) \
 $(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST) \
 lib/libcurl.vers.in buildconf.bat scripts/coverage.sh scripts/completion.pl

CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
 $(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
 $(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
 $(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
 $(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) $(VC15_LIBVCXPROJ) $(VC15_SRCVCXPROJ)

Changes to jni/curl/Makefile.in.

432
433
434
435
436
437
438



439
440

441
442
443
444
445
446
447
...
619
620
621
622
623
624
625










626
627
628
629

630
631
632
633
634
635
636
...
652
653
654
655
656
657
658



659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
...
691
692
693
694
695
696
697
698
699
700
701


702


703
704
705
706
707
708
709
...
744
745
746
747
748
749
750

751
752
753
754
755
756
757
...
785
786
787
788
789
790
791

792
793
794
795
796
797
798
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@



USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@

USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
 projects/Windows/VC15/src/curl.vcxproj.filters     \
 projects/generate.bat                              \
 projects/wolfssl_options.h                         \
 projects/wolfssl_override.props

WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
 winbuild/MakefileBuild.vc winbuild/Makefile.vc











EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
 RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
 scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \

 lib/libcurl.vers.in buildconf.bat scripts/coverage.sh scripts/completion.pl

CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
 $(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
 $(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
 $(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
 $(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) $(VC15_LIBVCXPROJ) $(VC15_SRCVCXPROJ)
................................................................................
  vtls/sectransp.c vtls/gskit.c vtls/mbedtls.c vtls/mesalink.c

LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h                \
  vtls/nssg.h vtls/polarssl.h vtls/polarssl_threadlock.h                \
  vtls/wolfssl.h vtls/schannel.h vtls/sectransp.h vtls/gskit.h          \
  vtls/mbedtls.h vtls/mesalink.h




LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c   \
  cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c       \
  ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c         \
  getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c       \
  fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c \
  strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c  \
  http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c    \
  strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c         \
  inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c      \
  ssh.c ssh-libssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c        \
  curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c    \
  pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c        \
  openldap.c curl_gethostname.c gopher.c idn_win32.c                    \
  http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c      \
  http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c        \
  curl_multibyte.c hostcheck.c conncache.c dotdot.c                     \
  x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c      \
................................................................................
  curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h           \
  http_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h             \
  curl_sasl.h curl_multibyte.h hostcheck.h conncache.h                  \
  curl_setup_once.h multihandle.h setup-vms.h dotdot.h                  \
  x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h           \
  curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h     \
  curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h        \
  curl_get_line.h altsvc.h

LIB_RCFILES = libcurl.rc
CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES)


HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES)



# libcurl has sources that provide functions named curlx_* that aren't part of
# the official API, but we re-use the code here to avoid duplication.
CURLX_CFILES = \
  ../lib/strtoofft.c \
  ../lib/nonblock.c \
  ../lib/warnless.c \
................................................................................
  tool_metalink.c \
  tool_msgs.c \
  tool_operate.c \
  tool_operhlp.c \
  tool_panykey.c \
  tool_paramhlp.c \
  tool_parsecfg.c \

  tool_strdup.c \
  tool_setopt.c \
  tool_sleep.c \
  tool_urlglob.c \
  tool_util.c \
  tool_vms.c \
  tool_writeout.c \
................................................................................
  tool_metalink.h \
  tool_msgs.h \
  tool_operate.h \
  tool_operhlp.h \
  tool_panykey.h \
  tool_paramhlp.h \
  tool_parsecfg.h \

  tool_sdecls.h \
  tool_setopt.h \
  tool_setup.h \
  tool_sleep.h \
  tool_strdup.h \
  tool_urlglob.h \
  tool_util.h \







>
>
>


>







 







>
>
>
>
>
>
>
>
>
>



|
>







 







>
>
>









|







 







|


|
>
>
|
>
>







 







>







 







>







432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
...
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
...
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
...
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
...
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
...
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@
USE_NGHTTP3 = @USE_NGHTTP3@
USE_NGTCP2 = @USE_NGTCP2@
USE_NGTCP2_CRYPTO_OPENSSL = @USE_NGTCP2_CRYPTO_OPENSSL@
USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@
USE_QUICHE = @USE_QUICHE@
USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
 projects/Windows/VC15/src/curl.vcxproj.filters     \
 projects/generate.bat                              \
 projects/wolfssl_options.h                         \
 projects/wolfssl_override.props

WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
 winbuild/MakefileBuild.vc winbuild/Makefile.vc

PLAN9_DIST = plan9/include/mkfile \
 plan9/include/mkfile             \
 plan9/mkfile.proto               \
 plan9/mkfile                     \
 plan9/BUILD.PLAN9.txt            \
 plan9/lib/mkfile.inc             \
 plan9/lib/mkfile                 \
 plan9/src/mkfile.inc             \
 plan9/src/mkfile

EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
 RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
 scripts/updatemanpages.pl $(CMAKE_DIST) \
 $(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST) \
 lib/libcurl.vers.in buildconf.bat scripts/coverage.sh scripts/completion.pl

CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
 $(VC71_LIBVCPROJ) $(VC71_SRCVCPROJ) $(VC8_LIBVCPROJ) $(VC8_SRCVCPROJ) \
 $(VC9_LIBVCPROJ) $(VC9_SRCVCPROJ) $(VC10_LIBVCXPROJ) $(VC10_SRCVCXPROJ) \
 $(VC11_LIBVCXPROJ) $(VC11_SRCVCXPROJ) $(VC12_LIBVCXPROJ) $(VC12_SRCVCXPROJ) \
 $(VC14_LIBVCXPROJ) $(VC14_SRCVCXPROJ) $(VC15_LIBVCXPROJ) $(VC15_SRCVCXPROJ)
................................................................................
  vtls/sectransp.c vtls/gskit.c vtls/mbedtls.c vtls/mesalink.c

LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h                \
  vtls/nssg.h vtls/polarssl.h vtls/polarssl_threadlock.h                \
  vtls/wolfssl.h vtls/schannel.h vtls/sectransp.h vtls/gskit.h          \
  vtls/mbedtls.h vtls/mesalink.h

LIB_VQUIC_CFILES = vquic/ngtcp2.c vquic/quiche.c
LIB_VQUIC_HFILES = vquic/ngtcp2.h vquic/quiche.h
LIB_VSSH_CFILES = vssh/libssh2.c vssh/libssh.c
LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c   \
  cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c       \
  ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c         \
  getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c       \
  fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c \
  strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c  \
  http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c    \
  strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c         \
  inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c      \
  curl_addrinfo.c socks_gssapi.c socks_sspi.c                           \
  curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c    \
  pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c        \
  openldap.c curl_gethostname.c gopher.c idn_win32.c                    \
  http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c      \
  http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c        \
  curl_multibyte.c hostcheck.c conncache.c dotdot.c                     \
  x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c      \
................................................................................
  curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h           \
  http_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h             \
  curl_sasl.h curl_multibyte.h hostcheck.h conncache.h                  \
  curl_setup_once.h multihandle.h setup-vms.h dotdot.h                  \
  x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h           \
  curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h     \
  curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h        \
  curl_get_line.h altsvc.h quic.h

LIB_RCFILES = libcurl.rc
CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES) \
  $(LIB_VQUIC_CFILES) $(LIB_VSSH_CFILES)

HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES) \
  $(LIB_VQUIC_HFILES)


# libcurl has sources that provide functions named curlx_* that aren't part of
# the official API, but we re-use the code here to avoid duplication.
CURLX_CFILES = \
  ../lib/strtoofft.c \
  ../lib/nonblock.c \
  ../lib/warnless.c \
................................................................................
  tool_metalink.c \
  tool_msgs.c \
  tool_operate.c \
  tool_operhlp.c \
  tool_panykey.c \
  tool_paramhlp.c \
  tool_parsecfg.c \
  tool_progress.c \
  tool_strdup.c \
  tool_setopt.c \
  tool_sleep.c \
  tool_urlglob.c \
  tool_util.c \
  tool_vms.c \
  tool_writeout.c \
................................................................................
  tool_metalink.h \
  tool_msgs.h \
  tool_operate.h \
  tool_operhlp.h \
  tool_panykey.h \
  tool_paramhlp.h \
  tool_parsecfg.h \
  tool_progress.h \
  tool_sdecls.h \
  tool_setopt.h \
  tool_setup.h \
  tool_sleep.h \
  tool_strdup.h \
  tool_urlglob.h \
  tool_util.h \

Changes to jni/curl/RELEASE-NOTES.

1
2
3
4
5
6
7
8









9
10
11

















































































12
13
14
15
16
17
18
19
20











21
22
23
24
25
26
27




































































curl and libcurl 7.65.3

 Public curl releases:         184
 Command line options:         221
 curl_easy_setopt() options:   268
 Public functions in libcurl:  80
 Contributors:                 1991










This release includes the following bugfixes:

 o progress: make the progress meter appear again [1]


















































































This release includes the following known bugs:

 o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)

This release would not have looked like this without help, code, reports and
advice from friends like these:

  Chih-Hsuan Yen, Daniel Stenberg,











  (2 contributors)

        Thanks! (and sorry if I forgot to mention someone)

References to bug reports and discussions on issues:

 [1] = https://curl.haxx.se/bug/?i=4122




































































|

|
|
|
|


>
>
>
>
>
>
>
>
>


<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








<
>
>
>
>
>
>
>
>
>
>
>
|





|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108

109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
curl and libcurl 7.66.0

 Public curl releases:         185
 Command line options:         225
 curl_easy_setopt() options:   269
 Public functions in libcurl:  81
 Contributors:                 1991

This release includes the following changes:

 o CURLINFO_RETRY_AFTER: parse the Retry-After header value [35]
 o HTTP3: initial (experimental still not working) support [5]
 o curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool [27]
 o curl: support parallel transfers with -Z [4]
 o curl_multi_poll: a sister to curl_multi_wait() that waits more [28]
 o sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID [27]

This release includes the following bugfixes:


 o CVE-2019-5481: FTP-KRB double-free [64]
 o CVE-2019-5482: TFTP small blocksize heap buffer overflow [65]
 o CI: remove duplicate configure flag for LGTM.com
 o CMake: remove needless newlines at end of gss variables
 o CMake: use platform dependent name for dlopen() library [62]
 o CURLINFO docs: mention that in redirects times are added [55]
 o CURLOPT_ALTSVC.3: use a "" file name to not load from a file
 o CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED
 o CURLOPT_HEADERFUNCTION.3: clarify [54]
 o CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly [33]
 o CURLOPT_READFUNCTION.3: provide inline example
 o CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2 [51]
 o Curl_addr2string: take an addrlen argument too [61]
 o Curl_fillreadbuffer: avoid double-free trailer buf on error [66]
 o HTTP: use chunked Transfer-Encoding for HTTP_POST if size unknown [10]
 o alt-svc: add protocol version selection masking [31]
 o alt-svc: fix removal of expired cache entry [30]
 o alt-svc: make it use h3-22 with ngtcp2 as well
 o alt-svc: more liberal ALPN name parsing [17]
 o alt-svc: send Alt-Used: in redirected requests [32]
 o alt-svc: with quiche, use the quiche h3 alpn string [16]
 o appveyor: pass on -k to make
 o asyn-thread: create a socketpair to wait on [14]
 o build-openssl: fix build with Visual Studio 2019 [45]
 o cleanup: move functions out of url.c and make them static [58]
 o cleanup: remove the 'numsocks' argument used in many places [25]
 o configure: avoid undefined check_for_ca_bundle [37]
 o curl.h: add CURL_HTTP_VERSION_3 to the version enum
 o curl.h: fix outdated comment [23]
 o curl: cap the maximum allowed values for retry time arguments [13]
 o curl: handle a libcurl build without netrc support [63]
 o curl: make use of CURLINFO_RETRY_AFTER when retrying [35]
 o curl: remove outdated comment [24]
 o curl: use .curlrc (with a dot) on Windows [52]
 o curl: use CURLINFO_PROTOCOL to check for HTTP(s)
 o curl_global_init_mem.3: mention it was added in 7.12.0
 o curl_version: bump string buffer size to 250
 o curl_version_info.3: mentioned ALTSVC and HTTP3
 o curl_version_info: offer quic (and h3) library info [38]
 o curl_version_info: provide nghttp2 details [2]
 o defines: avoid underscore-prefixed defines [47]
 o docs/ALTSVC: remove what works and the experimental explanation [34]
 o docs/EXPERIMENTAL: explain what it means and what's experimental now
 o docs/MANUAL.md: converted to markdown from plain text [3]
 o docs/examples/curlx: fix errors [48]
 o docs: s/curl_debug/curl_dbg_debug in comments and docs [36]
 o easy: resize receive buffer on easy handle reset [9]
 o examples: Avoid reserved names in hiperfifo examples [8]
 o examples: add http3.c, altsvc.c and http3-present.c [40]
 o getenv: support up to 4K environment variable contents on windows [21]
 o http09: disable HTTP/0.9 by default in both tool and library [29]
 o http2: when marked for closure and wanted to close == OK [56]
 o http2_recv: trigger another read when the last data is returned [11]
 o http: fix use of credentials from URL when using HTTP proxy [44]
 o http_negotiate: improve handling of gss_init_sec_context() failures [18]
 o md4: Use our own MD4 when no crypto libraries are available [15]
 o multi: call detach_connection before Curl_disconnect [6]
 o netrc: make the code try ".netrc" on Windows [52]
 o nss: use TLSv1.3 as default if supported [39]
 o openssl: build warning free with boringssl [50]
 o openssl: use SSL_CTX_set_<min|max>_proto_version() when available [68]
 o plan9: add support for running on Plan 9 [22]
 o progress: reset download/uploaded counter between transfers [12]
 o readwrite_data: repair setting the TIMER_STARTTRANSFER stamp [26]
 o scp: fix directory name length used in memcpy [46]
 o smb: init *msg to NULL in smb_send_and_recv() [60]
 o smtp: check for and bail out on too short EHLO response [59]
 o source: remove names from source comments [1]
 o spnego_sspi: add typecast to fix build warning [49]
 o src/makefile: fix uncompressed hugehelp.c generation [19]
 o ssh-libssh: do not specify O_APPEND when not in append mode [7]
 o ssh: move code into vssh for SSH backends [53]
 o sspi: fix memory leaks [67]
 o tests: Replace outdated test case numbering documentation [43]
 o tftp: return error when packet is too small for options
 o timediff: make it 64 bit (if possible) even with 32 bit time_t [20]
 o travis: reduce number of torture tests in 'coverage' [42]
 o url: make use of new HTTP version if alt-svc has one [16]
 o urlapi: verify the IPv6 numerical address [69]
 o urldata: avoid 'generic', use dedicated pointers [57]
 o vauth: Use CURLE_AUTH_ERROR for auth function errors [41]

This release includes the following known bugs:

 o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)

This release would not have looked like this without help, code, reports and
advice from friends like these:


  Alessandro Ghedini, Alex Mayorga, Amit Katyal, Balazs Kovacsics,
  Brad Spencer, Brandon Dong, Carlo Marcelo Arenas Belón, Christopher Head,
  Clément Notin, codesniffer13 on github, Daniel Gustafsson, Daniel Stenberg,
  Dominik Hölzl, Eric Wong, Felix Hädicke, Gergely Nagy, Gisle Vanem,
  Igor Makarov, Ironbars13 on github, Jason Lee, Jeremy Lainé,
  Jonathan Cardoso Machado, Junho Choi, Kamil Dudka, Kyle Abramowitz,
  Kyohei Kadota, Lance Ware, Marcel Raad, Max Dymond, Michael Lee,
  Michal Čaplygin, migueljcrum on github, Mike Crowe, niallor on github,
  osabc on github, patnyb on github, Patrick Monnerat, Peter Wu, Ray Satiro,
  Rolf Eike Beer, Steve Holme, Tatsuhiro Tsujikawa, The Infinnovation team,
  Thomas Vegas, Tom van der Woerdt, Yiming Jing,
  (46 contributors)

        Thanks! (and sorry if I forgot to mention someone)

References to bug reports and discussions on issues:

 [1] = https://curl.haxx.se/bug/?i=4129
 [2] = https://curl.haxx.se/bug/?i=4121
 [3] = https://curl.haxx.se/bug/?i=4131
 [4] = https://curl.haxx.se/bug/?i=3804
 [5] = https://curl.haxx.se/bug/?i=3500
 [6] = https://curl.haxx.se/bug/?i=4144
 [7] = https://curl.haxx.se/bug/?i=4147
 [8] = https://curl.haxx.se/bug/?i=4153
 [9] = https://curl.haxx.se/bug/?i=4143
 [10] = https://curl.haxx.se/bug/?i=4138
 [11] = https://curl.haxx.se/bug/?i=4043
 [12] = https://curl.haxx.se/bug/?i=4084
 [13] = https://curl.haxx.se/bug/?i=4166
 [14] = https://curl.haxx.se/bug/?i=4157
 [15] = https://curl.haxx.se/bug/?i=3780
 [16] = https://curl.haxx.se/bug/?i=4183
 [17] = https://curl.haxx.se/bug/?i=4182
 [18] = https://curl.haxx.se/bug/?i=3992
 [19] = https://curl.haxx.se/bug/?i=4176
 [20] = https://curl.haxx.se/bug/?i=4165
 [21] = https://curl.haxx.se/bug/?i=4174
 [22] = https://curl.haxx.se/bug/?i=3701
 [23] = https://curl.haxx.se/bug/?i=4167
 [24] = https://curl.haxx.se/bug/?i=4172
 [25] = https://curl.haxx.se/bug/?i=4169
 [26] = https://curl.haxx.se/bug/?i=4136
 [27] = https://curl.haxx.se/bug/?i=3653
 [28] = https://curl.haxx.se/bug/?i=4163
 [29] = https://curl.haxx.se/bug/?i=4191
 [30] = https://curl.haxx.se/bug/?i=4192
 [31] = https://curl.haxx.se/bug/?i=4201
 [32] = https://curl.haxx.se/bug/?i=4199
 [33] = https://curl.haxx.se/bug/?i=4197
 [34] = https://curl.haxx.se/bug/?i=4198
 [35] = https://curl.haxx.se/bug/?i=3794
 [36] = https://curl.haxx.se/bug/?i=3794
 [37] = https://curl.haxx.se/bug/?i=4213
 [38] = https://curl.haxx.se/bug/?i=4216
 [39] = https://curl.haxx.se/bug/?i=4187
 [40] = https://curl.haxx.se/bug/?i=4221
 [41] = https://curl.haxx.se/bug/?i=3848
 [42] = https://curl.haxx.se/bug/?i=4223
 [43] = https://curl.haxx.se/bug/?i=4227
 [44] = https://curl.haxx.se/bug/?i=4228
 [45] = https://curl.haxx.se/bug/?i=4188
 [46] = https://curl.haxx.se/bug/?i=4258
 [47] = https://curl.haxx.se/bug/?i=4254
 [48] = https://curl.haxx.se/bug/?i=4248
 [49] = https://curl.haxx.se/bug/?i=4245
 [50] = https://curl.haxx.se/bug/?i=4244
 [51] = https://curl.haxx.se/bug/?i=4241
 [52] = https://curl.haxx.se/bug/?i=4230
 [53] = https://curl.haxx.se/bug/?i=4235
 [54] = https://curl.haxx.se/bug/?i=4273
 [55] = https://curl.haxx.se/bug/?i=4250
 [56] = https://curl.haxx.se/bug/?i=4267
 [57] = https://curl.haxx.se/bug/?i=4290
 [58] = https://curl.haxx.se/bug/?i=4289
 [59] = https://curl.haxx.se/bug/?i=4287
 [60] = https://curl.haxx.se/bug/?i=4286
 [61] = https://curl.haxx.se/bug/?i=4283
 [62] = https://curl.haxx.se/bug/?i=4279
 [63] = https://curl.haxx.se/bug/?i=4302
 [64] = https://curl.haxx.se/docs/CVE-2019-5481.html
 [65] = https://curl.haxx.se/docs/CVE-2019-5482.html
 [66] = https://curl.haxx.se/bug/?i=4307
 [67] = https://curl.haxx.se/bug/?i=4299
 [68] = https://curl.haxx.se/bug/?i=4304
 [69] = https://curl.haxx.se/bug/?i=4315

Changes to jni/curl/configure.

901
902
903
904
905
906
907




908
909
910
911
912
913
914
....
1184
1185
1186
1187
1188
1189
1190



1191
1192
1193
1194
1195
1196
1197
....
2063
2064
2065
2066
2067
2068
2069






2070
2071
2072
2073
2074
2075
2076
.....
25375
25376
25377
25378
25379
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
.....
27624
27625
27626
27627
27628
27629
27630





































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































27631
27632
27633
27634
27635
27636
27637
.....
40304
40305
40306
40307
40308
40309
40310

40311
40312
40313
40314
40315
40316
40317
.....
41526
41527
41528
41529
41530
41531
41532
41533
41534
41535
41536
41537
41538
41539
41540
41541
41542
41543
41544
41545
41546
41547
41548
41549
41550
41551
41552
41553
41554
.....
41671
41672
41673
41674
41675
41676
41677




41678
41679
41680
41681
41682
41683
41684
.....
44651
44652
44653
44654
44655
44656
44657

44658
44659
44660
44661
44662
44663
44664
.....
44692
44693
44694
44695
44696
44697
44698

44699
44700
44701
44702
44703
44704
44705
44706
USE_MANUAL_TRUE
MANOPT
NROFF
PERL
IPV6_ENABLED
FISH_FUNCTIONS_DIR
ZSH_FUNCTIONS_DIR




USE_NGHTTP2
IDN_ENABLED
CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_FALSE
CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_TRUE
CURL_LT_SHLIB_VERSIONED_FLAVOUR
USE_LIBRTMP
USE_LIBSSH
................................................................................
with_libssh2
with_libssh
with_librtmp
enable_versioned_symbols
with_winidn
with_libidn2
with_nghttp2



with_zsh_functions_dir
with_fish_functions_dir
enable_threaded_resolver
enable_pthreads
enable_verbose
enable_sspi
enable_crypto_auth
................................................................................
  --without-librtmp       disable LIBRTMP
  --with-winidn=PATH      enable Windows native IDN
  --without-winidn        disable Windows native IDN
  --with-libidn2=PATH     Enable libidn2 usage
  --without-libidn2       Disable libidn2 usage
  --with-nghttp2=PATH     Enable nghttp2 usage
  --without-nghttp2       Disable nghttp2 usage






  --with-zsh-functions-dir=PATH
                          Install zsh completions to PATH
  --without-zsh-functions-dir
                          Do not install zsh completions
  --with-fish-functions-dir=PATH
                          Install fish completions to PATH
  --without-fish-functions-dir
................................................................................
cat >>confdefs.h <<_ACEOF
#define CURL_DEFAULT_SSL_BACKEND "$DEFAULT_SSL_BACKEND"
_ACEOF

fi


if test "$check_for_ca_bundle" -gt 0; then


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking default CA cert bundle/path" >&5
$as_echo_n "checking default CA cert bundle/path... " >&6; }


# Check whether --with-ca-bundle was given.
................................................................................
        if test X"$want_h2" != Xdefault; then
                  as_fn_error $? "--with-nghttp2 was specified but could not find libnghttp2 pkg-config file." "$LINENO" 5
    fi
  fi

fi







































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































OPT_ZSH_FPATH=default

# Check whether --with-zsh-functions-dir was given.
if test "${with_zsh_functions_dir+set}" = set; then :
  withval=$with_zsh_functions_dir; OPT_ZSH_FPATH=$withval
fi
................................................................................
  gettimeofday \
  if_nametoindex \
  mach_absolute_time \
  pipe \
  setlocale \
  setmode \
  setrlimit \

  utime \
  utimes

do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
................................................................................
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
       ;;
  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
       curl_altsvc_msg="enabled";
       enable_altsvc="yes"
       experimental="alt-svc"
       ;;
  esac
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

fi


if test "$enable_altsvc" = "yes"; then

$as_echo "#define USE_ALTSVC 1" >>confdefs.h

  experimental="alt-svc"
fi


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether hiding of library internal symbols will actually happen" >&5
$as_echo_n "checking whether hiding of library internal symbols will actually happen... " >&6; }
  CFLAG_CURL_SYMBOL_HIDING=""
  doing_symbol_hiding="no"
................................................................................
if test "x$USE_TLS_SRP" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
fi

if test "x$USE_NGHTTP2" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
fi





if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
................................................................................
  LDAPS:            ${curl_ldaps_msg}
  RTSP:             ${curl_rtsp_msg}
  RTMP:             ${curl_rtmp_msg}
  Metalink:         ${curl_mtlnk_msg}
  PSL:              ${curl_psl_msg}
  Alt-svc:          ${curl_altsvc_msg}
  HTTP2:            ${curl_h2_msg}

  Protocols:        ${SUPPORT_PROTOCOLS}
  Features:         ${SUPPORT_FEATURES}
" >&5
$as_echo "$as_me: Configured to build curl/libcurl:

  Host setup:       ${host}
  Install prefix:   ${prefix}
................................................................................
  LDAPS:            ${curl_ldaps_msg}
  RTSP:             ${curl_rtsp_msg}
  RTMP:             ${curl_rtmp_msg}
  Metalink:         ${curl_mtlnk_msg}
  PSL:              ${curl_psl_msg}
  Alt-svc:          ${curl_altsvc_msg}
  HTTP2:            ${curl_h2_msg}

  Protocols:        ${SUPPORT_PROTOCOLS}
  Features:         ${SUPPORT_FEATURES}
" >&6;}
if test -n "$experimental"; then
 cat >&2 << _EOF
  WARNING: $experimental is enabled but marked EXPERIMENTAL. Use with caution!
_EOF
fi







>
>
>
>







 







>
>
>







 







>
>
>
>
>
>







 







|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







>







 







<













|







 







>
>
>
>







 







>







 







>





|


901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
....
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
....
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
.....
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
25401
25402
.....
27637
27638
27639
27640
27641
27642
27643
27644
27645
27646
27647
27648
27649
27650
27651
27652
27653
27654
27655
27656
27657
27658
27659
27660
27661
27662
27663
27664
27665
27666
27667
27668
27669
27670
27671
27672
27673
27674
27675
27676
27677
27678
27679
27680
27681
27682
27683
27684
27685
27686
27687
27688
27689
27690
27691
27692
27693
27694
27695
27696
27697
27698
27699
27700
27701
27702
27703
27704
27705
27706
27707
27708
27709
27710
27711
27712
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728
27729
27730
27731
27732
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
27788
27789
27790
27791
27792
27793
27794
27795
27796
27797
27798
27799
27800
27801
27802
27803
27804
27805
27806
27807
27808
27809
27810
27811
27812
27813
27814
27815
27816
27817
27818
27819
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
27882
27883
27884
27885
27886
27887
27888
27889
27890
27891
27892
27893
27894
27895
27896
27897
27898
27899
27900
27901
27902
27903
27904
27905
27906
27907
27908
27909
27910
27911
27912
27913
27914
27915
27916
27917
27918
27919
27920
27921
27922
27923
27924
27925
27926
27927
27928
27929
27930
27931
27932
27933
27934
27935
27936
27937
27938
27939
27940
27941
27942
27943
27944
27945
27946
27947
27948
27949
27950
27951
27952
27953
27954
27955
27956
27957
27958
27959
27960
27961
27962
27963
27964
27965
27966
27967
27968
27969
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980
27981
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999
28000
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
28023
28024
28025
28026
28027
28028
28029
28030
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
28070
28071
28072
28073
28074
28075
28076
28077
28078
28079
28080
28081
28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150
28151
28152
28153
28154
28155
28156
28157
28158
28159
28160
28161
28162
28163
28164
28165
28166
28167
28168
28169
28170
28171
28172
28173
28174
28175
28176
28177
28178
28179
28180
28181
28182
28183
28184
28185
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
28241
28242
28243
28244
28245
28246
28247
28248
28249
28250
28251
28252
28253
28254
28255
28256
28257
28258
28259
28260
28261
28262
28263
28264
28265
28266
28267
28268
28269
28270
28271
28272
28273
28274
28275
28276
28277
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349
28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366
28367
28368
28369
28370
28371
28372
28373
28374
28375
28376
28377
28378
28379
28380
28381
28382
28383
28384
28385
28386
28387
28388
28389
28390
28391
28392
28393
28394
28395
28396
28397
28398
28399
28400
28401
28402
28403
28404
28405
28406
28407
28408
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
28426
28427
28428
28429
28430
28431
28432
28433
28434
28435
28436
28437
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501
28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645
28646
28647
28648
28649
28650
28651
28652
28653
28654
28655
28656
28657
28658
28659
28660
28661
28662
28663
28664
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
28701
28702
28703
28704
28705
28706
28707
28708
28709
28710
28711
.....
41378
41379
41380
41381
41382
41383
41384
41385
41386
41387
41388
41389
41390
41391
41392
.....
42601
42602
42603
42604
42605
42606
42607

42608
42609
42610
42611
42612
42613
42614
42615
42616
42617
42618
42619
42620
42621
42622
42623
42624
42625
42626
42627
42628
.....
42745
42746
42747
42748
42749
42750
42751
42752
42753
42754
42755
42756
42757
42758
42759
42760
42761
42762
.....
45729
45730
45731
45732
45733
45734
45735
45736
45737
45738
45739
45740
45741
45742
45743
.....
45771
45772
45773
45774
45775
45776
45777
45778
45779
45780
45781
45782
45783
45784
45785
45786
USE_MANUAL_TRUE
MANOPT
NROFF
PERL
IPV6_ENABLED
FISH_FUNCTIONS_DIR
ZSH_FUNCTIONS_DIR
USE_QUICHE
USE_NGHTTP3
USE_NGTCP2_CRYPTO_OPENSSL
USE_NGTCP2
USE_NGHTTP2
IDN_ENABLED
CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_FALSE
CURL_LT_SHLIB_USE_VERSIONED_SYMBOLS_TRUE
CURL_LT_SHLIB_VERSIONED_FLAVOUR
USE_LIBRTMP
USE_LIBSSH
................................................................................
with_libssh2
with_libssh
with_librtmp
enable_versioned_symbols
with_winidn
with_libidn2
with_nghttp2
with_ngtcp2
with_nghttp3
with_quiche
with_zsh_functions_dir
with_fish_functions_dir
enable_threaded_resolver
enable_pthreads
enable_verbose
enable_sspi
enable_crypto_auth
................................................................................
  --without-librtmp       disable LIBRTMP
  --with-winidn=PATH      enable Windows native IDN
  --without-winidn        disable Windows native IDN
  --with-libidn2=PATH     Enable libidn2 usage
  --without-libidn2       Disable libidn2 usage
  --with-nghttp2=PATH     Enable nghttp2 usage
  --without-nghttp2       Disable nghttp2 usage
  --with-ngtcp2=PATH      Enable ngtcp2 usage
  --without-ngtcp2        Disable ngtcp2 usage
  --with-nghttp3=PATH     Enable nghttp3 usage
  --without-nghttp3       Disable nghttp3 usage
  --with-quiche=PATH      Enable quiche usage
  --without-quiche        Disable quiche usage
  --with-zsh-functions-dir=PATH
                          Install zsh completions to PATH
  --without-zsh-functions-dir
                          Do not install zsh completions
  --with-fish-functions-dir=PATH
                          Install fish completions to PATH
  --without-fish-functions-dir
................................................................................
cat >>confdefs.h <<_ACEOF
#define CURL_DEFAULT_SSL_BACKEND "$DEFAULT_SSL_BACKEND"
_ACEOF

fi


if test -n "$check_for_ca_bundle"; then


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking default CA cert bundle/path" >&5
$as_echo_n "checking default CA cert bundle/path... " >&6; }


# Check whether --with-ca-bundle was given.
................................................................................
        if test X"$want_h2" != Xdefault; then
                  as_fn_error $? "--with-nghttp2 was specified but could not find libnghttp2 pkg-config file." "$LINENO" 5
    fi
  fi

fi


OPT_TCP2="yes"
curl_h3_msg="disabled (--with-ngtcp2, --with-quiche)"

if test "x$disable_http" = "xyes"; then
  # without HTTP, ngtcp2 is no use
  OPT_TCP2="no"
fi


# Check whether --with-ngtcp2 was given.
if test "${with_ngtcp2+set}" = set; then :
  withval=$with_ngtcp2; OPT_TCP2=$withval
fi

case "$OPT_TCP2" in
  no)
        want_tcp2="no"
    ;;
  yes)
        want_tcp2="default"
    want_tcp2_path=""
    ;;
  *)
        want_tcp2="yes"
    want_tcp2_path="$withval/lib/pkgconfig"
    ;;
esac

curl_tcp2_msg="disabled (--with-ngtcp2)"
if test X"$want_tcp2" != Xno; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"


    if test -n "$PKG_CONFIG"; then
      PKGCONFIG="$PKG_CONFIG"
    else
      if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
$as_echo "$PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_path_PKGCONFIG"; then
  ac_pt_PKGCONFIG=$PKGCONFIG
  # Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $ac_pt_PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
$as_echo "$ac_pt_PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_pt_PKGCONFIG" = x; then
    PKGCONFIG="no"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    PKGCONFIG=$ac_pt_PKGCONFIG
  fi
else
  PKGCONFIG="$ac_cv_path_PKGCONFIG"
fi

    fi

    if test "x$PKGCONFIG" != "xno"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libngtcp2 options with pkg-config" >&5
$as_echo_n "checking for libngtcp2 options with pkg-config... " >&6; }
            itexists=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi
         $PKGCONFIG --exists libngtcp2 >/dev/null 2>&1 && echo 1`

      if test -z "$itexists"; then
                        PKGCONFIG="no"
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      else
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
$as_echo "found" >&6; }
      fi
    fi


  if test "$PKGCONFIG" != "no" ; then
    LIB_TCP2=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-l libngtcp2`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_TCP2" >&5
$as_echo "$as_me: -l is $LIB_TCP2" >&6;}

    CPP_TCP2=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi
       $PKGCONFIG --cflags-only-I libngtcp2`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_TCP2" >&5
$as_echo "$as_me: -I is $CPP_TCP2" >&6;}

    LD_TCP2=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-L libngtcp2`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_TCP2" >&5
$as_echo "$as_me: -L is $LD_TCP2" >&6;}

    LDFLAGS="$LDFLAGS $LD_TCP2"
    CPPFLAGS="$CPPFLAGS $CPP_TCP2"
    LIBS="$LIB_TCP2 $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_TCP2=`echo $LD_TCP2 | $SED -e 's/-L//'`
    fi
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_conn_client_new in -lngtcp2" >&5
$as_echo_n "checking for ngtcp2_conn_client_new in -lngtcp2... " >&6; }
if ${ac_cv_lib_ngtcp2_ngtcp2_conn_client_new+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#ifdef __cplusplus
extern "C"
#endif
char ngtcp2_conn_client_new ();
int main (void)
{
return ngtcp2_conn_client_new ();
 ;
 return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ngtcp2_ngtcp2_conn_client_new=yes
else
  ac_cv_lib_ngtcp2_ngtcp2_conn_client_new=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_ngtcp2_conn_client_new" >&5
$as_echo "$ac_cv_lib_ngtcp2_ngtcp2_conn_client_new" >&6; }
if test "x$ac_cv_lib_ngtcp2_ngtcp2_conn_client_new" = xyes; then :

       for ac_header in ngtcp2/ngtcp2.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "ngtcp2/ngtcp2.h" "ac_cv_header_ngtcp2_ngtcp2_h" "$ac_includes_default"
if test "x$ac_cv_header_ngtcp2_ngtcp2_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_NGTCP2_NGTCP2_H 1
_ACEOF
 NGTCP2_ENABLED=1

$as_echo "#define USE_NGTCP2 1" >>confdefs.h

          USE_NGTCP2=1

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_TCP2"
          export CURL_LIBRARY_PATH
          { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_TCP2 to CURL_LIBRARY_PATH" >&5
$as_echo "$as_me: Added $DIR_TCP2 to CURL_LIBRARY_PATH" >&6;}

fi

done


else
          LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS

fi


  else
        if test X"$want_tcp2" != Xdefault; then
                  as_fn_error $? "--with-ngtcp2 was specified but could not find ngtcp2 pkg-config file." "$LINENO" 5
    fi
  fi

fi

if test "x$NGTCP2_ENABLED" = "x1"; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"


    if test -n "$PKG_CONFIG"; then
      PKGCONFIG="$PKG_CONFIG"
    else
      if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
$as_echo "$PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_path_PKGCONFIG"; then
  ac_pt_PKGCONFIG=$PKGCONFIG
  # Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $ac_pt_PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
$as_echo "$ac_pt_PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_pt_PKGCONFIG" = x; then
    PKGCONFIG="no"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    PKGCONFIG=$ac_pt_PKGCONFIG
  fi
else
  PKGCONFIG="$ac_cv_path_PKGCONFIG"
fi

    fi

    if test "x$PKGCONFIG" != "xno"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libngtcp2_crypto_openssl options with pkg-config" >&5
$as_echo_n "checking for libngtcp2_crypto_openssl options with pkg-config... " >&6; }
            itexists=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi
         $PKGCONFIG --exists libngtcp2_crypto_openssl >/dev/null 2>&1 && echo 1`

      if test -z "$itexists"; then
                        PKGCONFIG="no"
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      else
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
$as_echo "found" >&6; }
      fi
    fi


  if test "$PKGCONFIG" != "no" ; then
    LIB_NGTCP2_CRYPTO_OPENSSL=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-l libngtcp2_crypto_openssl`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGTCP2_CRYPTO_OPENSSL" >&5
$as_echo "$as_me: -l is $LIB_NGTCP2_CRYPTO_OPENSSL" >&6;}

    CPP_NGTCP2_CRYPTO_OPENSSL=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi
       $PKGCONFIG --cflags-only-I libngtcp2_crypto_openssl`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGTCP2_CRYPTO_OPENSSL" >&5
$as_echo "$as_me: -I is $CPP_NGTCP2_CRYPTO_OPENSSL" >&6;}

    LD_NGTCP2_CRYPTO_OPENSSL=`
    if test -n "$want_tcp2_path"; then
      PKG_CONFIG_LIBDIR="$want_tcp2_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-L libngtcp2_crypto_openssl`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_NGTCP2_CRYPTO_OPENSSL" >&5
$as_echo "$as_me: -L is $LD_NGTCP2_CRYPTO_OPENSSL" >&6;}

    LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_OPENSSL"
    CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_OPENSSL"
    LIBS="$LIB_NGTCP2_CRYPTO_OPENSSL $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_NGTCP2_CRYPTO_OPENSSL=`echo $LD_NGTCP2_CRYPTO_OPENSSL | $SED -e 's/-L//'`
    fi
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_openssl" >&5
$as_echo_n "checking for ngtcp2_crypto_ctx_initial in -lngtcp2_crypto_openssl... " >&6; }
if ${ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lngtcp2_crypto_openssl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#ifdef __cplusplus
extern "C"
#endif
char ngtcp2_crypto_ctx_initial ();
int main (void)
{
return ngtcp2_crypto_ctx_initial ();
 ;
 return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial=yes
else
  ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" >&5
$as_echo "$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" >&6; }
if test "x$ac_cv_lib_ngtcp2_crypto_openssl_ngtcp2_crypto_ctx_initial" = xyes; then :

       for ac_header in ngtcp2/ngtcp2_crypto.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "ngtcp2/ngtcp2_crypto.h" "ac_cv_header_ngtcp2_ngtcp2_crypto_h" "$ac_includes_default"
if test "x$ac_cv_header_ngtcp2_ngtcp2_crypto_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_NGTCP2_NGTCP2_CRYPTO_H 1
_ACEOF
 NGTCP2_ENABLED=1

$as_echo "#define USE_NGTCP2_CRYPTO_OPENSSL 1" >>confdefs.h

          USE_NGTCP2_CRYPTO_OPENSSL=1

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_OPENSSL"
          export CURL_LIBRARY_PATH
          { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH" >&5
$as_echo "$as_me: Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH" >&6;}

fi

done


else
          LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS

fi


  else
        if test X"$want_tcp2" != Xdefault; then
                  as_fn_error $? "--with-ngtcp2 was specified but could not find ngtcp2_crypto_openssl pkg-config file." "$LINENO" 5
    fi
  fi
fi


OPT_NGHTTP3="yes"

if test "x$NGTCP2_ENABLED" = "x"; then
  # without ngtcp2, nghttp3 is of no use for us
  OPT_NGHTTP3="no"
fi


# Check whether --with-nghttp3 was given.
if test "${with_nghttp3+set}" = set; then :
  withval=$with_nghttp3; OPT_NGHTTP3=$withval
fi

case "$OPT_NGHTTP3" in
  no)
        want_nghttp3="no"
    ;;
  yes)
        want_nghttp3="default"
    want_nghttp3_path=""
    ;;
  *)
        want_nghttp3="yes"
    want_nghttp3_path="$withval/lib/pkgconfig"
    ;;
esac

curl_http3_msg="disabled (--with-nghttp3)"
if test X"$want_nghttp3" != Xno; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"


    if test -n "$PKG_CONFIG"; then
      PKGCONFIG="$PKG_CONFIG"
    else
      if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
$as_echo "$PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_path_PKGCONFIG"; then
  ac_pt_PKGCONFIG=$PKGCONFIG
  # Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $ac_pt_PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
$as_echo "$ac_pt_PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_pt_PKGCONFIG" = x; then
    PKGCONFIG="no"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    PKGCONFIG=$ac_pt_PKGCONFIG
  fi
else
  PKGCONFIG="$ac_cv_path_PKGCONFIG"
fi

    fi

    if test "x$PKGCONFIG" != "xno"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnghttp3 options with pkg-config" >&5
$as_echo_n "checking for libnghttp3 options with pkg-config... " >&6; }
            itexists=`
    if test -n "$want_nghttp3_path"; then
      PKG_CONFIG_LIBDIR="$want_nghttp3_path"
      export PKG_CONFIG_LIBDIR
    fi
         $PKGCONFIG --exists libnghttp3 >/dev/null 2>&1 && echo 1`

      if test -z "$itexists"; then
                        PKGCONFIG="no"
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      else
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
$as_echo "found" >&6; }
      fi
    fi


  if test "$PKGCONFIG" != "no" ; then
    LIB_NGHTTP3=`
    if test -n "$want_nghttp3_path"; then
      PKG_CONFIG_LIBDIR="$want_nghttp3_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-l libnghttp3`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_NGHTTP3" >&5
$as_echo "$as_me: -l is $LIB_NGHTTP3" >&6;}

    CPP_NGHTTP3=`
    if test -n "$want_nghttp3_path"; then
      PKG_CONFIG_LIBDIR="$want_nghttp3_path"
      export PKG_CONFIG_LIBDIR
    fi
       $PKGCONFIG --cflags-only-I libnghttp3`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_NGHTTP3" >&5
$as_echo "$as_me: -I is $CPP_NGHTTP3" >&6;}

    LD_NGHTTP3=`
    if test -n "$want_nghttp3_path"; then
      PKG_CONFIG_LIBDIR="$want_nghttp3_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-L libnghttp3`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_NGHTTP3" >&5
$as_echo "$as_me: -L is $LD_NGHTTP3" >&6;}

    LDFLAGS="$LDFLAGS $LD_NGHTTP3"
    CPPFLAGS="$CPPFLAGS $CPP_NGHTTP3"
    LIBS="$LIB_NGHTTP3 $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_NGHTTP3=`echo $LD_NGHTTP3 | $SED -e 's/-L//'`
    fi
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nghttp3_conn_client_new in -lnghttp3" >&5
$as_echo_n "checking for nghttp3_conn_client_new in -lnghttp3... " >&6; }
if ${ac_cv_lib_nghttp3_nghttp3_conn_client_new+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lnghttp3  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#ifdef __cplusplus
extern "C"
#endif
char nghttp3_conn_client_new ();
int main (void)
{
return nghttp3_conn_client_new ();
 ;
 return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_nghttp3_nghttp3_conn_client_new=yes
else
  ac_cv_lib_nghttp3_nghttp3_conn_client_new=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nghttp3_nghttp3_conn_client_new" >&5
$as_echo "$ac_cv_lib_nghttp3_nghttp3_conn_client_new" >&6; }
if test "x$ac_cv_lib_nghttp3_nghttp3_conn_client_new" = xyes; then :

       for ac_header in nghttp3/nghttp3.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "nghttp3/nghttp3.h" "ac_cv_header_nghttp3_nghttp3_h" "$ac_includes_default"
if test "x$ac_cv_header_nghttp3_nghttp3_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_NGHTTP3_NGHTTP3_H 1
_ACEOF
 curl_h3_msg="enabled (ngtcp2 + nghttp3)"
          NGHTTP3_ENABLED=1

$as_echo "#define USE_NGHTTP3 1" >>confdefs.h

          USE_NGHTTP3=1

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
          export CURL_LIBRARY_PATH
          { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH" >&5
$as_echo "$as_me: Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH" >&6;}
          experimental="$experimental HTTP3"

fi

done


else
          LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS

fi


  else
        if test X"$want_nghttp3" != Xdefault; then
                  as_fn_error $? "--with-nghttp3 was specified but could not find nghttp3 pkg-config file." "$LINENO" 5
    fi
  fi

fi


OPT_QUICHE="yes"

if test "x$disable_http" = "xyes" -o "x$USE_NGTCP" = "x1"; then
  # without HTTP or with ngtcp2, quiche is no use
  OPT_QUICHE="no"
fi


# Check whether --with-quiche was given.
if test "${with_quiche+set}" = set; then :
  withval=$with_quiche; OPT_QUICHE=$withval
fi

case "$OPT_QUICHE" in
  no)
        want_quiche="no"
    ;;
  yes)
        want_quiche="default"
    want_quiche_path=""
    ;;
  *)
        want_quiche="yes"
    want_quiche_path="$withval"
    ;;
esac

if test X"$want_quiche" != Xno; then
    CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"


    if test -n "$PKG_CONFIG"; then
      PKGCONFIG="$PKG_CONFIG"
    else
      if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
PKGCONFIG=$ac_cv_path_PKGCONFIG
if test -n "$PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
$as_echo "$PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_path_PKGCONFIG"; then
  ac_pt_PKGCONFIG=$PKGCONFIG
  # Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_ac_pt_PKGCONFIG+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $ac_pt_PKGCONFIG in
  [\\/]* | ?:[\\/]*)
  ac_cv_path_ac_pt_PKGCONFIG="$ac_pt_PKGCONFIG" # Let the user override the test with a path.
  ;;
  *)
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_dummy="$PATH:/usr/bin:/usr/local/bin"
for as_dir in $as_dummy
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_path_ac_pt_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext"
    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
    break 2
  fi
done
  done
IFS=$as_save_IFS

  ;;
esac
fi
ac_pt_PKGCONFIG=$ac_cv_path_ac_pt_PKGCONFIG
if test -n "$ac_pt_PKGCONFIG"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKGCONFIG" >&5
$as_echo "$ac_pt_PKGCONFIG" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_pt_PKGCONFIG" = x; then
    PKGCONFIG="no"
  else
    case $cross_compiling:$ac_tool_warned in
yes:)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
    PKGCONFIG=$ac_pt_PKGCONFIG
  fi
else
  PKGCONFIG="$ac_cv_path_PKGCONFIG"
fi

    fi

    if test "x$PKGCONFIG" != "xno"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quiche options with pkg-config" >&5
$as_echo_n "checking for quiche options with pkg-config... " >&6; }
            itexists=`
    if test -n "$want_quiche_path"; then
      PKG_CONFIG_LIBDIR="$want_quiche_path"
      export PKG_CONFIG_LIBDIR
    fi
         $PKGCONFIG --exists quiche >/dev/null 2>&1 && echo 1`

      if test -z "$itexists"; then
                        PKGCONFIG="no"
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      else
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
$as_echo "found" >&6; }
      fi
    fi


  if test "$PKGCONFIG" != "no" ; then
    LIB_QUICHE=`
    if test -n "$want_quiche_path"; then
      PKG_CONFIG_LIBDIR="$want_quiche_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-l quiche`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -l is $LIB_QUICHE" >&5
$as_echo "$as_me: -l is $LIB_QUICHE" >&6;}

    CPP_QUICHE=`
    if test -n "$want_quiche_path"; then
      PKG_CONFIG_LIBDIR="$want_quiche_path"
      export PKG_CONFIG_LIBDIR
    fi
       $PKGCONFIG --cflags-only-I quiche`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -I is $CPP_QUICHE" >&5
$as_echo "$as_me: -I is $CPP_QUICHE" >&6;}

    LD_QUICHE=`
    if test -n "$want_quiche_path"; then
      PKG_CONFIG_LIBDIR="$want_quiche_path"
      export PKG_CONFIG_LIBDIR
    fi

      $PKGCONFIG --libs-only-L quiche`
    { $as_echo "$as_me:${as_lineno-$LINENO}: -L is $LD_QUICHE" >&5
$as_echo "$as_me: -L is $LD_QUICHE" >&6;}

    LDFLAGS="$LDFLAGS $LD_QUICHE"
    CPPFLAGS="$CPPFLAGS $CPP_QUICHE"
    LIBS="$LIB_QUICHE $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_QUICHE=`echo $LD_QUICHE | $SED -e 's/-L//'`
    fi
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for quiche_connect in -lquiche" >&5
$as_echo_n "checking for quiche_connect in -lquiche... " >&6; }
if ${ac_cv_lib_quiche_quiche_connect+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lquiche  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#ifdef __cplusplus
extern "C"
#endif
char quiche_connect ();
int main (void)
{
return quiche_connect ();
 ;
 return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_quiche_quiche_connect=yes
else
  ac_cv_lib_quiche_quiche_connect=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_quiche_quiche_connect" >&5
$as_echo "$ac_cv_lib_quiche_quiche_connect" >&6; }
if test "x$ac_cv_lib_quiche_quiche_connect" = xyes; then :

       for ac_header in quiche.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "quiche.h" "ac_cv_header_quiche_h" "$ac_includes_default"
if test "x$ac_cv_header_quiche_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_QUICHE_H 1
_ACEOF
 experimental="$experimental HTTP3"
          { $as_echo "$as_me:${as_lineno-$LINENO}: HTTP3 support is experimental" >&5
$as_echo "$as_me: HTTP3 support is experimental" >&6;}
          curl_h3_msg="enabled (quiche)"
          QUICHE_ENABLED=1

$as_echo "#define USE_QUICHE 1" >>confdefs.h

          USE_QUICHE=1

          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_QUICHE"
          export CURL_LIBRARY_PATH
          { $as_echo "$as_me:${as_lineno-$LINENO}: Added $DIR_QUICHE to CURL_LIBRARY_PATH" >&5
$as_echo "$as_me: Added $DIR_QUICHE to CURL_LIBRARY_PATH" >&6;}
fi

done


else
          LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS

fi

  else
        if test X"$want_quiche" != Xdefault; then
                  as_fn_error $? "--with-quiche was specified but could not find quiche pkg-config file." "$LINENO" 5
    fi
  fi
fi


OPT_ZSH_FPATH=default

# Check whether --with-zsh-functions-dir was given.
if test "${with_zsh_functions_dir+set}" = set; then :
  withval=$with_zsh_functions_dir; OPT_ZSH_FPATH=$withval
fi
................................................................................
  gettimeofday \
  if_nametoindex \
  mach_absolute_time \
  pipe \
  setlocale \
  setmode \
  setrlimit \
  usleep \
  utime \
  utimes

do :
  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
................................................................................
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
       ;;
  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
       curl_altsvc_msg="enabled";
       enable_altsvc="yes"

       ;;
  esac
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

fi


if test "$enable_altsvc" = "yes"; then

$as_echo "#define USE_ALTSVC 1" >>confdefs.h

  experimental="$experimental alt-svc"
fi


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether hiding of library internal symbols will actually happen" >&5
$as_echo_n "checking whether hiding of library internal symbols will actually happen... " >&6; }
  CFLAG_CURL_SYMBOL_HIDING=""
  doing_symbol_hiding="no"
................................................................................
if test "x$USE_TLS_SRP" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
fi

if test "x$USE_NGHTTP2" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
fi

if test "x$USE_NGTCP2" = "x1" -o "x$USE_QUICHE" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP3"
fi

if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
................................................................................
  LDAPS:            ${curl_ldaps_msg}
  RTSP:             ${curl_rtsp_msg}
  RTMP:             ${curl_rtmp_msg}
  Metalink:         ${curl_mtlnk_msg}
  PSL:              ${curl_psl_msg}
  Alt-svc:          ${curl_altsvc_msg}
  HTTP2:            ${curl_h2_msg}
  HTTP3:            ${curl_h3_msg}
  Protocols:        ${SUPPORT_PROTOCOLS}
  Features:         ${SUPPORT_FEATURES}
" >&5
$as_echo "$as_me: Configured to build curl/libcurl:

  Host setup:       ${host}
  Install prefix:   ${prefix}
................................................................................
  LDAPS:            ${curl_ldaps_msg}
  RTSP:             ${curl_rtsp_msg}
  RTMP:             ${curl_rtmp_msg}
  Metalink:         ${curl_mtlnk_msg}
  PSL:              ${curl_psl_msg}
  Alt-svc:          ${curl_altsvc_msg}
  HTTP2:            ${curl_h2_msg}
  HTTP3:            ${curl_h3_msg}
  Protocols:        ${SUPPORT_PROTOCOLS}
  Features:         ${SUPPORT_FEATURES}
" >&6;}
if test -n "$experimental"; then
 cat >&2 << _EOF
  WARNING: $experimental enabled but marked EXPERIMENTAL. Use with caution!
_EOF
fi

Changes to jni/curl/configure.ac.

2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
....
3332
3333
3334
3335
3336
3337
3338





































































































































































































































































































































3339
3340
3341
3342
3343
3344
3345
....
3667
3668
3669
3670
3671
3672
3673

3674
3675
3676
3677
3678
3679
3680
....
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
....
4275
4276
4277
4278
4279
4280
4281




4282
4283
4284
4285
4286
4287
4288
....
4467
4468
4469
4470
4471
4472
4473

4474
4475
4476
4477
4478
4479
4480
4481
  AC_DEFINE_UNQUOTED([CURL_DEFAULT_SSL_BACKEND], ["$DEFAULT_SSL_BACKEND"], [Default SSL backend])
fi

dnl **********************************************************************
dnl Check for the CA bundle
dnl **********************************************************************

if test "$check_for_ca_bundle" -gt 0; then
  CURL_CHECK_CA_BUNDLE
fi

dnl **********************************************************************
dnl Check for libpsl
dnl **********************************************************************

................................................................................
      dnl To avoid link errors, we do not allow --with-nghttp2 without
      dnl a pkgconfig file
      AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.])
    fi
  fi

fi






































































































































































































































































































































dnl **********************************************************************
dnl Check for zsh completion path
dnl **********************************************************************

OPT_ZSH_FPATH=default
AC_ARG_WITH(zsh-functions-dir,
................................................................................
  gettimeofday \
  if_nametoindex \
  mach_absolute_time \
  pipe \
  setlocale \
  setmode \
  setrlimit \

  utime \
  utimes
],[
],[
  func="$ac_func"
  eval skipcheck=\$skipcheck_$func
  if test "x$skipcheck" != "xyes"; then
................................................................................
[ case "$enableval" in
  no)
       AC_MSG_RESULT(no)
       ;;
  *) AC_MSG_RESULT(yes)
       curl_altsvc_msg="enabled";
       enable_altsvc="yes"
       experimental="alt-svc"
       ;;
  esac ],
       AC_MSG_RESULT(no)
)

if test "$enable_altsvc" = "yes"; then
  AC_DEFINE(USE_ALTSVC, 1, [to enable alt-svc])
  experimental="alt-svc"
fi

dnl ************************************************************
dnl hiding of library internal symbols
dnl
CURL_CONFIGURE_SYMBOL_HIDING

................................................................................
if test "x$USE_TLS_SRP" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
fi

if test "x$USE_NGHTTP2" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
fi





if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
................................................................................
  LDAPS:            ${curl_ldaps_msg}
  RTSP:             ${curl_rtsp_msg}
  RTMP:             ${curl_rtmp_msg}
  Metalink:         ${curl_mtlnk_msg}
  PSL:              ${curl_psl_msg}
  Alt-svc:          ${curl_altsvc_msg}
  HTTP2:            ${curl_h2_msg}

  Protocols:        ${SUPPORT_PROTOCOLS}
  Features:         ${SUPPORT_FEATURES}
])
if test -n "$experimental"; then
 cat >&2 << _EOF
  WARNING: $experimental is enabled but marked EXPERIMENTAL. Use with caution!
_EOF
fi







|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







>







 







<







|







 







>
>
>
>







 







>





|


2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
....
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
....
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
....
4483
4484
4485
4486
4487
4488
4489

4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
....
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
....
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
  AC_DEFINE_UNQUOTED([CURL_DEFAULT_SSL_BACKEND], ["$DEFAULT_SSL_BACKEND"], [Default SSL backend])
fi

dnl **********************************************************************
dnl Check for the CA bundle
dnl **********************************************************************

if test -n "$check_for_ca_bundle"; then
  CURL_CHECK_CA_BUNDLE
fi

dnl **********************************************************************
dnl Check for libpsl
dnl **********************************************************************

................................................................................
      dnl To avoid link errors, we do not allow --with-nghttp2 without
      dnl a pkgconfig file
      AC_MSG_ERROR([--with-nghttp2 was specified but could not find libnghttp2 pkg-config file.])
    fi
  fi

fi

dnl **********************************************************************
dnl Check for ngtcp2 (QUIC)
dnl **********************************************************************

OPT_TCP2="yes"
curl_h3_msg="disabled (--with-ngtcp2, --with-quiche)"

if test "x$disable_http" = "xyes"; then
  # without HTTP, ngtcp2 is no use
  OPT_TCP2="no"
fi

AC_ARG_WITH(ngtcp2,
AC_HELP_STRING([--with-ngtcp2=PATH],[Enable ngtcp2 usage])
AC_HELP_STRING([--without-ngtcp2],[Disable ngtcp2 usage]),
  [OPT_TCP2=$withval])
case "$OPT_TCP2" in
  no)
    dnl --without-ngtcp2 option used
    want_tcp2="no"
    ;;
  yes)
    dnl --with-ngtcp2 option used without path
    want_tcp2="default"
    want_tcp2_path=""
    ;;
  *)
    dnl --with-ngtcp2 option used with path
    want_tcp2="yes"
    want_tcp2_path="$withval/lib/pkgconfig"
    ;;
esac

curl_tcp2_msg="disabled (--with-ngtcp2)"
if test X"$want_tcp2" != Xno; then
  dnl backup the pre-ngtcp2 variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"

  CURL_CHECK_PKGCONFIG(libngtcp2, $want_tcp2_path)

  if test "$PKGCONFIG" != "no" ; then
    LIB_TCP2=`CURL_EXPORT_PCDIR([$want_tcp2_path])
      $PKGCONFIG --libs-only-l libngtcp2`
    AC_MSG_NOTICE([-l is $LIB_TCP2])

    CPP_TCP2=`CURL_EXPORT_PCDIR([$want_tcp2_path]) dnl
      $PKGCONFIG --cflags-only-I libngtcp2`
    AC_MSG_NOTICE([-I is $CPP_TCP2])

    LD_TCP2=`CURL_EXPORT_PCDIR([$want_tcp2_path])
      $PKGCONFIG --libs-only-L libngtcp2`
    AC_MSG_NOTICE([-L is $LD_TCP2])

    LDFLAGS="$LDFLAGS $LD_TCP2"
    CPPFLAGS="$CPPFLAGS $CPP_TCP2"
    LIBS="$LIB_TCP2 $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_TCP2=`echo $LD_TCP2 | $SED -e 's/-L//'`
    fi
    AC_CHECK_LIB(ngtcp2, ngtcp2_conn_client_new,
      [
       AC_CHECK_HEADERS(ngtcp2/ngtcp2.h,
          NGTCP2_ENABLED=1
          AC_DEFINE(USE_NGTCP2, 1, [if ngtcp2 is in use])
          AC_SUBST(USE_NGTCP2, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_TCP2"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_TCP2 to CURL_LIBRARY_PATH])
       )
      ],
        dnl not found, revert back to clean variables
        LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS
    )

  else
    dnl no ngtcp2 pkg-config found, deal with it
    if test X"$want_tcp2" != Xdefault; then
      dnl To avoid link errors, we do not allow --with-ngtcp2 without
      dnl a pkgconfig file
      AC_MSG_ERROR([--with-ngtcp2 was specified but could not find ngtcp2 pkg-config file.])
    fi
  fi

fi

if test "x$NGTCP2_ENABLED" = "x1"; then
  dnl backup the pre-ngtcp2_crypto_openssl variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"

  CURL_CHECK_PKGCONFIG(libngtcp2_crypto_openssl, $want_tcp2_path)

  if test "$PKGCONFIG" != "no" ; then
    LIB_NGTCP2_CRYPTO_OPENSSL=`CURL_EXPORT_PCDIR([$want_tcp2_path])
      $PKGCONFIG --libs-only-l libngtcp2_crypto_openssl`
    AC_MSG_NOTICE([-l is $LIB_NGTCP2_CRYPTO_OPENSSL])

    CPP_NGTCP2_CRYPTO_OPENSSL=`CURL_EXPORT_PCDIR([$want_tcp2_path]) dnl
      $PKGCONFIG --cflags-only-I libngtcp2_crypto_openssl`
    AC_MSG_NOTICE([-I is $CPP_NGTCP2_CRYPTO_OPENSSL])

    LD_NGTCP2_CRYPTO_OPENSSL=`CURL_EXPORT_PCDIR([$want_tcp2_path])
      $PKGCONFIG --libs-only-L libngtcp2_crypto_openssl`
    AC_MSG_NOTICE([-L is $LD_NGTCP2_CRYPTO_OPENSSL])

    LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_OPENSSL"
    CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_OPENSSL"
    LIBS="$LIB_NGTCP2_CRYPTO_OPENSSL $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_NGTCP2_CRYPTO_OPENSSL=`echo $LD_NGTCP2_CRYPTO_OPENSSL | $SED -e 's/-L//'`
    fi
    AC_CHECK_LIB(ngtcp2_crypto_openssl, ngtcp2_crypto_ctx_initial,
      [
       AC_CHECK_HEADERS(ngtcp2/ngtcp2_crypto.h,
          NGTCP2_ENABLED=1
          AC_DEFINE(USE_NGTCP2_CRYPTO_OPENSSL, 1, [if ngtcp2_crypto_openssl is in use])
          AC_SUBST(USE_NGTCP2_CRYPTO_OPENSSL, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_OPENSSL"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH])
       )
      ],
        dnl not found, revert back to clean variables
        LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS
    )

  else
    dnl no ngtcp2_crypto_openssl pkg-config found, deal with it
    if test X"$want_tcp2" != Xdefault; then
      dnl To avoid link errors, we do not allow --with-ngtcp2 without
      dnl a pkgconfig file
      AC_MSG_ERROR([--with-ngtcp2 was specified but could not find ngtcp2_crypto_openssl pkg-config file.])
    fi
  fi
fi

dnl **********************************************************************
dnl Check for nghttp3 (HTTP/3 with ngtcp2)
dnl **********************************************************************

OPT_NGHTTP3="yes"

if test "x$NGTCP2_ENABLED" = "x"; then
  # without ngtcp2, nghttp3 is of no use for us
  OPT_NGHTTP3="no"
fi

AC_ARG_WITH(nghttp3,
AC_HELP_STRING([--with-nghttp3=PATH],[Enable nghttp3 usage])
AC_HELP_STRING([--without-nghttp3],[Disable nghttp3 usage]),
  [OPT_NGHTTP3=$withval])
case "$OPT_NGHTTP3" in
  no)
    dnl --without-nghttp3 option used
    want_nghttp3="no"
    ;;
  yes)
    dnl --with-nghttp3 option used without path
    want_nghttp3="default"
    want_nghttp3_path=""
    ;;
  *)
    dnl --with-nghttp3 option used with path
    want_nghttp3="yes"
    want_nghttp3_path="$withval/lib/pkgconfig"
    ;;
esac

curl_http3_msg="disabled (--with-nghttp3)"
if test X"$want_nghttp3" != Xno; then
  dnl backup the pre-nghttp3 variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"

  CURL_CHECK_PKGCONFIG(libnghttp3, $want_nghttp3_path)

  if test "$PKGCONFIG" != "no" ; then
    LIB_NGHTTP3=`CURL_EXPORT_PCDIR([$want_nghttp3_path])
      $PKGCONFIG --libs-only-l libnghttp3`
    AC_MSG_NOTICE([-l is $LIB_NGHTTP3])

    CPP_NGHTTP3=`CURL_EXPORT_PCDIR([$want_nghttp3_path]) dnl
      $PKGCONFIG --cflags-only-I libnghttp3`
    AC_MSG_NOTICE([-I is $CPP_NGHTTP3])

    LD_NGHTTP3=`CURL_EXPORT_PCDIR([$want_nghttp3_path])
      $PKGCONFIG --libs-only-L libnghttp3`
    AC_MSG_NOTICE([-L is $LD_NGHTTP3])

    LDFLAGS="$LDFLAGS $LD_NGHTTP3"
    CPPFLAGS="$CPPFLAGS $CPP_NGHTTP3"
    LIBS="$LIB_NGHTTP3 $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_NGHTTP3=`echo $LD_NGHTTP3 | $SED -e 's/-L//'`
    fi
    AC_CHECK_LIB(nghttp3, nghttp3_conn_client_new,
      [
       AC_CHECK_HEADERS(nghttp3/nghttp3.h,
          curl_h3_msg="enabled (ngtcp2 + nghttp3)"
          NGHTTP3_ENABLED=1
          AC_DEFINE(USE_NGHTTP3, 1, [if nghttp3 is in use])
          AC_SUBST(USE_NGHTTP3, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH])
          experimental="$experimental HTTP3"
       )
      ],
        dnl not found, revert back to clean variables
        LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS
    )

  else
    dnl no nghttp3 pkg-config found, deal with it
    if test X"$want_nghttp3" != Xdefault; then
      dnl To avoid link errors, we do not allow --with-nghttp3 without
      dnl a pkgconfig file
      AC_MSG_ERROR([--with-nghttp3 was specified but could not find nghttp3 pkg-config file.])
    fi
  fi

fi

dnl **********************************************************************
dnl Check for quiche (QUIC)
dnl **********************************************************************

OPT_QUICHE="yes"

if test "x$disable_http" = "xyes" -o "x$USE_NGTCP" = "x1"; then
  # without HTTP or with ngtcp2, quiche is no use
  OPT_QUICHE="no"
fi

AC_ARG_WITH(quiche,
AC_HELP_STRING([--with-quiche=PATH],[Enable quiche usage])
AC_HELP_STRING([--without-quiche],[Disable quiche usage]),
  [OPT_QUICHE=$withval])
case "$OPT_QUICHE" in
  no)
    dnl --without-quiche option used
    want_quiche="no"
    ;;
  yes)
    dnl --with-quiche option used without path
    want_quiche="default"
    want_quiche_path=""
    ;;
  *)
    dnl --with-quiche option used with path
    want_quiche="yes"
    want_quiche_path="$withval"
    ;;
esac

if test X"$want_quiche" != Xno; then
  dnl backup the pre-quiche variables
  CLEANLDFLAGS="$LDFLAGS"
  CLEANCPPFLAGS="$CPPFLAGS"
  CLEANLIBS="$LIBS"

  CURL_CHECK_PKGCONFIG(quiche, $want_quiche_path)

  if test "$PKGCONFIG" != "no" ; then
    LIB_QUICHE=`CURL_EXPORT_PCDIR([$want_quiche_path])
      $PKGCONFIG --libs-only-l quiche`
    AC_MSG_NOTICE([-l is $LIB_QUICHE])

    CPP_QUICHE=`CURL_EXPORT_PCDIR([$want_quiche_path]) dnl
      $PKGCONFIG --cflags-only-I quiche`
    AC_MSG_NOTICE([-I is $CPP_QUICHE])

    LD_QUICHE=`CURL_EXPORT_PCDIR([$want_quiche_path])
      $PKGCONFIG --libs-only-L quiche`
    AC_MSG_NOTICE([-L is $LD_QUICHE])

    LDFLAGS="$LDFLAGS $LD_QUICHE"
    CPPFLAGS="$CPPFLAGS $CPP_QUICHE"
    LIBS="$LIB_QUICHE $LIBS"

    if test "x$cross_compiling" != "xyes"; then
      DIR_QUICHE=`echo $LD_QUICHE | $SED -e 's/-L//'`
    fi
    AC_CHECK_LIB(quiche, quiche_connect,
      [
       AC_CHECK_HEADERS(quiche.h,
          experimental="$experimental HTTP3"
          AC_MSG_NOTICE([HTTP3 support is experimental])
          curl_h3_msg="enabled (quiche)"
          QUICHE_ENABLED=1
          AC_DEFINE(USE_QUICHE, 1, [if quiche is in use])
          AC_SUBST(USE_QUICHE, [1])
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_QUICHE"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $DIR_QUICHE to CURL_LIBRARY_PATH]),
       )
      ],
        dnl not found, revert back to clean variables
        LDFLAGS=$CLEANLDFLAGS
        CPPFLAGS=$CLEANCPPFLAGS
        LIBS=$CLEANLIBS
    )
  else
    dnl no nghttp3 pkg-config found, deal with it
    if test X"$want_quiche" != Xdefault; then
      dnl To avoid link errors, we do not allow --with-nghttp3 without
      dnl a pkgconfig file
      AC_MSG_ERROR([--with-quiche was specified but could not find quiche pkg-config file.])
    fi
  fi
fi

dnl **********************************************************************
dnl Check for zsh completion path
dnl **********************************************************************

OPT_ZSH_FPATH=default
AC_ARG_WITH(zsh-functions-dir,
................................................................................
  gettimeofday \
  if_nametoindex \
  mach_absolute_time \
  pipe \
  setlocale \
  setmode \
  setrlimit \
  usleep \
  utime \
  utimes
],[
],[
  func="$ac_func"
  eval skipcheck=\$skipcheck_$func
  if test "x$skipcheck" != "xyes"; then
................................................................................
[ case "$enableval" in
  no)
       AC_MSG_RESULT(no)
       ;;
  *) AC_MSG_RESULT(yes)
       curl_altsvc_msg="enabled";
       enable_altsvc="yes"

       ;;
  esac ],
       AC_MSG_RESULT(no)
)

if test "$enable_altsvc" = "yes"; then
  AC_DEFINE(USE_ALTSVC, 1, [to enable alt-svc])
  experimental="$experimental alt-svc"
fi

dnl ************************************************************
dnl hiding of library internal symbols
dnl
CURL_CONFIGURE_SYMBOL_HIDING

................................................................................
if test "x$USE_TLS_SRP" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES TLS-SRP"
fi

if test "x$USE_NGHTTP2" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2"
fi

if test "x$USE_NGTCP2" = "x1" -o "x$USE_QUICHE" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP3"
fi

if test "x$CURL_WITH_MULTI_SSL" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
................................................................................
  LDAPS:            ${curl_ldaps_msg}
  RTSP:             ${curl_rtsp_msg}
  RTMP:             ${curl_rtmp_msg}
  Metalink:         ${curl_mtlnk_msg}
  PSL:              ${curl_psl_msg}
  Alt-svc:          ${curl_altsvc_msg}
  HTTP2:            ${curl_h2_msg}
  HTTP3:            ${curl_h3_msg}
  Protocols:        ${SUPPORT_PROTOCOLS}
  Features:         ${SUPPORT_FEATURES}
])
if test -n "$experimental"; then
 cat >&2 << _EOF
  WARNING: $experimental enabled but marked EXPERIMENTAL. Use with caution!
_EOF
fi

Changes to jni/curl/docs/ALTSVC.md.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

33
34

35
36
37
38



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

54
55
56
57
58
59
# Alt-Svc

curl features **EXPERIMENTAL** support for the Alt-Svc: HTTP header.

## Experimental

Experimental support in curl means:

1. Experimental features are provided to allow users to try them out and
   provide feedback on functionality and API etc before they ship and get
   "carved in stone".
2. You must enable the feature when invoking configure as otherwise curl will
   not be built with the feature present.
3. We strongly advice against using this feature in production.
4. **We reserve the right to change behavior** of the feature without sticking
   to our API/ABI rules as we do for regular features, as long as it is marked
   experimental.
5. Experimental features are clearly marked so in documentation. Beware.

## Enable Alt-Svc in build

`./configure --enable-alt-svc`

## Standard

[RFC 7838](https://tools.ietf.org/html/rfc7838)

## What works

- read alt-svc file from disk
- write alt-svc file from disk
- parse `Alt-Svc:` response headers, including `ma`, `clear` and `persist`.

- replaces old entries when new alternatives are received
- unit tests to verify most of this functionality (test 1654)

- act on `Alt-Svc:` response headers
- build conditionally on `configure --enable-alt-svc` only, feature marked as
  **EXPERIMENTAL**
- implement `CURLOPT_ALTSVC_CTRL`



- implement `CURLOPT_ALTSVC`
- document  `CURLOPT_ALTSVC_CTRL`
- document `CURLOPT_ALTSVC`
- document `--alt-svc`
- add `CURL_VERSION_ALTSVC`
- make `curl -V` show 'alt-svc' as a feature if built-in
- support `curl --alt-svc [file]` to enable caching, using that file
- make `tests/runtests.pl` able to filter tests on the feature `alt-svc`
- actually use the existing in-memory alt-svc cache for outgoing connections
- alt-svc cache expiry
- test 355 and 356 verify curl acting on Alt-Svc, received from header and
  loaded from cache. The latter needs a debug build since it enables Alt-Svc
  for plain HTTP.

## What is left


- handle multiple response headers, when one of them says `clear` (should
  override them all)
- using `Age:` value for caching age as per spec
- `CURLALTSVC_IMMEDIATELY` support
- `CURLALTSVC_ALTUSED` support




<
<
<
<
<
<
<
<
<
<
<
<
<
<
<








|

|
|
<
>
|
<
>
|
<
<
<
>
>
>
|
|
|
|
|
|
|
|
|
<
<
<
<

<
>





<
1
2
3
4















5
6
7
8
9
10
11
12
13
14
15
16

17
18

19
20



21
22
23
24
25
26
27
28
29
30
31
32




33

34
35
36
37
38
39

# Alt-Svc

curl features **EXPERIMENTAL** support for the Alt-Svc: HTTP header.
















## Enable Alt-Svc in build

`./configure --enable-alt-svc`

## Standard

[RFC 7838](https://tools.ietf.org/html/rfc7838)

# Alt-Svc cache file format

This a text based file with one line per entry and each line consists of nine
space separated fields.


## Example


    h2 quic.tech 8443 h3-22 quic.tech 8443 "20190808 06:18:37" 0 0




## Fields

1. The ALPN id for the source origin
2. The host name for the source origin
3. The port number for the source origin
4. The ALPN id for the destination host
5. The host name for the destination host
6. The host number for the destination host
7. The expiration date and time of this entry withing double quotes. The date format is "YYYYMMDD HH:MM:SS" and the time zone is GMT.
8. Boolean (1 or 0) if "persist" was set for this entry
9. Integer priority value (not currently used)






# TODO

- handle multiple response headers, when one of them says `clear` (should
  override them all)
- using `Age:` value for caching age as per spec
- `CURLALTSVC_IMMEDIATELY` support

Changes to jni/curl/docs/DEPRECATE.md.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Items to be removed from future curl releases

If any of these deprecated features is a cause for concern for you, please
email the curl-library mailing list as soon as possible and explain to us why
this is a problem for you and how your use case can't be satisfied properly
using a work around.

## HTTP/0.9

Supporting this is non-obvious and might even come as a surprise to some
users. Potentially even being a security risk in some cases.

### State

curl 7.64.0 introduces options to disable/enable support for this protocol
version. The default remains supported for now.

### Removal

The support for HTTP/0.9 will be switched to disabled by default in 6 months,
in the September 2019 release (possibly called curl 7.68.0).

## PolarSSL

The polarssl TLS library has not had an update in over three years. The last
release was done on [January 7
2016](https://tls.mbed.org/tech-updates/releases). This library has been
superseded by the mbedTLS library, which is the current incarnation of
PolarSSL. curl has supported mbedTLS since 2015.







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







1
2
3
4
5
6
7















8
9
10
11
12
13
14
# Items to be removed from future curl releases

If any of these deprecated features is a cause for concern for you, please
email the curl-library mailing list as soon as possible and explain to us why
this is a problem for you and how your use case can't be satisfied properly
using a work around.
















## PolarSSL

The polarssl TLS library has not had an update in over three years. The last
release was done on [January 7
2016](https://tls.mbed.org/tech-updates/releases). This library has been
superseded by the mbedTLS library, which is the current incarnation of
PolarSSL. curl has supported mbedTLS since 2015.

Added jni/curl/docs/EXPERIMENTAL.md.













































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Experimental

Some features and functionality in curl and libcurl are considered
**EXPERIMENTAL**.

Experimental support in curl means:

1. Experimental features are provided to allow users to try them out and
   provide feedback on functionality and API etc before they ship and get
   "carved in stone".
2. You must enable the feature when invoking configure as otherwise curl will
   not be built with the feature present.
3. We strongly advice against using this feature in production.
4. **We reserve the right to change behavior** of the feature without sticking
   to our API/ABI rules as we do for regular features, as long as it is marked
   experimental.
5. Experimental features are clearly marked so in documentation. Beware.

## Experimental features right now

 - HTTP/3 support and options
 - alt-svc support and options

Added jni/curl/docs/HTTP3.md.



















































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# HTTP3 (and QUIC)

## Resources

[HTTP/3 Explained](https://daniel.haxx.se/http3-explained/) - the online free
book describing the protocols involved.

[QUIC implementation](https://github.com/curl/curl/wiki/QUIC-implementation) -
the wiki page describing the plan for how to support QUIC and HTTP/3 in curl
and libcurl.

[quicwg.org](https://quicwg.org/) - home of the official protocol drafts

## QUIC libraries

QUIC libraries we're experiementing with:

[ngtcp2](https://github.com/ngtcp2/ngtcp2)

[quiche](https://github.com/cloudflare/quiche)

## Experimental!

HTTP/3 and QUIC support in curl is considered **EXPERIMENTAL** until further
notice. It needs to be enabled at build-time.

Further development and tweaking of the HTTP/3 support in curl will happen in
in the master branch using pull-requests, just like ordinary changes.

# ngtcp2 version

## Build

Build (patched) OpenSSL

     % git clone --depth 1 -b openssl-quic-draft-22 https://github.com/tatsuhiro-t/openssl
     % cd openssl
     % ./config enable-tls1_3 --prefix=<somewhere1>
     % make
     % make install_sw

Build nghttp3

     % cd ..
     % git clone https://github.com/ngtcp2/nghttp3
     % cd nghttp3
     % autoreconf -i
     % ./configure --prefix=<somewhere2> --enable-lib-only
     % make
     % make install

Build ngtcp2

     % cd ..
     % git clone -b draft-22 https://github.com/ngtcp2/ngtcp2
     % cd ngtcp2
     % autoreconf -i
     % ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somehere1>/lib" --prefix==<somewhere3>
     % make
     % make install

Build curl

     % cd ..
     % git clone https://github.com/curl/curl
     % cd curl
     % ./buildconf
     % LDFLAGS="-Wl,-rpath,<somewhere1>/lib" ./configure -with-ssl=<somewhere1> --with-nghttp3=<somewhere2> --with-ngtcp2=<somewhere3>
     % make

## Running

Make sure the custom OpenSSL library is the one used at run-time, as otherwise
you'll just get ld.so linker errors.

## Invoke from command line

    curl --http3 https://nghttp2.org:8443/

# quiche version

## build

Clone quiche and BoringSSL:

     % git clone --recursive https://github.com/cloudflare/quiche

Build BoringSSL (it needs to be built manually so it can be reused with curl):

     % cd quiche/deps/boringssl
     % mkdir build
     % cd build
     % cmake -DCMAKE_POSITION_INDEPENDENT_CODE=on ..
     % make -j`nproc`
     % cd ..
     % mkdir .openssl/lib -p
     % cp build/crypto/libcrypto.a build/ssl/libssl.a .openssl/lib
     % ln -s $PWD/include .openssl

Build quiche:

     % cd ../..
     % QUICHE_BSSL_PATH=$PWD/deps/boringssl cargo build --release --features pkg-config-meta

Clone and build curl:

     % cd ..
     % git clone https://github.com/curl/curl
     % cd curl
     % ./buildconf
     % ./configure LDFLAGS="-Wl,-rpath,$PWD/../quiche/target/release" --with-ssl=$PWD/../quiche/deps/boringssl/.openssl --with-quiche=$PWD/../quiche/target/release
     % make -j`nproc`

## Running

Make an HTTP/3 request.

     % src/curl --http3 https://cloudflare-quic.com/
     % src/curl --http3 https://facebook.com/
     % src/curl --http3 https://quic.aiortc.org:4433/
     % src/curl --http3 https://quic.rocks:4433/

Changes to jni/curl/docs/INTERNALS.md.

769
770
771
772
773
774
775
776
777
778
779
780
781
782
783

  This will create a library that has memory debugging enabled.

## Modify Your Application

  Add a line in your application code:

       `curl_memdebug("dump");`

  This will make the malloc debug system output a full trace of all resource
  using functions to the given file name. Make sure you rebuild your program
  and that you link with the same libcurl you built for this purpose as
  described above.

## Run Your Application







|







769
770
771
772
773
774
775
776
777
778
779
780
781
782
783

  This will create a library that has memory debugging enabled.

## Modify Your Application

  Add a line in your application code:

       `curl_dbg_memdebug("dump");`

  This will make the malloc debug system output a full trace of all resource
  using functions to the given file name. Make sure you rebuild your program
  and that you link with the same libcurl you built for this purpose as
  described above.

## Run Your Application

Changes to jni/curl/docs/KNOWN_BUGS.

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
..
44
45
46
47
48
49
50

51
52
53
54
55
56
57
..
94
95
96
97
98
99
100

101
102
103
104
105
106
107
...
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
...
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
...
385
386
387
388
389
390
391







392
393
394
395
396
397
398
...
723
724
725
726
727
728
729













730
731
732
733
734
735
736
These are problems and bugs known to exist at the time of this release. Feel
free to join in and help us correct one or more of these! Also be sure to
check the changelog of the current development status, as one or more of these
problems may have been fixed or changed somewhat since this was written!

 1. HTTP
 1.1 CURLFORM_CONTENTLEN in an array
 1.2 Disabling HTTP Pipelining
 1.3 STARTTRANSFER time is wrong for HTTP POSTs
 1.4 multipart formposts file name encoding
 1.5 Expect-100 meets 417
 1.6 Unnecessary close when 401 received waiting for 100
 1.7 Deflate error after all content was received
 1.8 DoH isn't used for all name resolves when enabled
 1.9 HTTP/2 frames while in the connection pool kill reuse
 1.10 Strips trailing dot from host name
 1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM

 2. TLS
 2.1 CURLINFO_SSL_VERIFYRESULT has limited support
 2.2 DER in keychain
 2.3 GnuTLS backend skips really long certificate fields
 2.4 DarwinSSL won't import PKCS#12 client certificates without a password
................................................................................
 4.1 -J and -O with %-encoded file names
 4.2 -J with -C - fails
 4.3 --retry and transfer timeouts
 4.4 --upload-file . hang if delay in STDIN
 4.5 Improve --data-urlencode space encoding

 5. Build and portability issues

 5.2 curl-config --libs contains private details
 5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10
 5.4 Cannot compile against a static build of OpenLDAP
 5.5 can't handle Unicode arguments in Windows
 5.6 cmake support gaps
 5.7 Visual Studio project gaps
 5.8 configure finding libs in wrong directory
................................................................................
 11. Internals
 11.1 Curl leaks .onion hostnames in DNS
 11.2 error buffer not set if connection to multiple addresses fails
 11.3 c-ares deviates from stock resolver on http://1346569778
 11.4 HTTP test server 'connection-monitor' problems
 11.5 Connection information when using TCP Fast Open
 11.6 slow connect to localhost on Windows


 12. LDAP and OpenLDAP
 12.1 OpenLDAP hangs after returning results

 13. TCP/IP
 13.1 --interface for ipv6 binds to unusable IP address

................................................................................
 It is not possible to pass a 64-bit value using CURLFORM_CONTENTLEN with
 CURLFORM_ARRAY, when compiled on 32-bit platforms that support 64-bit
 integers. This is because the underlying structure 'curl_forms' uses a dual
 purpose char* for storing these values in via casting. For more information
 see the now closed related issue:
 https://github.com/curl/curl/issues/608

1.2 Disabling HTTP Pipelining

 Disabling HTTP Pipelining when there are ongoing transfers can lead to
 heap corruption and crash. https://curl.haxx.se/bug/view.cgi?id=1411

 Similarly, removing a handle when pipelining corrupts data:
 https://github.com/curl/curl/issues/2101

1.3 STARTTRANSFER time is wrong for HTTP POSTs

 Wrong STARTTRANSFER timer accounting for POST requests Timer works fine with
 GET requests, but while using POST the time for CURLINFO_STARTTRANSFER_TIME
 is wrong. While using POST CURLINFO_STARTTRANSFER_TIME minus
 CURLINFO_PRETRANSFER_TIME is near to zero every time.

................................................................................
 curl while the connection is held in curl's connection pool, the socket will
 be found readable when considered for reuse and that makes curl think it is
 dead and then it will be closed and a new connection gets created instead.

 This is *best* fixed by adding monitoring to connections while they are kept
 in the pool so that pings can be responded to appropriately.

1.10 Strips trailing dot from host name

 When given a URL with a trailing dot for the host name part:
 "https://example.com./", libcurl will strip off the dot and use the name
 without a dot internally and send it dot-less in HTTP Host: headers and in
 the TLS SNI field. For the purpose of resolving the name to an address
 the hostname is used as is without any change.

 The HTTP part violates RFC 7230 section 5.4 but the SNI part is accordance
 with RFC 6066 section 3.

 URLs using these trailing dots are very rare in the wild and we have not seen
 or gotten any real-world problems with such URLs reported. The popular
 browsers seem to have stayed with not stripping the dot for both uses (thus
 they violate RFC 6066 instead of RFC 7230).

 Daniel took the discussion to the HTTPbis mailing list in March 2016:
 https://lists.w3.org/Archives/Public/ietf-http-wg/2016JanMar/0430.html but
 there was not major rush or interest to fix this. The impression I get is
 that most HTTP people rather not rock the boat now and instead prioritize web
 compatibility rather than to strictly adhere to these RFCs.

 Our current approach allows a knowing client to send a custom HTTP header
 with the dot added.

 In a few cases there is a difference in name resolving to IP addresses with
 a trailing dot, but it can be noted that many HTTP servers will not happily
 accept the trailing dot there unless that has been specifically configured
 to be a fine virtual host.

 If URLs with trailing dots for host names become more popular or even just
 used more than for just plain fun experiments, I'm sure we will have reason
 to go back and reconsider.

 See https://github.com/curl/curl/issues/716 for the discussion.

1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM

 I'm using libcurl to POST form data using a FILE* with the CURLFORM_STREAM
 option of curl_formadd(). I've noticed that if the connection drops at just
 the right time, the POST is reattempted without the data from the file. It
 seems like the file stream position isn't getting reset to the beginning of
 the file. I found the CURLOPT_SEEKFUNCTION option and set that with a
................................................................................
 ASCII space characters in --data-urlencode are currently encoded as %20
 rather than +, which RFC 1866 says should be used.

 See https://github.com/curl/curl/issues/3229

5. Build and portability issues








5.2 curl-config --libs contains private details

 "curl-config --libs" will include details set in LDFLAGS when configure is
 run that might be needed only for building libcurl. Further, curl-config
 --cflags suffers from the same effects with CFLAGS/CPPFLAGS.

5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10
................................................................................
 connection, suggesting a problem in the HE handling.

 If we can *know* that we're talking to a local host, we should lower the
 happy eyeballs delay timeout for IPv6 (related: hardcode the "localhost"
 addresses, mentioned in TODO). Possibly we should reduce that delay for all.

 https://github.com/curl/curl/issues/2281














12. LDAP and OpenLDAP

12.1 OpenLDAP hangs after returning results

 By configuration defaults, openldap automatically chase referrals on
 secondary socket descriptors. The OpenLDAP backend is asynchronous and thus







<







<







 







>







 







>







 







<
<
<
<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>







9
10
11
12
13
14
15

16
17
18
19
20
21
22

23
24
25
26
27
28
29
..
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
..
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
...
117
118
119
120
121
122
123








124
125
126
127
128
129
130
...
177
178
179
180
181
182
183




































184
185
186
187
188
189
190
...
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
...
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
These are problems and bugs known to exist at the time of this release. Feel
free to join in and help us correct one or more of these! Also be sure to
check the changelog of the current development status, as one or more of these
problems may have been fixed or changed somewhat since this was written!

 1. HTTP
 1.1 CURLFORM_CONTENTLEN in an array

 1.3 STARTTRANSFER time is wrong for HTTP POSTs
 1.4 multipart formposts file name encoding
 1.5 Expect-100 meets 417
 1.6 Unnecessary close when 401 received waiting for 100
 1.7 Deflate error after all content was received
 1.8 DoH isn't used for all name resolves when enabled
 1.9 HTTP/2 frames while in the connection pool kill reuse

 1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM

 2. TLS
 2.1 CURLINFO_SSL_VERIFYRESULT has limited support
 2.2 DER in keychain
 2.3 GnuTLS backend skips really long certificate fields
 2.4 DarwinSSL won't import PKCS#12 client certificates without a password
................................................................................
 4.1 -J and -O with %-encoded file names
 4.2 -J with -C - fails
 4.3 --retry and transfer timeouts
 4.4 --upload-file . hang if delay in STDIN
 4.5 Improve --data-urlencode space encoding

 5. Build and portability issues
 5.1 USE_UNIX_SOCKETS on Windows
 5.2 curl-config --libs contains private details
 5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10
 5.4 Cannot compile against a static build of OpenLDAP
 5.5 can't handle Unicode arguments in Windows
 5.6 cmake support gaps
 5.7 Visual Studio project gaps
 5.8 configure finding libs in wrong directory
................................................................................
 11. Internals
 11.1 Curl leaks .onion hostnames in DNS
 11.2 error buffer not set if connection to multiple addresses fails
 11.3 c-ares deviates from stock resolver on http://1346569778
 11.4 HTTP test server 'connection-monitor' problems
 11.5 Connection information when using TCP Fast Open
 11.6 slow connect to localhost on Windows
 11.7 signal-based resolver timeouts

 12. LDAP and OpenLDAP
 12.1 OpenLDAP hangs after returning results

 13. TCP/IP
 13.1 --interface for ipv6 binds to unusable IP address

................................................................................
 It is not possible to pass a 64-bit value using CURLFORM_CONTENTLEN with
 CURLFORM_ARRAY, when compiled on 32-bit platforms that support 64-bit
 integers. This is because the underlying structure 'curl_forms' uses a dual
 purpose char* for storing these values in via casting. For more information
 see the now closed related issue:
 https://github.com/curl/curl/issues/608









1.3 STARTTRANSFER time is wrong for HTTP POSTs

 Wrong STARTTRANSFER timer accounting for POST requests Timer works fine with
 GET requests, but while using POST the time for CURLINFO_STARTTRANSFER_TIME
 is wrong. While using POST CURLINFO_STARTTRANSFER_TIME minus
 CURLINFO_PRETRANSFER_TIME is near to zero every time.

................................................................................
 curl while the connection is held in curl's connection pool, the socket will
 be found readable when considered for reuse and that makes curl think it is
 dead and then it will be closed and a new connection gets created instead.

 This is *best* fixed by adding monitoring to connections while they are kept
 in the pool so that pings can be responded to appropriately.





































1.11 CURLOPT_SEEKFUNCTION not called with CURLFORM_STREAM

 I'm using libcurl to POST form data using a FILE* with the CURLFORM_STREAM
 option of curl_formadd(). I've noticed that if the connection drops at just
 the right time, the POST is reattempted without the data from the file. It
 seems like the file stream position isn't getting reset to the beginning of
 the file. I found the CURLOPT_SEEKFUNCTION option and set that with a
................................................................................
 ASCII space characters in --data-urlencode are currently encoded as %20
 rather than +, which RFC 1866 says should be used.

 See https://github.com/curl/curl/issues/3229

5. Build and portability issues

5.1 USE_UNIX_SOCKETS on Windows

 Due to incorrect CMake checks for the presense of the feature, it will never
 be enabled for windows in a cmake build.

 See https://github.com/curl/curl/issues/4040

5.2 curl-config --libs contains private details

 "curl-config --libs" will include details set in LDFLAGS when configure is
 run that might be needed only for building libcurl. Further, curl-config
 --cflags suffers from the same effects with CFLAGS/CPPFLAGS.

5.3 curl compiled on OSX 10.13 failed to run on OSX 10.10
................................................................................
 connection, suggesting a problem in the HE handling.

 If we can *know* that we're talking to a local host, we should lower the
 happy eyeballs delay timeout for IPv6 (related: hardcode the "localhost"
 addresses, mentioned in TODO). Possibly we should reduce that delay for all.

 https://github.com/curl/curl/issues/2281

11.7 signal-based resolver timeouts

 libcurl built without an asynchronous resolver library uses alarm() to time
 out DNS lookups. When a timeout occurs, this causes libcurl to jump from the
 signal handler back into the library with a sigsetjmp, which effectively
 causes libcurl to continue running within the signal handler. This is
 non-portable and could cause problems on some platforms. A discussion on the
 problem is available at https://curl.haxx.se/mail/lib-2008-09/0197.html

 Also, alarm() provides timeout resolution only to the nearest second. alarm
 ought to be replaced by setitimer on systems that support it.


12. LDAP and OpenLDAP

12.1 OpenLDAP hangs after returning results

 By configuration defaults, openldap automatically chase referrals on
 secondary socket descriptors. The OpenLDAP backend is asynchronous and thus

Changes to jni/curl/docs/Makefile.am.

49
50
51
52
53
54
55

56
57
58
59
60
61
62

63
64
65
66
67
68
69

70
71
72
73
74
75
76
 CHECKSRC.md                                    \
 CIPHERS.md                                     \
 CMakeLists.txt                                 \
 CODE_OF_CONDUCT.md                             \
 CODE_STYLE.md                                  \
 CONTRIBUTE.md                                  \
 DEPRECATE.md                                   \

 FAQ                                            \
 FEATURES                                       \
 GOVERNANCE.md                                  \
 HELP-US.md                                     \
 HISTORY.md                                     \
 HTTP-COOKIES.md                                \
 HTTP2.md                                       \

 INSTALL                                        \
 INSTALL.cmake                                  \
 INSTALL.md                                     \
 INTERNALS.md                                   \
 KNOWN_BUGS                                     \
 LICENSE-MIXING.md                              \
 MAIL-ETIQUETTE                                 \

 README.cmake                                   \
 README.md                                      \
 README.netware                                 \
 README.win32                                   \
 RELEASE-PROCEDURE.md                           \
 RESOURCES                                      \
 ROADMAP.md                                     \







>







>







>







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 CHECKSRC.md                                    \
 CIPHERS.md                                     \
 CMakeLists.txt                                 \
 CODE_OF_CONDUCT.md                             \
 CODE_STYLE.md                                  \
 CONTRIBUTE.md                                  \
 DEPRECATE.md                                   \
 EXPERIMENTAL.md                                \
 FAQ                                            \
 FEATURES                                       \
 GOVERNANCE.md                                  \
 HELP-US.md                                     \
 HISTORY.md                                     \
 HTTP-COOKIES.md                                \
 HTTP2.md                                       \
 HTTP3.md                                       \
 INSTALL                                        \
 INSTALL.cmake                                  \
 INSTALL.md                                     \
 INTERNALS.md                                   \
 KNOWN_BUGS                                     \
 LICENSE-MIXING.md                              \
 MAIL-ETIQUETTE                                 \
 PARALLEL-TRANSFERS.md                          \
 README.cmake                                   \
 README.md                                      \
 README.netware                                 \
 README.win32                                   \
 RELEASE-PROCEDURE.md                           \
 RESOURCES                                      \
 ROADMAP.md                                     \

Changes to jni/curl/docs/Makefile.in.

379
380
381
382
383
384
385



386
387

388
389
390
391
392
393
394
...
475
476
477
478
479
480
481

482
483
484
485
486
487
488

489
490
491
492
493
494
495

496
497
498
499
500
501
502
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@



USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@

USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
 CHECKSRC.md                                    \
 CIPHERS.md                                     \
 CMakeLists.txt                                 \
 CODE_OF_CONDUCT.md                             \
 CODE_STYLE.md                                  \
 CONTRIBUTE.md                                  \
 DEPRECATE.md                                   \

 FAQ                                            \
 FEATURES                                       \
 GOVERNANCE.md                                  \
 HELP-US.md                                     \
 HISTORY.md                                     \
 HTTP-COOKIES.md                                \
 HTTP2.md                                       \

 INSTALL                                        \
 INSTALL.cmake                                  \
 INSTALL.md                                     \
 INTERNALS.md                                   \
 KNOWN_BUGS                                     \
 LICENSE-MIXING.md                              \
 MAIL-ETIQUETTE                                 \

 README.cmake                                   \
 README.md                                      \
 README.netware                                 \
 README.win32                                   \
 RELEASE-PROCEDURE.md                           \
 RESOURCES                                      \
 ROADMAP.md                                     \







>
>
>


>







 







>







>







>







379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
...
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@
USE_NGHTTP3 = @USE_NGHTTP3@
USE_NGTCP2 = @USE_NGTCP2@
USE_NGTCP2_CRYPTO_OPENSSL = @USE_NGTCP2_CRYPTO_OPENSSL@
USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@
USE_QUICHE = @USE_QUICHE@
USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
 CHECKSRC.md                                    \
 CIPHERS.md                                     \
 CMakeLists.txt                                 \
 CODE_OF_CONDUCT.md                             \
 CODE_STYLE.md                                  \
 CONTRIBUTE.md                                  \
 DEPRECATE.md                                   \
 EXPERIMENTAL.md                                \
 FAQ                                            \
 FEATURES                                       \
 GOVERNANCE.md                                  \
 HELP-US.md                                     \
 HISTORY.md                                     \
 HTTP-COOKIES.md                                \
 HTTP2.md                                       \
 HTTP3.md                                       \
 INSTALL                                        \
 INSTALL.cmake                                  \
 INSTALL.md                                     \
 INTERNALS.md                                   \
 KNOWN_BUGS                                     \
 LICENSE-MIXING.md                              \
 MAIL-ETIQUETTE                                 \
 PARALLEL-TRANSFERS.md                          \
 README.cmake                                   \
 README.md                                      \
 README.netware                                 \
 README.win32                                   \
 RELEASE-PROCEDURE.md                           \
 RESOURCES                                      \
 ROADMAP.md                                     \

Added jni/curl/docs/PARALLEL-TRANSFERS.md.





















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Parallel transfers

curl 7.66.0 introduces support for doing multiple transfers simultaneously; in
parallel.

## -Z, --parallel

When this command line option is used, curl will perform the transfers given
to it at the same time. It will do up to `--parallel-max` concurrent
transfers, with a default value of 50.

## Progress meter

The progress meter that is displayed when doing parallel transfers is
completely different than the regular one used for each single transfer.

  It shows:

 o percent download (if known, which means *all* transfers need to have a
   known size)
 o precent upload (if known, with the same caveat as for download)
 o total amount of downloaded data
 o total amount of uploaded data
 o number of transfers to perform
 o number of concurrent transfers being transferred right now
 o number of transfers queued up waiting to start
 o total time all transfers are expected to take (if sizes are known)
 o current time the transfers have spent so far
 o estimated time left (if sizes are known)
 o current transfer speed (the faster of UL/DL speeds measured over the last
   few seconds)

Example:

    DL% UL%  Dled  Uled  Xfers  Live   Qd Total     Current  Left    Speed
    72  --  37.9G     0   101    30    23  0:00:55  0:00:34  0:00:22 2752M

## Behavior differences

Connections are shared fine between different easy handles, but the
"authentication contexts" are not. So for example doing HTTP Digest auth with
one handle for a particular transfer and then continue on with another handle
that reuses the same connection, the second handle can't send the necessary
Authorization header at once since the context is only kept in the original
easy handle.

To fix this, the authorization state could be made possible to share with the
share API as well, as a context per origin + path (realm?) basically.

Visible in test 153, 1412 and more.

## Feedback!

This is early days for parallel transfer support. Keep your eyes open for
unintended side effects or downright bugs.

Tell us what you think and how you think we could improve this feature!

Changes to jni/curl/docs/ROADMAP.md.

1
2
3
4
5
6
7
8
9
10
11









12
13
14
15
16
17
18
19
20
21
22
23
24

25
26
27



28
29
30
31
32


33
34
35


36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
curl the next few years - perhaps
=================================

Roadmap of things Daniel Stenberg wants to work on next. It is intended to
serve as a guideline for others for information, feedback and possible
participation.

HTTP/3
------

 See the [QUIC and HTTP/3 wiki page](https://github.com/curl/curl/wiki/QUIC).










ESNI (Encrypted SNI)
--------------------

 See Daniel's post on [Support of Encrypted
 SNI](https://curl.haxx.se/mail/lib-2019-03/0000.html) on the mailing list.

HSTS
----

Complete and merge [the existing PR](https://github.com/curl/curl/pull/2682).

Parallel transfers for the curl tool

------------------------------------

This will require several new command line options to enable and control.




 1. switch to creating a list of all the transfers first before any transfer
    is done
 2. make the transfers using the multi interface
 3. optionally fire up more transfers before the previous has completed



Option to refuse HTTPS => HTTP redirects
----------------------------------------



Possibly as a new bit to `CURLOPT_FOLLOWLOCATION` ?

Option to let CURLOPT_CUSTOMREQUEST be overridden on redirect
-------------------------------------------------------------

(This is a common problem for people using `-X` and `-L` together.)

Possibly as a new bit to `CURLOPT_FOLLOWLOCATION` ?

Hardcode “localhost”
--------------------

No need to resolve it. Avoid a risk where this is resolved over the network
and actually responds with something else than a local address. Some operating
systems already do this. Also:
https://tools.ietf.org/html/draft-ietf-dnsop-let-localhost-be-localhost-02

Consider "menu config"-style build feature selection
----------------------------------------------------

Allow easier building of custom libcurl versions with only a selected feature
where the available features are easily browsable and toggle-able ON/OFF or
similar.







|
|

|
>
>
>
>
>
>
>
>
>







<
<
<
|

<
>
|

<
>
>
>

<
<
<
<
>
>

<
<
>
>

<
<
<
<
<
<
<
<
<



|
|
|
|

|
|

|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27



28
29

30
31
32

33
34
35
36




37
38
39


40
41
42









43
44
45
46
47
48
49
50
51
52
53
54
55
56
curl the next few years - perhaps
=================================

Roadmap of things Daniel Stenberg wants to work on next. It is intended to
serve as a guideline for others for information, feedback and possible
participation.

HSTS
----

 Complete and merge [the existing PR](https://github.com/curl/curl/pull/2682).

 Loading a huge preload file is probably not too interesting to most people,
 but using a custom file and reacting to HSTS response header probably are
 good features.

DNS-over-TLS
------------

 Similar to DNS-over-HTTPS. Could share quite a lot of generic code.

ESNI (Encrypted SNI)
--------------------

 See Daniel's post on [Support of Encrypted
 SNI](https://curl.haxx.se/mail/lib-2019-03/0000.html) on the mailing list.




 Initial work exists in https://github.com/curl/curl/pull/4011


tiny-curl
---------


 There's no immediate action for this but users seem keen on being able to
 building custom minimized versions of libcurl for their products. Make sure
 new features that are "niche" can still be disabled at build-time.





MQTT
----



 Support receiving and sending MQTT messages. Initial work exists in
 https://github.com/curl/curl/pull/3514










Hardcode “localhost”
--------------------

 No need to resolve it. Avoid a risk where this is resolved over the network
 and actually responds with something else than a local address. Some
 operating systems already do this. Also:
 https://tools.ietf.org/html/draft-ietf-dnsop-let-localhost-be-localhost-02

"menu config"-style build feature selection
-------------------------------------------

 Allow easier building of custom libcurl versions with only a selected feature
 where the available features are easily browsable and toggle-able ON/OFF or
 similar.

Changes to jni/curl/docs/THANKS.

48
49
50
51
52
53
54

55
56
57
58
59
60
61
..
80
81
82
83
84
85
86

87
88
89
90
91
92
93
...
168
169
170
171
172
173
174

175
176
177
178
179
180
181
...
226
227
228
229
230
231
232

233
234
235
236
237
238
239
...
257
258
259
260
261
262
263

264
265
266
267
268
269
270
...
311
312
313
314
315
316
317

318
319
320
321
322
323
324
...
710
711
712
713
714
715
716

717
718
719
720
721
722
723
724
725
726
727
728

729
730
731
732
733
734
735
...
771
772
773
774
775
776
777

778
779
780
781
782
783
784
...
805
806
807
808
809
810
811

812
813
814
815
816
817
818
...
925
926
927
928
929
930
931

932
933
934
935
936
937
938
...
992
993
994
995
996
997
998

999
1000
1001
1002

1003
1004
1005

1006
1007
1008
1009
1010
1011
1012
....
1203
1204
1205
1206
1207
1208
1209

1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222

1223
1224
1225
1226
1227
1228
1229
....
1545
1546
1547
1548
1549
1550
1551

1552
1553
1554
1555
1556
1557
1558
....
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
....
1719
1720
1721
1722
1723
1724
1725

1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738

1739
1740
1741
1742
1743
1744
1745
....
1917
1918
1919
1920
1921
1922
1923

1924
1925
1926
1927
1928
1929
1930
....
1952
1953
1954
1955
1956
1957
1958

1959
1960
1961
1962
1963
1964

1965
1966
1967
1968
1969
1970

1971
1972

1973
1974
1975
1976
1977
1978
1979
Alex Baines
Alex Bligh
Alex Chan
Alex Fishman
Alex Grebenschikov
Alex Gruz
Alex Malinovich

Alex McLellan
Alex Neblett
Alex Nichols
Alex Potapenko
Alex Rousskov
Alex Suykov
Alex Vinnik
................................................................................
Alexey Zakhlestin
Alexis Carvalho
Alexis La Goutte
Alfonso Martone
Alfred Gebert
Allen Pulsifer
Alona Rossen

Amol Pattekar
Amr Shahin
Anatol Belski
Anatoli Tubman
Anders Bakken
Anders Gustafsson
Anders Havn
................................................................................
Augustus Saunders
Avery Fay
Axel Tillequin
Ayoub Boudhar
Balaji Parasuram
Balaji S Rao
Balaji Salunke

Balint Szilakszi
Barry Abrahamson
Bart Whiteley
Bas Mevissen
Bas van Schaik
Basuke Suzuki
Ben Boeckel
................................................................................
Brad Fitzpatrick
Brad Harder
Brad Hards
Brad King
Brad Spencer
Bradford Bruce
Brandon Casey

Brandon Wang
Brendan Jurd
Brent Beardsley
Brian Akins
Brian Carpenter
Brian Chaplin
Brian Childs
................................................................................
Caleb Raitto
Cameron Kaiser
Cameron MacMinn
Camille Moncelier
Caolan McNamara
Carie Pointer
Carlo Cannas

Carlo Teubner
Carlo Wood
Carlos ORyan
Carsten Lange
Casey O'Donnell
Catalin Patulea
Chad Monroe
................................................................................
Claes Jakobsson
Clarence Gardner
Claudio Neves
Clemens Gruber
Cliff Crosland
Clifford Wolf
Clint Clayton

Cody Jones
Cody Mack
Colby Ranger
Colin Blair
Colin Hogben
Colin Watson
Colm Buckley
................................................................................
Ian Gulliver
Ian Lynagh
Ian Turner
Ian Wilkes
Ignacio Vazquez-Abrams
Igor Franchuk
Igor Khristophorov

Igor Novoseltsev
Igor Polyakov
Ihor Karpenko
Iida Yosiaki
Ilguiz Latypov
Ilja van Sprundel
Immanuel Gregoire
Inca R
Ingmar Runge
Ingo Ralf Blum
Ingo Wilken
Irfan Adilovic

Irving Wolfe
Isaac Boukris
Isaiah Norton
Ishan SinghLevett
Ithubg on github
Ivan Avdeev
Ivo Bellin Salarin
................................................................................
Jared Jennings
Jared Lundell
Jari Aalto
Jari Sundell
Jason Baietto
Jason Glasgow
Jason Juang

Jason Liu
Jason McDonald
Jason S. Priebe
Javier Barroso
Javier Blazquez
Javier G. Sogo
Javier Sixto
................................................................................
Jeff Weber
Jeffrey Walton
Jens Rantil
Jens Schleusener
Jeremie Rapin
Jeremy Friesner
Jeremy Huddleston

Jeremy Lin
Jeremy Pearson
Jeremy Tan
Jeroen Koekkoek
Jeroen Ooms
Jerome Muffat-Meridol
Jerome Robert
................................................................................
Julian Romero Nieto
Julian Taylor
Julian Z
Julien Chaffraix
Julien Nabet
Julien Royer
Jun-ichiro itojun Hagino

Jurij Smakov
Juro Bystricky
Justin Clift
Justin Ehlert
Justin Fletcher
Justin Karneges
Justin Maggard
................................................................................
Krister Johansen
Kristian Gunstone
Kristian Köhntopp
Kristiyan Tsaklev
Kristoffer Gleditsch
Kunal Ekawde
Kurt Fankhauser

Kyle Edwards
Kyle J. McKay
Kyle L. Huff
Kyle Sallee

Kyselgov E.N
Lachlan O'Dea
Ladar Levison

Larry Campbell
Larry Fahnoe
Larry Lin
Larry Stefani
Larry Stone
Lars Buitinck
Lars Gustafsson
................................................................................
Michael Jahn
Michael Jerris
Michael Kalinin
Michael Kaufmann
Michael Kilburn
Michael Kujawa
Michael König

Michael Maltese
Michael Mealling
Michael Mueller
Michael Osipov
Michael Schmid
Michael Smith
Michael Stapelberg
Michael Steuer
Michael Stillwell
Michael Wallner
Michal Bonino
Michal Marek
Michal Trybus

Michał Antoniak
Michał Fita
Michał Górny
Michał Janiszewski
Michał Kowalczyk
Michał Piechowski
Michel Promonet
................................................................................
Rodney Simmons
Rodric Glaser
Rodrigo Silva
Roger Leigh
Roland Blom
Roland Krikava
Roland Zimmermann

Rolland Dudemaine
Romain Coltel
Romain Fliedel
Romain Geissler
Roman Koifman
Roman Mamedov
Romulo A. Ceccon
................................................................................
Stephan Szabo
Stephen Brokenshire
Stephen Collyer
Stephen Kick
Stephen More
Stephen Toub
Sterling Hughes
Steve Brokenshire
Steve Green
Steve H Truong
Steve Havelka
Steve Holme
Steve Lhomme
Steve Little
Steve Marx
................................................................................
Taneli Vähäkangas
Tanguy Fautre
Tatsuhiro Tsujikawa
Teemu Yli-Elsila
Temprimus
Terri Oda
Terry Wu

TheAssassin on github
Theodore Dubois
Thomas Braun
Thomas Gamper
Thomas Glanzmann
Thomas J. Moore
Thomas Klausner
Thomas L. Shinnick
Thomas Lopatic
Thomas Petazzoni
Thomas Ruecker
Thomas Schwinge
Thomas Tonino

Thomas van Hesteren
Thorsten Schöning
Tiit Pikma
Till Maas
Tim Ansell
Tim Baker
Tim Bartley
................................................................................
bobmitchell1956 on github
bsammon on github
buzo-ffm on github
cbartl on github
cclauss on github
clbr on github
cmfrolick on github

d912e3 on github
daboul on github
dasimx on github
dbrowndan on github
destman on github
dkjjr89 on github
dkwolfe4 on github
................................................................................
l00p3r on Hackerone
lijian996 on github
lukaszgn on github
madblobfish on github
marc-groundctl on github
masbug on github
mccormickt12 on github

mkzero on github
moohoorama on github
nedres on github
neex on github
neheb on github
nevv on HackerOne/curl

nianxuejie on github
niner on github
nk
nopjmp on github
olesteban on github
omau on github

ovidiu-benea on github
patelvivekv1993 on github

pendrek at hackerone
pszemus on github
silveja1 on github
smuellerDD on github
sstruchtrup on github
steelman on github
steini2000 on github







>







 







>







 







>







 







>







 







>







 







>







 







>












>







 







>







 







>







 







>







 







>




>



>







 







>













>







 







>







 







<







 







>













>







 







>







 







>






>






>


>







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
..
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
...
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
...
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
...
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
...
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
...
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
...
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
...
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
...
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
....
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
....
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
....
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
....
1695
1696
1697
1698
1699
1700
1701

1702
1703
1704
1705
1706
1707
1708
....
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
....
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
....
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
Alex Baines
Alex Bligh
Alex Chan
Alex Fishman
Alex Grebenschikov
Alex Gruz
Alex Malinovich
Alex Mayorga
Alex McLellan
Alex Neblett
Alex Nichols
Alex Potapenko
Alex Rousskov
Alex Suykov
Alex Vinnik
................................................................................
Alexey Zakhlestin
Alexis Carvalho
Alexis La Goutte
Alfonso Martone
Alfred Gebert
Allen Pulsifer
Alona Rossen
Amit Katyal
Amol Pattekar
Amr Shahin
Anatol Belski
Anatoli Tubman
Anders Bakken
Anders Gustafsson
Anders Havn
................................................................................
Augustus Saunders
Avery Fay
Axel Tillequin
Ayoub Boudhar
Balaji Parasuram
Balaji S Rao
Balaji Salunke
Balazs Kovacsics
Balint Szilakszi
Barry Abrahamson
Bart Whiteley
Bas Mevissen
Bas van Schaik
Basuke Suzuki
Ben Boeckel
................................................................................
Brad Fitzpatrick
Brad Harder
Brad Hards
Brad King
Brad Spencer
Bradford Bruce
Brandon Casey
Brandon Dong
Brandon Wang
Brendan Jurd
Brent Beardsley
Brian Akins
Brian Carpenter
Brian Chaplin
Brian Childs
................................................................................
Caleb Raitto
Cameron Kaiser
Cameron MacMinn
Camille Moncelier
Caolan McNamara
Carie Pointer
Carlo Cannas
Carlo Marcelo Arenas Belón
Carlo Teubner
Carlo Wood
Carlos ORyan
Carsten Lange
Casey O'Donnell
Catalin Patulea
Chad Monroe
................................................................................
Claes Jakobsson
Clarence Gardner
Claudio Neves
Clemens Gruber
Cliff Crosland
Clifford Wolf
Clint Clayton
Clément Notin
Cody Jones
Cody Mack
Colby Ranger
Colin Blair
Colin Hogben
Colin Watson
Colm Buckley
................................................................................
Ian Gulliver
Ian Lynagh
Ian Turner
Ian Wilkes
Ignacio Vazquez-Abrams
Igor Franchuk
Igor Khristophorov
Igor Makarov
Igor Novoseltsev
Igor Polyakov
Ihor Karpenko
Iida Yosiaki
Ilguiz Latypov
Ilja van Sprundel
Immanuel Gregoire
Inca R
Ingmar Runge
Ingo Ralf Blum
Ingo Wilken
Irfan Adilovic
Ironbars13 on github
Irving Wolfe
Isaac Boukris
Isaiah Norton
Ishan SinghLevett
Ithubg on github
Ivan Avdeev
Ivo Bellin Salarin
................................................................................
Jared Jennings
Jared Lundell
Jari Aalto
Jari Sundell
Jason Baietto
Jason Glasgow
Jason Juang
Jason Lee
Jason Liu
Jason McDonald
Jason S. Priebe
Javier Barroso
Javier Blazquez
Javier G. Sogo
Javier Sixto
................................................................................
Jeff Weber
Jeffrey Walton
Jens Rantil
Jens Schleusener
Jeremie Rapin
Jeremy Friesner
Jeremy Huddleston
Jeremy Lainé
Jeremy Lin
Jeremy Pearson
Jeremy Tan
Jeroen Koekkoek
Jeroen Ooms
Jerome Muffat-Meridol
Jerome Robert
................................................................................
Julian Romero Nieto
Julian Taylor
Julian Z
Julien Chaffraix
Julien Nabet
Julien Royer
Jun-ichiro itojun Hagino
Junho Choi
Jurij Smakov
Juro Bystricky
Justin Clift
Justin Ehlert
Justin Fletcher
Justin Karneges
Justin Maggard
................................................................................
Krister Johansen
Kristian Gunstone
Kristian Köhntopp
Kristiyan Tsaklev
Kristoffer Gleditsch
Kunal Ekawde
Kurt Fankhauser
Kyle Abramowitz
Kyle Edwards
Kyle J. McKay
Kyle L. Huff
Kyle Sallee
Kyohei Kadota
Kyselgov E.N
Lachlan O'Dea
Ladar Levison
Lance Ware
Larry Campbell
Larry Fahnoe
Larry Lin
Larry Stefani
Larry Stone
Lars Buitinck
Lars Gustafsson
................................................................................
Michael Jahn
Michael Jerris
Michael Kalinin
Michael Kaufmann
Michael Kilburn
Michael Kujawa
Michael König
Michael Lee
Michael Maltese
Michael Mealling
Michael Mueller
Michael Osipov
Michael Schmid
Michael Smith
Michael Stapelberg
Michael Steuer
Michael Stillwell
Michael Wallner
Michal Bonino
Michal Marek
Michal Trybus
Michal Čaplygin
Michał Antoniak
Michał Fita
Michał Górny
Michał Janiszewski
Michał Kowalczyk
Michał Piechowski
Michel Promonet
................................................................................
Rodney Simmons
Rodric Glaser
Rodrigo Silva
Roger Leigh
Roland Blom
Roland Krikava
Roland Zimmermann
Rolf Eike Beer
Rolland Dudemaine
Romain Coltel
Romain Fliedel
Romain Geissler
Roman Koifman
Roman Mamedov
Romulo A. Ceccon
................................................................................
Stephan Szabo
Stephen Brokenshire
Stephen Collyer
Stephen Kick
Stephen More
Stephen Toub
Sterling Hughes

Steve Green
Steve H Truong
Steve Havelka
Steve Holme
Steve Lhomme
Steve Little
Steve Marx
................................................................................
Taneli Vähäkangas
Tanguy Fautre
Tatsuhiro Tsujikawa
Teemu Yli-Elsila
Temprimus
Terri Oda
Terry Wu
The Infinnovation team
TheAssassin on github
Theodore Dubois
Thomas Braun
Thomas Gamper
Thomas Glanzmann
Thomas J. Moore
Thomas Klausner
Thomas L. Shinnick
Thomas Lopatic
Thomas Petazzoni
Thomas Ruecker
Thomas Schwinge
Thomas Tonino
Thomas Vegas
Thomas van Hesteren
Thorsten Schöning
Tiit Pikma
Till Maas
Tim Ansell
Tim Baker
Tim Bartley
................................................................................
bobmitchell1956 on github
bsammon on github
buzo-ffm on github
cbartl on github
cclauss on github
clbr on github
cmfrolick on github
codesniffer13 on github
d912e3 on github
daboul on github
dasimx on github
dbrowndan on github
destman on github
dkjjr89 on github
dkwolfe4 on github
................................................................................
l00p3r on Hackerone
lijian996 on github
lukaszgn on github
madblobfish on github
marc-groundctl on github
masbug on github
mccormickt12 on github
migueljcrum on github
mkzero on github
moohoorama on github
nedres on github
neex on github
neheb on github
nevv on HackerOne/curl
niallor on github
nianxuejie on github
niner on github
nk
nopjmp on github
olesteban on github
omau on github
osabc on github
ovidiu-benea on github
patelvivekv1993 on github
patnyb on github
pendrek at hackerone
pszemus on github
silveja1 on github
smuellerDD on github
sstruchtrup on github
steelman on github
steini2000 on github

Changes to jni/curl/docs/TODO.

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
..
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
...
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
...
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
...
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
...
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
...
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
...
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
...
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
...
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
...
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
...
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
...
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
...
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
...
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
...
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
....
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
....
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
 consider bringing it up for discussions first on the mailing list so that we
 all agree it is still a good idea for the project!

 All bugs documented in the KNOWN_BUGS document are subject for fixing!

 1. libcurl
 1.1 TFO support on Windows
 1.2 More data sharing
 1.3 struct lifreq
 1.4 signal-based resolver timeouts
 1.5 get rid of PATH_MAX
 1.6 Modified buffer size approach
 1.7 Support HTTP/2 for HTTP(S) proxies
 1.8 CURLOPT_RESOLVE for any port number
 1.9 Cache negative name resolves
 1.10 auto-detect proxy
 1.11 minimize dependencies with dynamically loaded modules
 1.12 updated DNS server while running
 1.13 c-ares and CURLOPT_OPENSOCKETFUNCTION
 1.14 Typesafe curl_easy_setopt()
 1.15 Monitor connections in the connection pool
 1.16 Try to URL encode given URL
 1.17 Add support for IRIs
 1.18 try next proxy if one doesn't work
 1.20 SRV and URI DNS records
 1.21 Have the URL API offer IDN decoding
 1.22 CURLINFO_PAUSE_STATE
 1.23 Offer API to flush the connection pool
 1.24 TCP Fast Open for windows
 1.25 Expose tried IP addresses that failed
 1.26 CURL_REFUSE_CLEARTEXT
 1.27 hardcode the "localhost" addresses
 1.28 FD_CLOEXEC
 1.29 Upgrade to websockets
 1.30 config file parsing

 2. libcurl - multi interface
 2.1 More non-blocking
................................................................................
 3. Documentation
 3.2 Provide cmake config-file

 4. FTP
 4.1 HOST
 4.2 Alter passive/active on failure and retry
 4.3 Earlier bad letter detection
 4.4 REST for large files
 4.5 ASCII support
 4.6 GSSAPI via Windows SSPI
 4.7 STAT for LIST without data connection
 4.8 Option to ignore private IP addresses in PASV response

 5. HTTP
 5.1 Better persistency for HTTP 1.0
 5.2 support FF3 sqlite cookie files
 5.3 Rearrange request header order
 5.4 Allow SAN names in HTTP/2 server push
 5.5 auth= in URLs
 5.6 Refuse "downgrade" redirects
 5.7 QUIC

 6. TELNET
 6.1 ditch stdin
 6.2 ditch telnet-specific select
 6.3 feature negotiation debug data

 7. SMTP
 7.1 Pipelining
 7.2 Enhanced capability support
 7.3 Add CURLOPT_MAIL_CLIENT option

 8. POP3
 8.1 Pipelining
 8.2 Enhanced capability support

 9. IMAP
 9.1 Enhanced capability support

 10. LDAP
 10.1 SASL based authentication mechanisms
................................................................................
 11. SMB
 11.1 File listing support
 11.2 Honor file timestamps
 11.3 Use NTLMv2
 11.4 Create remote directories

 12. New protocols
 12.1 RSYNC

 13. SSL
 13.1 Disable specific versions
 13.2 Provide mutex locking API
 13.3 Support in-memory certs/ca certs/keys
 13.4 Cache/share OpenSSL contexts
 13.5 Export session ids
 13.6 Provide callback for cert verification
 13.7 improve configure --with-ssl
 13.8 Support DANE
 13.9 Configurable loading of OpenSSL configuration file
 13.10 Support Authority Information Access certificate extension (AIA)
 13.11 Support intermediate & root pinning for PINNEDPUBLICKEY
 13.12 Support HSTS
 13.13 Support HPKP
 13.14 Support the clienthello extension

 14. GnuTLS
 14.1 SSL engine stuff
 14.2 check connection

 15. WinSSL/SChannel
 15.1 Add support for client certificate authentication
 15.3 Add support for the --ciphers option
 15.4 Add option to disable client certificate auto-send

................................................................................
 16. SASL
 16.1 Other authentication mechanisms
 16.2 Add QOP support to GSSAPI authentication
 16.3 Support binary messages (i.e.: non-base64)

 17. SSH protocols
 17.1 Multiplexing
 17.2 SFTP performance
 17.3 Support better than MD5 hostkey hash
 17.4 Support CURLOPT_PREQUOTE

 18. Command line tool
 18.1 sync
 18.2 glob posts
 18.3 prevent file overwriting
 18.4 simultaneous parallel transfers
 18.5 UTF-8 filenames in Content-Disposition
 18.6 warning when setting an option
 18.7 at least N milliseconds between requests
 18.9 Choose the name of file in braces for complex URLs
 18.10 improve how curl works in a windows console window
 18.11 Windows: set attribute 'archive' for completed downloads
 18.12 keep running, read instructions from pipe/socket
 18.13 support metalink in http headers
 18.14 --fail without --location should treat 3xx as a failure
 18.15 --retry should resume
 18.16 send only part of --data
 18.17 consider file name from the redirected URL with -O ?
 18.18 retry on network is unreachable
 18.19 expand ~/ in config files
 18.20 host name sections in config files

................................................................................
1.1 TFO support on Windows

 TCP Fast Open is supported on several platforms but not on Windows. Work on
 this was once started but never finished.

 See https://github.com/curl/curl/pull/3378

1.2 More data sharing

 curl_share_* functions already exist and work, and they can be extended to
 share more. For example, enable sharing of the ares channel.

1.3 struct lifreq

 Use 'struct lifreq' and SIOCGLIFADDR instead of 'struct ifreq' and
 SIOCGIFADDR on newer Solaris versions as they claim the latter is obsolete.
 To support IPv6 interface addresses for network interfaces properly.

1.4 signal-based resolver timeouts

 libcurl built without an asynchronous resolver library uses alarm() to time
 out DNS lookups. When a timeout occurs, this causes libcurl to jump from the
 signal handler back into the library with a sigsetjmp, which effectively
 causes libcurl to continue running within the signal handler. This is
 non-portable and could cause problems on some platforms. A discussion on the
 problem is available at https://curl.haxx.se/mail/lib-2008-09/0197.html

 Also, alarm() provides timeout resolution only to the nearest second. alarm
 ought to be replaced by setitimer on systems that support it.

1.5 get rid of PATH_MAX

 Having code use and rely on PATH_MAX is not nice:
 https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html

 Currently the SSH based code uses it a bit, but to remove PATH_MAX from there
 we need libssh2 to properly tell us when we pass in a too small buffer and
 its current API (as of libssh2 1.2.7) doesn't.

1.6 Modified buffer size approach

 Current libcurl allocates a fixed 16K size buffer for download and an
 additional 16K for upload. They are always unconditionally part of the easy
 handle. If CRLF translations are requested, an additional 32K "scratch
 buffer" is allocated. A total of 64K transfer buffers in the worst case.

 First, while the handles are not actually in use these buffers could be freed
 so that lingering handles just kept in queues or whatever waste less memory.

 Secondly, SFTP is a protocol that needs to handle many ~30K blocks at once
 since each need to be individually acked and therefore libssh2 must be
 allowed to send (or receive) many separate ones in parallel to achieve high
 transfer speeds. A current libcurl build with a 16K buffer makes that
 impossible, but one with a 512K buffer will reach MUCH faster transfers. But
 allocating 512K unconditionally for all buffers just in case they would like
 to do fast SFTP transfers at some point is not a good solution either.

 Dynamically allocate buffer size depending on protocol in use in combination
 with freeing it after each individual transfer? Other suggestions?

1.7 Support HTTP/2 for HTTP(S) proxies

 Support for doing HTTP/2 to HTTP and HTTPS proxies is still missing.

 See https://github.com/curl/curl/issues/3570

................................................................................
 https://github.com/curl/curl/issues/896

1.20 SRV and URI DNS records

 Offer support for resolving SRV and URI DNS records for libcurl to know which
 server to connect to for various protocols (including HTTP!).

1.21 Have the URL API offer IDN decoding

 Similar to how URL decoding/encoding is done, we could have URL functions to
 convert IDN host names to punycode (probably not the reverse).
 https://github.com/curl/curl/issues/3232

1.22 CURLINFO_PAUSE_STATE

 Return information about the transfer's current pause state, in both
 directions. https://github.com/curl/curl/issues/2588

1.23 Offer API to flush the connection pool

................................................................................
1.25 Expose tried IP addresses that failed

 When libcurl fails to connect to a host, it should be able to offer the
 application the list of IP addresses that were used in the attempt.

 https://github.com/curl/curl/issues/2126

1.26 CURL_REFUSE_CLEARTEXT

 An environment variable that when set will make libcurl refuse to use any
 cleartext network protocol. That's all non-encrypted ones (FTP, HTTP, Gopher,
 etc). By adding the check to libcurl and not just curl, this environment
 variable can then help users to block all libcurl-using programs from
 accessing the network using unsafe protocols.

 The variable could be given some sort of syntax or different levels and be
 used to also allow for example users to refuse libcurl to do transfers with
 HTTPS certificate checks disabled.

 It could also automatically refuse usernames in URLs when set
 (see CURLOPT_DISALLOW_USERNAME_IN_URL)

1.27 hardcode the "localhost" addresses

 There's this new spec getting adopted that says "localhost" should always and
 unconditionally be a local address and not get resolved by a DNS server. A
 fine way for curl to fix this would be to simply hard-code the response to
 127.0.0.1 and/or ::1 (depending on what IP versions that are requested). This
 is what the browsers probably will do with this hostname.
................................................................................
 vice versa). https://curl.haxx.se/bug/feature.cgi?id=1754793

4.3 Earlier bad letter detection

 Make the detection of (bad) %0d and %0a codes in FTP URL parts earlier in the
 process to avoid doing a resolve and connect in vain.

4.4 REST for large files

 REST fix for servers not behaving well on >2GB requests. This should fail if
 the server doesn't set the pointer to the requested index. The tricky
 (impossible?) part is to figure out if the server did the right thing or not.

4.5 ASCII support

 FTP ASCII transfers do not follow RFC959. They don't convert the data
 accordingly.

4.6 GSSAPI via Windows SSPI

................................................................................
5. HTTP

5.1 Better persistency for HTTP 1.0

 "Better" support for persistent connections over HTTP 1.0
 https://curl.haxx.se/bug/feature.cgi?id=1089001

5.2 support FF3 sqlite cookie files

 Firefox 3 is changing from its former format to a a sqlite database instead.
 We should consider how (lib)curl can/should support this.
 https://curl.haxx.se/bug/feature.cgi?id=1871388

5.3 Rearrange request header order

 Server implementors often make an effort to detect browser and to reject
 clients it can detect to not match. One of the last details we cannot yet
 control in libcurl's HTTP requests, which also can be exploited to detect
 that libcurl is in fact used even when it tries to impersonate a browser, is
 the order of the request headers. I propose that we introduce a new option in
................................................................................
5.5 auth= in URLs

 Add the ability to specify the preferred authentication mechanism to use by
 using ;auth=<mech> in the login part of the URL.

 For example:

 http://test:pass;auth=NTLM@example.com would be equivalent to specifying --user
 test:pass;auth=NTLM or --user test:pass --ntlm from the command line.

 Additionally this should be implemented for proxy base URLs as well.

5.6 Refuse "downgrade" redirects

 See https://github.com/curl/curl/issues/226

 Consider a way to tell curl to refuse to "downgrade" protocol with a redirect
 and/or possibly a bit that refuses redirect to change protocol completely.

5.7 QUIC

 The standardization process of QUIC has been taken to the IETF and can be
 followed on the [IETF QUIC Mailing
 list](https://www.ietf.org/mailman/listinfo/quic). I'd like us to get on the
 bandwagon. Ideally, this would be done with a separate library/project to
 handle the binary/framing layer in a similar fashion to how HTTP/2 is
 implemented. This, to allow other projects to benefit from the work and to
 thus broaden the interest and chance of others to participate.


6. TELNET

6.1 ditch stdin

Reading input (to send to the remote server) on stdin is a crappy solution for
library purposes. We need to invent a good way for the application to be able
to provide the data to send.

6.2 ditch telnet-specific select

 Move the telnet support's network select() loop go away and merge the code
 into the main transfer loop. Until this is done, the multi interface won't
 work for telnet.

6.3 feature negotiation debug data

  Add telnet feature negotiation data to the debug callback as header data.


7. SMTP

7.1 Pipelining

 Add support for pipelining emails.

7.2 Enhanced capability support

 Add the ability, for an application that uses libcurl, to obtain the list of
 capabilities returned from the EHLO command.

7.3 Add CURLOPT_MAIL_CLIENT option

................................................................................

 Please see the following thread for more information:
 https://curl.haxx.se/mail/lib-2012-05/0178.html


8. POP3

8.1 Pipelining

 Add support for pipelining commands.

8.2 Enhanced capability support

 Add the ability, for an application that uses libcurl, to obtain the list of
 capabilities returned from the CAPA command.

9. IMAP

................................................................................
11.4 Create remote directories

Support for creating remote directories when uploading a file to a directory
that doesn't exist on the server, just like --ftp-create-dirs.

12. New protocols

12.1 RSYNC

 There's no RFC for the protocol or an URI/URL format.  An implementation
 should most probably use an existing rsync library, such as librsync.

13. SSL

13.1 Disable specific versions

 Provide an option that allows for disabling specific SSL versions, such as
 SSLv2 https://curl.haxx.se/bug/feature.cgi?id=1767276

13.2 Provide mutex locking API

 Provide a libcurl API for setting mutex callbacks in the underlying SSL
 library, so that the same application code can use mutex-locking
 independently of OpenSSL or GnutTLS being used.

13.3 Support in-memory certs/ca certs/keys
................................................................................
 approach. See Daniel's comments:
 https://curl.haxx.se/mail/lib-2013-03/0103.html . libunbound may be the
 correct library to base this development on.

 Björn Stenberg wrote a separate initial take on DANE that was never
 completed.

13.9 Configurable loading of OpenSSL configuration file

 libcurl calls the OpenSSL function CONF_modules_load_file() in openssl.c,
 Curl_ossl_init(). "We regard any changes in the OpenSSL configuration as a
 security risk or at least as unnecessary."

 Please add a configuration switch or something similar to disable the
 CONF_modules_load_file() call.

 See https://github.com/curl/curl/issues/2724

13.10 Support Authority Information Access certificate extension (AIA)

 AIA can provide various things like CRLs but more importantly information
 about intermediate CA certificates that can allow validation path to be
 fulfilled when the HTTPS server doesn't itself provide them.

 Since AIA is about downloading certs on demand to complete a TLS handshake,
................................................................................
 features indicated by a HTTP header send by the webserver. It is widely used
 in browsers and it's purpose is to prevent insecure HTTP connections after
 a previous HTTPS connection. It protects against SSLStripping attacks.

 Doc: https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security
 RFC 6797: https://tools.ietf.org/html/rfc6797

13.13 Support HPKP

 "HTTP Public Key Pinning" is TOFU (trust on first use), time-based
 features indicated by a HTTP header send by the webserver. It's purpose is
 to prevent Man-in-the-middle attacks by trusted CAs by allowing webadmins
 to specify which CAs/certificates/public keys to trust when connection to
 their websites.

 It can be build based on PINNEDPUBLICKEY.

 Wikipedia: https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning
 OWASP: https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning
 Doc: https://developer.mozilla.org/de/docs/Web/Security/Public_Key_Pinning
 RFC: https://tools.ietf.org/html/draft-ietf-websec-key-pinning-21

13.14 Support the clienthello extension

 Certain stupid networks and middle boxes have a problem with SSL handshake
 pakets that are within a certain size range because how that sets some bits
 that previously (in older TLS version) were not set. The clienthello
 extension adds padding to avoid that size range.

 https://tools.ietf.org/html/rfc7685
 https://github.com/curl/curl/issues/2299

14. GnuTLS

14.1 SSL engine stuff

 Is this even possible?

14.2 check connection

 Add a way to check if the connection seems to be alive, to correspond to the
 SSL_peak() way we use with OpenSSL.

15. WinSSL/SChannel

................................................................................
 much in the same spirit as HTTP/2 does. libcurl however does not take
 advantage of that ability but will instead always create a new connection for
 new transfers even if an existing connection already exists to the host.

 To fix this, libcurl would have to detect an existing connection and "attach"
 the new transfer to the existing one.

17.2 SFTP performance

 libcurl's SFTP transfer performance is sub par and can be improved, mostly by
 the approach mentioned in "1.6 Modified buffer size approach".

17.3 Support better than MD5 hostkey hash

 libcurl offers the CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 option for verifying the
 server's key. MD5 is generally being deprecated so we should implement
 support for stronger hashing algorithms. libssh2 itself is what provides this
 underlying functionality and it supports at least SHA-1 as an alternative.
 SHA-1 is also being deprecated these days so we should consider working with
................................................................................

 Add an option that prevents curl from overwriting existing local files. When
 used, and there already is an existing file with the target file name
 (either -O or -o), a number should be appended (and increased if already
 existing). So that index.html becomes first index.html.1 and then
 index.html.2 etc.

18.4 simultaneous parallel transfers

 The client could be told to use maximum N simultaneous parallel transfers and
 then just make sure that happens. It should of course not make more than one
 connection to the same remote host. This would require the client to use the
 multi interface. https://curl.haxx.se/bug/feature.cgi?id=1558595

 Using the multi interface would also allow properly using parallel transfers
 with HTTP/2 and supporting HTTP/2 server push from the command line.

18.5 UTF-8 filenames in Content-Disposition

 RFC 6266 documents how UTF-8 names can be passed to a client in the
 Content-Disposition header, and curl does not support this.

 https://github.com/curl/curl/issues/1888

18.6 warning when setting an option

 Display a warning when libcurl returns an error when setting an option.
 This can be useful to tell when support for a particular feature hasn't been
 compiled into the library.

18.7 at least N milliseconds between requests

 Allow curl command lines issue a lot of request against services that limit
 users to no more than N requests/second or similar. Could be implemented with
 an option asking that at least a certain time has elapsed since the previous
 request before the next one will be performed. Example:

................................................................................

 Provide an option that makes curl not exit after the last URL (or even work
 without a given URL), and then make it read instructions passed on a pipe or
 over a socket to make further instructions so that a second subsequent curl
 invoke can talk to the still running instance and ask for transfers to get
 done, and thus maintain its connection pool, DNS cache and more.

18.13 support metalink in http headers

 Curl has support for downloading a metalink xml file, processing it, and then
 downloading the target of the metalink. This is done via the --metalink option.
 It would be nice if metalink also supported downloading via metalink
 information that is stored in HTTP headers (RFC 6249). Theoretically this could
 also be supported with the --metalink option.

 See https://tools.ietf.org/html/rfc6249

 See also https://lists.gnu.org/archive/html/bug-wget/2015-06/msg00034.html for
 an implematation of this in wget.

18.14 --fail without --location should treat 3xx as a failure

 To allow a command line like this to detect a redirect and consider it a
 failure:

    curl -v --fail -O https://example.com/curl-7.48.0.tar.gz

 ... --fail must treat 3xx responses as failures too. The least problematic
 way to implement this is probably to add that new logic in the command line
 tool only and not in the underlying CURLOPT_FAILONERROR logic.

18.15 --retry should resume

 When --retry is used and curl actually retries transfer, it should use the
 already transferred data and do a resumed transfer for the rest (when
 possible) so that it doesn't have to transfer the same data again that was
 already transferred before the retry.

................................................................................
20.4 more platforms supported

 Make the test suite work on more platforms. OpenBSD and Mac OS. Remove
 fork()s and it should become even more portable.

20.5 Add support for concurrent connections

 Tests 836, 882 and 938 were designed to verify that separate connections aren't
 used when using different login credentials in protocols that shouldn't re-use
 a connection under such circumstances.

 Unfortunately, ftpserver.pl doesn't appear to support multiple concurrent
 connections. The read while() loop seems to loop until it receives a disconnect
 from the client, where it then enters the waiting for connections loop. When
 the client opens a second connection to the server, the first connection hasn't
 been dropped (unless it has been forced - which we shouldn't do in these tests)
 and thus the wait for connections loop is never entered to receive the second
 connection.

20.6 Use the RFC6265 test suite

 A test suite made for HTTP cookies (RFC 6265) by Adam Barth is available at
 https://github.com/abarth/http-state/tree/master/tests

 It'd be really awesome if someone would write a script/setup that would run







<

<

<













<




<







 







<







<



<
<







<




<







 







<


<







<



<



<







 







<







<

<





<
<







 







<
<
<
<
<






<
<
<
<
<
<
<
<
<
<
<
<





|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







<
<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







<
<
<
<
<
<







 







<
<
<
<
<
<







 







|
|



<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<





|
|
|









|




<
<
<
<







 







<
<
<
<







 







<
<
<
<
<


<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<












<
<
<
<







 







<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<







<
<
<
<
<
<







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<







 







|
|
|


|
|
|
|
|
|







14
15
16
17
18
19
20

21

22

23
24
25
26
27
28
29
30
31
32
33
34
35

36
37
38
39

40
41
42
43
44
45
46
..
53
54
55
56
57
58
59

60
61
62
63
64
65
66

67
68
69


70
71
72
73
74
75
76

77
78
79
80

81
82
83
84
85
86
87
..
89
90
91
92
93
94
95

96
97

98
99
100
101
102
103
104

105
106
107

108
109
110

111
112
113
114
115
116
117
...
118
119
120
121
122
123
124

125
126
127
128
129
130
131

132

133
134
135
136
137


138
139
140
141
142
143
144
...
177
178
179
180
181
182
183





184
185
186
187
188
189












190
191
192
193
194
195
196
197





















198
199
200
201
202
203
204
...
314
315
316
317
318
319
320






321
322
323
324
325
326
327
...
338
339
340
341
342
343
344















345
346
347
348
349
350
351
...
455
456
457
458
459
460
461






462
463
464
465
466
467
468
...
487
488
489
490
491
492
493






494
495
496
497
498
499
500
...
515
516
517
518
519
520
521
522
523
524
525
526

















527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548




549
550
551
552
553
554
555
...
560
561
562
563
564
565
566




567
568
569
570
571
572
573
...
604
605
606
607
608
609
610





611
612





613
614
615
616
617
618
619
...
670
671
672
673
674
675
676











677
678
679
680
681
682
683
...
702
703
704
705
706
707
708















709
710
711
712
713
714
715
716
717
718
719
720




721
722
723
724
725
726
727
...
788
789
790
791
792
793
794





795
796
797
798
799
800
801
...
826
827
828
829
830
831
832










833
834
835
836
837
838
839






840
841
842
843
844
845
846
...
881
882
883
884
885
886
887
























888
889
890
891
892
893
894
...
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
 consider bringing it up for discussions first on the mailing list so that we
 all agree it is still a good idea for the project!

 All bugs documented in the KNOWN_BUGS document are subject for fixing!

 1. libcurl
 1.1 TFO support on Windows

 1.3 struct lifreq

 1.5 get rid of PATH_MAX

 1.7 Support HTTP/2 for HTTP(S) proxies
 1.8 CURLOPT_RESOLVE for any port number
 1.9 Cache negative name resolves
 1.10 auto-detect proxy
 1.11 minimize dependencies with dynamically loaded modules
 1.12 updated DNS server while running
 1.13 c-ares and CURLOPT_OPENSOCKETFUNCTION
 1.14 Typesafe curl_easy_setopt()
 1.15 Monitor connections in the connection pool
 1.16 Try to URL encode given URL
 1.17 Add support for IRIs
 1.18 try next proxy if one doesn't work
 1.20 SRV and URI DNS records

 1.22 CURLINFO_PAUSE_STATE
 1.23 Offer API to flush the connection pool
 1.24 TCP Fast Open for windows
 1.25 Expose tried IP addresses that failed

 1.27 hardcode the "localhost" addresses
 1.28 FD_CLOEXEC
 1.29 Upgrade to websockets
 1.30 config file parsing

 2. libcurl - multi interface
 2.1 More non-blocking
................................................................................
 3. Documentation
 3.2 Provide cmake config-file

 4. FTP
 4.1 HOST
 4.2 Alter passive/active on failure and retry
 4.3 Earlier bad letter detection

 4.5 ASCII support
 4.6 GSSAPI via Windows SSPI
 4.7 STAT for LIST without data connection
 4.8 Option to ignore private IP addresses in PASV response

 5. HTTP
 5.1 Better persistency for HTTP 1.0

 5.3 Rearrange request header order
 5.4 Allow SAN names in HTTP/2 server push
 5.5 auth= in URLs



 6. TELNET
 6.1 ditch stdin
 6.2 ditch telnet-specific select
 6.3 feature negotiation debug data

 7. SMTP

 7.2 Enhanced capability support
 7.3 Add CURLOPT_MAIL_CLIENT option

 8. POP3

 8.2 Enhanced capability support

 9. IMAP
 9.1 Enhanced capability support

 10. LDAP
 10.1 SASL based authentication mechanisms
................................................................................
 11. SMB
 11.1 File listing support
 11.2 Honor file timestamps
 11.3 Use NTLMv2
 11.4 Create remote directories

 12. New protocols


 13. SSL

 13.2 Provide mutex locking API
 13.3 Support in-memory certs/ca certs/keys
 13.4 Cache/share OpenSSL contexts
 13.5 Export session ids
 13.6 Provide callback for cert verification
 13.7 improve configure --with-ssl
 13.8 Support DANE

 13.10 Support Authority Information Access certificate extension (AIA)
 13.11 Support intermediate & root pinning for PINNEDPUBLICKEY
 13.12 Support HSTS

 13.14 Support the clienthello extension

 14. GnuTLS

 14.2 check connection

 15. WinSSL/SChannel
 15.1 Add support for client certificate authentication
 15.3 Add support for the --ciphers option
 15.4 Add option to disable client certificate auto-send

................................................................................
 16. SASL
 16.1 Other authentication mechanisms
 16.2 Add QOP support to GSSAPI authentication
 16.3 Support binary messages (i.e.: non-base64)

 17. SSH protocols
 17.1 Multiplexing

 17.3 Support better than MD5 hostkey hash
 17.4 Support CURLOPT_PREQUOTE

 18. Command line tool
 18.1 sync
 18.2 glob posts
 18.3 prevent file overwriting

 18.5 UTF-8 filenames in Content-Disposition

 18.7 at least N milliseconds between requests
 18.9 Choose the name of file in braces for complex URLs
 18.10 improve how curl works in a windows console window
 18.11 Windows: set attribute 'archive' for completed downloads
 18.12 keep running, read instructions from pipe/socket


 18.15 --retry should resume
 18.16 send only part of --data
 18.17 consider file name from the redirected URL with -O ?
 18.18 retry on network is unreachable
 18.19 expand ~/ in config files
 18.20 host name sections in config files

................................................................................
1.1 TFO support on Windows

 TCP Fast Open is supported on several platforms but not on Windows. Work on
 this was once started but never finished.

 See https://github.com/curl/curl/pull/3378






1.3 struct lifreq

 Use 'struct lifreq' and SIOCGLIFADDR instead of 'struct ifreq' and
 SIOCGIFADDR on newer Solaris versions as they claim the latter is obsolete.
 To support IPv6 interface addresses for network interfaces properly.













1.5 get rid of PATH_MAX

 Having code use and rely on PATH_MAX is not nice:
 https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html

 Currently the libssh2 SSH based code uses it, but to remove PATH_MAX from
 there we need libssh2 to properly tell us when we pass in a too small buffer
 and its current API (as of libssh2 1.2.7) doesn't.






















1.7 Support HTTP/2 for HTTP(S) proxies

 Support for doing HTTP/2 to HTTP and HTTPS proxies is still missing.

 See https://github.com/curl/curl/issues/3570

................................................................................
 https://github.com/curl/curl/issues/896

1.20 SRV and URI DNS records

 Offer support for resolving SRV and URI DNS records for libcurl to know which
 server to connect to for various protocols (including HTTP!).







1.22 CURLINFO_PAUSE_STATE

 Return information about the transfer's current pause state, in both
 directions. https://github.com/curl/curl/issues/2588

1.23 Offer API to flush the connection pool

................................................................................
1.25 Expose tried IP addresses that failed

 When libcurl fails to connect to a host, it should be able to offer the
 application the list of IP addresses that were used in the attempt.

 https://github.com/curl/curl/issues/2126
















1.27 hardcode the "localhost" addresses

 There's this new spec getting adopted that says "localhost" should always and
 unconditionally be a local address and not get resolved by a DNS server. A
 fine way for curl to fix this would be to simply hard-code the response to
 127.0.0.1 and/or ::1 (depending on what IP versions that are requested). This
 is what the browsers probably will do with this hostname.
................................................................................
 vice versa). https://curl.haxx.se/bug/feature.cgi?id=1754793

4.3 Earlier bad letter detection

 Make the detection of (bad) %0d and %0a codes in FTP URL parts earlier in the
 process to avoid doing a resolve and connect in vain.







4.5 ASCII support

 FTP ASCII transfers do not follow RFC959. They don't convert the data
 accordingly.

4.6 GSSAPI via Windows SSPI

................................................................................
5. HTTP

5.1 Better persistency for HTTP 1.0

 "Better" support for persistent connections over HTTP 1.0
 https://curl.haxx.se/bug/feature.cgi?id=1089001







5.3 Rearrange request header order

 Server implementors often make an effort to detect browser and to reject
 clients it can detect to not match. One of the last details we cannot yet
 control in libcurl's HTTP requests, which also can be exploited to detect
 that libcurl is in fact used even when it tries to impersonate a browser, is
 the order of the request headers. I propose that we introduce a new option in
................................................................................
5.5 auth= in URLs

 Add the ability to specify the preferred authentication mechanism to use by
 using ;auth=<mech> in the login part of the URL.

 For example:

 http://test:pass;auth=NTLM@example.com would be equivalent to specifying
 --user test:pass;auth=NTLM or --user test:pass --ntlm from the command line.

 Additionally this should be implemented for proxy base URLs as well.



















6. TELNET

6.1 ditch stdin

 Reading input (to send to the remote server) on stdin is a crappy solution
 for library purposes. We need to invent a good way for the application to be
 able to provide the data to send.

6.2 ditch telnet-specific select

 Move the telnet support's network select() loop go away and merge the code
 into the main transfer loop. Until this is done, the multi interface won't
 work for telnet.

6.3 feature negotiation debug data

 Add telnet feature negotiation data to the debug callback as header data.


7. SMTP





7.2 Enhanced capability support

 Add the ability, for an application that uses libcurl, to obtain the list of
 capabilities returned from the EHLO command.

7.3 Add CURLOPT_MAIL_CLIENT option

................................................................................

 Please see the following thread for more information:
 https://curl.haxx.se/mail/lib-2012-05/0178.html


8. POP3





8.2 Enhanced capability support

 Add the ability, for an application that uses libcurl, to obtain the list of
 capabilities returned from the CAPA command.

9. IMAP

................................................................................
11.4 Create remote directories

Support for creating remote directories when uploading a file to a directory
that doesn't exist on the server, just like --ftp-create-dirs.

12. New protocols






13. SSL






13.2 Provide mutex locking API

 Provide a libcurl API for setting mutex callbacks in the underlying SSL
 library, so that the same application code can use mutex-locking
 independently of OpenSSL or GnutTLS being used.

13.3 Support in-memory certs/ca certs/keys
................................................................................
 approach. See Daniel's comments:
 https://curl.haxx.se/mail/lib-2013-03/0103.html . libunbound may be the
 correct library to base this development on.

 Björn Stenberg wrote a separate initial take on DANE that was never
 completed.












13.10 Support Authority Information Access certificate extension (AIA)

 AIA can provide various things like CRLs but more importantly information
 about intermediate CA certificates that can allow validation path to be
 fulfilled when the HTTPS server doesn't itself provide them.

 Since AIA is about downloading certs on demand to complete a TLS handshake,
................................................................................
 features indicated by a HTTP header send by the webserver. It is widely used
 in browsers and it's purpose is to prevent insecure HTTP connections after
 a previous HTTPS connection. It protects against SSLStripping attacks.

 Doc: https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security
 RFC 6797: https://tools.ietf.org/html/rfc6797
















13.14 Support the clienthello extension

 Certain stupid networks and middle boxes have a problem with SSL handshake
 pakets that are within a certain size range because how that sets some bits
 that previously (in older TLS version) were not set. The clienthello
 extension adds padding to avoid that size range.

 https://tools.ietf.org/html/rfc7685
 https://github.com/curl/curl/issues/2299

14. GnuTLS





14.2 check connection

 Add a way to check if the connection seems to be alive, to correspond to the
 SSL_peak() way we use with OpenSSL.

15. WinSSL/SChannel

................................................................................
 much in the same spirit as HTTP/2 does. libcurl however does not take
 advantage of that ability but will instead always create a new connection for
 new transfers even if an existing connection already exists to the host.

 To fix this, libcurl would have to detect an existing connection and "attach"
 the new transfer to the existing one.






17.3 Support better than MD5 hostkey hash

 libcurl offers the CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 option for verifying the
 server's key. MD5 is generally being deprecated so we should implement
 support for stronger hashing algorithms. libssh2 itself is what provides this
 underlying functionality and it supports at least SHA-1 as an alternative.
 SHA-1 is also being deprecated these days so we should consider working with
................................................................................

 Add an option that prevents curl from overwriting existing local files. When
 used, and there already is an existing file with the target file name
 (either -O or -o), a number should be appended (and increased if already
 existing). So that index.html becomes first index.html.1 and then
 index.html.2 etc.











18.5 UTF-8 filenames in Content-Disposition

 RFC 6266 documents how UTF-8 names can be passed to a client in the
 Content-Disposition header, and curl does not support this.

 https://github.com/curl/curl/issues/1888







18.7 at least N milliseconds between requests

 Allow curl command lines issue a lot of request against services that limit
 users to no more than N requests/second or similar. Could be implemented with
 an option asking that at least a certain time has elapsed since the previous
 request before the next one will be performed. Example:

................................................................................

 Provide an option that makes curl not exit after the last URL (or even work
 without a given URL), and then make it read instructions passed on a pipe or
 over a socket to make further instructions so that a second subsequent curl
 invoke can talk to the still running instance and ask for transfers to get
 done, and thus maintain its connection pool, DNS cache and more.

























18.15 --retry should resume

 When --retry is used and curl actually retries transfer, it should use the
 already transferred data and do a resumed transfer for the rest (when
 possible) so that it doesn't have to transfer the same data again that was
 already transferred before the retry.

................................................................................
20.4 more platforms supported

 Make the test suite work on more platforms. OpenBSD and Mac OS. Remove
 fork()s and it should become even more portable.

20.5 Add support for concurrent connections

 Tests 836, 882 and 938 were designed to verify that separate connections
 aren't used when using different login credentials in protocols that
 shouldn't re-use a connection under such circumstances.

 Unfortunately, ftpserver.pl doesn't appear to support multiple concurrent
 connections. The read while() loop seems to loop until it receives a
 disconnect from the client, where it then enters the waiting for connections
 loop. When the client opens a second connection to the server, the first
 connection hasn't been dropped (unless it has been forced - which we
 shouldn't do in these tests) and thus the wait for connections loop is never
 entered to receive the second connection.

20.6 Use the RFC6265 test suite

 A test suite made for HTTP cookies (RFC 6265) by Adam Barth is available at
 https://github.com/abarth/http-state/tree/master/tests

 It'd be really awesome if someone would write a script/setup that would run

Changes to jni/curl/docs/cmdline-opts/Makefile.in.

291
292
293
294
295
296
297



298
299

300
301
302
303
304
305
306
...
424
425
426
427
428
429
430

431
432
433
434
435
436
437
...
459
460
461
462
463
464
465
466



467
468
469
470
471
472
473
...
513
514
515
516
517
518
519

520
521
522
523
524
525
526
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@



USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@

USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
  head.d header.d				\
  help.d					\
  hostpubmd5.d					\
  http0.9.d					\
  http1.0.d					\
  http1.1.d http2.d				\
  http2-prior-knowledge.d			\

  ignore-content-length.d			\
  include.d					\
  insecure.d					\
  interface.d					\
  ipv4.d ipv6.d					\
  junk-session-cookies.d			\
  keepalive-time.d				\
................................................................................
  no-buffer.d					\
  no-keepalive.d				\
  no-npn.d					\
  no-sessionid.d				\
  noproxy.d					\
  ntlm.d ntlm-wb.d				\
  oauth2-bearer.d				\
  output.d pass.d				\



  path-as-is.d					\
  pinnedpubkey.d				\
  post301.d					\
  post302.d					\
  post303.d					\
  preproxy.d					\
  progress-bar.d				\
................................................................................
  request-target.d				\
  request.d					\
  resolve.d					\
  retry-connrefused.d				\
  retry-delay.d					\
  retry-max-time.d				\
  retry.d					\

  sasl-ir.d					\
  service-name.d				\
  show-error.d					\
  silent.d					\
  socks4.d socks5.d				\
  socks4a.d					\
  socks5-basic.d				\







>
>
>


>







 







>







 







|
>
>
>







 







>







291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
...
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
...
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
...
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@
USE_NGHTTP3 = @USE_NGHTTP3@
USE_NGTCP2 = @USE_NGTCP2@
USE_NGTCP2_CRYPTO_OPENSSL = @USE_NGTCP2_CRYPTO_OPENSSL@
USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@
USE_QUICHE = @USE_QUICHE@
USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
  head.d header.d				\
  help.d					\
  hostpubmd5.d					\
  http0.9.d					\
  http1.0.d					\
  http1.1.d http2.d				\
  http2-prior-knowledge.d			\
  http3.d                                       \
  ignore-content-length.d			\
  include.d					\
  insecure.d					\
  interface.d					\
  ipv4.d ipv6.d					\
  junk-session-cookies.d			\
  keepalive-time.d				\
................................................................................
  no-buffer.d					\
  no-keepalive.d				\
  no-npn.d					\
  no-sessionid.d				\
  noproxy.d					\
  ntlm.d ntlm-wb.d				\
  oauth2-bearer.d				\
  output.d                                      \
  pass.d                			\
  parallel.d                                    \
  parallel-max.d                                \
  path-as-is.d					\
  pinnedpubkey.d				\
  post301.d					\
  post302.d					\
  post303.d					\
  preproxy.d					\
  progress-bar.d				\
................................................................................
  request-target.d				\
  request.d					\
  resolve.d					\
  retry-connrefused.d				\
  retry-delay.d					\
  retry-max-time.d				\
  retry.d					\
  sasl-authzid.d					\
  sasl-ir.d					\
  service-name.d				\
  show-error.d					\
  silent.d					\
  socks4.d socks5.d				\
  socks4a.d					\
  socks5-basic.d				\

Changes to jni/curl/docs/cmdline-opts/Makefile.inc.

61
62
63
64
65
66
67

68
69
70
71
72
73
74
..
96
97
98
99
100
101
102
103



104
105
106
107
108
109
110
...
150
151
152
153
154
155
156

157
158
159
160
161
162
163
  head.d header.d				\
  help.d					\
  hostpubmd5.d					\
  http0.9.d					\
  http1.0.d					\
  http1.1.d http2.d				\
  http2-prior-knowledge.d			\

  ignore-content-length.d			\
  include.d					\
  insecure.d					\
  interface.d					\
  ipv4.d ipv6.d					\
  junk-session-cookies.d			\
  keepalive-time.d				\
................................................................................
  no-buffer.d					\
  no-keepalive.d				\
  no-npn.d					\
  no-sessionid.d				\
  noproxy.d					\
  ntlm.d ntlm-wb.d				\
  oauth2-bearer.d				\
  output.d pass.d				\



  path-as-is.d					\
  pinnedpubkey.d				\
  post301.d					\
  post302.d					\
  post303.d					\
  preproxy.d					\
  progress-bar.d				\
................................................................................
  request-target.d				\
  request.d					\
  resolve.d					\
  retry-connrefused.d				\
  retry-delay.d					\
  retry-max-time.d				\
  retry.d					\

  sasl-ir.d					\
  service-name.d				\
  show-error.d					\
  silent.d					\
  socks4.d socks5.d				\
  socks4a.d					\
  socks5-basic.d				\







>







 







|
>
>
>







 







>







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
..
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
...
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
  head.d header.d				\
  help.d					\
  hostpubmd5.d					\
  http0.9.d					\
  http1.0.d					\
  http1.1.d http2.d				\
  http2-prior-knowledge.d			\
  http3.d                                       \
  ignore-content-length.d			\
  include.d					\
  insecure.d					\
  interface.d					\
  ipv4.d ipv6.d					\
  junk-session-cookies.d			\
  keepalive-time.d				\
................................................................................
  no-buffer.d					\
  no-keepalive.d				\
  no-npn.d					\
  no-sessionid.d				\
  noproxy.d					\
  ntlm.d ntlm-wb.d				\
  oauth2-bearer.d				\
  output.d                                      \
  pass.d                			\
  parallel.d                                    \
  parallel-max.d                                \
  path-as-is.d					\
  pinnedpubkey.d				\
  post301.d					\
  post302.d					\
  post303.d					\
  preproxy.d					\
  progress-bar.d				\
................................................................................
  request-target.d				\
  request.d					\
  resolve.d					\
  retry-connrefused.d				\
  retry-delay.d					\
  retry-max-time.d				\
  retry.d					\
  sasl-authzid.d					\
  sasl-ir.d					\
  service-name.d				\
  show-error.d					\
  silent.d					\
  socks4.d socks5.d				\
  socks4a.d					\
  socks5-basic.d				\

Changes to jni/curl/docs/cmdline-opts/config.d.

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

1) curl tries to find the "home dir": It first checks for the CURL_HOME and
then the HOME environment variables. Failing that, it uses getpwuid() on
Unix-like systems (which returns the home dir given the current user in your
system). On Windows, it then checks for the APPDATA variable, or as a last
resort the '%USERPROFILE%\\Application Data'.

2) On windows, if there is no _curlrc file in the home dir, it checks for one
in the same dir the curl executable is placed. On Unix-like systems, it will
simply try to load .curlrc from the determined home dir.

.nf
# --- Example file ---
# this is a comment
url = "example.com"







|







36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

1) curl tries to find the "home dir": It first checks for the CURL_HOME and
then the HOME environment variables. Failing that, it uses getpwuid() on
Unix-like systems (which returns the home dir given the current user in your
system). On Windows, it then checks for the APPDATA variable, or as a last
resort the '%USERPROFILE%\\Application Data'.

2) On windows, if there is no .curlrc file in the home dir, it checks for one
in the same dir the curl executable is placed. On Unix-like systems, it will
simply try to load .curlrc from the determined home dir.

.nf
# --- Example file ---
# this is a comment
url = "example.com"

Changes to jni/curl/docs/cmdline-opts/http0.9.d.

6
7
8
9
10
11
12
13
14
---
Tells curl to be fine with HTTP version 0.9 response.

HTTP/0.9 is a completely headerless response and therefore you can also
connect with this to non-HTTP servers and still get a response since curl will
simply transparently downgrade - if allowed.

A future curl version will deny continuing if the response isn't at least
HTTP/1.0 unless this option is used.







|
<
6
7
8
9
10
11
12
13

---
Tells curl to be fine with HTTP version 0.9 response.

HTTP/0.9 is a completely headerless response and therefore you can also
connect with this to non-HTTP servers and still get a response since curl will
simply transparently downgrade - if allowed.

Since curl 7.66.0, HTTP/0.9 is disabled by default.

Changes to jni/curl/docs/cmdline-opts/http2.d.

2
3
4
5
6
7
8

9
10
Tags: Versions
Protocols: HTTP
Added: 7.33.0
Mutexed: http1.1 http1.0 http2-prior-knowledge
Requires: HTTP/2
See-also: no-alpn
Help: Use HTTP 2

---
Tells curl to use HTTP version 2.







>


2
3
4
5
6
7
8
9
10
11
Tags: Versions
Protocols: HTTP
Added: 7.33.0
Mutexed: http1.1 http1.0 http2-prior-knowledge
Requires: HTTP/2
See-also: no-alpn
Help: Use HTTP 2
See-also: http1.1 http3
---
Tells curl to use HTTP version 2.

Added jni/curl/docs/cmdline-opts/http3.d.







































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Long: http3
Tags: Versions
Protocols: HTTP
Added: 7.66.0
Mutexed: http1.1 http1.0 http2 http2-prior-knowledge
Requires: HTTP/3
Help: Use HTTP v3
See-also: http1.1 http2
---

WARNING: this option is experiemental. Do not use in production.

Tells curl to use HTTP version 3 directly to the host and port number used in
the URL. A normal HTTP/3 transaction will be done to a host and then get
redirected via Alt-SVc, but this option allows a user to circumvent that when
you know that the target speaks HTTP/3 on the given host and port.

This option will make curl fail if a QUIC connection cannot be established, it
cannot fall back to a lower HTTP version on its own.

Added jni/curl/docs/cmdline-opts/parallel-max.d.



















>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
Long: parallel-max
Help: Maximum concurrency for parallel transfers
Added: 7.66.0
See-also: parallel
---
When asked to do parallel transfers, using --parallel, this option controls
the maximum amount of transfers to do simultaneously.

The default is 50.

Added jni/curl/docs/cmdline-opts/parallel.d.















>
>
>
>
>
>
>
1
2
3
4
5
6
7
Short: Z
Long: parallel
Help: Perform transfers in parallel
Added: 7.66.0
---
Makes curl perform its transfers in parallel as compared to the regular serial
manner.

Changes to jni/curl/docs/cmdline-opts/retry.d.

9
10
11
12
13
14
15
16



17
a timeout, an FTP 4xx response code or an HTTP 408 or 5xx response code.

When curl is about to retry a transfer, it will first wait one second and then
for all forthcoming retries it will double the waiting time until it reaches
10 minutes which then will be the delay between the rest of the retries.  By
using --retry-delay you disable this exponential backoff algorithm. See also
--retry-max-time to limit the total time allowed for retries.




If this option is used several times, the last one will be used.








>
>
>

9
10
11
12
13
14
15
16
17
18
19
20
a timeout, an FTP 4xx response code or an HTTP 408 or 5xx response code.

When curl is about to retry a transfer, it will first wait one second and then
for all forthcoming retries it will double the waiting time until it reaches
10 minutes which then will be the delay between the rest of the retries.  By
using --retry-delay you disable this exponential backoff algorithm. See also
--retry-max-time to limit the total time allowed for retries.

Since curl 7.66.0, curl will comply with the Retry-After: response header if
one was present to know when to issue the next retry.

If this option is used several times, the last one will be used.

Added jni/curl/docs/cmdline-opts/sasl-authzid.d.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
Long: sasl-authzid
Help: Use this identity to act as during SASL PLAIN authentication
Added: 7.66.0
---
Use this authorisation identity (authzid), during SASL PLAIN authentication,
in addition to the authentication identity (authcid) as specified by --user.

If the option isn't specified, the server will derive the authzid from the
authcid, but if specified, and depending on the server implementation, it may
be used to access another user's inbox, that the user has been granted access
to, or a shared mailbox for example.

Changes to jni/curl/docs/curl-config.1.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "November 30, 2017" "Curl 7.65.3" "curl-config manual"

.SH NAME
curl-config \- Get information about a libcurl installation
.SH SYNOPSIS
.B curl-config [options]
.SH DESCRIPTION
.B curl-config







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "November 30, 2017" "Curl 7.66.0" "curl-config manual"

.SH NAME
curl-config \- Get information about a libcurl installation
.SH SYNOPSIS
.B curl-config [options]
.SH DESCRIPTION
.B curl-config

Changes to jni/curl/docs/curl.1.

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
...
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
....
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
....
1079
1080
1081
1082
1083
1084
1085
1086













1087
1088
1089
1090
1091
1092
1093
....
1509
1510
1511
1512
1513
1514
1515












1516
1517
1518
1519
1520
1521
1522
....
2134
2135
2136
2137
2138
2139
2140



2141
2142
2143
2144










2145
2146
2147
2148
2149
2150
2151
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.\"
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
.\"
.TH curl 1 "November 16, 2016" "Curl 7.65.3" "Curl Manual"

.SH NAME
curl \- transfer a URL
.SH SYNOPSIS
.B curl [options / URLs]
.SH DESCRIPTION
.B curl
................................................................................

1) curl tries to find the "home dir": It first checks for the CURL_HOME and
then the HOME environment variables. Failing that, it uses getpwuid() on
Unix-like systems (which returns the home dir given the current user in your
system). On Windows, it then checks for the APPDATA variable, or as a last
resort the '%USERPROFILE%\\Application Data'.

2) On windows, if there is no _curlrc file in the home dir, it checks for one
in the same dir the curl executable is placed. On Unix-like systems, it will
simply try to load .curlrc from the determined home dir.

.nf
# --- Example file ---
# this is a comment
url = "example.com"
................................................................................
.IP "--http0.9"
(HTTP) Tells curl to be fine with HTTP version 0.9 response.

HTTP/0.9 is a completely headerless response and therefore you can also
connect with this to non-HTTP servers and still get a response since curl will
simply transparently downgrade - if allowed.

A future curl version will deny continuing if the response isn't at least
HTTP/1.0 unless this option is used.
.IP "-0, --http1.0"
(HTTP) Tells curl to use HTTP version 1.0 instead of using its internally preferred
HTTP version.

This option overrides \fI--http1.1\fP and \fI--http2\fP.
.IP "--http1.1"
(HTTP) Tells curl to use HTTP version 1.1.
................................................................................
away. HTTPS requests will still do HTTP/2 the standard way with negotiated
protocol version in the TLS handshake.

\fI--http2-prior-knowledge\fP requires that the underlying libcurl was built to support HTTP/2. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2\fP. Added in 7.49.0.
.IP "--http2"
(HTTP) Tells curl to use HTTP version 2.

See also \fI--no-alpn\fP. \fI--http2\fP requires that the underlying libcurl was built to support HTTP/2. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2-prior-knowledge\fP. Added in 7.33.0.













.IP "--ignore-content-length"
(FTP HTTP) For HTTP, Ignore the Content-Length header. This is particularly useful for
servers running Apache 1.x, which will report incorrect Content-Length for
files larger than 2 gigabytes.

For FTP (since 7.46.0), skip the RETR command to figure out the size before
downloading a file.
................................................................................
  curl example.com example.net -o aa -o bb

See also the \fI--create-dirs\fP option to create the local directories
dynamically. Specifying the output as '-' (a single dash) will force the
output to be done to stdout.

See also \fI-O, --remote-name\fP and \fI--remote-name-all\fP and \fI-J, --remote-header-name\fP.












.IP "--pass <phrase>"
(SSH TLS) Passphrase for the private key

If this option is used several times, the last one will be used.
.IP "--path-as-is"
Tell curl to not handle sequences of /../ or /./ in the given URL
path. Normally curl will squash or merge them according to standards but with
................................................................................
a timeout, an FTP 4xx response code or an HTTP 408 or 5xx response code.

When curl is about to retry a transfer, it will first wait one second and then
for all forthcoming retries it will double the waiting time until it reaches
10 minutes which then will be the delay between the rest of the retries.  By
using \fI--retry-delay\fP you disable this exponential backoff algorithm. See also
\fI--retry-max-time\fP to limit the total time allowed for retries.




If this option is used several times, the last one will be used.

Added in 7.12.3.










.IP "--sasl-ir"
Enable initial response in SASL authentication.

Added in 7.31.0.
.IP "--service-name <name>"
This option allows you to change the service name for SPNEGO.








|







 







|







 







|
<







 







|
>
>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>




>
>
>
>
>
>
>
>
>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
...
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
....
1058
1059
1060
1061
1062
1063
1064
1065

1066
1067
1068
1069
1070
1071
1072
....
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
....
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
....
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.\"
.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
.\"
.TH curl 1 "November 16, 2016" "Curl 7.66.0" "Curl Manual"

.SH NAME
curl \- transfer a URL
.SH SYNOPSIS
.B curl [options / URLs]
.SH DESCRIPTION
.B curl
................................................................................

1) curl tries to find the "home dir": It first checks for the CURL_HOME and
then the HOME environment variables. Failing that, it uses getpwuid() on
Unix-like systems (which returns the home dir given the current user in your
system). On Windows, it then checks for the APPDATA variable, or as a last
resort the '%USERPROFILE%\\Application Data'.

2) On windows, if there is no .curlrc file in the home dir, it checks for one
in the same dir the curl executable is placed. On Unix-like systems, it will
simply try to load .curlrc from the determined home dir.

.nf
# --- Example file ---
# this is a comment
url = "example.com"
................................................................................
.IP "--http0.9"
(HTTP) Tells curl to be fine with HTTP version 0.9 response.

HTTP/0.9 is a completely headerless response and therefore you can also
connect with this to non-HTTP servers and still get a response since curl will
simply transparently downgrade - if allowed.

Since curl 7.66.0, HTTP/0.9 is disabled by default.

.IP "-0, --http1.0"
(HTTP) Tells curl to use HTTP version 1.0 instead of using its internally preferred
HTTP version.

This option overrides \fI--http1.1\fP and \fI--http2\fP.
.IP "--http1.1"
(HTTP) Tells curl to use HTTP version 1.1.
................................................................................
away. HTTPS requests will still do HTTP/2 the standard way with negotiated
protocol version in the TLS handshake.

\fI--http2-prior-knowledge\fP requires that the underlying libcurl was built to support HTTP/2. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2\fP. Added in 7.49.0.
.IP "--http2"
(HTTP) Tells curl to use HTTP version 2.

See also \fI--http1.1\fP and \fI--http3\fP. \fI--http2\fP requires that the underlying libcurl was built to support HTTP/2. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2-prior-knowledge\fP. Added in 7.33.0.
.IP "--http3"
(HTTP) 
WARNING: this option is experiemental. Do not use in production.

Tells curl to use HTTP version 3 directly to the host and port number used in
the URL. A normal HTTP/3 transaction will be done to a host and then get
redirected via Alt-SVc, but this option allows a user to circumvent that when
you know that the target speaks HTTP/3 on the given host and port.

This option will make curl fail if a QUIC connection cannot be established, it
cannot fall back to a lower HTTP version on its own.

See also \fI--http1.1\fP and \fI--http2\fP. \fI--http3\fP requires that the underlying libcurl was built to support HTTP/3. This option overrides \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2\fP and \fI--http2-prior-knowledge\fP. Added in 7.66.0.
.IP "--ignore-content-length"
(FTP HTTP) For HTTP, Ignore the Content-Length header. This is particularly useful for
servers running Apache 1.x, which will report incorrect Content-Length for
files larger than 2 gigabytes.

For FTP (since 7.46.0), skip the RETR command to figure out the size before
downloading a file.
................................................................................
  curl example.com example.net -o aa -o bb

See also the \fI--create-dirs\fP option to create the local directories
dynamically. Specifying the output as '-' (a single dash) will force the
output to be done to stdout.

See also \fI-O, --remote-name\fP and \fI--remote-name-all\fP and \fI-J, --remote-header-name\fP.
.IP "--parallel-max"
When asked to do parallel transfers, using \fI-Z, --parallel\fP, this option controls
the maximum amount of transfers to do simultaneously.

The default is 50.

See also \fI-Z, --parallel\fP. Added in 7.66.0.
.IP "-Z, --parallel"
Makes curl perform its transfers in parallel as compared to the regular serial
manner.

Added in 7.66.0.
.IP "--pass <phrase>"
(SSH TLS) Passphrase for the private key

If this option is used several times, the last one will be used.
.IP "--path-as-is"
Tell curl to not handle sequences of /../ or /./ in the given URL
path. Normally curl will squash or merge them according to standards but with
................................................................................
a timeout, an FTP 4xx response code or an HTTP 408 or 5xx response code.

When curl is about to retry a transfer, it will first wait one second and then
for all forthcoming retries it will double the waiting time until it reaches
10 minutes which then will be the delay between the rest of the retries.  By
using \fI--retry-delay\fP you disable this exponential backoff algorithm. See also
\fI--retry-max-time\fP to limit the total time allowed for retries.

Since curl 7.66.0, curl will comply with the Retry-After: response header if
one was present to know when to issue the next retry.

If this option is used several times, the last one will be used.

Added in 7.12.3.
.IP "--sasl-authzid"
Use this authorisation identity (authzid), during SASL PLAIN authentication,
in addition to the authentication identity (authcid) as specified by \fI-u, --user\fP.

If the option isn't specified, the server will derive the authzid from the
authcid, but if specified, and depending on the server implementation, it may
be used to access another user's inbox, that the user has been granted access
to, or a shared mailbox for example.

Added in 7.66.0.
.IP "--sasl-ir"
Enable initial response in SASL authentication.

Added in 7.31.0.
.IP "--service-name <name>"
This option allows you to change the service name for SPNEGO.

Changes to jni/curl/docs/examples/Makefile.in.

39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
...
159
160
161
162
163
164
165
166


167
168
169
170
171
172
173
...
198
199
200
201
202
203
204







205
206
207
208
209
210
211
...
364
365
366
367
368
369
370













371
372
373
374
375
376
377
...
391
392
393
394
395
396
397







398
399
400
401
402
403
404
...
538
539
540
541
542
543
544







545
546
547
548
549
550
551
...
711
712
713
714
715
716
717







718
719
720
721
722
723
724
...
797
798
799
800
801
802
803

804
805
806
807
808
809
810
811
812
813
814
815
816

817
818

819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841

842
843
844
845
846
847
848
849
850
851
852
853
...
859
860
861
862
863
864
865
866
867
868
869
870
871
872

873
874
875
876
877
878
879
880
881
882
883
884

885
886
887
888
889
890
891

892
893
894
895
896
897
898

899
900
901
902
903

904
905
906
907
908
909
910
911
912
....
1063
1064
1065
1066
1067
1068
1069



1070
1071

1072
1073
1074
1075
1076
1077
1078
....
1209
1210
1211
1212
1213
1214
1215




1216
1217
1218
1219
1220
1221
1222
....
1305
1306
1307
1308
1309
1310
1311








1312
1313
1314
1315
1316
1317
1318
....
1321
1322
1323
1324
1325
1326
1327




1328
1329
1330
1331
1332
1333
1334
....
1405
1406
1407
1408
1409
1410
1411




1412
1413
1414
1415
1416
1417
1418
....
1505
1506
1507
1508
1509
1510
1511




1512
1513
1514
1515
1516
1517
1518
....
1553
1554
1555
1556
1557
1558
1559

1560
1561
1562
1563
1564
1565
1566
....
1577
1578
1579
1580
1581
1582
1583


1584
1585
1586
1587

1588
1589
1590
1591
1592
1593
1594
....
1602
1603
1604
1605
1606
1607
1608

1609
1610
1611
1612
1613
1614
1615
....
1627
1628
1629
1630
1631
1632
1633

1634
1635
1636
1637
1638
1639
1640
....
1801
1802
1803
1804
1805
1806
1807

1808
1809
1810
1811
1812
1813
1814
....
1825
1826
1827
1828
1829
1830
1831


1832
1833
1834
1835

1836
1837
1838
1839
1840
1841
1842
....
1850
1851
1852
1853
1854
1855
1856

1857
1858
1859
1860
1861
1862
1863
....
1875
1876
1877
1878
1879
1880
1881

1882
1883
1884
1885
1886
1887
1888
....
1931
1932
1933
1934
1935
1936
1937

1938
1939
1940
1941
1942
1943
1944
....
1955
1956
1957
1958
1959
1960
1961


1962
1963
1964
1965

1966
1967
1968
1969
1970
1971
1972
....
1980
1981
1982
1983
1984
1985
1986

1987
1988
1989
1990
1991
1992
1993
....
2005
2006
2007
2008
2009
2010
2011

2012
2013
2014
2015
2016
2017
2018
#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2018, 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
................................................................................
	sftpget$(EXEEXT) ftpsget$(EXEEXT) postinmemory$(EXEEXT) \
	http2-download$(EXEEXT) http2-upload$(EXEEXT) \
	http2-serverpush$(EXEEXT) getredirect$(EXEEXT) \
	ftpuploadfrommem$(EXEEXT) ftpuploadresume$(EXEEXT) \
	sslbackend$(EXEEXT) postit2-formadd$(EXEEXT) \
	multi-formadd$(EXEEXT) shared-connection-cache$(EXEEXT) \
	sftpuploadresume$(EXEEXT) http2-pushinmemory$(EXEEXT) \
	parseurl$(EXEEXT) urlapi$(EXEEXT)


subdir = docs/examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compile_check_sizeof.m4 \
	$(top_srcdir)/m4/curl-compilers.m4 \
	$(top_srcdir)/m4/curl-confopts.m4 \
	$(top_srcdir)/m4/curl-functions.m4 \
	$(top_srcdir)/m4/curl-openssl.m4 \
................................................................................
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@10_at_a_time_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 







anyauthput_SOURCES = anyauthput.c
anyauthput_OBJECTS = anyauthput.$(OBJEXT)
anyauthput_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@anyauthput_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@anyauthput_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
http2_upload_SOURCES = http2-upload.c
http2_upload_OBJECTS = http2-upload.$(OBJEXT)
http2_upload_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@http2_upload_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@http2_upload_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la













httpcustomheader_SOURCES = httpcustomheader.c
httpcustomheader_OBJECTS = httpcustomheader.$(OBJEXT)
httpcustomheader_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@httpcustomheader_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@httpcustomheader_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
imap_append_SOURCES = imap-append.c
imap_append_OBJECTS = imap-append.$(OBJEXT)
imap_append_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@imap_append_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@imap_append_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la







imap_copy_SOURCES = imap-copy.c
imap_copy_OBJECTS = imap-copy.$(OBJEXT)
imap_copy_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@imap_copy_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@imap_copy_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
persistent_SOURCES = persistent.c
persistent_OBJECTS = persistent.$(OBJEXT)
persistent_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@persistent_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@persistent_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la







pop3_dele_SOURCES = pop3-dele.c
pop3_dele_OBJECTS = pop3-dele.$(OBJEXT)
pop3_dele_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@pop3_dele_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@pop3_dele_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
simplessl_SOURCES = simplessl.c
simplessl_OBJECTS = simplessl.$(OBJEXT)
simplessl_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@simplessl_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@simplessl_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la







smtp_expn_SOURCES = smtp-expn.c
smtp_expn_OBJECTS = smtp-expn.$(OBJEXT)
smtp_expn_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@smtp_expn_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@smtp_expn_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
DEFAULT_INCLUDES = 
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/10-at-a-time.Po \

	./$(DEPDIR)/anyauthput.Po ./$(DEPDIR)/certinfo.Po \
	./$(DEPDIR)/chkspeed.Po ./$(DEPDIR)/cookie_interface.Po \
	./$(DEPDIR)/debug.Po ./$(DEPDIR)/externalsocket.Po \
	./$(DEPDIR)/fileupload.Po ./$(DEPDIR)/fopen.Po \
	./$(DEPDIR)/ftp-wildcard.Po ./$(DEPDIR)/ftpget.Po \
	./$(DEPDIR)/ftpgetinfo.Po ./$(DEPDIR)/ftpgetresp.Po \
	./$(DEPDIR)/ftpsget.Po ./$(DEPDIR)/ftpupload.Po \
	./$(DEPDIR)/ftpuploadfrommem.Po ./$(DEPDIR)/ftpuploadresume.Po \
	./$(DEPDIR)/getinfo.Po ./$(DEPDIR)/getinmemory.Po \
	./$(DEPDIR)/getredirect.Po ./$(DEPDIR)/http-post.Po \
	./$(DEPDIR)/http2-download.Po \
	./$(DEPDIR)/http2-pushinmemory.Po \
	./$(DEPDIR)/http2-serverpush.Po ./$(DEPDIR)/http2-upload.Po \

	./$(DEPDIR)/httpcustomheader.Po ./$(DEPDIR)/httpput.Po \
	./$(DEPDIR)/https.Po ./$(DEPDIR)/imap-append.Po \

	./$(DEPDIR)/imap-copy.Po ./$(DEPDIR)/imap-create.Po \
	./$(DEPDIR)/imap-delete.Po ./$(DEPDIR)/imap-examine.Po \
	./$(DEPDIR)/imap-fetch.Po ./$(DEPDIR)/imap-list.Po \
	./$(DEPDIR)/imap-lsub.Po ./$(DEPDIR)/imap-multi.Po \
	./$(DEPDIR)/imap-noop.Po ./$(DEPDIR)/imap-search.Po \
	./$(DEPDIR)/imap-ssl.Po ./$(DEPDIR)/imap-store.Po \
	./$(DEPDIR)/imap-tls.Po ./$(DEPDIR)/multi-app.Po \
	./$(DEPDIR)/multi-debugcallback.Po ./$(DEPDIR)/multi-double.Po \
	./$(DEPDIR)/multi-formadd.Po ./$(DEPDIR)/multi-post.Po \
	./$(DEPDIR)/multi-single.Po ./$(DEPDIR)/parseurl.Po \
	./$(DEPDIR)/persistent.Po ./$(DEPDIR)/pop3-dele.Po \
	./$(DEPDIR)/pop3-list.Po ./$(DEPDIR)/pop3-multi.Po \
	./$(DEPDIR)/pop3-noop.Po ./$(DEPDIR)/pop3-retr.Po \
	./$(DEPDIR)/pop3-ssl.Po ./$(DEPDIR)/pop3-stat.Po \
	./$(DEPDIR)/pop3-tls.Po ./$(DEPDIR)/pop3-top.Po \
	./$(DEPDIR)/pop3-uidl.Po ./$(DEPDIR)/post-callback.Po \
	./$(DEPDIR)/postinmemory.Po ./$(DEPDIR)/postit2-formadd.Po \
	./$(DEPDIR)/postit2.Po ./$(DEPDIR)/progressfunc.Po \
	./$(DEPDIR)/resolve.Po ./$(DEPDIR)/rtsp.Po \
	./$(DEPDIR)/sendrecv.Po ./$(DEPDIR)/sepheaders.Po \
	./$(DEPDIR)/sftpget.Po ./$(DEPDIR)/sftpuploadresume.Po \
	./$(DEPDIR)/shared-connection-cache.Po ./$(DEPDIR)/simple.Po \
	./$(DEPDIR)/simplepost.Po ./$(DEPDIR)/simplessl.Po \

	./$(DEPDIR)/smtp-expn.Po ./$(DEPDIR)/smtp-mail.Po \
	./$(DEPDIR)/smtp-mime.Po ./$(DEPDIR)/smtp-multi.Po \
	./$(DEPDIR)/smtp-ssl.Po ./$(DEPDIR)/smtp-tls.Po \
	./$(DEPDIR)/smtp-vrfy.Po ./$(DEPDIR)/sslbackend.Po \
	./$(DEPDIR)/url2file.Po ./$(DEPDIR)/urlapi.Po
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CFLAGS) $(CFLAGS)
................................................................................
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 = 
SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
	cookie_interface.c debug.c externalsocket.c fileupload.c \
	fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
	ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c \
	getinfo.c getinmemory.c getredirect.c http-post.c \
	http2-download.c http2-pushinmemory.c http2-serverpush.c \
	http2-upload.c httpcustomheader.c httpput.c https.c \

	imap-append.c imap-copy.c imap-create.c imap-delete.c \
	imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
	imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
	imap-tls.c multi-app.c multi-debugcallback.c multi-double.c \
	multi-formadd.c multi-post.c multi-single.c parseurl.c \
	persistent.c pop3-dele.c pop3-list.c pop3-multi.c pop3-noop.c \
	pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c pop3-top.c \
	pop3-uidl.c post-callback.c postinmemory.c postit2.c \
	postit2-formadd.c progressfunc.c resolve.c rtsp.c sendrecv.c \
	sepheaders.c sftpget.c sftpuploadresume.c \
	shared-connection-cache.c simple.c simplepost.c simplessl.c \
	smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c \

	smtp-tls.c smtp-vrfy.c sslbackend.c url2file.c urlapi.c
DIST_SOURCES = 10-at-a-time.c anyauthput.c certinfo.c chkspeed.c \
	cookie_interface.c debug.c externalsocket.c fileupload.c \
	fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
	ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c \
	getinfo.c getinmemory.c getredirect.c http-post.c \
	http2-download.c http2-pushinmemory.c http2-serverpush.c \

	http2-upload.c httpcustomheader.c httpput.c https.c \
	imap-append.c imap-copy.c imap-create.c imap-delete.c \
	imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
	imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
	imap-tls.c multi-app.c multi-debugcallback.c multi-double.c \
	multi-formadd.c multi-post.c multi-single.c parseurl.c \
	persistent.c pop3-dele.c pop3-list.c pop3-multi.c pop3-noop.c \

	pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c pop3-top.c \
	pop3-uidl.c post-callback.c postinmemory.c postit2.c \
	postit2-formadd.c progressfunc.c resolve.c rtsp.c sendrecv.c \
	sepheaders.c sftpget.c sftpuploadresume.c \
	shared-connection-cache.c simple.c simplepost.c simplessl.c \

	smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c \
	smtp-tls.c smtp-vrfy.c sslbackend.c url2file.c urlapi.c
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
................................................................................
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@



USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@

USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
	echo " rm -f" $$list; \
	rm -f $$list

10-at-a-time$(EXEEXT): $(10_at_a_time_OBJECTS) $(10_at_a_time_DEPENDENCIES) $(EXTRA_10_at_a_time_DEPENDENCIES) 
	@rm -f 10-at-a-time$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(10_at_a_time_OBJECTS) $(10_at_a_time_LDADD) $(LIBS)





anyauthput$(EXEEXT): $(anyauthput_OBJECTS) $(anyauthput_DEPENDENCIES) $(EXTRA_anyauthput_DEPENDENCIES) 
	@rm -f anyauthput$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(anyauthput_OBJECTS) $(anyauthput_LDADD) $(LIBS)

certinfo$(EXEEXT): $(certinfo_OBJECTS) $(certinfo_DEPENDENCIES) $(EXTRA_certinfo_DEPENDENCIES) 
	@rm -f certinfo$(EXEEXT)
................................................................................
http2-serverpush$(EXEEXT): $(http2_serverpush_OBJECTS) $(http2_serverpush_DEPENDENCIES) $(EXTRA_http2_serverpush_DEPENDENCIES) 
	@rm -f http2-serverpush$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(http2_serverpush_OBJECTS) $(http2_serverpush_LDADD) $(LIBS)

http2-upload$(EXEEXT): $(http2_upload_OBJECTS) $(http2_upload_DEPENDENCIES) $(EXTRA_http2_upload_DEPENDENCIES) 
	@rm -f http2-upload$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(http2_upload_OBJECTS) $(http2_upload_LDADD) $(LIBS)









httpcustomheader$(EXEEXT): $(httpcustomheader_OBJECTS) $(httpcustomheader_DEPENDENCIES) $(EXTRA_httpcustomheader_DEPENDENCIES) 
	@rm -f httpcustomheader$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(httpcustomheader_OBJECTS) $(httpcustomheader_LDADD) $(LIBS)

httpput$(EXEEXT): $(httpput_OBJECTS) $(httpput_DEPENDENCIES) $(EXTRA_httpput_DEPENDENCIES) 
	@rm -f httpput$(EXEEXT)
................................................................................
https$(EXEEXT): $(https_OBJECTS) $(https_DEPENDENCIES) $(EXTRA_https_DEPENDENCIES) 
	@rm -f https$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(https_OBJECTS) $(https_LDADD) $(LIBS)

imap-append$(EXEEXT): $(imap_append_OBJECTS) $(imap_append_DEPENDENCIES) $(EXTRA_imap_append_DEPENDENCIES) 
	@rm -f imap-append$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(imap_append_OBJECTS) $(imap_append_LDADD) $(LIBS)





imap-copy$(EXEEXT): $(imap_copy_OBJECTS) $(imap_copy_DEPENDENCIES) $(EXTRA_imap_copy_DEPENDENCIES) 
	@rm -f imap-copy$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(imap_copy_OBJECTS) $(imap_copy_LDADD) $(LIBS)

imap-create$(EXEEXT): $(imap_create_OBJECTS) $(imap_create_DEPENDENCIES) $(EXTRA_imap_create_DEPENDENCIES) 
	@rm -f imap-create$(EXEEXT)
................................................................................
parseurl$(EXEEXT): $(parseurl_OBJECTS) $(parseurl_DEPENDENCIES) $(EXTRA_parseurl_DEPENDENCIES) 
	@rm -f parseurl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(parseurl_OBJECTS) $(parseurl_LDADD) $(LIBS)

persistent$(EXEEXT): $(persistent_OBJECTS) $(persistent_DEPENDENCIES) $(EXTRA_persistent_DEPENDENCIES) 
	@rm -f persistent$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(persistent_OBJECTS) $(persistent_LDADD) $(LIBS)





pop3-dele$(EXEEXT): $(pop3_dele_OBJECTS) $(pop3_dele_DEPENDENCIES) $(EXTRA_pop3_dele_DEPENDENCIES) 
	@rm -f pop3-dele$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(pop3_dele_OBJECTS) $(pop3_dele_LDADD) $(LIBS)

pop3-list$(EXEEXT): $(pop3_list_OBJECTS) $(pop3_list_DEPENDENCIES) $(EXTRA_pop3_list_DEPENDENCIES) 
	@rm -f pop3-list$(EXEEXT)
................................................................................
simplepost$(EXEEXT): $(simplepost_OBJECTS) $(simplepost_DEPENDENCIES) $(EXTRA_simplepost_DEPENDENCIES) 
	@rm -f simplepost$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(simplepost_OBJECTS) $(simplepost_LDADD) $(LIBS)

simplessl$(EXEEXT): $(simplessl_OBJECTS) $(simplessl_DEPENDENCIES) $(EXTRA_simplessl_DEPENDENCIES) 
	@rm -f simplessl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(simplessl_OBJECTS) $(simplessl_LDADD) $(LIBS)





smtp-expn$(EXEEXT): $(smtp_expn_OBJECTS) $(smtp_expn_DEPENDENCIES) $(EXTRA_smtp_expn_DEPENDENCIES) 
	@rm -f smtp-expn$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(smtp_expn_OBJECTS) $(smtp_expn_LDADD) $(LIBS)

smtp-mail$(EXEEXT): $(smtp_mail_OBJECTS) $(smtp_mail_DEPENDENCIES) $(EXTRA_smtp_mail_DEPENDENCIES) 
	@rm -f smtp-mail$(EXEEXT)
................................................................................
mostlyclean-compile:
	-rm -f *.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/10-at-a-time.Po@am__quote@ # am--include-marker

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anyauthput.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/certinfo.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chkspeed.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cookie_interface.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/externalsocket.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileupload.Po@am__quote@ # am--include-marker
................................................................................
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getinmemory.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getredirect.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http-post.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-download.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-pushinmemory.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-serverpush.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-upload.Po@am__quote@ # am--include-marker


@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpcustomheader.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpput.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/https.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-append.Po@am__quote@ # am--include-marker

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-copy.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-create.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-delete.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-examine.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-fetch.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-list.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-lsub.Po@am__quote@ # am--include-marker
................................................................................
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-debugcallback.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-double.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-formadd.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-post.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-single.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parseurl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/persistent.Po@am__quote@ # am--include-marker

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-dele.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-list.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-multi.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-noop.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-retr.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-ssl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-stat.Po@am__quote@ # am--include-marker
................................................................................
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sepheaders.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sftpget.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sftpuploadresume.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shared-connection-cache.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplepost.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplessl.Po@am__quote@ # am--include-marker

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-expn.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-mail.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-mime.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-multi.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-ssl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-tls.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-vrfy.Po@am__quote@ # am--include-marker
................................................................................
clean: clean-am

clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
	mostlyclean-am

distclean: distclean-am
		-rm -f ./$(DEPDIR)/10-at-a-time.Po

	-rm -f ./$(DEPDIR)/anyauthput.Po
	-rm -f ./$(DEPDIR)/certinfo.Po
	-rm -f ./$(DEPDIR)/chkspeed.Po
	-rm -f ./$(DEPDIR)/cookie_interface.Po
	-rm -f ./$(DEPDIR)/debug.Po
	-rm -f ./$(DEPDIR)/externalsocket.Po
	-rm -f ./$(DEPDIR)/fileupload.Po
................................................................................
	-rm -f ./$(DEPDIR)/getinmemory.Po
	-rm -f ./$(DEPDIR)/getredirect.Po
	-rm -f ./$(DEPDIR)/http-post.Po
	-rm -f ./$(DEPDIR)/http2-download.Po
	-rm -f ./$(DEPDIR)/http2-pushinmemory.Po
	-rm -f ./$(DEPDIR)/http2-serverpush.Po
	-rm -f ./$(DEPDIR)/http2-upload.Po


	-rm -f ./$(DEPDIR)/httpcustomheader.Po
	-rm -f ./$(DEPDIR)/httpput.Po
	-rm -f ./$(DEPDIR)/https.Po
	-rm -f ./$(DEPDIR)/imap-append.Po

	-rm -f ./$(DEPDIR)/imap-copy.Po
	-rm -f ./$(DEPDIR)/imap-create.Po
	-rm -f ./$(DEPDIR)/imap-delete.Po
	-rm -f ./$(DEPDIR)/imap-examine.Po
	-rm -f ./$(DEPDIR)/imap-fetch.Po
	-rm -f ./$(DEPDIR)/imap-list.Po
	-rm -f ./$(DEPDIR)/imap-lsub.Po
................................................................................
	-rm -f ./$(DEPDIR)/multi-debugcallback.Po
	-rm -f ./$(DEPDIR)/multi-double.Po
	-rm -f ./$(DEPDIR)/multi-formadd.Po
	-rm -f ./$(DEPDIR)/multi-post.Po
	-rm -f ./$(DEPDIR)/multi-single.Po
	-rm -f ./$(DEPDIR)/parseurl.Po
	-rm -f ./$(DEPDIR)/persistent.Po

	-rm -f ./$(DEPDIR)/pop3-dele.Po
	-rm -f ./$(DEPDIR)/pop3-list.Po
	-rm -f ./$(DEPDIR)/pop3-multi.Po
	-rm -f ./$(DEPDIR)/pop3-noop.Po
	-rm -f ./$(DEPDIR)/pop3-retr.Po
	-rm -f ./$(DEPDIR)/pop3-ssl.Po
	-rm -f ./$(DEPDIR)/pop3-stat.Po
................................................................................
	-rm -f ./$(DEPDIR)/sepheaders.Po
	-rm -f ./$(DEPDIR)/sftpget.Po
	-rm -f ./$(DEPDIR)/sftpuploadresume.Po
	-rm -f ./$(DEPDIR)/shared-connection-cache.Po
	-rm -f ./$(DEPDIR)/simple.Po
	-rm -f ./$(DEPDIR)/simplepost.Po
	-rm -f ./$(DEPDIR)/simplessl.Po

	-rm -f ./$(DEPDIR)/smtp-expn.Po
	-rm -f ./$(DEPDIR)/smtp-mail.Po
	-rm -f ./$(DEPDIR)/smtp-mime.Po
	-rm -f ./$(DEPDIR)/smtp-multi.Po
	-rm -f ./$(DEPDIR)/smtp-ssl.Po
	-rm -f ./$(DEPDIR)/smtp-tls.Po
	-rm -f ./$(DEPDIR)/smtp-vrfy.Po
................................................................................

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
		-rm -f ./$(DEPDIR)/10-at-a-time.Po

	-rm -f ./$(DEPDIR)/anyauthput.Po
	-rm -f ./$(DEPDIR)/certinfo.Po
	-rm -f ./$(DEPDIR)/chkspeed.Po
	-rm -f ./$(DEPDIR)/cookie_interface.Po
	-rm -f ./$(DEPDIR)/debug.Po
	-rm -f ./$(DEPDIR)/externalsocket.Po
	-rm -f ./$(DEPDIR)/fileupload.Po
................................................................................
	-rm -f ./$(DEPDIR)/getinmemory.Po
	-rm -f ./$(DEPDIR)/getredirect.Po
	-rm -f ./$(DEPDIR)/http-post.Po
	-rm -f ./$(DEPDIR)/http2-download.Po
	-rm -f ./$(DEPDIR)/http2-pushinmemory.Po
	-rm -f ./$(DEPDIR)/http2-serverpush.Po
	-rm -f ./$(DEPDIR)/http2-upload.Po


	-rm -f ./$(DEPDIR)/httpcustomheader.Po
	-rm -f ./$(DEPDIR)/httpput.Po
	-rm -f ./$(DEPDIR)/https.Po
	-rm -f ./$(DEPDIR)/imap-append.Po

	-rm -f ./$(DEPDIR)/imap-copy.Po
	-rm -f ./$(DEPDIR)/imap-create.Po
	-rm -f ./$(DEPDIR)/imap-delete.Po
	-rm -f ./$(DEPDIR)/imap-examine.Po
	-rm -f ./$(DEPDIR)/imap-fetch.Po
	-rm -f ./$(DEPDIR)/imap-list.Po
	-rm -f ./$(DEPDIR)/imap-lsub.Po
................................................................................
	-rm -f ./$(DEPDIR)/multi-debugcallback.Po
	-rm -f ./$(DEPDIR)/multi-double.Po
	-rm -f ./$(DEPDIR)/multi-formadd.Po
	-rm -f ./$(DEPDIR)/multi-post.Po
	-rm -f ./$(DEPDIR)/multi-single.Po
	-rm -f ./$(DEPDIR)/parseurl.Po
	-rm -f ./$(DEPDIR)/persistent.Po

	-rm -f ./$(DEPDIR)/pop3-dele.Po
	-rm -f ./$(DEPDIR)/pop3-list.Po
	-rm -f ./$(DEPDIR)/pop3-multi.Po
	-rm -f ./$(DEPDIR)/pop3-noop.Po
	-rm -f ./$(DEPDIR)/pop3-retr.Po
	-rm -f ./$(DEPDIR)/pop3-ssl.Po
	-rm -f ./$(DEPDIR)/pop3-stat.Po
................................................................................
	-rm -f ./$(DEPDIR)/sepheaders.Po
	-rm -f ./$(DEPDIR)/sftpget.Po
	-rm -f ./$(DEPDIR)/sftpuploadresume.Po
	-rm -f ./$(DEPDIR)/shared-connection-cache.Po
	-rm -f ./$(DEPDIR)/simple.Po
	-rm -f ./$(DEPDIR)/simplepost.Po
	-rm -f ./$(DEPDIR)/simplessl.Po

	-rm -f ./$(DEPDIR)/smtp-expn.Po
	-rm -f ./$(DEPDIR)/smtp-mail.Po
	-rm -f ./$(DEPDIR)/smtp-mime.Po
	-rm -f ./$(DEPDIR)/smtp-multi.Po
	-rm -f ./$(DEPDIR)/smtp-ssl.Po
	-rm -f ./$(DEPDIR)/smtp-tls.Po
	-rm -f ./$(DEPDIR)/smtp-vrfy.Po







|







 







|
>
>







 







>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>







 







>
>
>
>
>
>
>







 







>
>
>
>
>
>
>







 







>
|
|
|
|
|
|
|
|
|
|
<


>


>
|
|
|
|
|
|
|
|
|
|
|












>
|
|
|
|
|







 







|





|
>
|
|
|
|
|
|
|
|
|
|

|
>
|
|
|
|
|
|
|
>
|
|




<
>
|
|
|
|
|
>
|
|







 







>
>
>


>







 







>
>
>
>







 







>
>
>
>
>
>
>
>







 







>
>
>
>







 







>
>
>
>







 







>
>
>
>







 







>







 







>
>




>







 







>







 







>







 







>







 







>
>




>







 







>







 







>







 







>







 







>
>




>







 







>







 







>







39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
...
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
...
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
...
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
...
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
...
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
...
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
...
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857

858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
...
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946

947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
....
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
....
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
....
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
....
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
....
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
....
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
....
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
....
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
....
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
....
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
....
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
....
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
....
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
....
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
....
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
....
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
....
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
....
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2019, 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
................................................................................
	sftpget$(EXEEXT) ftpsget$(EXEEXT) postinmemory$(EXEEXT) \
	http2-download$(EXEEXT) http2-upload$(EXEEXT) \
	http2-serverpush$(EXEEXT) getredirect$(EXEEXT) \
	ftpuploadfrommem$(EXEEXT) ftpuploadresume$(EXEEXT) \
	sslbackend$(EXEEXT) postit2-formadd$(EXEEXT) \
	multi-formadd$(EXEEXT) shared-connection-cache$(EXEEXT) \
	sftpuploadresume$(EXEEXT) http2-pushinmemory$(EXEEXT) \
	parseurl$(EXEEXT) urlapi$(EXEEXT) imap-authzid$(EXEEXT) \
	pop3-authzid$(EXEEXT) smtp-authzid$(EXEEXT) http3$(EXEEXT) \
	altsvc$(EXEEXT) http3-present$(EXEEXT)
subdir = docs/examples
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compile_check_sizeof.m4 \
	$(top_srcdir)/m4/curl-compilers.m4 \
	$(top_srcdir)/m4/curl-confopts.m4 \
	$(top_srcdir)/m4/curl-functions.m4 \
	$(top_srcdir)/m4/curl-openssl.m4 \
................................................................................
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@10_at_a_time_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 = 
altsvc_SOURCES = altsvc.c
altsvc_OBJECTS = altsvc.$(OBJEXT)
altsvc_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@altsvc_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@altsvc_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
anyauthput_SOURCES = anyauthput.c
anyauthput_OBJECTS = anyauthput.$(OBJEXT)
anyauthput_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@anyauthput_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@anyauthput_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
http2_upload_SOURCES = http2-upload.c
http2_upload_OBJECTS = http2-upload.$(OBJEXT)
http2_upload_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@http2_upload_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@http2_upload_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
http3_SOURCES = http3.c
http3_OBJECTS = http3.$(OBJEXT)
http3_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@http3_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@http3_DEPENDENCIES = $(LIBDIR)/libcurl.la
http3_present_SOURCES = http3-present.c
http3_present_OBJECTS = http3-present.$(OBJEXT)
http3_present_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@http3_present_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@http3_present_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
httpcustomheader_SOURCES = httpcustomheader.c
httpcustomheader_OBJECTS = httpcustomheader.$(OBJEXT)
httpcustomheader_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@httpcustomheader_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@httpcustomheader_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
imap_append_SOURCES = imap-append.c
imap_append_OBJECTS = imap-append.$(OBJEXT)
imap_append_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@imap_append_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@imap_append_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
imap_authzid_SOURCES = imap-authzid.c
imap_authzid_OBJECTS = imap-authzid.$(OBJEXT)
imap_authzid_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@imap_authzid_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@imap_authzid_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
imap_copy_SOURCES = imap-copy.c
imap_copy_OBJECTS = imap-copy.$(OBJEXT)
imap_copy_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@imap_copy_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@imap_copy_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
persistent_SOURCES = persistent.c
persistent_OBJECTS = persistent.$(OBJEXT)
persistent_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@persistent_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@persistent_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
pop3_authzid_SOURCES = pop3-authzid.c
pop3_authzid_OBJECTS = pop3-authzid.$(OBJEXT)
pop3_authzid_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@pop3_authzid_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@pop3_authzid_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
pop3_dele_SOURCES = pop3-dele.c
pop3_dele_OBJECTS = pop3-dele.$(OBJEXT)
pop3_dele_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@pop3_dele_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@pop3_dele_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
simplessl_SOURCES = simplessl.c
simplessl_OBJECTS = simplessl.$(OBJEXT)
simplessl_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@simplessl_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@simplessl_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
smtp_authzid_SOURCES = smtp-authzid.c
smtp_authzid_OBJECTS = smtp-authzid.$(OBJEXT)
smtp_authzid_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@smtp_authzid_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@smtp_authzid_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
smtp_expn_SOURCES = smtp-expn.c
smtp_expn_OBJECTS = smtp-expn.$(OBJEXT)
smtp_expn_LDADD = $(LDADD)
@USE_EXPLICIT_LIB_DEPS_FALSE@smtp_expn_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_FALSE@	$(LIBDIR)/libcurl.la
@USE_EXPLICIT_LIB_DEPS_TRUE@smtp_expn_DEPENDENCIES =  \
@USE_EXPLICIT_LIB_DEPS_TRUE@	$(LIBDIR)/libcurl.la
................................................................................
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 = 
DEFAULT_INCLUDES = 
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/10-at-a-time.Po \
	./$(DEPDIR)/altsvc.Po ./$(DEPDIR)/anyauthput.Po \
	./$(DEPDIR)/certinfo.Po ./$(DEPDIR)/chkspeed.Po \
	./$(DEPDIR)/cookie_interface.Po ./$(DEPDIR)/debug.Po \
	./$(DEPDIR)/externalsocket.Po ./$(DEPDIR)/fileupload.Po \
	./$(DEPDIR)/fopen.Po ./$(DEPDIR)/ftp-wildcard.Po \
	./$(DEPDIR)/ftpget.Po ./$(DEPDIR)/ftpgetinfo.Po \
	./$(DEPDIR)/ftpgetresp.Po ./$(DEPDIR)/ftpsget.Po \
	./$(DEPDIR)/ftpupload.Po ./$(DEPDIR)/ftpuploadfrommem.Po \
	./$(DEPDIR)/ftpuploadresume.Po ./$(DEPDIR)/getinfo.Po \
	./$(DEPDIR)/getinmemory.Po ./$(DEPDIR)/getredirect.Po \
	./$(DEPDIR)/http-post.Po ./$(DEPDIR)/http2-download.Po \

	./$(DEPDIR)/http2-pushinmemory.Po \
	./$(DEPDIR)/http2-serverpush.Po ./$(DEPDIR)/http2-upload.Po \
	./$(DEPDIR)/http3-present.Po ./$(DEPDIR)/http3.Po \
	./$(DEPDIR)/httpcustomheader.Po ./$(DEPDIR)/httpput.Po \
	./$(DEPDIR)/https.Po ./$(DEPDIR)/imap-append.Po \
	./$(DEPDIR)/imap-authzid.Po ./$(DEPDIR)/imap-copy.Po \
	./$(DEPDIR)/imap-create.Po ./$(DEPDIR)/imap-delete.Po \
	./$(DEPDIR)/imap-examine.Po ./$(DEPDIR)/imap-fetch.Po \
	./$(DEPDIR)/imap-list.Po ./$(DEPDIR)/imap-lsub.Po \
	./$(DEPDIR)/imap-multi.Po ./$(DEPDIR)/imap-noop.Po \
	./$(DEPDIR)/imap-search.Po ./$(DEPDIR)/imap-ssl.Po \
	./$(DEPDIR)/imap-store.Po ./$(DEPDIR)/imap-tls.Po \
	./$(DEPDIR)/multi-app.Po ./$(DEPDIR)/multi-debugcallback.Po \
	./$(DEPDIR)/multi-double.Po ./$(DEPDIR)/multi-formadd.Po \
	./$(DEPDIR)/multi-post.Po ./$(DEPDIR)/multi-single.Po \
	./$(DEPDIR)/parseurl.Po ./$(DEPDIR)/persistent.Po \
	./$(DEPDIR)/pop3-authzid.Po ./$(DEPDIR)/pop3-dele.Po \
	./$(DEPDIR)/pop3-list.Po ./$(DEPDIR)/pop3-multi.Po \
	./$(DEPDIR)/pop3-noop.Po ./$(DEPDIR)/pop3-retr.Po \
	./$(DEPDIR)/pop3-ssl.Po ./$(DEPDIR)/pop3-stat.Po \
	./$(DEPDIR)/pop3-tls.Po ./$(DEPDIR)/pop3-top.Po \
	./$(DEPDIR)/pop3-uidl.Po ./$(DEPDIR)/post-callback.Po \
	./$(DEPDIR)/postinmemory.Po ./$(DEPDIR)/postit2-formadd.Po \
	./$(DEPDIR)/postit2.Po ./$(DEPDIR)/progressfunc.Po \
	./$(DEPDIR)/resolve.Po ./$(DEPDIR)/rtsp.Po \
	./$(DEPDIR)/sendrecv.Po ./$(DEPDIR)/sepheaders.Po \
	./$(DEPDIR)/sftpget.Po ./$(DEPDIR)/sftpuploadresume.Po \
	./$(DEPDIR)/shared-connection-cache.Po ./$(DEPDIR)/simple.Po \
	./$(DEPDIR)/simplepost.Po ./$(DEPDIR)/simplessl.Po \
	./$(DEPDIR)/smtp-authzid.Po ./$(DEPDIR)/smtp-expn.Po \
	./$(DEPDIR)/smtp-mail.Po ./$(DEPDIR)/smtp-mime.Po \
	./$(DEPDIR)/smtp-multi.Po ./$(DEPDIR)/smtp-ssl.Po \
	./$(DEPDIR)/smtp-tls.Po ./$(DEPDIR)/smtp-vrfy.Po \
	./$(DEPDIR)/sslbackend.Po ./$(DEPDIR)/url2file.Po \
	./$(DEPDIR)/urlapi.Po
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
	$(AM_CFLAGS) $(CFLAGS)
................................................................................
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
	$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo "  CCLD    " $@;
am__v_CCLD_1 = 
SOURCES = 10-at-a-time.c altsvc.c anyauthput.c certinfo.c chkspeed.c \
	cookie_interface.c debug.c externalsocket.c fileupload.c \
	fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c \
	ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c \
	getinfo.c getinmemory.c getredirect.c http-post.c \
	http2-download.c http2-pushinmemory.c http2-serverpush.c \
	http2-upload.c http3.c http3-present.c httpcustomheader.c \
	httpput.c https.c imap-append.c imap-authzid.c imap-copy.c \
	imap-create.c imap-delete.c imap-examine.c imap-fetch.c \
	imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c \
	imap-ssl.c imap-store.c imap-tls.c multi-app.c \
	multi-debugcallback.c multi-double.c multi-formadd.c \
	multi-post.c multi-single.c parseurl.c persistent.c \
	pop3-authzid.c pop3-dele.c pop3-list.c pop3-multi.c \
	pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c \
	pop3-top.c pop3-uidl.c post-callback.c postinmemory.c \
	postit2.c postit2-formadd.c progressfunc.c resolve.c rtsp.c \
	sendrecv.c sepheaders.c sftpget.c sftpuploadresume.c \
	shared-connection-cache.c simple.c simplepost.c simplessl.c \
	smtp-authzid.c smtp-expn.c smtp-mail.c smtp-mime.c \
	smtp-multi.c smtp-ssl.c smtp-tls.c smtp-vrfy.c sslbackend.c \
	url2file.c urlapi.c
DIST_SOURCES = 10-at-a-time.c altsvc.c anyauthput.c certinfo.c \
	chkspeed.c cookie_interface.c debug.c externalsocket.c \
	fileupload.c fopen.c ftp-wildcard.c ftpget.c ftpgetinfo.c \
	ftpgetresp.c ftpsget.c ftpupload.c ftpuploadfrommem.c \
	ftpuploadresume.c getinfo.c getinmemory.c getredirect.c \
	http-post.c http2-download.c http2-pushinmemory.c \
	http2-serverpush.c http2-upload.c http3.c http3-present.c \
	httpcustomheader.c httpput.c https.c imap-append.c \
	imap-authzid.c imap-copy.c imap-create.c imap-delete.c \
	imap-examine.c imap-fetch.c imap-list.c imap-lsub.c \
	imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c \
	imap-tls.c multi-app.c multi-debugcallback.c multi-double.c \
	multi-formadd.c multi-post.c multi-single.c parseurl.c \

	persistent.c pop3-authzid.c pop3-dele.c pop3-list.c \
	pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c \
	pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c \
	postinmemory.c postit2.c postit2-formadd.c progressfunc.c \
	resolve.c rtsp.c sendrecv.c sepheaders.c sftpget.c \
	sftpuploadresume.c shared-connection-cache.c simple.c \
	simplepost.c simplessl.c smtp-authzid.c smtp-expn.c \
	smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c smtp-tls.c \
	smtp-vrfy.c sslbackend.c url2file.c urlapi.c
am__can_run_installinfo = \
  case $$AM_UPDATE_INFO_DIR in \
    n|no|NO) false;; \
    *) (install-info --version) >/dev/null 2>&1;; \
  esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
................................................................................
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@
USE_NGHTTP3 = @USE_NGHTTP3@
USE_NGTCP2 = @USE_NGTCP2@
USE_NGTCP2_CRYPTO_OPENSSL = @USE_NGTCP2_CRYPTO_OPENSSL@
USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@
USE_QUICHE = @USE_QUICHE@
USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
	echo " rm -f" $$list; \
	rm -f $$list

10-at-a-time$(EXEEXT): $(10_at_a_time_OBJECTS) $(10_at_a_time_DEPENDENCIES) $(EXTRA_10_at_a_time_DEPENDENCIES) 
	@rm -f 10-at-a-time$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(10_at_a_time_OBJECTS) $(10_at_a_time_LDADD) $(LIBS)

altsvc$(EXEEXT): $(altsvc_OBJECTS) $(altsvc_DEPENDENCIES) $(EXTRA_altsvc_DEPENDENCIES) 
	@rm -f altsvc$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(altsvc_OBJECTS) $(altsvc_LDADD) $(LIBS)

anyauthput$(EXEEXT): $(anyauthput_OBJECTS) $(anyauthput_DEPENDENCIES) $(EXTRA_anyauthput_DEPENDENCIES) 
	@rm -f anyauthput$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(anyauthput_OBJECTS) $(anyauthput_LDADD) $(LIBS)

certinfo$(EXEEXT): $(certinfo_OBJECTS) $(certinfo_DEPENDENCIES) $(EXTRA_certinfo_DEPENDENCIES) 
	@rm -f certinfo$(EXEEXT)
................................................................................
http2-serverpush$(EXEEXT): $(http2_serverpush_OBJECTS) $(http2_serverpush_DEPENDENCIES) $(EXTRA_http2_serverpush_DEPENDENCIES) 
	@rm -f http2-serverpush$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(http2_serverpush_OBJECTS) $(http2_serverpush_LDADD) $(LIBS)

http2-upload$(EXEEXT): $(http2_upload_OBJECTS) $(http2_upload_DEPENDENCIES) $(EXTRA_http2_upload_DEPENDENCIES) 
	@rm -f http2-upload$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(http2_upload_OBJECTS) $(http2_upload_LDADD) $(LIBS)

http3$(EXEEXT): $(http3_OBJECTS) $(http3_DEPENDENCIES) $(EXTRA_http3_DEPENDENCIES) 
	@rm -f http3$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(http3_OBJECTS) $(http3_LDADD) $(LIBS)

http3-present$(EXEEXT): $(http3_present_OBJECTS) $(http3_present_DEPENDENCIES) $(EXTRA_http3_present_DEPENDENCIES) 
	@rm -f http3-present$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(http3_present_OBJECTS) $(http3_present_LDADD) $(LIBS)

httpcustomheader$(EXEEXT): $(httpcustomheader_OBJECTS) $(httpcustomheader_DEPENDENCIES) $(EXTRA_httpcustomheader_DEPENDENCIES) 
	@rm -f httpcustomheader$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(httpcustomheader_OBJECTS) $(httpcustomheader_LDADD) $(LIBS)

httpput$(EXEEXT): $(httpput_OBJECTS) $(httpput_DEPENDENCIES) $(EXTRA_httpput_DEPENDENCIES) 
	@rm -f httpput$(EXEEXT)
................................................................................
https$(EXEEXT): $(https_OBJECTS) $(https_DEPENDENCIES) $(EXTRA_https_DEPENDENCIES) 
	@rm -f https$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(https_OBJECTS) $(https_LDADD) $(LIBS)

imap-append$(EXEEXT): $(imap_append_OBJECTS) $(imap_append_DEPENDENCIES) $(EXTRA_imap_append_DEPENDENCIES) 
	@rm -f imap-append$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(imap_append_OBJECTS) $(imap_append_LDADD) $(LIBS)

imap-authzid$(EXEEXT): $(imap_authzid_OBJECTS) $(imap_authzid_DEPENDENCIES) $(EXTRA_imap_authzid_DEPENDENCIES) 
	@rm -f imap-authzid$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(imap_authzid_OBJECTS) $(imap_authzid_LDADD) $(LIBS)

imap-copy$(EXEEXT): $(imap_copy_OBJECTS) $(imap_copy_DEPENDENCIES) $(EXTRA_imap_copy_DEPENDENCIES) 
	@rm -f imap-copy$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(imap_copy_OBJECTS) $(imap_copy_LDADD) $(LIBS)

imap-create$(EXEEXT): $(imap_create_OBJECTS) $(imap_create_DEPENDENCIES) $(EXTRA_imap_create_DEPENDENCIES) 
	@rm -f imap-create$(EXEEXT)
................................................................................
parseurl$(EXEEXT): $(parseurl_OBJECTS) $(parseurl_DEPENDENCIES) $(EXTRA_parseurl_DEPENDENCIES) 
	@rm -f parseurl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(parseurl_OBJECTS) $(parseurl_LDADD) $(LIBS)

persistent$(EXEEXT): $(persistent_OBJECTS) $(persistent_DEPENDENCIES) $(EXTRA_persistent_DEPENDENCIES) 
	@rm -f persistent$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(persistent_OBJECTS) $(persistent_LDADD) $(LIBS)

pop3-authzid$(EXEEXT): $(pop3_authzid_OBJECTS) $(pop3_authzid_DEPENDENCIES) $(EXTRA_pop3_authzid_DEPENDENCIES) 
	@rm -f pop3-authzid$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(pop3_authzid_OBJECTS) $(pop3_authzid_LDADD) $(LIBS)

pop3-dele$(EXEEXT): $(pop3_dele_OBJECTS) $(pop3_dele_DEPENDENCIES) $(EXTRA_pop3_dele_DEPENDENCIES) 
	@rm -f pop3-dele$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(pop3_dele_OBJECTS) $(pop3_dele_LDADD) $(LIBS)

pop3-list$(EXEEXT): $(pop3_list_OBJECTS) $(pop3_list_DEPENDENCIES) $(EXTRA_pop3_list_DEPENDENCIES) 
	@rm -f pop3-list$(EXEEXT)
................................................................................
simplepost$(EXEEXT): $(simplepost_OBJECTS) $(simplepost_DEPENDENCIES) $(EXTRA_simplepost_DEPENDENCIES) 
	@rm -f simplepost$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(simplepost_OBJECTS) $(simplepost_LDADD) $(LIBS)

simplessl$(EXEEXT): $(simplessl_OBJECTS) $(simplessl_DEPENDENCIES) $(EXTRA_simplessl_DEPENDENCIES) 
	@rm -f simplessl$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(simplessl_OBJECTS) $(simplessl_LDADD) $(LIBS)

smtp-authzid$(EXEEXT): $(smtp_authzid_OBJECTS) $(smtp_authzid_DEPENDENCIES) $(EXTRA_smtp_authzid_DEPENDENCIES) 
	@rm -f smtp-authzid$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(smtp_authzid_OBJECTS) $(smtp_authzid_LDADD) $(LIBS)

smtp-expn$(EXEEXT): $(smtp_expn_OBJECTS) $(smtp_expn_DEPENDENCIES) $(EXTRA_smtp_expn_DEPENDENCIES) 
	@rm -f smtp-expn$(EXEEXT)
	$(AM_V_CCLD)$(LINK) $(smtp_expn_OBJECTS) $(smtp_expn_LDADD) $(LIBS)

smtp-mail$(EXEEXT): $(smtp_mail_OBJECTS) $(smtp_mail_DEPENDENCIES) $(EXTRA_smtp_mail_DEPENDENCIES) 
	@rm -f smtp-mail$(EXEEXT)
................................................................................
mostlyclean-compile:
	-rm -f *.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/10-at-a-time.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/altsvc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anyauthput.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/certinfo.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chkspeed.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cookie_interface.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/externalsocket.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileupload.Po@am__quote@ # am--include-marker
................................................................................
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getinmemory.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getredirect.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http-post.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-download.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-pushinmemory.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-serverpush.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http2-upload.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http3-present.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http3.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpcustomheader.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpput.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/https.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-append.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-authzid.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-copy.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-create.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-delete.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-examine.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-fetch.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-list.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imap-lsub.Po@am__quote@ # am--include-marker
................................................................................
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-debugcallback.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-double.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-formadd.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-post.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi-single.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parseurl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/persistent.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-authzid.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-dele.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-list.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-multi.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-noop.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-retr.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-ssl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pop3-stat.Po@am__quote@ # am--include-marker
................................................................................
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sepheaders.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sftpget.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sftpuploadresume.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shared-connection-cache.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplepost.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simplessl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-authzid.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-expn.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-mail.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-mime.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-multi.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-ssl.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-tls.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp-vrfy.Po@am__quote@ # am--include-marker
................................................................................
clean: clean-am

clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
	mostlyclean-am

distclean: distclean-am
		-rm -f ./$(DEPDIR)/10-at-a-time.Po
	-rm -f ./$(DEPDIR)/altsvc.Po
	-rm -f ./$(DEPDIR)/anyauthput.Po
	-rm -f ./$(DEPDIR)/certinfo.Po
	-rm -f ./$(DEPDIR)/chkspeed.Po
	-rm -f ./$(DEPDIR)/cookie_interface.Po
	-rm -f ./$(DEPDIR)/debug.Po
	-rm -f ./$(DEPDIR)/externalsocket.Po
	-rm -f ./$(DEPDIR)/fileupload.Po
................................................................................
	-rm -f ./$(DEPDIR)/getinmemory.Po
	-rm -f ./$(DEPDIR)/getredirect.Po
	-rm -f ./$(DEPDIR)/http-post.Po
	-rm -f ./$(DEPDIR)/http2-download.Po
	-rm -f ./$(DEPDIR)/http2-pushinmemory.Po
	-rm -f ./$(DEPDIR)/http2-serverpush.Po
	-rm -f ./$(DEPDIR)/http2-upload.Po
	-rm -f ./$(DEPDIR)/http3-present.Po
	-rm -f ./$(DEPDIR)/http3.Po
	-rm -f ./$(DEPDIR)/httpcustomheader.Po
	-rm -f ./$(DEPDIR)/httpput.Po
	-rm -f ./$(DEPDIR)/https.Po
	-rm -f ./$(DEPDIR)/imap-append.Po
	-rm -f ./$(DEPDIR)/imap-authzid.Po
	-rm -f ./$(DEPDIR)/imap-copy.Po
	-rm -f ./$(DEPDIR)/imap-create.Po
	-rm -f ./$(DEPDIR)/imap-delete.Po
	-rm -f ./$(DEPDIR)/imap-examine.Po
	-rm -f ./$(DEPDIR)/imap-fetch.Po
	-rm -f ./$(DEPDIR)/imap-list.Po
	-rm -f ./$(DEPDIR)/imap-lsub.Po
................................................................................
	-rm -f ./$(DEPDIR)/multi-debugcallback.Po
	-rm -f ./$(DEPDIR)/multi-double.Po
	-rm -f ./$(DEPDIR)/multi-formadd.Po
	-rm -f ./$(DEPDIR)/multi-post.Po
	-rm -f ./$(DEPDIR)/multi-single.Po
	-rm -f ./$(DEPDIR)/parseurl.Po
	-rm -f ./$(DEPDIR)/persistent.Po
	-rm -f ./$(DEPDIR)/pop3-authzid.Po
	-rm -f ./$(DEPDIR)/pop3-dele.Po
	-rm -f ./$(DEPDIR)/pop3-list.Po
	-rm -f ./$(DEPDIR)/pop3-multi.Po
	-rm -f ./$(DEPDIR)/pop3-noop.Po
	-rm -f ./$(DEPDIR)/pop3-retr.Po
	-rm -f ./$(DEPDIR)/pop3-ssl.Po
	-rm -f ./$(DEPDIR)/pop3-stat.Po
................................................................................
	-rm -f ./$(DEPDIR)/sepheaders.Po
	-rm -f ./$(DEPDIR)/sftpget.Po
	-rm -f ./$(DEPDIR)/sftpuploadresume.Po
	-rm -f ./$(DEPDIR)/shared-connection-cache.Po
	-rm -f ./$(DEPDIR)/simple.Po
	-rm -f ./$(DEPDIR)/simplepost.Po
	-rm -f ./$(DEPDIR)/simplessl.Po
	-rm -f ./$(DEPDIR)/smtp-authzid.Po
	-rm -f ./$(DEPDIR)/smtp-expn.Po
	-rm -f ./$(DEPDIR)/smtp-mail.Po
	-rm -f ./$(DEPDIR)/smtp-mime.Po
	-rm -f ./$(DEPDIR)/smtp-multi.Po
	-rm -f ./$(DEPDIR)/smtp-ssl.Po
	-rm -f ./$(DEPDIR)/smtp-tls.Po
	-rm -f ./$(DEPDIR)/smtp-vrfy.Po
................................................................................

install-ps-am:

installcheck-am:

maintainer-clean: maintainer-clean-am
		-rm -f ./$(DEPDIR)/10-at-a-time.Po
	-rm -f ./$(DEPDIR)/altsvc.Po
	-rm -f ./$(DEPDIR)/anyauthput.Po
	-rm -f ./$(DEPDIR)/certinfo.Po
	-rm -f ./$(DEPDIR)/chkspeed.Po
	-rm -f ./$(DEPDIR)/cookie_interface.Po
	-rm -f ./$(DEPDIR)/debug.Po
	-rm -f ./$(DEPDIR)/externalsocket.Po
	-rm -f ./$(DEPDIR)/fileupload.Po
................................................................................
	-rm -f ./$(DEPDIR)/getinmemory.Po
	-rm -f ./$(DEPDIR)/getredirect.Po
	-rm -f ./$(DEPDIR)/http-post.Po
	-rm -f ./$(DEPDIR)/http2-download.Po
	-rm -f ./$(DEPDIR)/http2-pushinmemory.Po
	-rm -f ./$(DEPDIR)/http2-serverpush.Po
	-rm -f ./$(DEPDIR)/http2-upload.Po
	-rm -f ./$(DEPDIR)/http3-present.Po
	-rm -f ./$(DEPDIR)/http3.Po
	-rm -f ./$(DEPDIR)/httpcustomheader.Po
	-rm -f ./$(DEPDIR)/httpput.Po
	-rm -f ./$(DEPDIR)/https.Po
	-rm -f ./$(DEPDIR)/imap-append.Po
	-rm -f ./$(DEPDIR)/imap-authzid.Po
	-rm -f ./$(DEPDIR)/imap-copy.Po
	-rm -f ./$(DEPDIR)/imap-create.Po
	-rm -f ./$(DEPDIR)/imap-delete.Po
	-rm -f ./$(DEPDIR)/imap-examine.Po
	-rm -f ./$(DEPDIR)/imap-fetch.Po
	-rm -f ./$(DEPDIR)/imap-list.Po
	-rm -f ./$(DEPDIR)/imap-lsub.Po
................................................................................
	-rm -f ./$(DEPDIR)/multi-debugcallback.Po
	-rm -f ./$(DEPDIR)/multi-double.Po
	-rm -f ./$(DEPDIR)/multi-formadd.Po
	-rm -f ./$(DEPDIR)/multi-post.Po
	-rm -f ./$(DEPDIR)/multi-single.Po
	-rm -f ./$(DEPDIR)/parseurl.Po
	-rm -f ./$(DEPDIR)/persistent.Po
	-rm -f ./$(DEPDIR)/pop3-authzid.Po
	-rm -f ./$(DEPDIR)/pop3-dele.Po
	-rm -f ./$(DEPDIR)/pop3-list.Po
	-rm -f ./$(DEPDIR)/pop3-multi.Po
	-rm -f ./$(DEPDIR)/pop3-noop.Po
	-rm -f ./$(DEPDIR)/pop3-retr.Po
	-rm -f ./$(DEPDIR)/pop3-ssl.Po
	-rm -f ./$(DEPDIR)/pop3-stat.Po
................................................................................
	-rm -f ./$(DEPDIR)/sepheaders.Po
	-rm -f ./$(DEPDIR)/sftpget.Po
	-rm -f ./$(DEPDIR)/sftpuploadresume.Po
	-rm -f ./$(DEPDIR)/shared-connection-cache.Po
	-rm -f ./$(DEPDIR)/simple.Po
	-rm -f ./$(DEPDIR)/simplepost.Po
	-rm -f ./$(DEPDIR)/simplessl.Po
	-rm -f ./$(DEPDIR)/smtp-authzid.Po
	-rm -f ./$(DEPDIR)/smtp-expn.Po
	-rm -f ./$(DEPDIR)/smtp-mail.Po
	-rm -f ./$(DEPDIR)/smtp-mime.Po
	-rm -f ./$(DEPDIR)/smtp-multi.Po
	-rm -f ./$(DEPDIR)/smtp-ssl.Po
	-rm -f ./$(DEPDIR)/smtp-tls.Po
	-rm -f ./$(DEPDIR)/smtp-vrfy.Po

Changes to jni/curl/docs/examples/Makefile.inc.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
31
32
33
34
35
36
37
38

39
40
41
42
43
44
45
46
47
#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2018, 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
................................................................................
  pop3-dele pop3-top pop3-stat pop3-noop pop3-ssl pop3-tls pop3-multi      \
  imap-list imap-lsub imap-fetch imap-store imap-append imap-examine       \
  imap-search imap-create imap-delete imap-copy imap-noop imap-ssl         \
  imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
  http2-upload http2-serverpush getredirect ftpuploadfrommem               \
  ftpuploadresume sslbackend postit2-formadd multi-formadd                 \
  shared-connection-cache sftpuploadresume http2-pushinmemory parseurl     \
  urlapi


# These examples require external dependencies that may not be commonly
# available on POSIX systems, so don't bother attempting to compile them here.
COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cpp cacertinmem.c \
  ghiper.c hiperfifo.c htmltidy.c multithread.c opensslthreadlock.c \
  sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
  smooth-gtk-thread.c version-check.pl href_extractor.c asiohiper.cpp \
  multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c \
  threaded-shared-conn.c crawler.c ephiperfifo.c







|







 







|
>









1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2019, 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
................................................................................
  pop3-dele pop3-top pop3-stat pop3-noop pop3-ssl pop3-tls pop3-multi      \
  imap-list imap-lsub imap-fetch imap-store imap-append imap-examine       \
  imap-search imap-create imap-delete imap-copy imap-noop imap-ssl         \
  imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
  http2-upload http2-serverpush getredirect ftpuploadfrommem               \
  ftpuploadresume sslbackend postit2-formadd multi-formadd                 \
  shared-connection-cache sftpuploadresume http2-pushinmemory parseurl     \
  urlapi imap-authzid pop3-authzid smtp-authzid http3 altsvc               \
  http3-present

# These examples require external dependencies that may not be commonly
# available on POSIX systems, so don't bother attempting to compile them here.
COMPLICATED_EXAMPLES = curlgtk.c curlx.c htmltitle.cpp cacertinmem.c \
  ghiper.c hiperfifo.c htmltidy.c multithread.c opensslthreadlock.c \
  sampleconv.c synctime.c threaded-ssl.c evhiperfifo.c \
  smooth-gtk-thread.c version-check.pl href_extractor.c asiohiper.cpp \
  multi-uv.c xmlstream.c usercertinmem.c sessioninfo.c \
  threaded-shared-conn.c crawler.c ephiperfifo.c

Added jni/curl/docs/examples/altsvc.c.

















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2019, 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.
 *
 ***************************************************************************/
/* <DESC>
 * HTTP with Alt-Svc support
 * </DESC>
 */
#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

    /* cache the alternatives in this file */
    curl_easy_setopt(curl, CURLOPT_ALTSVC, "altsvc.txt");

    /* restrict which HTTP versions to use alternatives */
    curl_easy_setopt(curl, CURLOPT_ALTSVC_CTRL, (long)
                     CURLALTSVC_H1|CURLALTSVC_H2|CURLALTSVC_H3);

    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}

Changes to jni/curl/docs/examples/curlx.c.

273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
...
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
...
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
  BIO* out = NULL;

  char *outfile = NULL;
  char *infile = NULL;

  int tabLength = 100;
  char *binaryptr;
  char *mimetype;
  char *mimetypeaccept = NULL;
  char *contenttype;
  const char **pp;
  unsigned char *hostporturl = NULL;
  BIO *p12bio;
  char **args = argv + 1;
  unsigned char *serverurl;
................................................................................

  CURLcode res;
  struct curl_slist *headers = NULL;
  int badarg = 0;

  binaryptr = malloc(tabLength);

  p.verbose = 0;
  p.errorbio = BIO_new_fp(stderr, BIO_NOCLOSE);

  curl_global_init(CURL_GLOBAL_DEFAULT);

  /* we need some more for the P12 decoding */

  OpenSSL_add_all_ciphers();
................................................................................
      p.verbose++;
    }
    else
      badarg = 1;
    args++;
  }

  if(mimetype == NULL || mimetypeaccept == NULL)
    badarg = 1;

  if(badarg) {
    for(pp = curlx_usage; (*pp != NULL); pp++)
      BIO_printf(p.errorbio, "%s\n", *pp);
    BIO_printf(p.errorbio, "\n");
    goto err;







|







 







|







 







|







273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
...
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
...
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
  BIO* out = NULL;

  char *outfile = NULL;
  char *infile = NULL;

  int tabLength = 100;
  char *binaryptr;
  char *mimetype = NULL;
  char *mimetypeaccept = NULL;
  char *contenttype;
  const char **pp;
  unsigned char *hostporturl = NULL;
  BIO *p12bio;
  char **args = argv + 1;
  unsigned char *serverurl;
................................................................................

  CURLcode res;
  struct curl_slist *headers = NULL;
  int badarg = 0;

  binaryptr = malloc(tabLength);

  memset(&p, '\0', sizeof(p));
  p.errorbio = BIO_new_fp(stderr, BIO_NOCLOSE);

  curl_global_init(CURL_GLOBAL_DEFAULT);

  /* we need some more for the P12 decoding */

  OpenSSL_add_all_ciphers();
................................................................................
      p.verbose++;
    }
    else
      badarg = 1;
    args++;
  }

  if(mimetype == NULL || mimetypeaccept == NULL || p.p12file == NULL)
    badarg = 1;

  if(badarg) {
    for(pp = curlx_usage; (*pp != NULL); pp++)
      BIO_printf(p.errorbio, "%s\n", *pp);
    BIO_printf(p.errorbio, "\n");
    goto err;

Changes to jni/curl/docs/examples/ephiperfifo.c.

69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
...
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
...
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354


355
356
357
358
359
360
361
...
465
466
467
468
469
470
471
472
473
474
475
476
477


478
479
480
481
482
483
484
...
543
544
545
546
547
548
549

550
551
#include <sys/timerfd.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>

#include <curl/curl.h>

#ifdef __GNUC__
#define _Unused __attribute__((unused))
#else
#define _Unused
#endif

#define MSG_OUT stdout /* Send info to stdout, change to stderr if you want */


/* Global information, common to all connections */
typedef struct _GlobalInfo
{
  int epfd;    /* epoll filedescriptor */
................................................................................
  curl_socket_t sockfd;
  CURL *easy;
  int action;
  long timeout;
  GlobalInfo *global;
} SockInfo;

#define __case(code) \
  case code: s = __STRING(code)

/* Die if we get a bad CURLMcode somewhere */
static void mcode_or_die(const char *where, CURLMcode code)
{
  if(CURLM_OK != code) {
    const char *s;
    switch(code) {
      __case(CURLM_BAD_HANDLE); break;
      __case(CURLM_BAD_EASY_HANDLE); break;
      __case(CURLM_OUT_OF_MEMORY); break;
      __case(CURLM_INTERNAL_ERROR); break;
      __case(CURLM_UNKNOWN_OPTION); break;
      __case(CURLM_LAST); break;
      default: s = "CURLM_unknown"; break;
      __case(CURLM_BAD_SOCKET);
      fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
      /* ignore this error */
      return;
    }
    fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
    exit(code);
  }
................................................................................
  }
  return 0;
}



/* CURLOPT_WRITEFUNCTION */
static size_t write_cb(void *ptr _Unused, size_t size, size_t nmemb,
                       void *data)
{
  size_t realsize = size * nmemb;
  (void)_Unused;
  (void)data;

  return realsize;
}


/* CURLOPT_PROGRESSFUNCTION */
static int prog_cb(void *p, double dltotal, double dlnow, double ult _Unused,
                   double uln _Unused)
{
  ConnInfo *conn = (ConnInfo *)p;



  fprintf(MSG_OUT, "Progress: %s (%g/%g)\n", conn->url, dlnow, dltotal);
  return 0;
}


/* Create a new easy handle, and add it to the global curl_multi */
................................................................................
void SignalHandler(int signo)
{
  if(signo == SIGINT) {
    g_should_exit_ = 1;
  }
}

int main(int argc _Unused, char **argv _Unused)
{
  GlobalInfo g;
  struct itimerspec its;
  struct epoll_event ev;
  struct epoll_event events[10];



  g_should_exit_ = 0;
  signal(SIGINT, SignalHandler);

  memset(&g, 0, sizeof(GlobalInfo));
  g.epfd = epoll_create1(EPOLL_CLOEXEC);
  if(g.epfd == -1) {
................................................................................
    }
  }

  fprintf(MSG_OUT, "Exiting normally.\n");
  fflush(MSG_OUT);

  curl_multi_cleanup(g.multi);

  return 0;
}







<
<
<
<
<
<







 







|








|
|
|
|
|
|

|







 







|
<

<
|

<
|




|
|


>
>







 







|





>
>







 







>


69
70
71
72
73
74
75






76
77
78
79
80
81
82
...
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
...
326
327
328
329
330
331
332
333

334

335
336

337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
...
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
...
538
539
540
541
542
543
544
545
546
547
#include <sys/timerfd.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>

#include <curl/curl.h>







#define MSG_OUT stdout /* Send info to stdout, change to stderr if you want */


/* Global information, common to all connections */
typedef struct _GlobalInfo
{
  int epfd;    /* epoll filedescriptor */
................................................................................
  curl_socket_t sockfd;
  CURL *easy;
  int action;
  long timeout;
  GlobalInfo *global;
} SockInfo;

#define mycase(code) \
  case code: s = __STRING(code)

/* Die if we get a bad CURLMcode somewhere */
static void mcode_or_die(const char *where, CURLMcode code)
{
  if(CURLM_OK != code) {
    const char *s;
    switch(code) {
      mycase(CURLM_BAD_HANDLE); break;
      mycase(CURLM_BAD_EASY_HANDLE); break;
      mycase(CURLM_OUT_OF_MEMORY); break;
      mycase(CURLM_INTERNAL_ERROR); break;
      mycase(CURLM_UNKNOWN_OPTION); break;
      mycase(CURLM_LAST); break;
      default: s = "CURLM_unknown"; break;
      mycase(CURLM_BAD_SOCKET);
      fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
      /* ignore this error */
      return;
    }
    fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
    exit(code);
  }
................................................................................
  }
  return 0;
}



/* CURLOPT_WRITEFUNCTION */
static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *data)

{

  (void)ptr;
  (void)data;

  return size * nmemb;
}


/* CURLOPT_PROGRESSFUNCTION */
static int prog_cb(void *p, double dltotal, double dlnow, double ult,
                   double uln)
{
  ConnInfo *conn = (ConnInfo *)p;
  (void)ult;
  (void)uln;

  fprintf(MSG_OUT, "Progress: %s (%g/%g)\n", conn->url, dlnow, dltotal);
  return 0;
}


/* Create a new easy handle, and add it to the global curl_multi */
................................................................................
void SignalHandler(int signo)
{
  if(signo == SIGINT) {
    g_should_exit_ = 1;
  }
}

int main(int argc, char **argv)
{
  GlobalInfo g;
  struct itimerspec its;
  struct epoll_event ev;
  struct epoll_event events[10];
  (void)argc;
  (void)argv;

  g_should_exit_ = 0;
  signal(SIGINT, SignalHandler);

  memset(&g, 0, sizeof(GlobalInfo));
  g.epfd = epoll_create1(EPOLL_CLOEXEC);
  if(g.epfd == -1) {
................................................................................
    }
  }

  fprintf(MSG_OUT, "Exiting normally.\n");
  fflush(MSG_OUT);

  curl_multi_cleanup(g.multi);
  clean_fifo(&g);
  return 0;
}

Changes to jni/curl/docs/examples/hiperfifo.c.

68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
...
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148

149
150
151
152
153
154
155
...
216
217
218
219
220
221
222
223
224
225
226


227
228
229
230
231
232
233
...
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321


322
323
324
325
326
327
328
...
357
358
359
360
361
362
363
364
365
366
367
368
369


370
371
372
373
374
375
376
...
423
424
425
426
427
428
429
430
431
432


433
434
435
436
437
438
439
#include <event2/event.h>
#include <event2/event_struct.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <errno.h>
#include <sys/cdefs.h>

#ifdef __GNUC__
#define _Unused __attribute__((unused))
#else
#define _Unused
#endif

#define MSG_OUT stdout /* Send info to stdout, change to stderr if you want */


/* Global information, common to all connections */
typedef struct _GlobalInfo
{
  struct event_base *evbase;
................................................................................
  CURL *easy;
  int action;
  long timeout;
  struct event ev;
  GlobalInfo *global;
} SockInfo;

#define __case(code) \
  case code: s = __STRING(code)

/* Die if we get a bad CURLMcode somewhere */
static void mcode_or_die(const char *where, CURLMcode code)
{
  if(CURLM_OK != code) {
    const char *s;
    switch(code) {
      __case(CURLM_BAD_HANDLE); break;
      __case(CURLM_BAD_EASY_HANDLE); break;
      __case(CURLM_OUT_OF_MEMORY); break;
      __case(CURLM_INTERNAL_ERROR); break;
      __case(CURLM_UNKNOWN_OPTION); break;
      __case(CURLM_LAST); break;
      default: s = "CURLM_unknown"; break;
      __case(CURLM_BAD_SOCKET);
      fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
      /* ignore this error */
      return;
    }
    fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
    exit(code);
  }
}


/* Update the event timer after curl_multi library calls */
static int multi_timer_cb(CURLM *multi _Unused, long timeout_ms, GlobalInfo *g)
{
  struct timeval timeout;


  timeout.tv_sec = timeout_ms/1000;
  timeout.tv_usec = (timeout_ms%1000)*1000;
  fprintf(MSG_OUT, "multi_timer_cb: Setting timeout to %ld ms\n", timeout_ms);

  /*
   * if timeout_ms is -1, just delete the timer
................................................................................
    }
  }
}



/* Called by libevent when our timeout expires */
static void timer_cb(int fd _Unused, short kind _Unused, void *userp)
{
  GlobalInfo *g = (GlobalInfo *)userp;
  CURLMcode rc;



  rc = curl_multi_socket_action(g->multi,
                                  CURL_SOCKET_TIMEOUT, 0, &g->still_running);
  mcode_or_die("timer_cb: curl_multi_socket_action", rc);
  check_multi_info(g);
}

................................................................................
  }
  return 0;
}



/* CURLOPT_WRITEFUNCTION */
static size_t write_cb(void *ptr _Unused, size_t size, size_t nmemb,
                       void *data)
{
  size_t realsize = size * nmemb;
  (void)_Unused;
  (void)data;

  return realsize;
}


/* CURLOPT_PROGRESSFUNCTION */
static int prog_cb(void *p, double dltotal, double dlnow, double ult _Unused,
                   double uln _Unused)
{
  ConnInfo *conn = (ConnInfo *)p;



  fprintf(MSG_OUT, "Progress: %s (%g/%g)\n", conn->url, dlnow, dltotal);
  return 0;
}


/* Create a new easy handle, and add it to the global curl_multi */
................................................................................
  mcode_or_die("new_conn: curl_multi_add_handle", rc);

  /* note that the add_handle() will set a time-out to trigger very soon so
     that the necessary socket_action() call will be called by this app */
}

/* This gets called whenever data is received from the fifo */
static void fifo_cb(int fd _Unused, short event _Unused, void *arg)
{
  char s[1024];
  long int rv = 0;
  int n = 0;
  GlobalInfo *g = (GlobalInfo *)arg;



  do {
    s[0]='\0';
    rv = fscanf(g->input, "%1023s%n", s, &n);
    s[n]='\0';
    if(n && s[0]) {
      if(!strcmp(s, "stop")) {
................................................................................
static void clean_fifo(GlobalInfo *g)
{
    event_del(&g->fifo_event);
    fclose(g->input);
    unlink(fifo);
}

int main(int argc _Unused, char **argv _Unused)
{
  GlobalInfo g;



  memset(&g, 0, sizeof(GlobalInfo));
  g.evbase = event_base_new();
  init_fifo(&g);
  g.multi = curl_multi_init();
  evtimer_assign(&g.timer_event, g.evbase, timer_cb, &g);








<
<
<
<
<
<







 







|








|
|
|
|
|
|

|











|


>







 







|



>
>







 







|
<

<
|

<
|




|
|


>
>







 







|





>
>







 







|


>
>







68
69
70
71
72
73
74






75
76
77
78
79
80
81
...
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
...
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
...
296
297
298
299
300
301
302
303

304

305
306

307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
...
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
...
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
#include <event2/event.h>
#include <event2/event_struct.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <errno.h>
#include <sys/cdefs.h>







#define MSG_OUT stdout /* Send info to stdout, change to stderr if you want */


/* Global information, common to all connections */
typedef struct _GlobalInfo
{
  struct event_base *evbase;
................................................................................
  CURL *easy;
  int action;
  long timeout;
  struct event ev;
  GlobalInfo *global;
} SockInfo;

#define mycase(code) \
  case code: s = __STRING(code)

/* Die if we get a bad CURLMcode somewhere */
static void mcode_or_die(const char *where, CURLMcode code)
{
  if(CURLM_OK != code) {
    const char *s;
    switch(code) {
      mycase(CURLM_BAD_HANDLE); break;
      mycase(CURLM_BAD_EASY_HANDLE); break;
      mycase(CURLM_OUT_OF_MEMORY); break;
      mycase(CURLM_INTERNAL_ERROR); break;
      mycase(CURLM_UNKNOWN_OPTION); break;
      mycase(CURLM_LAST); break;
      default: s = "CURLM_unknown"; break;
      mycase(CURLM_BAD_SOCKET);
      fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
      /* ignore this error */
      return;
    }
    fprintf(MSG_OUT, "ERROR: %s returns %s\n", where, s);
    exit(code);
  }
}


/* Update the event timer after curl_multi library calls */
static int multi_timer_cb(CURLM *multi, long timeout_ms, GlobalInfo *g)
{
  struct timeval timeout;
  (void)multi;

  timeout.tv_sec = timeout_ms/1000;
  timeout.tv_usec = (timeout_ms%1000)*1000;
  fprintf(MSG_OUT, "multi_timer_cb: Setting timeout to %ld ms\n", timeout_ms);

  /*
   * if timeout_ms is -1, just delete the timer
................................................................................
    }
  }
}



/* Called by libevent when our timeout expires */
static void timer_cb(int fd, short kind, void *userp)
{
  GlobalInfo *g = (GlobalInfo *)userp;
  CURLMcode rc;
  (void)fd;
  (void)kind;

  rc = curl_multi_socket_action(g->multi,
                                  CURL_SOCKET_TIMEOUT, 0, &g->still_running);
  mcode_or_die("timer_cb: curl_multi_socket_action", rc);
  check_multi_info(g);
}

................................................................................
  }
  return 0;
}



/* CURLOPT_WRITEFUNCTION */
static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *data)

{

  (void)ptr;
  (void)data;

  return size * nmemb;
}


/* CURLOPT_PROGRESSFUNCTION */
static int prog_cb(void *p, double dltotal, double dlnow, double ult,
                   double uln)
{
  ConnInfo *conn = (ConnInfo *)p;
  (void)ult;
  (void)uln;

  fprintf(MSG_OUT, "Progress: %s (%g/%g)\n", conn->url, dlnow, dltotal);
  return 0;
}


/* Create a new easy handle, and add it to the global curl_multi */
................................................................................
  mcode_or_die("new_conn: curl_multi_add_handle", rc);

  /* note that the add_handle() will set a time-out to trigger very soon so
     that the necessary socket_action() call will be called by this app */
}

/* This gets called whenever data is received from the fifo */
static void fifo_cb(int fd, short event, void *arg)
{
  char s[1024];
  long int rv = 0;
  int n = 0;
  GlobalInfo *g = (GlobalInfo *)arg;
  (void)fd;
  (void)event;

  do {
    s[0]='\0';
    rv = fscanf(g->input, "%1023s%n", s, &n);
    s[n]='\0';
    if(n && s[0]) {
      if(!strcmp(s, "stop")) {
................................................................................
static void clean_fifo(GlobalInfo *g)
{
    event_del(&g->fifo_event);
    fclose(g->input);
    unlink(fifo);
}

int main(int argc, char **argv)
{
  GlobalInfo g;
  (void)argc;
  (void)argv;

  memset(&g, 0, sizeof(GlobalInfo));
  g.evbase = event_base_new();
  init_fifo(&g);
  g.multi = curl_multi_init();
  evtimer_assign(&g.timer_event, g.evbase, timer_cb, &g);

Added jni/curl/docs/examples/http3-present.c.































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2019, 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.
 *
 ***************************************************************************/
/* <DESC>
 * Checks if HTTP/3 support is present in libcurl.
 * </DESC>
 */
#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  curl_version_info_data *ver;

  curl_global_init(CURL_GLOBAL_ALL);

  ver = curl_version_info(CURLVERSION_NOW);
  if(ver->features & CURL_VERSION_HTTP2)
    printf("HTTP/2 support is present\n");

  if(ver->features & CURL_VERSION_HTTP3)
    printf("HTTP/3 support is present\n");

  if(ver->features & CURL_VERSION_ALTSVC)
    printf("Alt-svc support is present\n");

  curl_global_cleanup();
  return 0;
}

Added jni/curl/docs/examples/http3.c.













































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2019, 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.
 *
 ***************************************************************************/
/* <DESC>
 * Very simple HTTP/3 GET
 * </DESC>
 */
#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

    /* Forcing HTTP/3 will make the connection fail if the server isn't
       accessible over QUIC + HTTP/3 on the given host and port.
       Consider using CURLOPT_ALTSVC instead! */
    curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, (long)CURL_HTTP_VERSION_3);

    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}

Added jni/curl/docs/examples/imap-authzid.c.















































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2019, 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.
 *
 ***************************************************************************/

/* <DESC>
 * IMAP example showing how to retreieve e-mails from a shared mailed box
 * </DESC>
 */

#include <stdio.h>
#include <curl/curl.h>

/* This is a simple example showing how to fetch mail using libcurl's IMAP
 * capabilities.
 *
 * Note that this example requires libcurl 7.66.0 or above.
 */

int main(void)
{
  CURL *curl;
  CURLcode res = CURLE_OK;

  curl = curl_easy_init();
  if(curl) {
    /* Set the username and password */
    curl_easy_setopt(curl, CURLOPT_USERNAME, "user");
    curl_easy_setopt(curl, CURLOPT_PASSWORD, "secret");

    /* Set the authorisation identity (identity to act as) */
    curl_easy_setopt(curl, CURLOPT_SASL_AUTHZID, "shared-mailbox");

    /* Force PLAIN authentication */
    curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, "AUTH=PLAIN");

    /* This will fetch message 1 from the user's inbox */
    curl_easy_setopt(curl, CURLOPT_URL,
                     "imap://imap.example.com/INBOX/;UID=1");

    /* Perform the fetch */
    res = curl_easy_perform(curl);

    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* Always cleanup */
    curl_easy_cleanup(curl);
  }

  return (int)res;
}

Added jni/curl/docs/examples/pop3-authzid.c.













































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2019, 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.
 *
 ***************************************************************************/

/* <DESC>
 * POP3 example showing how to retrieve e-mails from a shared mailbox
 * </DESC>
 */

#include <stdio.h>
#include <curl/curl.h>

/* This is a simple example showing how to retrieve mail using libcurl's POP3
 * capabilities.
 *
 * Note that this example requires libcurl 7.66.0 or above.
 */

int main(void)
{
  CURL *curl;
  CURLcode res = CURLE_OK;

  curl = curl_easy_init();
  if(curl) {
    /* Set the username and password */
    curl_easy_setopt(curl, CURLOPT_USERNAME, "user");
    curl_easy_setopt(curl, CURLOPT_PASSWORD, "secret");

    /* Set the authorisation identity (identity to act as) */
    curl_easy_setopt(curl, CURLOPT_SASL_AUTHZID, "shared-mailbox");

    /* Force PLAIN authentication */
    curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, "AUTH=PLAIN");

    /* This will retrieve message 1 from the user's mailbox */
    curl_easy_setopt(curl, CURLOPT_URL, "pop3://pop.example.com/1");

    /* Perform the retr */
    res = curl_easy_perform(curl);

    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* Always cleanup */
    curl_easy_cleanup(curl);
  }

  return (int)res;
}

Added jni/curl/docs/examples/smtp-authzid.c.



































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2019, 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.
 *
 ***************************************************************************/

/* <DESC>
 * Send e-mail on behalf of another user with SMTP
 * </DESC>
 */

#include <stdio.h>
#include <string.h>
#include <curl/curl.h>

/*
 * This is a simple example show how to send an email using libcurl's SMTP
 * capabilities.
 *
 * Note that this example requires libcurl 7.66.0 or above.
 */

/* The libcurl options want plain addresses, the viewable headers in the mail
 * can very well get a full name as well.
 */
#define FROM_ADDR    "<ursel@example.org>"
#define SENDER_ADDR  "<kurt@example.org>"
#define TO_ADDR      "<addressee@example.net>"

#define FROM_MAIL    "Ursel " FROM_ADDR
#define SENDER_MAIL  "Kurt " SENDER_ADDR
#define TO_MAIL      "A Receiver " TO_ADDR

static const char *payload_text[] = {
  "Date: Mon, 29 Nov 2010 21:54:29 +1100\r\n",
  "To: " TO_MAIL "\r\n",
  "From: " FROM_MAIL "\r\n",
  "Sender: " SENDER_MAIL "\r\n",
  "Message-ID: <dcd7cb36-11db-487a-9f3a-e652a9458efd@"
  "rfcpedant.example.org>\r\n",
  "Subject: SMTP example message\r\n",
  "\r\n", /* empty line to divide headers from body, see RFC5322 */
  "The body of the message starts here.\r\n",
  "\r\n",
  "It could be a lot of lines, could be MIME encoded, whatever.\r\n",
  "Check RFC5322.\r\n",
  NULL
};

struct upload_status {
  int lines_read;
};

static size_t payload_source(void *ptr, size_t size, size_t nmemb, void *userp)
{
  struct upload_status *upload_ctx = (struct upload_status *)userp;
  const char *data;

  if((size == 0) || (nmemb == 0) || ((size*nmemb) < 1)) {
    return 0;
  }

  data = payload_text[upload_ctx->lines_read];

  if(data) {
    size_t len = strlen(data);
    memcpy(ptr, data, len);
    upload_ctx->lines_read++;

    return len;
  }

  return 0;
}

int main(void)
{
  CURL *curl;
  CURLcode res = CURLE_OK;
  struct curl_slist *recipients = NULL;
  struct upload_status upload_ctx;

  upload_ctx.lines_read = 0;

  curl = curl_easy_init();
  if(curl) {
    /* This is the URL for your mailserver. In this example we connect to the
       smtp-submission port as we require an authenticated connection. */
    curl_easy_setopt(curl, CURLOPT_URL, "smtp://mail.example.com:587");

    /* Set the username and password */
    curl_easy_setopt(curl, CURLOPT_USERNAME, "kurt");
    curl_easy_setopt(curl, CURLOPT_PASSWORD, "xipj3plmq");

    /* Set the authorisation identity (identity to act as) */
    curl_easy_setopt(curl, CURLOPT_SASL_AUTHZID, "ursel");

    /* Force PLAIN authentication */
    curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, "AUTH=PLAIN");

    /* Note that this option isn't strictly required, omitting it will result
     * in libcurl sending the MAIL FROM command with empty sender data. All
     * autoresponses should have an empty reverse-path, and should be directed
     * to the address in the reverse-path which triggered them. Otherwise,
     * they could cause an endless loop. See RFC 5321 Section 4.5.5 for more
     * details.
     */
    curl_easy_setopt(curl, CURLOPT_MAIL_FROM, FROM_ADDR);

    /* Add a recipient, in this particular case it corresponds to the
     * To: addressee in the header. */
    recipients = curl_slist_append(recipients, TO_ADDR);
    curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);

    /* We're using a callback function to specify the payload (the headers and
     * body of the message). You could just use the CURLOPT_READDATA option to
     * specify a FILE pointer to read from. */
    curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
    curl_easy_setopt(curl, CURLOPT_READDATA, &upload_ctx);
    curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);

    /* Send the message */
    res = curl_easy_perform(curl);

    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* Free the list of recipients */
    curl_slist_free_all(recipients);

    /* curl won't send the QUIT command until you call cleanup, so you should
     * be able to re-use this connection for additional messages (setting
     * CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT as required, and calling
     * curl_easy_perform() again. It may not be a good idea to keep the
     * connection open for a very long time though (more than a few minutes
     * may result in the server timing out the connection), and you do want to
     * clean up in the end.
     */
    curl_easy_cleanup(curl);
  }

  return (int)res;
}

Changes to jni/curl/docs/libcurl/Makefile.in.

561
562
563
564
565
566
567



568
569

570
571
572
573
574
575
576
...
675
676
677
678
679
680
681

682
683
684
685
686
687
688
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@



USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@

USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
 curl_multi_add_handle.3 \
 curl_multi_assign.3 \
 curl_multi_cleanup.3 \
 curl_multi_fdset.3 \
 curl_multi_info_read.3 \
 curl_multi_init.3 \
 curl_multi_perform.3 \

 curl_multi_remove_handle.3 \
 curl_multi_setopt.3 \
 curl_multi_socket.3 \
 curl_multi_socket_action.3 \
 curl_multi_socket_all.3 \
 curl_multi_strerror.3 \
 curl_multi_timeout.3 \







>
>
>


>







 







>







561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
...
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
USE_LIBRTMP = @USE_LIBRTMP@
USE_LIBSSH = @USE_LIBSSH@
USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@
USE_NGHTTP3 = @USE_NGHTTP3@
USE_NGTCP2 = @USE_NGTCP2@
USE_NGTCP2_CRYPTO_OPENSSL = @USE_NGTCP2_CRYPTO_OPENSSL@
USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@
USE_QUICHE = @USE_QUICHE@
USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
USE_WOLFSSL = @USE_WOLFSSL@
VERSION = @VERSION@
VERSIONNUM = @VERSIONNUM@
................................................................................
 curl_multi_add_handle.3 \
 curl_multi_assign.3 \
 curl_multi_cleanup.3 \
 curl_multi_fdset.3 \
 curl_multi_info_read.3 \
 curl_multi_init.3 \
 curl_multi_perform.3 \
 curl_multi_poll.3 \
 curl_multi_remove_handle.3 \
 curl_multi_setopt.3 \
 curl_multi_socket.3 \
 curl_multi_socket_action.3 \
 curl_multi_socket_all.3 \
 curl_multi_strerror.3 \
 curl_multi_timeout.3 \

Changes to jni/curl/docs/libcurl/Makefile.inc.

42
43
44
45
46
47
48

49
50
51
52
53
54
55
 curl_multi_add_handle.3 \
 curl_multi_assign.3 \
 curl_multi_cleanup.3 \
 curl_multi_fdset.3 \
 curl_multi_info_read.3 \
 curl_multi_init.3 \
 curl_multi_perform.3 \

 curl_multi_remove_handle.3 \
 curl_multi_setopt.3 \
 curl_multi_socket.3 \
 curl_multi_socket_action.3 \
 curl_multi_socket_all.3 \
 curl_multi_strerror.3 \
 curl_multi_timeout.3 \







>







42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 curl_multi_add_handle.3 \
 curl_multi_assign.3 \
 curl_multi_cleanup.3 \
 curl_multi_fdset.3 \
 curl_multi_info_read.3 \
 curl_multi_init.3 \
 curl_multi_perform.3 \
 curl_multi_poll.3 \
 curl_multi_remove_handle.3 \
 curl_multi_setopt.3 \
 curl_multi_socket.3 \
 curl_multi_socket_action.3 \
 curl_multi_socket_all.3 \
 curl_multi_strerror.3 \
 curl_multi_timeout.3 \

Changes to jni/curl/docs/libcurl/curl_easy_cleanup.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_cleanup 3 "August 09, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_cleanup - End a libcurl easy handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "void curl_easy_cleanup(CURL *" handle ");"







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_cleanup 3 "August 09, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_cleanup - End a libcurl easy handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "void curl_easy_cleanup(CURL *" handle ");"

Changes to jni/curl/docs/libcurl/curl_easy_duphandle.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_duphandle 3 "March 01, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_duphandle - Clone a libcurl session handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "CURL *curl_easy_duphandle(CURL *"handle ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_duphandle 3 "March 01, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_duphandle - Clone a libcurl session handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "CURL *curl_easy_duphandle(CURL *"handle ");"

Changes to jni/curl/docs/libcurl/curl_easy_escape.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_escape 3 "August 12, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_escape - URL encodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_easy_escape( CURL *" curl ", const char *" string







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_escape 3 "August 12, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_escape - URL encodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_easy_escape( CURL *" curl ", const char *" string

Changes to jni/curl/docs/libcurl/curl_easy_getinfo.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
...
154
155
156
157
158
159
160



161
162
163
164
165
166
167
.\" * 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_easy_getinfo 3 "April 11, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_getinfo - extract information from a curl handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.B "CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );"
................................................................................
.IP CURLINFO_CONTENT_LENGTH_UPLOAD
(Deprecated) Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP
.IP CURLINFO_CONTENT_LENGTH_UPLOAD_T
Upload size.  See \fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP
.IP CURLINFO_CONTENT_TYPE
Content type from the Content-Type header.
See \fICURLINFO_CONTENT_TYPE(3)\fP



.IP CURLINFO_PRIVATE
User's private data pointer.
See \fICURLINFO_PRIVATE(3)\fP
.IP CURLINFO_HTTPAUTH_AVAIL
Available HTTP authentication methods.
See \fICURLINFO_HTTPAUTH_AVAIL(3)\fP
.IP CURLINFO_PROXYAUTH_AVAIL







|







 







>
>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
...
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
.\" * 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_easy_getinfo 3 "August 06, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_getinfo - extract information from a curl handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.B "CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );"
................................................................................
.IP CURLINFO_CONTENT_LENGTH_UPLOAD
(Deprecated) Upload size. See \fICURLINFO_CONTENT_LENGTH_UPLOAD(3)\fP
.IP CURLINFO_CONTENT_LENGTH_UPLOAD_T
Upload size.  See \fICURLINFO_CONTENT_LENGTH_UPLOAD_T(3)\fP
.IP CURLINFO_CONTENT_TYPE
Content type from the Content-Type header.
See \fICURLINFO_CONTENT_TYPE(3)\fP
.IP CURLINFO_RETRY_AFTER
The value from the from the Retry-After header.
See \fICURLINFO_RETRY_AFTER(3)\fP
.IP CURLINFO_PRIVATE
User's private data pointer.
See \fICURLINFO_PRIVATE(3)\fP
.IP CURLINFO_HTTPAUTH_AVAIL
Available HTTP authentication methods.
See \fICURLINFO_HTTPAUTH_AVAIL(3)\fP
.IP CURLINFO_PROXYAUTH_AVAIL

Changes to jni/curl/docs/libcurl/curl_easy_init.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_init 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_init - Start a libcurl easy session
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "CURL *curl_easy_init( );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_init 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_init - Start a libcurl easy session
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "CURL *curl_easy_init( );"

Changes to jni/curl/docs/libcurl/curl_easy_pause.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_pause 3 "May 01, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_pause - pause and unpause a connection
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "CURLcode curl_easy_pause(CURL *"handle ", int "bitmask " );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_pause 3 "May 01, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_pause - pause and unpause a connection
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "CURLcode curl_easy_pause(CURL *"handle ", int "bitmask " );"

Changes to jni/curl/docs/libcurl/curl_easy_perform.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_perform 3 "September 23, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_perform - perform a blocking file transfer
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_easy_perform(CURL *" easy_handle ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_perform 3 "September 23, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_perform - perform a blocking file transfer
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_easy_perform(CURL *" easy_handle ");"

Changes to jni/curl/docs/libcurl/curl_easy_recv.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_recv 3 "December 18, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_recv - receives raw data on an "easy" connection
.SH SYNOPSIS
.B #include <curl/easy.h>
.sp
.BI "CURLcode curl_easy_recv( CURL *" curl ", void *" buffer ","







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_recv 3 "December 18, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_recv - receives raw data on an "easy" connection
.SH SYNOPSIS
.B #include <curl/easy.h>
.sp
.BI "CURLcode curl_easy_recv( CURL *" curl ", void *" buffer ","

Changes to jni/curl/docs/libcurl/curl_easy_reset.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_reset 3 "September 23, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_reset - reset all options of a libcurl session handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "void curl_easy_reset(CURL *"handle ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_reset 3 "September 23, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_reset - reset all options of a libcurl session handle
.SH SYNOPSIS
.B #include <curl/curl.h>

.BI "void curl_easy_reset(CURL *"handle ");"

Changes to jni/curl/docs/libcurl/curl_easy_send.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_send 3 "December 18, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_send - sends raw data over an "easy" connection
.SH SYNOPSIS
.B #include <curl/easy.h>
.sp
.BI "CURLcode curl_easy_send( CURL *" curl ", const void *" buffer ","







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_send 3 "December 18, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_send - sends raw data over an "easy" connection
.SH SYNOPSIS
.B #include <curl/easy.h>
.sp
.BI "CURLcode curl_easy_send( CURL *" curl ", const void *" buffer ","

Changes to jni/curl/docs/libcurl/curl_easy_setopt.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
...
253
254
255
256
257
258
259


260
261
262
263
264
265
266
.\" * 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_easy_setopt 3 "May 24, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_setopt \- set options for a curl easy handle
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
................................................................................
Proxy TLS authentication password. See \fICURLOPT_PROXY_TLSAUTH_PASSWORD(3)\fP
.IP CURLOPT_TLSAUTH_TYPE
TLS authentication methods. See \fICURLOPT_TLSAUTH_TYPE(3)\fP
.IP CURLOPT_PROXY_TLSAUTH_TYPE
Proxy TLS authentication methods. See \fICURLOPT_PROXY_TLSAUTH_TYPE(3)\fP
.IP CURLOPT_PROXYAUTH
HTTP proxy authentication methods. See \fICURLOPT_PROXYAUTH(3)\fP


.IP CURLOPT_SASL_IR
Enable SASL initial response. See \fICURLOPT_SASL_IR(3)\fP
.IP CURLOPT_XOAUTH2_BEARER
OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP
.IP CURLOPT_DISALLOW_USERNAME_IN_URL
Don't allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP
.SH HTTP OPTIONS







|







 







>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
...
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
.\" * 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_easy_setopt 3 "August 09, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_setopt \- set options for a curl easy handle
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
................................................................................
Proxy TLS authentication password. See \fICURLOPT_PROXY_TLSAUTH_PASSWORD(3)\fP
.IP CURLOPT_TLSAUTH_TYPE
TLS authentication methods. See \fICURLOPT_TLSAUTH_TYPE(3)\fP
.IP CURLOPT_PROXY_TLSAUTH_TYPE
Proxy TLS authentication methods. See \fICURLOPT_PROXY_TLSAUTH_TYPE(3)\fP
.IP CURLOPT_PROXYAUTH
HTTP proxy authentication methods. See \fICURLOPT_PROXYAUTH(3)\fP
.IP CURLOPT_SASL_AUTHZID
SASL authorisation identity (identity to act as). See \fICURLOPT_SASL_AUTHZID(3)\fP
.IP CURLOPT_SASL_IR
Enable SASL initial response. See \fICURLOPT_SASL_IR(3)\fP
.IP CURLOPT_XOAUTH2_BEARER
OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP
.IP CURLOPT_DISALLOW_USERNAME_IN_URL
Don't allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP
.SH HTTP OPTIONS

Changes to jni/curl/docs/libcurl/curl_easy_strerror.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_strerror 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_strerror - return string describing error code
.SH SYNOPSIS
#include <curl/curl.h>

const char *curl_easy_strerror(CURLcode errornum);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_easy_strerror 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_strerror - return string describing error code
.SH SYNOPSIS
#include <curl/curl.h>

const char *curl_easy_strerror(CURLcode errornum);

Changes to jni/curl/docs/libcurl/curl_easy_unescape.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_unescape 3 "October 04, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_easy_unescape - URL decodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_easy_unescape( CURL *" curl ", const char *" url







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_easy_unescape 3 "October 04, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_easy_unescape - URL decodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_easy_unescape( CURL *" curl ", const char *" url

Changes to jni/curl/docs/libcurl/curl_escape.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_escape 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_escape - URL encodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_escape( const char *" url ", int "length " );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_escape 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_escape - URL encodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_escape( const char *" url ", int "length " );"

Changes to jni/curl/docs/libcurl/curl_formadd.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_formadd 3 "December 11, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_formadd - add a section to a multipart/formdata HTTP POST
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLFORMcode curl_formadd(struct curl_httppost ** " firstitem,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_formadd 3 "December 11, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_formadd - add a section to a multipart/formdata HTTP POST
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLFORMcode curl_formadd(struct curl_httppost ** " firstitem,

Changes to jni/curl/docs/libcurl/curl_formfree.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_formfree 3 "August 09, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_formfree - free a previously build multipart/formdata HTTP POST chain
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_formfree(struct curl_httppost *" form);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_formfree 3 "August 09, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_formfree - free a previously build multipart/formdata HTTP POST chain
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_formfree(struct curl_httppost *" form);

Changes to jni/curl/docs/libcurl/curl_formget.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_formget 3 "September 02, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_formget - serialize a previously built multipart/formdata HTTP POST chain
.SH SYNOPSIS
.nf
.B #include <curl/curl.h>








|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_formget 3 "September 02, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_formget - serialize a previously built multipart/formdata HTTP POST chain
.SH SYNOPSIS
.nf
.B #include <curl/curl.h>

Changes to jni/curl/docs/libcurl/curl_free.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_free 3 "August 09, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_free - reclaim memory that has been obtained through a libcurl call
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_free( char *" ptr " );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_free 3 "August 09, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_free - reclaim memory that has been obtained through a libcurl call
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_free( char *" ptr " );"

Changes to jni/curl/docs/libcurl/curl_getdate.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_getdate 3 "January 18, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_getdate - Convert a date string to number of seconds
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "time_t curl_getdate(char *" datestring ", time_t *"now " );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_getdate 3 "January 18, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_getdate - Convert a date string to number of seconds
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "time_t curl_getdate(char *" datestring ", time_t *"now " );"

Changes to jni/curl/docs/libcurl/curl_getenv.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_getenv 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_getenv - return value for environment name
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_getenv(const char *" name ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_getenv 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_getenv - return value for environment name
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_getenv(const char *" name ");"

Changes to jni/curl/docs/libcurl/curl_global_cleanup.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_global_cleanup 3 "September 20, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_global_cleanup - global libcurl cleanup
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_global_cleanup(void);"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_global_cleanup 3 "September 20, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_global_cleanup - global libcurl cleanup
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_global_cleanup(void);"

Changes to jni/curl/docs/libcurl/curl_global_init.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_global_init 3 "April 17, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_global_init - Global libcurl initialisation
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_global_init(long " flags ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_global_init 3 "April 17, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_global_init - Global libcurl initialisation
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_global_init(long " flags ");"

Changes to jni/curl/docs/libcurl/curl_global_init_mem.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
..
56
57
58
59
60
61
62


63
64
65
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
.\" * are also available at 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_global_init_mem 3 "September 23, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_global_init_mem - Global libcurl initialisation with memory callbacks
.SH SYNOPSIS
.B #include <curl/curl.h>
.nf
.B "CURLcode curl_global_init_mem(long " flags,
................................................................................
To replace calloc()
.RE
This function is otherwise the same as \fIcurl_global_init(3)\fP, please refer
to that man page for documentation.
.SH "CAUTION"
Manipulating these gives considerable powers to the application to severely
screw things up for libcurl. Take care!


.SH "SEE ALSO"
.BR curl_global_init "(3), "
.BR curl_global_cleanup "(3), "







|













|







 







>
>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
..
56
57
58
59
60
61
62
63
64
65
66
67
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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_global_init_mem 3 "August 11, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_global_init_mem - Global libcurl initialisation with memory callbacks
.SH SYNOPSIS
.B #include <curl/curl.h>
.nf
.B "CURLcode curl_global_init_mem(long " flags,
................................................................................
To replace calloc()
.RE
This function is otherwise the same as \fIcurl_global_init(3)\fP, please refer
to that man page for documentation.
.SH "CAUTION"
Manipulating these gives considerable powers to the application to severely
screw things up for libcurl. Take care!
.SH AVAILABILITY
Added in 7.12.0
.SH "SEE ALSO"
.BR curl_global_init "(3), "
.BR curl_global_cleanup "(3), "

Changes to jni/curl/docs/libcurl/curl_global_sslset.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_global_sslset 3 "October 30, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_global_sslset - Select SSL backend to use with libcurl
.SH SYNOPSIS
.B #include <curl/curl.h>
.nf








|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_global_sslset 3 "October 30, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_global_sslset - Select SSL backend to use with libcurl
.SH SYNOPSIS
.B #include <curl/curl.h>
.nf

Changes to jni/curl/docs/libcurl/curl_mime_addpart.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_addpart 3 "September 22, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_addpart - append a new empty part to a mime structure
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "curl_mimepart * curl_mime_addpart(curl_mime * " mime ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_addpart 3 "September 22, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_addpart - append a new empty part to a mime structure
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "curl_mimepart * curl_mime_addpart(curl_mime * " mime ");"

Changes to jni/curl/docs/libcurl/curl_mime_data.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_data 3 "September 22, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_data - set a mime part's body data from memory
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_data(curl_mimepart * " part ", const char * " data







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_data 3 "September 22, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_data - set a mime part's body data from memory
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_data(curl_mimepart * " part ", const char * " data

Changes to jni/curl/docs/libcurl/curl_mime_data_cb.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_data_cb 3 "April 17, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_data_cb - set a callback-based data source for a mime part's body
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
size_t readfunc(char *buffer, size_t size, size_t nitems, void *arg);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_data_cb 3 "April 17, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_data_cb - set a callback-based data source for a mime part's body
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
size_t readfunc(char *buffer, size_t size, size_t nitems, void *arg);

Changes to jni/curl/docs/libcurl/curl_mime_encoder.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_encoder 3 "September 05, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_encoder - set a mime part's encoder and content transfer encoding
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_encoder(curl_mimepart * " part ,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_encoder 3 "September 05, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_encoder - set a mime part's encoder and content transfer encoding
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_encoder(curl_mimepart * " part ,

Changes to jni/curl/docs/libcurl/curl_mime_filedata.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_filedata 3 "April 17, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_filedata - set a mime part's body data from a file contents
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_filedata(curl_mimepart * " part ,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_filedata 3 "April 17, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_filedata - set a mime part's body data from a file contents
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_filedata(curl_mimepart * " part ,

Changes to jni/curl/docs/libcurl/curl_mime_filename.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_filename 3 "September 22, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_filename - set a mime part's remote file name
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_filename(curl_mimepart * " part ,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_filename 3 "September 22, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_filename - set a mime part's remote file name
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_filename(curl_mimepart * " part ,

Changes to jni/curl/docs/libcurl/curl_mime_free.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_free 3 "August 09, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_free - free a previously built mime structure
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_mime_free(curl_mime *" mime);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_free 3 "August 09, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_free - free a previously built mime structure
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_mime_free(curl_mime *" mime);

Changes to jni/curl/docs/libcurl/curl_mime_headers.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_headers 3 "September 22, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_headers - set a mime part's custom headers
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_headers(curl_mimepart * " part ,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_headers 3 "September 22, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_headers - set a mime part's custom headers
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_headers(curl_mimepart * " part ,

Changes to jni/curl/docs/libcurl/curl_mime_init.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_init 3 "September 22, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_init - create a mime handle
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "curl_mime * curl_mime_init(CURL * " easy_handle ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_init 3 "September 22, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_init - create a mime handle
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "curl_mime * curl_mime_init(CURL * " easy_handle ");"

Changes to jni/curl/docs/libcurl/curl_mime_name.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_name 3 "September 22, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_name - set a mime part's name
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_name(curl_mimepart * " part ", const char * " name ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_name 3 "September 22, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_name - set a mime part's name
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_name(curl_mimepart * " part ", const char * " name ");"

Changes to jni/curl/docs/libcurl/curl_mime_subparts.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_subparts 3 "September 05, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_subparts - set subparts of a multipart mime part
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_subparts(curl_mimepart * " part ,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_subparts 3 "September 05, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_subparts - set subparts of a multipart mime part
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_subparts(curl_mimepart * " part ,

Changes to jni/curl/docs/libcurl/curl_mime_type.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_type 3 "April 17, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_mime_type - set a mime part's content type
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_type(curl_mimepart * " part ,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_mime_type 3 "April 17, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_mime_type - set a mime part's content type
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLcode curl_mime_type(curl_mimepart * " part ,

Changes to jni/curl/docs/libcurl/curl_mprintf.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_printf 3 "April 01, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
curl_mvaprintf, curl_mvfprintf, curl_mvprintf, curl_mvsnprintf,
curl_mvsprintf - formatted output conversion
.SH SYNOPSIS
.B #include <curl/mprintf.h>







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_printf 3 "April 01, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
curl_mvaprintf, curl_mvfprintf, curl_mvprintf, curl_mvsnprintf,
curl_mvsprintf - formatted output conversion
.SH SYNOPSIS
.B #include <curl/mprintf.h>

Changes to jni/curl/docs/libcurl/curl_multi_add_handle.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_add_handle 3 "June 30, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_add_handle - add an easy handle to a multi session
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *easy_handle);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_add_handle 3 "June 30, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_add_handle - add an easy handle to a multi session
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_add_handle(CURLM *multi_handle, CURL *easy_handle);

Changes to jni/curl/docs/libcurl/curl_multi_assign.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_assign 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_assign \- set data to associate with an internal socket
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_assign(CURLM *multi_handle, curl_socket_t sockfd,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_assign 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_assign \- set data to associate with an internal socket
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_assign(CURLM *multi_handle, curl_socket_t sockfd,

Changes to jni/curl/docs/libcurl/curl_multi_cleanup.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_cleanup 3 "August 09, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_cleanup - close down a multi session
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLMcode curl_multi_cleanup( CURLM *multi_handle );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_cleanup 3 "August 09, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_cleanup - close down a multi session
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLMcode curl_multi_cleanup( CURLM *multi_handle );"

Changes to jni/curl/docs/libcurl/curl_multi_fdset.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_fdset 3 "November 09, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_fdset - extracts file descriptor information from a multi handle
.SH SYNOPSIS
.nf
#include <curl/curl.h>








|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_fdset 3 "November 09, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_fdset - extracts file descriptor information from a multi handle
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/curl_multi_info_read.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_info_read 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_info_read - read multi stack informationals
.SH SYNOPSIS
#include <curl/curl.h>

CURLMsg *curl_multi_info_read( CURLM *multi_handle,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_info_read 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_info_read - read multi stack informationals
.SH SYNOPSIS
#include <curl/curl.h>

CURLMsg *curl_multi_info_read( CURLM *multi_handle,

Changes to jni/curl/docs/libcurl/curl_multi_init.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_init 3 "September 23, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_init - create a multi handle
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLM *curl_multi_init( );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_init 3 "September 23, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_init - create a multi handle
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLM *curl_multi_init( );"

Changes to jni/curl/docs/libcurl/curl_multi_perform.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_perform 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_perform - reads/writes available data from each easy handle
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_perform 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_perform - reads/writes available data from each easy handle
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles);

Added jni/curl/docs/libcurl/curl_multi_poll.3.































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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_multi_poll 3 "July 29, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_poll - polls on all easy handles in a multi handle
.SH SYNOPSIS
.nf
#include <curl/curl.h>

CURLMcode curl_multi_poll(CURLM *multi_handle,
                          struct curl_waitfd extra_fds[],
                          unsigned int extra_nfds,
                          int timeout_ms,
                          int *numfds);
.ad
.SH DESCRIPTION
\fIcurl_multi_poll(3)\fP polls all file descriptors used by the curl easy
handles contained in the given multi handle set.  It will block until activity
is detected on at least one of the handles or \fItimeout_ms\fP has passed.
Alternatively, if the multi handle has a pending internal timeout that has a
shorter expiry time than \fItimeout_ms\fP, that shorter time will be used
instead to make sure timeout accuracy is reasonably kept.

The calling application may pass additional curl_waitfd structures which are
similar to \fIpoll(2)\fP's pollfd structure to be waited on in the same call.

On completion, if \fInumfds\fP is non-NULL, it will be populated with the
total number of file descriptors on which interesting events occurred. This
number can include both libcurl internal descriptors as well as descriptors
provided in \fIextra_fds\fP.

If no extra file descriptors are provided and libcurl has no file descriptor
to offer to wait for, this function will instead wait during \fItimeout_ms\fP
milliseconds (or shorter if an internal timer indicates so). This is the
detail that makes this function different than \fIcurl_multi_wait(3)\fP.

This function is encouraged to be used instead of select(3) when using the
multi interface to allow applications to easier circumvent the common problem
with 1024 maximum file descriptors.
.SH curl_waitfd
.nf
struct curl_waitfd {
  curl_socket_t fd;
  short events;
  short revents;
};
.fi
.IP CURL_WAIT_POLLIN
Bit flag to curl_waitfd.events indicating the socket should poll on read
events such as new data received.
.IP CURL_WAIT_POLLPRI
Bit flag to curl_waitfd.events indicating the socket should poll on high
priority read events such as out of band data.
.IP CURL_WAIT_POLLOUT
Bit flag to curl_waitfd.events indicating the socket should poll on write
events such as the socket being clear to write without blocking.
.SH EXAMPLE
.nf
CURL *easy_handle;
CURLM *multi_handle;

/* add the individual easy handle */
curl_multi_add_handle(multi_handle, easy_handle);

do {
  CURLMcode mc;
  int numfds;

  mc = curl_multi_perform(multi_handle, &still_running);

  if(mc == CURLM_OK) {
    /* wait for activity or timeout */
    mc = curl_multi_poll(multi_handle, NULL, 0, 1000, &numfds);
  }

  if(mc != CURLM_OK) {
    fprintf(stderr, "curl_multi failed, code %d.\\n", mc);
    break;
  }

} while(still_running);

curl_multi_remove_handle(multi_handle, easy_handle);
.fi
.SH RETURN VALUE
CURLMcode type, general libcurl multi interface error code. See
\fIlibcurl-errors(3)\fP
.SH AVAILABILITY
This function was added in libcurl 7.66.0.
.SH "SEE ALSO"
.BR curl_multi_fdset "(3), " curl_multi_perform "(3), " curl_multi_wait "(3)"

Changes to jni/curl/docs/libcurl/curl_multi_remove_handle.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_remove_handle 3 "February 19, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_remove_handle - remove an easy handle from a multi session
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_remove_handle(CURLM *multi_handle, CURL *easy_handle);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_remove_handle 3 "February 19, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_remove_handle - remove an easy handle from a multi session
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_remove_handle(CURLM *multi_handle, CURL *easy_handle);

Changes to jni/curl/docs/libcurl/curl_multi_setopt.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_setopt 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_setopt \- set options for a curl multi handle
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_setopt(CURLM * multi_handle, CURLMoption option, param);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_setopt 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_setopt \- set options for a curl multi handle
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_setopt(CURLM * multi_handle, CURLMoption option, param);

Changes to jni/curl/docs/libcurl/curl_multi_socket.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_socket 3 "June 30, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_socket \- reads/writes available data
.SH SYNOPSIS
.nf
#include <curl/curl.h>
CURLMcode curl_multi_socket(CURLM * multi_handle, curl_socket_t sockfd,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_socket 3 "June 30, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_socket \- reads/writes available data
.SH SYNOPSIS
.nf
#include <curl/curl.h>
CURLMcode curl_multi_socket(CURLM * multi_handle, curl_socket_t sockfd,

Changes to jni/curl/docs/libcurl/curl_multi_socket_action.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_socket_action 3 "June 10, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_socket_action \- reads/writes available data given an action
.SH SYNOPSIS
.nf
#include <curl/curl.h>








|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_socket_action 3 "June 10, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_socket_action \- reads/writes available data given an action
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/curl_multi_strerror.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_strerror 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_strerror - return string describing error code
.SH SYNOPSIS
.nf
.B #include <curl/curl.h>
.BI "const char *curl_multi_strerror(CURLMcode " errornum ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_strerror 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_strerror - return string describing error code
.SH SYNOPSIS
.nf
.B #include <curl/curl.h>
.BI "const char *curl_multi_strerror(CURLMcode " errornum ");"

Changes to jni/curl/docs/libcurl/curl_multi_timeout.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_timeout 3 "September 23, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_timeout \- how long to wait for action before proceeding
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_timeout(CURLM *multi_handle, long *timeout);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_timeout 3 "September 23, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_timeout \- how long to wait for action before proceeding
.SH SYNOPSIS
#include <curl/curl.h>

CURLMcode curl_multi_timeout(CURLM *multi_handle, long *timeout);

Changes to jni/curl/docs/libcurl/curl_multi_wait.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_wait 3 "June 26, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_multi_wait - polls on all easy handles in a multi handle
.SH SYNOPSIS
.nf
#include <curl/curl.h>








|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_multi_wait 3 "June 26, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_multi_wait - polls on all easy handles in a multi handle
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/curl_share_cleanup.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_cleanup 3 "August 09, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_share_cleanup - Clean up a shared object
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLSHcode curl_share_cleanup(CURLSH *" share_handle ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_cleanup 3 "August 09, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_share_cleanup - Clean up a shared object
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLSHcode curl_share_cleanup(CURLSH *" share_handle ");"

Changes to jni/curl/docs/libcurl/curl_share_init.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_init 3 "September 23, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_share_init - Create a shared object
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLSH *curl_share_init( );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_init 3 "September 23, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_share_init - Create a shared object
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "CURLSH *curl_share_init( );"

Changes to jni/curl/docs/libcurl/curl_share_setopt.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_setopt 3 "June 04, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_share_setopt - Set options for a shared object
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option, parameter);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_setopt 3 "June 04, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_share_setopt - Set options for a shared object
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option, parameter);

Changes to jni/curl/docs/libcurl/curl_share_strerror.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_strerror 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_share_strerror - return string describing error code
.SH SYNOPSIS
.nf
.B #include <curl/curl.h>
.BI "const char *curl_share_strerror(CURLSHcode " errornum ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_share_strerror 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_share_strerror - return string describing error code
.SH SYNOPSIS
.nf
.B #include <curl/curl.h>
.BI "const char *curl_share_strerror(CURLSHcode " errornum ");"

Changes to jni/curl/docs/libcurl/curl_slist_append.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_slist_append 3 "January 02, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_slist_append - add a string to an slist
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "struct curl_slist *curl_slist_append(struct curl_slist *" list,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_slist_append 3 "January 02, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_slist_append - add a string to an slist
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "struct curl_slist *curl_slist_append(struct curl_slist *" list,

Changes to jni/curl/docs/libcurl/curl_slist_free_all.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_slist_free_all 3 "September 23, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_slist_free_all - free an entire curl_slist list
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_slist_free_all(struct curl_slist *" list);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_slist_free_all 3 "September 23, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_slist_free_all - free an entire curl_slist list
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "void curl_slist_free_all(struct curl_slist *" list);

Changes to jni/curl/docs/libcurl/curl_strequal.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_strequal 3 "June 29, 2017" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_strequal, curl_strnequal - case insensitive string comparisons
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "int curl_strequal(char *" str1 ", char *" str2 ");"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_strequal 3 "June 29, 2017" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_strequal, curl_strnequal - case insensitive string comparisons
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "int curl_strequal(char *" str1 ", char *" str2 ");"

Changes to jni/curl/docs/libcurl/curl_unescape.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_unescape 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_unescape - URL decodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_unescape( const char *" url ", int "length " );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_unescape 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_unescape - URL decodes the given string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_unescape( const char *" url ", int "length " );"

Changes to jni/curl/docs/libcurl/curl_url.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url 3 "March 22, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_url - returns a new CURLU handle
.SH SYNOPSIS
.B #include <curl/curl.h>

CURLU *curl_url();







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url 3 "March 22, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_url - returns a new CURLU handle
.SH SYNOPSIS
.B #include <curl/curl.h>

CURLU *curl_url();

Changes to jni/curl/docs/libcurl/curl_url_cleanup.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_cleanup 3 "September 08, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_url_cleanup - free a CURLU handle
.SH SYNOPSIS
.B #include <curl/curl.h>

void curl_url_cleanup(CURLU *handle);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_cleanup 3 "September 08, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_url_cleanup - free a CURLU handle
.SH SYNOPSIS
.B #include <curl/curl.h>

void curl_url_cleanup(CURLU *handle);

Changes to jni/curl/docs/libcurl/curl_url_dup.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_dup 3 "September 08, 2018" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_url_dup - duplicate a CURLU handle
.SH SYNOPSIS
.B #include <curl/curl.h>

CURLU *curl_url_dup(CURLU *inhandle);







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_dup 3 "September 08, 2018" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_url_dup - duplicate a CURLU handle
.SH SYNOPSIS
.B #include <curl/curl.h>

CURLU *curl_url_dup(CURLU *inhandle);

Changes to jni/curl/docs/libcurl/curl_url_get.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_get 3 "May 03, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_url_get - extract a part from a URL
.SH SYNOPSIS
.B #include <curl/curl.h>

.nf







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_get 3 "May 03, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_url_get - extract a part from a URL
.SH SYNOPSIS
.B #include <curl/curl.h>

.nf

Changes to jni/curl/docs/libcurl/curl_url_set.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_set 3 "May 03, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_url_set - set a URL part
.SH SYNOPSIS
.B #include <curl/curl.h>

CURLUcode curl_url_set(CURLU *url,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_url_set 3 "May 03, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_url_set - set a URL part
.SH SYNOPSIS
.B #include <curl/curl.h>

CURLUcode curl_url_set(CURLU *url,

Changes to jni/curl/docs/libcurl/curl_version.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_version 3 "February 03, 2016" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_version - returns the libcurl version string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_version( );"







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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_version 3 "February 03, 2016" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_version - returns the libcurl version string
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "char *curl_version( );"

Changes to jni/curl/docs/libcurl/curl_version_info.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
..
75
76
77
78
79
80
81









82
83
84
85
86
87
88
..
96
97
98
99
100
101
102


































103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
.\" * 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_version_info 3 "January 29, 2019" "libcurl 7.65.3" "libcurl Manual"

.SH NAME
curl_version_info - returns run-time libcurl version info
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "curl_version_info_data *curl_version_info( CURLversion "age ");"
................................................................................

  /* when 'age' is 4 or higher (7.57.0 or later), the members below also
     exist  */
  unsigned int brotli_ver_num; /* Numeric Brotli version
                                  (MAJOR << 24) | (MINOR << 12) | PATCH */
  const char *brotli_version; /* human readable string. */










} curl_version_info_data;
.fi

\fIage\fP describes what the age of this struct is. The number depends on how
new the libcurl you're using is. You are however guaranteed to get a struct
that you have a matching struct for in the header, as you tell libcurl your
"age" with the input argument.
................................................................................
\fIhost\fP is an ascii string showing what host information that this libcurl
was built for. As discovered by a configure script or set by the build
environment.

\fIfeatures\fP can have none, one or more bits set, and the currently defined
bits are:
.RS


































.IP CURL_VERSION_IPV6
supports IPv6
.IP CURL_VERSION_KERBEROS4
supports Kerberos V4 (when using FTP)
.IP CURL_VERSION_KERBEROS5
supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 proxy
(Added in 7.40.0)
.IP CURL_VERSION_SSL
supports SSL (HTTPS/FTPS) (Added in 7.10)
.IP CURL_VERSION_LIBZ
supports HTTP deflate using libz (Added in 7.10)
.IP CURL_VERSION_NTLM
supports HTTP NTLM (added in 7.10.6)
.IP CURL_VERSION_GSSNEGOTIATE
supports HTTP GSS-Negotiate (added in 7.10.6)
.IP CURL_VERSION_DEBUG
libcurl was built with debug capabilities (added in 7.10.6)
.IP CURL_VERSION_CURLDEBUG
libcurl was built with memory tracking debug capabilities. This is mainly of
interest for libcurl hackers. (added in 7.19.6)
.IP CURL_VERSION_ASYNCHDNS
libcurl was built with support for asynchronous name lookups, which allows
more exact timeouts (even on Windows) and less blocking when using the multi
interface. (added in 7.10.7)
.IP CURL_VERSION_SPNEGO
libcurl was built with support for SPNEGO authentication (Simple and Protected
GSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8)
.IP CURL_VERSION_LARGEFILE
libcurl was built with support for large files. (Added in 7.11.1)
.IP CURL_VERSION_IDN
libcurl was built with support for IDNA, domain names with international
letters. (Added in 7.12.0)
.IP CURL_VERSION_SSPI
libcurl was built with support for SSPI. This is only available on Windows and
makes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and
Digest authentication. It also allows libcurl to use the current user
credentials without the app having to pass them on. (Added in 7.13.2)
.IP CURL_VERSION_GSSAPI
libcurl was built with support for GSS-API. This makes libcurl use provided
functions for Kerberos and SPNEGO authentication. It also allows libcurl
to use the current user credentials without the app having to pass them on.
(Added in 7.38.0)
.IP CURL_VERSION_CONV
libcurl was built with support for character conversions, as provided by the
CURLOPT_CONV_* callbacks. (Added in 7.15.4)
.IP CURL_VERSION_TLSAUTH_SRP
libcurl was built with support for TLS-SRP. (Added in 7.21.4)
.IP CURL_VERSION_NTLM_WB
libcurl was built with support for NTLM delegation to a winbind helper.
(Added in 7.22.0)
.IP CURL_VERSION_HTTP2
libcurl was built with support for HTTP2.
(Added in 7.33.0)
.IP CURL_VERSION_UNIX_SOCKETS
libcurl was built with support for Unix domain sockets.
(Added in 7.40.0)
.IP CURL_VERSION_PSL
libcurl was built with support for Mozilla's Public Suffix List. This makes
libcurl ignore cookies with a domain that's on the list.
(Added in 7.47.0)
.IP CURL_VERSION_HTTPS_PROXY
libcurl was built with support for HTTPS-proxy.
(Added in 7.52.0)
.IP CURL_VERSION_MULTI_SSL
libcurl was built with multiple SSL backends. For details, see
\fIcurl_global_sslset(3)\fP.
(Added in 7.56.0)
.IP CURL_VERSION_BROTLI
supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)
.RE
\fIssl_version\fP is an ASCII string for the TLS library name + version
used. If libcurl has no SSL support, this is NULL. For example "Schannel",
\&"SecureTransport" or "OpenSSL/1.1.0g".

\fIssl_version_num\fP is always 0.








|







 







>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







|
|


|
|
|
|
|
|
|
|
|
|
|
|
|



<
<
|
<
|





<
<
<
<
<
<
<
<


<
<
<
<
<
<



<
<
<
<
<
<
<
<
<
<
<
<
<







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
..
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
...
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172


173

174
175
176
177
178
179








180
181






182
183
184













185
186
187
188
189
190
191
.\" * 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_version_info 3 "August 13, 2019" "libcurl 7.66.0" "libcurl Manual"

.SH NAME
curl_version_info - returns run-time libcurl version info
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "curl_version_info_data *curl_version_info( CURLversion "age ");"
................................................................................

  /* when 'age' is 4 or higher (7.57.0 or later), the members below also
     exist  */
  unsigned int brotli_ver_num; /* Numeric Brotli version
                                  (MAJOR << 24) | (MINOR << 12) | PATCH */
  const char *brotli_version; /* human readable string. */

  /* when 'age is CURLVERSION_SIXTH or alter (7.66.0 or later), these fields
     also exist */
  unsigned int nghttp2_ver_num; /* Numeric nghttp2 version
                                   (MAJOR << 16) | (MINOR << 8) | PATCH */
  const char *nghttp2_version; /* human readable string. */

  const char *quic_version;    /* human readable quic (+ HTTP/3) library +
                                  version or NULL */

} curl_version_info_data;
.fi

\fIage\fP describes what the age of this struct is. The number depends on how
new the libcurl you're using is. You are however guaranteed to get a struct
that you have a matching struct for in the header, as you tell libcurl your
"age" with the input argument.
................................................................................
\fIhost\fP is an ascii string showing what host information that this libcurl
was built for. As discovered by a configure script or set by the build
environment.

\fIfeatures\fP can have none, one or more bits set, and the currently defined
bits are:
.RS
.IP CURL_VERSION_ALTSVC
HTTP Alt-Svc parsing and the associated options (Added in 7.64.1)
.IP CURL_VERSION_ASYNCHDNS
libcurl was built with support for asynchronous name lookups, which allows
more exact timeouts (even on Windows) and less blocking when using the multi
interface. (added in 7.10.7)
.IP CURL_VERSION_BROTLI
supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)
.IP CURL_VERSION_CONV
libcurl was built with support for character conversions, as provided by the
CURLOPT_CONV_* callbacks. (Added in 7.15.4)
.IP CURL_VERSION_CURLDEBUG
libcurl was built with memory tracking debug capabilities. This is mainly of
interest for libcurl hackers. (added in 7.19.6)
.IP CURL_VERSION_DEBUG
libcurl was built with debug capabilities (added in 7.10.6)
.IP CURL_VERSION_GSSAPI
libcurl was built with support for GSS-API. This makes libcurl use provided
functions for Kerberos and SPNEGO authentication. It also allows libcurl
to use the current user credentials without the app having to pass them on.
(Added in 7.38.0)
.IP CURL_VERSION_GSSNEGOTIATE
supports HTTP GSS-Negotiate (added in 7.10.6)
.IP CURL_VERSION_HTTPS_PROXY
libcurl was built with support for HTTPS-proxy.
(Added in 7.52.0)
.IP CURL_VERSION_HTTP2
libcurl was built with support for HTTP2.
(Added in 7.33.0)
.IP CURL_VERSION_HTTP3
HTTP/3 and QUIC support are built-in (Added in 7.66.0)
.IP CURL_VERSION_IDN
libcurl was built with support for IDNA, domain names with international
letters. (Added in 7.12.0)
.IP CURL_VERSION_IPV6
supports IPv6
.IP CURL_VERSION_KERBEROS4
supports Kerberos V4 (when using FTP)
.IP CURL_VERSION_KERBEROS5
supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 proxy
(Added in 7.40.0)
.IP CURL_VERSION_LARGEFILE
libcurl was built with support for large files. (Added in 7.11.1)
.IP CURL_VERSION_LIBZ
supports HTTP deflate using libz (Added in 7.10)
.IP CURL_VERSION_MULTI_SSL
libcurl was built with multiple SSL backends. For details, see
\fIcurl_global_sslset(3)\fP.
(Added in 7.56.0)
.IP CURL_VERSION_NTLM
supports HTTP NTLM (added in 7.10.6)
.IP CURL_VERSION_NTLM_WB
libcurl was built with support for NTLM delegation to a winbind helper.
(Added in 7.22.0)
.IP CURL_VERSION_PSL
libcurl was built with support for Mozilla's Public Suffix List. This makes
libcurl ignore cookies with a domain that's on the list.
(Added in 7.47.0)
.IP CURL_VERSION_SPNEGO
libcurl was built with support for SPNEGO authentication (Simple and Protected
GSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8)


.IP CURL_VERSION_SSL

supports SSL (HTTPS/FTPS) (Added in 7.10)
.IP CURL_VERSION_SSPI
libcurl was built with support for SSPI. This is only available on Windows and
makes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and
Digest authentication. It also allows libcurl to use the current user
credentials without the app having to pass them on. (Added in 7.13.2)








.IP CURL_VERSION_TLSAUTH_SRP
libcurl was built with support for TLS-SRP. (Added in 7.21.4)






.IP CURL_VERSION_UNIX_SOCKETS
libcurl was built with support for Unix domain sockets.
(Added in 7.40.0)













.RE
\fIssl_version\fP is an ASCII string for the TLS library name + version
used. If libcurl has no SSL support, this is NULL. For example "Schannel",
\&"SecureTransport" or "OpenSSL/1.1.0g".

\fIssl_version_num\fP is always 0.

Changes to jni/curl/docs/libcurl/libcurl-easy.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl 3 "February 03, 2016" "libcurl 7.65.3" "libcurl easy interface"

.SH NAME
libcurl-easy \- easy interface overview
.SH DESCRIPTION
When using libcurl's "easy" interface you init your session and get a handle
(often referred to as an "easy handle"), which you use as input to the easy
interface functions you use. Use \fIcurl_easy_init(3)\fP to get the handle.







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl 3 "February 03, 2016" "libcurl 7.66.0" "libcurl easy interface"

.SH NAME
libcurl-easy \- easy interface overview
.SH DESCRIPTION
When using libcurl's "easy" interface you init your session and get a handle
(often referred to as an "easy handle"), which you use as input to the easy
interface functions you use. Use \fIcurl_easy_init(3)\fP to get the handle.

Changes to jni/curl/docs/libcurl/libcurl-env.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl-env 3 "April 17, 2018" "libcurl 7.65.3" "libcurl environment variables"

.SH NAME
libcurl-env \- environment variables libcurl understands
.SH DESCRIPTION
libcurl reads and understands a set of environment variables that if set will
control and change behaviors. This is the full list of variables to set and
description of what they do. Also note that curl, the command line tool,







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl-env 3 "April 17, 2018" "libcurl 7.66.0" "libcurl environment variables"

.SH NAME
libcurl-env \- environment variables libcurl understands
.SH DESCRIPTION
libcurl reads and understands a set of environment variables that if set will
control and change behaviors. This is the full list of variables to set and
description of what they do. Also note that curl, the command line tool,

Changes to jni/curl/docs/libcurl/libcurl-errors.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
...
251
252
253
254
255
256
257


258
259
260
261
262
263
264
.\" * 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 libcurl-errors 3 "November 19, 2018" "libcurl 7.65.3" "libcurl errors"

.SH NAME
libcurl-errors \- error codes in libcurl
.SH DESCRIPTION
This man page includes most, if not all, available error codes in libcurl.
Why they occur and possibly what you can do to fix the problem are also included.
.SH "CURLcode"
................................................................................
Failed to match the pinned key specified with \fICURLOPT_PINNEDPUBLICKEY(3)\fP.
.IP "CURLE_SSL_INVALIDCERTSTATUS (91)"
Status returned failure when asked with \fICURLOPT_SSL_VERIFYSTATUS(3)\fP.
.IP "CURLE_HTTP2_STREAM (92)"
Stream error in the HTTP/2 framing layer.
.IP "CURLE_RECURSIVE_API_CALL (93)"
An API function was called from inside a callback.


.IP "CURLE_OBSOLETE*"
These error codes will never be returned. They were used in an old libcurl
version and are currently unused.
.SH "CURLMcode"
This is the generic return code used by functions in the libcurl multi
interface. Also consider \fIcurl_multi_strerror(3)\fP.
.IP "CURLM_CALL_MULTI_PERFORM (-1)"







|







 







>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
...
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
.\" * 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 libcurl-errors 3 "May 11, 2019" "libcurl 7.66.0" "libcurl errors"

.SH NAME
libcurl-errors \- error codes in libcurl
.SH DESCRIPTION
This man page includes most, if not all, available error codes in libcurl.
Why they occur and possibly what you can do to fix the problem are also included.
.SH "CURLcode"
................................................................................
Failed to match the pinned key specified with \fICURLOPT_PINNEDPUBLICKEY(3)\fP.
.IP "CURLE_SSL_INVALIDCERTSTATUS (91)"
Status returned failure when asked with \fICURLOPT_SSL_VERIFYSTATUS(3)\fP.
.IP "CURLE_HTTP2_STREAM (92)"
Stream error in the HTTP/2 framing layer.
.IP "CURLE_RECURSIVE_API_CALL (93)"
An API function was called from inside a callback.
.IP "CURLE_AUTH_ERROR (94)"
An authentication function returned an error.
.IP "CURLE_OBSOLETE*"
These error codes will never be returned. They were used in an old libcurl
version and are currently unused.
.SH "CURLMcode"
This is the generic return code used by functions in the libcurl multi
interface. Also consider \fIcurl_multi_strerror(3)\fP.
.IP "CURLM_CALL_MULTI_PERFORM (-1)"

Changes to jni/curl/docs/libcurl/libcurl-multi.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-multi 3 "June 30, 2018" "libcurl 7.65.3" "libcurl multi interface"

.SH NAME
libcurl-multi \- how to use the multi interface
.SH DESCRIPTION
This is an overview on how to use the libcurl multi interface in your C
programs. There are specific man pages for each function mentioned in
here. There's also the \fIlibcurl-tutorial(3)\fP man page for a complete







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-multi 3 "June 30, 2018" "libcurl 7.66.0" "libcurl multi interface"

.SH NAME
libcurl-multi \- how to use the multi interface
.SH DESCRIPTION
This is an overview on how to use the libcurl multi interface in your C
programs. There are specific man pages for each function mentioned in
here. There's also the \fIlibcurl-tutorial(3)\fP man page for a complete

Changes to jni/curl/docs/libcurl/libcurl-security.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-security 3 "July 16, 2019" "libcurl 7.65.3" "libcurl security"

.SH NAME
libcurl-security \- security considerations when using libcurl
.SH "Security"
The libcurl project takes security seriously.  The library is written with
caution and precautions are taken to mitigate many kinds of risks encountered
while operating with potentially malicious servers on the Internet. It is a







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-security 3 "July 16, 2019" "libcurl 7.66.0" "libcurl security"

.SH NAME
libcurl-security \- security considerations when using libcurl
.SH "Security"
The libcurl project takes security seriously.  The library is written with
caution and precautions are taken to mitigate many kinds of risks encountered
while operating with potentially malicious servers on the Internet. It is a

Changes to jni/curl/docs/libcurl/libcurl-share.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl-share 3 "November 27, 2017" "libcurl 7.65.3" "libcurl share interface"

.SH NAME
libcurl-share \- how to use the share interface
.SH DESCRIPTION
This is an overview on how to use the libcurl share interface in your C
programs. There are specific man pages for each function mentioned in
here.







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl-share 3 "November 27, 2017" "libcurl 7.66.0" "libcurl share interface"

.SH NAME
libcurl-share \- how to use the share interface
.SH DESCRIPTION
This is an overview on how to use the libcurl share interface in your C
programs. There are specific man pages for each function mentioned in
here.

Changes to jni/curl/docs/libcurl/libcurl-symbols.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
..
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
..
88
89
90
91
92
93
94


95
96
97
98
99
100
101
...
592
593
594
595
596
597
598


599
600
601
602
603
604
605
....
1194
1195
1196
1197
1198
1199
1200


1201
1202
1203
1204
1205
1206
1207
....
1663
1664
1665
1666
1667
1668
1669


1670
1671
1672
1673
1674
1675
1676
....
1759
1760
1761
1762
1763
1764
1765


1766
1767
1768
1769
1770
1771
1772
....
1948
1949
1950
1951
1952
1953
1954


1955
1956
1957
1958
1959
1960
1961
.\" * 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 libcurl-symbols 3 "jul 19, 2019" "libcurl 7.41.0" "libcurl symbols"
.SH NAME
libcurl-symbols \- libcurl symbol version information
.SH "libcurl symbols"
This man page details version information for public symbols provided in the
libcurl header files. This lists the first version in which the symbol was
introduced and for some symbols two additional information pieces:

................................................................................
since that version no new code should be written to use the symbol as it is
marked for getting removed in a future.

The last version that featured the specific symbol. Using the symbol in source
code will make it no longer compile error-free after that specified version.

This man page is automatically generated from the symbols-in-versions file.
.IP CURLALTSVC_ALTUSED
Introduced in 7.64.1
.IP CURLALTSVC_H1
Introduced in 7.64.1
.IP CURLALTSVC_H2
Introduced in 7.64.1
.IP CURLALTSVC_H3
Introduced in 7.64.1
.IP CURLALTSVC_IMMEDIATELY
................................................................................
Introduced in 7.7
.IP CURLE_ABORTED_BY_CALLBACK
Introduced in 7.1
.IP CURLE_AGAIN
Introduced in 7.18.2
.IP CURLE_ALREADY_COMPLETE
Introduced in 7.7.2


.IP CURLE_BAD_CALLING_ORDER
Introduced in 7.1
Deprecated since 7.17.0
.IP CURLE_BAD_CONTENT_ENCODING
Introduced in 7.10
.IP CURLE_BAD_DOWNLOAD_RESUME
Introduced in 7.10
................................................................................
Introduced in 7.61.0
.IP CURLINFO_REDIRECT_URL
Introduced in 7.18.2
.IP CURLINFO_REQUEST_SIZE
Introduced in 7.4.1
.IP CURLINFO_RESPONSE_CODE
Introduced in 7.10.8


.IP CURLINFO_RTSP_CLIENT_CSEQ
Introduced in 7.20.0
.IP CURLINFO_RTSP_CSEQ_RECV
Introduced in 7.20.0
.IP CURLINFO_RTSP_SERVER_CSEQ
Introduced in 7.20.0
.IP CURLINFO_RTSP_SESSION_ID
................................................................................
Introduced in 7.20.0
.IP CURLOPT_RTSP_SESSION_ID
Introduced in 7.20.0
.IP CURLOPT_RTSP_STREAM_URI
Introduced in 7.20.0
.IP CURLOPT_RTSP_TRANSPORT
Introduced in 7.20.0


.IP CURLOPT_SASL_IR
Introduced in 7.31.0
.IP CURLOPT_SEEKDATA
Introduced in 7.18.0
.IP CURLOPT_SEEKFUNCTION
Introduced in 7.18.0
.IP CURLOPT_SERVER_RESPONSE_TIMEOUT
................................................................................
Introduced in 7.16.1
.IP CURLVERSION_NOW
Introduced in 7.10
.IP CURLVERSION_SECOND
Introduced in 7.11.1
.IP CURLVERSION_THIRD
Introduced in 7.12.0


.IP CURL_CHUNK_BGN_FUNC_FAIL
Introduced in 7.21.0
.IP CURL_CHUNK_BGN_FUNC_OK
Introduced in 7.21.0
.IP CURL_CHUNK_BGN_FUNC_SKIP
Introduced in 7.21.0
.IP CURL_CHUNK_END_FUNC_FAIL
................................................................................
Introduced in 7.43.0
.IP CURL_HTTP_VERSION_2TLS
Introduced in 7.47.0
.IP CURL_HTTP_VERSION_2_0
Introduced in 7.33.0
.IP CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
Introduced in 7.49.0


.IP CURL_HTTP_VERSION_NONE
Introduced in 7.9.1
.IP CURL_IPRESOLVE_V4
Introduced in 7.10.8
.IP CURL_IPRESOLVE_V6
Introduced in 7.10.8
.IP CURL_IPRESOLVE_WHATEVER
................................................................................
.IP CURL_VERSION_GSSAPI
Introduced in 7.38.0
.IP CURL_VERSION_GSSNEGOTIATE
Introduced in 7.10.6
Deprecated since 7.38.0
.IP CURL_VERSION_HTTP2
Introduced in 7.33.0


.IP CURL_VERSION_HTTPS_PROXY
Introduced in 7.52.0
.IP CURL_VERSION_IDN
Introduced in 7.12.0
.IP CURL_VERSION_IPV6
Introduced in 7.10
.IP CURL_VERSION_KERBEROS4







|







 







<
<







 







>
>







 







>
>







 







>
>







 







>
>







 







>
>







 







>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
..
31
32
33
34
35
36
37


38
39
40
41
42
43
44
..
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
...
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
....
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
....
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
....
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
....
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
.\" * 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 libcurl-symbols 3 "sep 11, 2019" "libcurl 7.41.0" "libcurl symbols"
.SH NAME
libcurl-symbols \- libcurl symbol version information
.SH "libcurl symbols"
This man page details version information for public symbols provided in the
libcurl header files. This lists the first version in which the symbol was
introduced and for some symbols two additional information pieces:

................................................................................
since that version no new code should be written to use the symbol as it is
marked for getting removed in a future.

The last version that featured the specific symbol. Using the symbol in source
code will make it no longer compile error-free after that specified version.

This man page is automatically generated from the symbols-in-versions file.


.IP CURLALTSVC_H1
Introduced in 7.64.1
.IP CURLALTSVC_H2
Introduced in 7.64.1
.IP CURLALTSVC_H3
Introduced in 7.64.1
.IP CURLALTSVC_IMMEDIATELY
................................................................................
Introduced in 7.7
.IP CURLE_ABORTED_BY_CALLBACK
Introduced in 7.1
.IP CURLE_AGAIN
Introduced in 7.18.2
.IP CURLE_ALREADY_COMPLETE
Introduced in 7.7.2
.IP CURLE_AUTH_ERROR
Introduced in 7.66.0
.IP CURLE_BAD_CALLING_ORDER
Introduced in 7.1
Deprecated since 7.17.0
.IP CURLE_BAD_CONTENT_ENCODING
Introduced in 7.10
.IP CURLE_BAD_DOWNLOAD_RESUME
Introduced in 7.10
................................................................................
Introduced in 7.61.0
.IP CURLINFO_REDIRECT_URL
Introduced in 7.18.2
.IP CURLINFO_REQUEST_SIZE
Introduced in 7.4.1
.IP CURLINFO_RESPONSE_CODE
Introduced in 7.10.8
.IP CURLINFO_RETRY_AFTER
Introduced in 7.66.0
.IP CURLINFO_RTSP_CLIENT_CSEQ
Introduced in 7.20.0
.IP CURLINFO_RTSP_CSEQ_RECV
Introduced in 7.20.0
.IP CURLINFO_RTSP_SERVER_CSEQ
Introduced in 7.20.0
.IP CURLINFO_RTSP_SESSION_ID
................................................................................
Introduced in 7.20.0
.IP CURLOPT_RTSP_SESSION_ID
Introduced in 7.20.0
.IP CURLOPT_RTSP_STREAM_URI
Introduced in 7.20.0
.IP CURLOPT_RTSP_TRANSPORT
Introduced in 7.20.0
.IP CURLOPT_SASL_AUTHZID
Introduced in 7.66.0
.IP CURLOPT_SASL_IR
Introduced in 7.31.0
.IP CURLOPT_SEEKDATA
Introduced in 7.18.0
.IP CURLOPT_SEEKFUNCTION
Introduced in 7.18.0
.IP CURLOPT_SERVER_RESPONSE_TIMEOUT
................................................................................
Introduced in 7.16.1
.IP CURLVERSION_NOW
Introduced in 7.10
.IP CURLVERSION_SECOND
Introduced in 7.11.1
.IP CURLVERSION_THIRD
Introduced in 7.12.0
.IP CURLVERSION_SIXTH
Introduced in 7.66.0
.IP CURL_CHUNK_BGN_FUNC_FAIL
Introduced in 7.21.0
.IP CURL_CHUNK_BGN_FUNC_OK
Introduced in 7.21.0
.IP CURL_CHUNK_BGN_FUNC_SKIP
Introduced in 7.21.0
.IP CURL_CHUNK_END_FUNC_FAIL
................................................................................
Introduced in 7.43.0
.IP CURL_HTTP_VERSION_2TLS
Introduced in 7.47.0
.IP CURL_HTTP_VERSION_2_0
Introduced in 7.33.0
.IP CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
Introduced in 7.49.0
.IP CURL_HTTP_VERSION_3
Introduced in 7.66.0
.IP CURL_HTTP_VERSION_NONE
Introduced in 7.9.1
.IP CURL_IPRESOLVE_V4
Introduced in 7.10.8
.IP CURL_IPRESOLVE_V6
Introduced in 7.10.8
.IP CURL_IPRESOLVE_WHATEVER
................................................................................
.IP CURL_VERSION_GSSAPI
Introduced in 7.38.0
.IP CURL_VERSION_GSSNEGOTIATE
Introduced in 7.10.6
Deprecated since 7.38.0
.IP CURL_VERSION_HTTP2
Introduced in 7.33.0
.IP CURL_VERSION_HTTP3
Introduced in 7.66.0
.IP CURL_VERSION_HTTPS_PROXY
Introduced in 7.52.0
.IP CURL_VERSION_IDN
Introduced in 7.12.0
.IP CURL_VERSION_IPV6
Introduced in 7.10
.IP CURL_VERSION_KERBEROS4

Changes to jni/curl/docs/libcurl/libcurl-thread.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-thread 3 "June 30, 2019" "libcurl 7.65.3" "libcurl thread safety"

.SH NAME
libcurl-thread \- libcurl thread safety
.SH "Multi-threading with libcurl"
libcurl is thread safe but has no internal thread synchronization. You may have
to provide your own locking should you meet any of the thread safety exceptions
below.







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-thread 3 "June 30, 2019" "libcurl 7.66.0" "libcurl thread safety"

.SH NAME
libcurl-thread \- libcurl thread safety
.SH "Multi-threading with libcurl"
libcurl is thread safe but has no internal thread synchronization. You may have
to provide your own locking should you meet any of the thread safety exceptions
below.

Changes to jni/curl/docs/libcurl/libcurl-tutorial.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-tutorial 3 "June 08, 2019" "libcurl 7.65.3" "libcurl programming"

.SH NAME
libcurl-tutorial \- libcurl programming tutorial
.SH "Objective"
This document attempts to describe the general principles and some basic
approaches to consider when programming with libcurl. The text will focus
mainly on the C interface but might apply fairly well on other interfaces as







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 libcurl-tutorial 3 "June 08, 2019" "libcurl 7.66.0" "libcurl programming"

.SH NAME
libcurl-tutorial \- libcurl programming tutorial
.SH "Objective"
This document attempts to describe the general principles and some basic
approaches to consider when programming with libcurl. The text will focus
mainly on the C interface but might apply fairly well on other interfaces as

Changes to jni/curl/docs/libcurl/libcurl-url.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl 3 "September 10, 2018" "libcurl 7.65.3" "libcurl url interface"

.SH NAME
libcurl-url \- URL interface overview
.SH DESCRIPTION
The URL interface provides a set of functions for parsing and generating URLs.
.SH INCLUDE
You still only include <curl/curl.h> in your code. Note that the URL API was







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl 3 "September 10, 2018" "libcurl 7.66.0" "libcurl url interface"

.SH NAME
libcurl-url \- URL interface overview
.SH DESCRIPTION
The URL interface provides a set of functions for parsing and generating URLs.
.SH INCLUDE
You still only include <curl/curl.h> in your code. Note that the URL API was

Changes to jni/curl/docs/libcurl/libcurl.3.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl 3 "July 15, 2017" "libcurl 7.65.3" "libcurl overview"

.SH NAME
libcurl \- client-side URL transfers
.SH DESCRIPTION
This is a short overview on how to use libcurl in your C programs. There are
specific man pages for each function mentioned in here. There are also the
\fIlibcurl-easy(3)\fP man page, the \fIlibcurl-multi(3)\fP man page, the







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.\" * 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 libcurl 3 "July 15, 2017" "libcurl 7.66.0" "libcurl overview"

.SH NAME
libcurl \- client-side URL transfers
.SH DESCRIPTION
This is a short overview on how to use libcurl in your C programs. There are
specific man pages for each function mentioned in here. There are also the
\fIlibcurl-easy(3)\fP man page, the \fIlibcurl-multi(3)\fP man page, the

Changes to jni/curl/docs/libcurl/opts/CURLINFO_ACTIVESOCKET.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36


37
38
39
40
41
42
43
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2017, 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 "May 17, 2018" "libcurl 7.65.3" "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
.nf
curl = curl_easy_init();







|







 







|













>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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 "August 26, 2019" "libcurl 7.66.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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_APPCONNECT_TIME_T.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
..
31
32
33
34
35
36
37


38
39
40
41
42
43
44
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018, 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_T 3 "May 17, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_APPCONNECT_TIME_T \- 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_T, curl_off_t *timep);
................................................................................
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the time, in microseconds,
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_T(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
.nf
curl = curl_easy_init();







|







 







|







 







>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
..
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018 - 2019, 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_T 3 "August 26, 2019" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_APPCONNECT_TIME_T \- 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_T, curl_off_t *timep);
................................................................................
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the time, in microseconds,
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_T(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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CERTINFO.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "November 07, 2018" "libcurl 7.65.3" "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,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "November 07, 2018" "libcurl 7.66.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,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONDITION_UNMET.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "February 23, 2018" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "February 23, 2018" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONNECT_TIME.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33


34
35
36
37
38
39
40
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2017, 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 "May 17, 2018" "libcurl 7.65.3" "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
.nf
curl = curl_easy_init();







|







 







|










>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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 "August 26, 2019" "libcurl 7.66.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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONNECT_TIME_T.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33



34
35
36
37
38
39
40
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018, 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_T 3 "May 17, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_CONNECT_TIME_T \- get the time until connect
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONNECT_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the total time in microseconds
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
.nf
curl = curl_easy_init();
if(curl) {







|







 







|










>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018 - 2019, 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_T 3 "August 26, 2019" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_CONNECT_TIME_T \- get the time until connect
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONNECT_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the total time in microseconds
from the start until the connection to the remote host (or proxy) was completed.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();
if(curl) {

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.65.3" "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,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.66.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,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T \- get content-length of download
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.65.3" "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,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.66.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,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_LENGTH_UPLOAD_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD_T,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_CONTENT_LENGTH_UPLOAD_T \- get the specified size of the upload
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_CONTENT_LENGTH_UPLOAD_T,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONTENT_TYPE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_COOKIELIST.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 20, 2018" "libcurl 7.65.3" "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,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 20, 2018" "libcurl 7.66.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,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_EFFECTIVE_URL.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 04, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 04, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_FILETIME.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "January 25, 2018" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "January 25, 2018" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_FILETIME_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "January 25, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_FILETIME_T \- get the remote time of the retrieved document
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME_T, curl_off_t *timep);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "January 25, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_FILETIME_T \- get the remote time of the retrieved document
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_FILETIME_T, curl_off_t *timep);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_FTP_ENTRY_PATH.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_HEADER_SIZE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_HTTPAUTH_AVAIL.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "October 07, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "October 07, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_HTTP_CONNECTCODE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_HTTP_VERSION.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

34
35
36
37
38
39
40
41
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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 "May 11, 2016" "libcurl 7.65.3" "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;







|







 







|








|
|
>
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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 "August 07, 2019" "libcurl 7.66.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, CURL_HTTP_VERSION_2_0, CURL_HTTP_VERSION_3 or 0 if the
version can't be determined.
.SH PROTOCOLS
HTTP
.SH EXAMPLE
.nf
CURL *curl = curl_easy_init();
if(curl) {
  CURLcode res;

Changes to jni/curl/docs/libcurl/opts/CURLINFO_LASTSOCKET.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_LOCAL_IP.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 05, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 05, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_LOCAL_PORT.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 16, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 16, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33


34
35
36
37
38
39
40
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2017, 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 "May 17, 2018" "libcurl 7.65.3" "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
.nf
curl = curl_easy_init();







|







 







|










>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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 "August 26, 2019" "libcurl 7.66.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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_NAMELOOKUP_TIME_T.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33


34
35
36
37
38
39
40
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018, 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_T 3 "May 17, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_NAMELOOKUP_TIME_T \- get the name lookup time in microseconds
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NAMELOOKUP_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the total time in microseconds
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
.nf
curl = curl_easy_init();







|







 







|










>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018 - 2019, 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_T 3 "August 26, 2019" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_NAMELOOKUP_TIME_T \- get the name lookup time in microseconds
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_NAMELOOKUP_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the total time in microseconds
from the start until the name resolving was completed.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_NUM_CONNECTS.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_OS_ERRNO.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "November 07, 2018" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "November 07, 2018" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36


37
38
39
40
41
42
43
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2017, 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 "May 17, 2018" "libcurl 7.65.3" "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
.nf
curl = curl_easy_init();







|







 







|













>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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 "August 26, 2019" "libcurl 7.66.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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRETRANSFER_TIME_T.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
..
31
32
33
34
35
36
37


38
39
40
41
42
43
44
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018, 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_T 3 "May 17, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_PRETRANSFER_TIME_T \- get the time until the file transfer start
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRETRANSFER_TIME_T, curl_off_t *timep);
................................................................................
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the time, in microseconds,
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
.nf
curl = curl_easy_init();







|







 







|







 







>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
..
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018 - 2019, 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_T 3 "August 26, 2019" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_PRETRANSFER_TIME_T \- get the time until the file transfer start
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PRETRANSFER_TIME_T, curl_off_t *timep);
................................................................................
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the time, in microseconds,
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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRIMARY_IP.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 22, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 22, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRIMARY_PORT.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRIVATE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 05, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 05, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PROTOCOL.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 27, 2018" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 27, 2018" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PROXYAUTH_AVAIL.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "October 07, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "October 07, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PROXY_SSL_VERIFYRESULT.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_COUNT.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 05, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 05, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_TIME.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 17, 2018" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 17, 2018" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_TIME_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "May 17, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_REDIRECT_TIME_T \- get the time for all redirection steps
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME_T, curl_off_t *timep);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "May 17, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_REDIRECT_TIME_T \- get the time for all redirection steps
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_TIME_T, curl_off_t *timep);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_REDIRECT_URL.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 24, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 24, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_REQUEST_SIZE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 06, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_RESPONSE_CODE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "February 03, 2016" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "February 03, 2016" "libcurl 7.66.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);

Added jni/curl/docs/libcurl/opts/CURLINFO_RETRY_AFTER.3.

































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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_RETRY_AFTER 3 "August 06, 2019" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_RETRY_AFTER \- returns the Retry-After retry delay
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RETRY_AFTER, curl_off_t *retry);
.SH DESCRIPTION
Pass a pointer to a curl_off_t variable to receive the number of seconds the
HTTP server suggesets the client should wait until the next request is
issued. The information from the "Retry-After:" header.

While the HTTP header might contain a fixed date string, the
\fICURLINFO_RETRY_AFTER(3)\fP will alwaus return number of seconds to wait -
or zero if there was no header or the header couldn't be parsed.
.SH DEFAULT
Returns zero delay if there was no header.
.SH PROTOCOLS
HTTP(S)
.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) {
    curl_off_t wait = 0;
    curl_easy_getinfo(curl, CURLINFO_RETRY_AFTER, &wait);
    if(wait)
      printf("Wait for %" CURL_FORMAT_CURL_OFF_T " seconds\\n", wait);
  }
  curl_easy_cleanup(curl);
}
.fi
.SH AVAILABILITY
Added in curl 7.66.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_HEADERFUNCTION "(3), "

Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_CLIENT_CSEQ.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_CSEQ_RECV.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_SERVER_CSEQ.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_RTSP_SESSION_ID.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SCHEME.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 08, 2017" "libcurl 7.65.3" "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, char **scheme);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 08, 2017" "libcurl 7.66.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, char **scheme);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_DOWNLOAD_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD_T, curl_off_t *dlp);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SIZE_DOWNLOAD_T \- get the number of downloaded bytes
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_DOWNLOAD_T, curl_off_t *dlp);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SIZE_UPLOAD_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD_T, curl_off_t *uploadp);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SIZE_UPLOAD_T \- get the number of uploaded bytes
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SIZE_UPLOAD_T, curl_off_t *uploadp);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_DOWNLOAD_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SPEED_DOWNLOAD_T \- get download speed
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD_T, curl_off_t *speed);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SPEED_DOWNLOAD_T \- get download speed
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_DOWNLOAD_T, curl_off_t *speed);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "June 15, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SPEED_UPLOAD_T.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SPEED_UPLOAD_T \- get upload speed
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD_T, curl_off_t *speed);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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_T 3 "March 31, 2018" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_SPEED_UPLOAD_T \- get upload speed
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_SPEED_UPLOAD_T, curl_off_t *speed);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SSL_ENGINES.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.65.3" "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,







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.66.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,

Changes to jni/curl/docs/libcurl/opts/CURLINFO_SSL_VERIFYRESULT.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 21, 2018" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "March 21, 2018" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35


36
37
38
39
40
41
42
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2017, 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 "May 17, 2018" "libcurl 7.65.3" "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
.nf
curl = curl_easy_init();







|







 







|












>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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 "August 26, 2019" "libcurl 7.66.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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_STARTTRANSFER_TIME_T.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36


37
38
39
40
41
42
43
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018, 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_T 3 "May 17, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_STARTTRANSFER_TIME_T \- get the time until the first byte is received
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_STARTTRANSFER_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the time, in microseconds,
it took from the
start until the first byte is received by libcurl. This includes
\fICURLINFO_PRETRANSFER_TIME_T(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
.nf
curl = curl_easy_init();







|







 







|













>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018 - 2019, 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_T 3 "August 26, 2019" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_STARTTRANSFER_TIME_T \- get the time until the first byte is received
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_STARTTRANSFER_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the time, in microseconds,
it took from the
start until the first byte is received by libcurl. This includes
\fICURLINFO_PRETRANSFER_TIME_T(3)\fP and also the time the server needs to
calculate the result.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_TLS_SESSION.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_TLS_SESSION \- get TLS session info
.SH SYNOPSIS
.nf
#include <curl/curl.h>








|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 31, 2017" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_TLS_SESSION \- get TLS session info
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLINFO_TLS_SSL_PTR.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "July 16, 2019" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR \- get TLS session info
.SH SYNOPSIS
.nf
#include <curl/curl.h>








|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "July 16, 2019" "libcurl 7.66.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>

Changes to jni/curl/docs/libcurl/opts/CURLINFO_TOTAL_TIME.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34


35
36
37
38
39
40
41
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2017, 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 "May 17, 2018" "libcurl 7.65.3" "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
.nf
curl = curl_easy_init();







|







 







|











>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2019, 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 "August 26, 2019" "libcurl 7.66.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.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLINFO_TOTAL_TIME_T.3.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34


35
36
37
38
39
40
41
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018, 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_T 3 "May 17, 2018" "libcurl 7.65.3" "curl_easy_getinfo options"

.SH NAME
CURLINFO_TOTAL_TIME_T \- get total time of previous transfer in microseconds
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TOTAL_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the total time in microseconds
for the previous transfer, including name resolving, TCP connect etc.
The curl_off_t represents the time in microseconds.



See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();







|







 







|











>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 2018 - 2019, 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_T 3 "August 26, 2019" "libcurl 7.66.0" "curl_easy_getinfo options"

.SH NAME
CURLINFO_TOTAL_TIME_T \- get total time of previous transfer in microseconds
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TOTAL_TIME_T, curl_off_t *timep);
.SH DESCRIPTION
Pass a pointer to a curl_off_t to receive the total time in microseconds
for the previous transfer, including name resolving, TCP connect etc.
The curl_off_t represents the time in microseconds.

When a redirect is followed, the time from each request is added together.

See also the TIMES overview in the \fIcurl_easy_getinfo(3)\fP man page.
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
curl = curl_easy_init();

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAXCONNECTS.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "September 23, 2018" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "September 23, 2018" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAX_HOST_CONNECTIONS.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 27, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 27, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAX_PIPELINE_LENGTH.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_MAX_TOTAL_CONNECTIONS.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 27, 2017" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "May 27, 2017" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PIPELINING.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PIPELINING_SERVER_BL.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PIPELINING_SITE_BL.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.65.3" "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);







|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.\" * 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 "April 05, 2019" "libcurl 7.66.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);

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PUSHDATA.3.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30